From 9b793cc69bd9d98c1ed3a5bd991a6fb57d4da3d5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 30 Jan 2026 08:30:21 +0000 Subject: [PATCH 001/179] Update dependencies --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index eca87006f0f1..31a01b7a7274 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 4af871bb24c8..06352e7f74d6 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26079.110 - 10.0.4-servicing.26079.110 - 10.0.4-servicing.26079.110 - 10.0.4-servicing.26079.110 + 10.0.4-servicing.26079.121 + 10.0.4-servicing.26079.121 + 10.0.4-servicing.26079.121 + 10.0.4-servicing.26079.121 10.0.4 - 10.0.4-servicing.26079.110 + 10.0.4-servicing.26079.121 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26079.110 + 10.0.4-servicing.26079.121 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26079.110 + 10.0.4-servicing.26079.121 10.0.4 - 10.0.4-servicing.26079.110 - 10.0.4-servicing.26079.110 - 10.0.0-preview.26079.110 + 10.0.4-servicing.26079.121 + 10.0.4-servicing.26079.121 + 10.0.0-preview.26079.121 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26079-110 - 7.0.2-rc.8010 + 18.0.11-servicing-26079-121 + 7.0.2-rc.8021 10.0.104 - 5.0.0-2.26079.110 - 5.0.0-2.26079.110 - 5.0.0-2.26079.110 - 5.0.0-2.26079.110 - 5.0.0-2.26079.110 - 5.0.0-2.26079.110 - 5.0.0-2.26079.110 - 10.0.0-preview.26079.110 - 5.0.0-2.26079.110 - 5.0.0-2.26079.110 - 2.0.0-preview.1.26079.110 + 5.0.0-2.26079.121 + 5.0.0-2.26079.121 + 5.0.0-2.26079.121 + 5.0.0-2.26079.121 + 5.0.0-2.26079.121 + 5.0.0-2.26079.121 + 5.0.0-2.26079.121 + 10.0.0-preview.26079.121 + 5.0.0-2.26079.121 + 5.0.0-2.26079.121 + 2.0.0-preview.1.26079.121 2.2.4 - 10.0.0-beta.26079.110 - 10.0.0-beta.26079.110 - 10.0.0-beta.26079.110 - 10.0.0-beta.26079.110 - 10.0.0-beta.26079.110 - 10.0.0-beta.26079.110 + 10.0.0-beta.26079.121 + 10.0.0-beta.26079.121 + 10.0.0-beta.26079.121 + 10.0.0-beta.26079.121 + 10.0.0-beta.26079.121 + 10.0.0-beta.26079.121 10.0.4 10.0.4 - 10.0.4-servicing.26079.110 - 10.0.4-servicing.26079.110 - 10.0.0-beta.26079.110 - 10.0.0-beta.26079.110 + 10.0.4-servicing.26079.121 + 10.0.4-servicing.26079.121 + 10.0.0-beta.26079.121 + 10.0.0-beta.26079.121 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26079.110 + 14.0.104-servicing.26079.121 10.0.4 - 5.0.0-2.26079.110 - 5.0.0-2.26079.110 - 10.0.4-servicing.26079.110 + 5.0.0-2.26079.121 + 5.0.0-2.26079.121 + 10.0.4-servicing.26079.121 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26079.110 - 10.0.4-servicing.26079.110 - 18.0.1-release-26079-110 + 10.0.0-preview.26079.121 + 10.0.4-servicing.26079.121 + 18.0.1-release-26079-121 10.0.4 - 10.0.4-servicing.26079.110 + 10.0.4-servicing.26079.121 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26079.110 + 10.0.104-servicing.26079.121 10.0.104 - 10.0.104-servicing.26079.110 + 10.0.104-servicing.26079.121 10.0.104 10.0.104 - 10.0.104-servicing.26079.110 - 18.0.1-release-26079-110 - 18.0.1-release-26079-110 + 10.0.104-servicing.26079.121 + 18.0.1-release-26079-121 + 18.0.1-release-26079-121 3.2.4 10.0.4 - 10.0.4-servicing.26079.110 + 10.0.4-servicing.26079.121 10.0.4 - 7.0.2-rc.8010 - 7.0.2-rc.8010 - 7.0.2-rc.8010 - 7.0.2-rc.8010 - 7.0.2-rc.8010 - 7.0.2-rc.8010 - 7.0.2-rc.8010 - 7.0.2-rc.8010 - 7.0.2-rc.8010 - 7.0.2-rc.8010 - 7.0.2-rc.8010 - 7.0.2-rc.8010 - 7.0.2-rc.8010 - 7.0.2-rc.8010 - 7.0.2-rc.8010 - 7.0.2-rc.8010 + 7.0.2-rc.8021 + 7.0.2-rc.8021 + 7.0.2-rc.8021 + 7.0.2-rc.8021 + 7.0.2-rc.8021 + 7.0.2-rc.8021 + 7.0.2-rc.8021 + 7.0.2-rc.8021 + 7.0.2-rc.8021 + 7.0.2-rc.8021 + 7.0.2-rc.8021 + 7.0.2-rc.8021 + 7.0.2-rc.8021 + 7.0.2-rc.8021 + 7.0.2-rc.8021 + 7.0.2-rc.8021 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index aebf3a31a13a..68b3d4723053 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f - + https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 2e33fb289644d6ffa327eef394eb8279b452f7b9 + 167f53dba01b9177e34bb67e27187cb802cf708f diff --git a/global.json b/global.json index f11f080f97ff..e40787e87e8b 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26079.110", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26079.110", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26079.121", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26079.121", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 7f1e3f1696d066f336d1ff8d684237ebf8b0e309 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 30 Jan 2026 15:59:57 +0000 Subject: [PATCH 002/179] Update dependencies --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index 31a01b7a7274..592f67f28054 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 06352e7f74d6..8c31011dc5c4 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26079.121 - 10.0.4-servicing.26079.121 - 10.0.4-servicing.26079.121 - 10.0.4-servicing.26079.121 + 10.0.4-servicing.26080.102 + 10.0.4-servicing.26080.102 + 10.0.4-servicing.26080.102 + 10.0.4-servicing.26080.102 10.0.4 - 10.0.4-servicing.26079.121 + 10.0.4-servicing.26080.102 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26079.121 + 10.0.4-servicing.26080.102 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26079.121 + 10.0.4-servicing.26080.102 10.0.4 - 10.0.4-servicing.26079.121 - 10.0.4-servicing.26079.121 - 10.0.0-preview.26079.121 + 10.0.4-servicing.26080.102 + 10.0.4-servicing.26080.102 + 10.0.0-preview.26080.102 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26079-121 - 7.0.2-rc.8021 + 18.0.11-servicing-26080-102 + 7.0.2-rc.8102 10.0.104 - 5.0.0-2.26079.121 - 5.0.0-2.26079.121 - 5.0.0-2.26079.121 - 5.0.0-2.26079.121 - 5.0.0-2.26079.121 - 5.0.0-2.26079.121 - 5.0.0-2.26079.121 - 10.0.0-preview.26079.121 - 5.0.0-2.26079.121 - 5.0.0-2.26079.121 - 2.0.0-preview.1.26079.121 + 5.0.0-2.26080.102 + 5.0.0-2.26080.102 + 5.0.0-2.26080.102 + 5.0.0-2.26080.102 + 5.0.0-2.26080.102 + 5.0.0-2.26080.102 + 5.0.0-2.26080.102 + 10.0.0-preview.26080.102 + 5.0.0-2.26080.102 + 5.0.0-2.26080.102 + 2.0.0-preview.1.26080.102 2.2.4 - 10.0.0-beta.26079.121 - 10.0.0-beta.26079.121 - 10.0.0-beta.26079.121 - 10.0.0-beta.26079.121 - 10.0.0-beta.26079.121 - 10.0.0-beta.26079.121 + 10.0.0-beta.26080.102 + 10.0.0-beta.26080.102 + 10.0.0-beta.26080.102 + 10.0.0-beta.26080.102 + 10.0.0-beta.26080.102 + 10.0.0-beta.26080.102 10.0.4 10.0.4 - 10.0.4-servicing.26079.121 - 10.0.4-servicing.26079.121 - 10.0.0-beta.26079.121 - 10.0.0-beta.26079.121 + 10.0.4-servicing.26080.102 + 10.0.4-servicing.26080.102 + 10.0.0-beta.26080.102 + 10.0.0-beta.26080.102 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26079.121 + 14.0.104-servicing.26080.102 10.0.4 - 5.0.0-2.26079.121 - 5.0.0-2.26079.121 - 10.0.4-servicing.26079.121 + 5.0.0-2.26080.102 + 5.0.0-2.26080.102 + 10.0.4-servicing.26080.102 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26079.121 - 10.0.4-servicing.26079.121 - 18.0.1-release-26079-121 + 10.0.0-preview.26080.102 + 10.0.4-servicing.26080.102 + 18.0.1-release-26080-102 10.0.4 - 10.0.4-servicing.26079.121 + 10.0.4-servicing.26080.102 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26079.121 + 10.0.104-servicing.26080.102 10.0.104 - 10.0.104-servicing.26079.121 + 10.0.104-servicing.26080.102 10.0.104 10.0.104 - 10.0.104-servicing.26079.121 - 18.0.1-release-26079-121 - 18.0.1-release-26079-121 + 10.0.104-servicing.26080.102 + 18.0.1-release-26080-102 + 18.0.1-release-26080-102 3.2.4 10.0.4 - 10.0.4-servicing.26079.121 + 10.0.4-servicing.26080.102 10.0.4 - 7.0.2-rc.8021 - 7.0.2-rc.8021 - 7.0.2-rc.8021 - 7.0.2-rc.8021 - 7.0.2-rc.8021 - 7.0.2-rc.8021 - 7.0.2-rc.8021 - 7.0.2-rc.8021 - 7.0.2-rc.8021 - 7.0.2-rc.8021 - 7.0.2-rc.8021 - 7.0.2-rc.8021 - 7.0.2-rc.8021 - 7.0.2-rc.8021 - 7.0.2-rc.8021 - 7.0.2-rc.8021 + 7.0.2-rc.8102 + 7.0.2-rc.8102 + 7.0.2-rc.8102 + 7.0.2-rc.8102 + 7.0.2-rc.8102 + 7.0.2-rc.8102 + 7.0.2-rc.8102 + 7.0.2-rc.8102 + 7.0.2-rc.8102 + 7.0.2-rc.8102 + 7.0.2-rc.8102 + 7.0.2-rc.8102 + 7.0.2-rc.8102 + 7.0.2-rc.8102 + 7.0.2-rc.8102 + 7.0.2-rc.8102 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 68b3d4723053..206762bc4ad4 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e - + https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 167f53dba01b9177e34bb67e27187cb802cf708f + c470c8dbf6577ae1d27962c24079eebeba087d8e diff --git a/global.json b/global.json index e40787e87e8b..36aae8f893dc 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26079.121", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26079.121", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26080.102", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26080.102", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 1f42ff6858e288c762a9039a854a7625b248dca1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 30 Jan 2026 19:50:30 +0000 Subject: [PATCH 003/179] Reset files to release/10.0.2xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- NuGet.config | 3 +- eng/Version.Details.props | 368 +++++----- eng/Version.Details.xml | 677 +++++++++--------- .../job/publish-build-assets.yml | 2 +- .../core-templates/job/source-build.yml | 2 +- .../core-templates/post-build/post-build.yml | 4 +- .../templates/variables/pool-providers.yml | 2 +- eng/common/tools.ps1 | 13 +- global.json | 4 +- 9 files changed, 538 insertions(+), 537 deletions(-) diff --git a/NuGet.config b/NuGet.config index 592f67f28054..f3f728c95515 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,6 @@ - @@ -39,6 +38,8 @@ + + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 8c31011dc5c4..13a5e68547c4 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,139 +6,141 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26080.102 - 10.0.4-servicing.26080.102 - 10.0.4-servicing.26080.102 - 10.0.4-servicing.26080.102 - 10.0.4 - 10.0.4-servicing.26080.102 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4-servicing.26080.102 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4-servicing.26080.102 - 10.0.4 - 10.0.4-servicing.26080.102 - 10.0.4-servicing.26080.102 - 10.0.0-preview.26080.102 - 10.0.4 - 10.0.4 - 18.0.11 - 18.0.11-servicing-26080-102 - 7.0.2-rc.8102 - 10.0.104 - 5.0.0-2.26080.102 - 5.0.0-2.26080.102 - 5.0.0-2.26080.102 - 5.0.0-2.26080.102 - 5.0.0-2.26080.102 - 5.0.0-2.26080.102 - 5.0.0-2.26080.102 - 10.0.0-preview.26080.102 - 5.0.0-2.26080.102 - 5.0.0-2.26080.102 - 2.0.0-preview.1.26080.102 - 2.2.4 - 10.0.0-beta.26080.102 - 10.0.0-beta.26080.102 - 10.0.0-beta.26080.102 - 10.0.0-beta.26080.102 - 10.0.0-beta.26080.102 - 10.0.0-beta.26080.102 - 10.0.4 - 10.0.4 - 10.0.4-servicing.26080.102 - 10.0.4-servicing.26080.102 - 10.0.0-beta.26080.102 - 10.0.0-beta.26080.102 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 14.0.104-servicing.26080.102 - 10.0.4 - 5.0.0-2.26080.102 - 5.0.0-2.26080.102 - 10.0.4-servicing.26080.102 - 10.0.4 - 10.0.4 + 10.0.0-preview.26079.118 + 18.3.0-release-26079-118 + 18.3.0-release-26079-118 + 7.3.0-preview.1.8018 + 10.0.200-alpha.26079.118 + 5.3.0-2.26079.118 + 5.3.0-2.26079.118 + 5.3.0-2.26079.118 + 5.3.0-2.26079.118 + 5.3.0-2.26079.118 + 5.3.0-2.26079.118 + 5.3.0-2.26079.118 + 5.3.0-2.26079.118 + 10.0.0-preview.26079.118 + 5.3.0-2.26079.118 + 5.3.0-2.26079.118 + 10.0.0-beta.26079.118 + 10.0.0-beta.26079.118 + 10.0.0-beta.26079.118 + 10.0.0-beta.26079.118 + 10.0.0-beta.26079.118 + 10.0.0-beta.26079.118 + 10.0.0-beta.26079.118 + 10.0.0-beta.26079.118 + 15.2.200-servicing.26079.118 + 5.3.0-2.26079.118 + 5.3.0-2.26079.118 10.0.0-preview.7.25377.103 - 10.0.0-preview.26080.102 - 10.0.4-servicing.26080.102 - 18.0.1-release-26080-102 - 10.0.4 - 10.0.4-servicing.26080.102 - 10.0.104 - 10.0.104 - 10.0.104 - 10.0.104 - 10.0.104 - 10.0.104 - 10.0.104 - 10.0.104 - 10.0.104-servicing.26080.102 - 10.0.104 - 10.0.104-servicing.26080.102 - 10.0.104 - 10.0.104 - 10.0.104-servicing.26080.102 - 18.0.1-release-26080-102 - 18.0.1-release-26080-102 - 3.2.4 - 10.0.4 - 10.0.4-servicing.26080.102 - 10.0.4 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 10.0.4 - 2.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 + 10.0.0-preview.26079.118 + 18.3.0-release-26079-118 + 10.0.200-alpha.26079.118 + 10.0.200-alpha.26079.118 + 10.0.200-alpha.26079.118 + 10.0.200-alpha.26079.118 + 10.0.200-alpha.26079.118 + 10.0.200-preview.26079.118 + 10.0.200-preview.26079.118 + 10.0.200-preview.26079.118 + 10.0.200-preview.26079.118 + 10.0.200-preview.26079.118 + 10.0.200-preview.26079.118 + 10.0.200-preview.26079.118 + 10.0.200-preview.26079.118 + 10.0.200-preview.26079.118 + 18.3.0-release-26079-118 + 18.3.0-release-26079-118 + 7.3.0-preview.1.8018 + 7.3.0-preview.1.8018 + 7.3.0-preview.1.8018 + 7.3.0-preview.1.8018 + 7.3.0-preview.1.8018 + 7.3.0-preview.1.8018 + 7.3.0-preview.1.8018 + 7.3.0-preview.1.8018 + 7.3.0-preview.1.8018 + 7.3.0-preview.1.8018 + 7.3.0-preview.1.8018 + 7.3.0-preview.1.8018 + 7.3.0-preview.1.8018 + 7.3.0-preview.1.8018 + 7.3.0-preview.1.8018 + 7.3.0-preview.1.8018 + + 10.0.2-servicing.25612.105 + 10.0.2-servicing.25612.105 + 10.0.2-servicing.25612.105 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2 + 2.0.0-preview.1.25612.105 + 2.2.2 + 10.0.2 + 10.0.2 + 10.0.0-rtm.25523.111 + 10.0.0-rtm.25523.111 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2-servicing.25612.105 + 3.2.2 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2 + 2.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 2.1.0 @@ -148,31 +150,7 @@ This file should be imported by eng/Versions.props - $(dotnetdevcertsPackageVersion) - $(dotnetuserjwtsPackageVersion) - $(dotnetusersecretsPackageVersion) - $(MicrosoftAspNetCoreAnalyzersPackageVersion) - $(MicrosoftAspNetCoreAppRefPackageVersion) - $(MicrosoftAspNetCoreAppRefInternalPackageVersion) - $(MicrosoftAspNetCoreAuthenticationFacebookPackageVersion) - $(MicrosoftAspNetCoreAuthenticationGooglePackageVersion) - $(MicrosoftAspNetCoreAuthenticationMicrosoftAccountPackageVersion) - $(MicrosoftAspNetCoreAuthorizationPackageVersion) - $(MicrosoftAspNetCoreComponentsPackageVersion) - $(MicrosoftAspNetCoreComponentsAnalyzersPackageVersion) - $(MicrosoftAspNetCoreComponentsFormsPackageVersion) - $(MicrosoftAspNetCoreComponentsSdkAnalyzersPackageVersion) - $(MicrosoftAspNetCoreComponentsWebPackageVersion) - $(MicrosoftAspNetCoreComponentsWebAssemblyPackageVersion) - $(MicrosoftAspNetCoreComponentsWebAssemblyServerPackageVersion) - $(MicrosoftAspNetCoreComponentsWebViewPackageVersion) - $(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion) - $(MicrosoftAspNetCoreMetadataPackageVersion) - $(MicrosoftAspNetCoreMvcAnalyzersPackageVersion) - $(MicrosoftAspNetCoreMvcApiAnalyzersPackageVersion) $(MicrosoftAspNetCoreMvcRazorExtensionsToolingInternalPackageVersion) - $(MicrosoftAspNetCoreTestHostPackageVersion) - $(MicrosoftBclAsyncInterfacesPackageVersion) $(MicrosoftBuildPackageVersion) $(MicrosoftBuildLocalizationPackageVersion) $(MicrosoftBuildNuGetSdkResolverPackageVersion) @@ -183,46 +161,25 @@ This file should be imported by eng/Versions.props $(MicrosoftCodeAnalysisCSharpCodeStylePackageVersion) $(MicrosoftCodeAnalysisCSharpFeaturesPackageVersion) $(MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion) + $(MicrosoftCodeAnalysisExternalAccessHotReloadPackageVersion) $(MicrosoftCodeAnalysisPublicApiAnalyzersPackageVersion) $(MicrosoftCodeAnalysisRazorToolingInternalPackageVersion) $(MicrosoftCodeAnalysisWorkspacesCommonPackageVersion) $(MicrosoftCodeAnalysisWorkspacesMSBuildPackageVersion) - $(MicrosoftDeploymentDotNetReleasesPackageVersion) - $(MicrosoftDiaSymReaderPackageVersion) $(MicrosoftDotNetArcadeSdkPackageVersion) $(MicrosoftDotNetBuildTasksInstallersPackageVersion) $(MicrosoftDotNetBuildTasksTemplatingPackageVersion) $(MicrosoftDotNetBuildTasksWorkloadsPackageVersion) $(MicrosoftDotNetHelixSdkPackageVersion) $(MicrosoftDotNetSignToolPackageVersion) - $(MicrosoftDotNetWebItemTemplates100PackageVersion) - $(MicrosoftDotNetWebProjectTemplates100PackageVersion) - $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) - $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) $(MicrosoftDotNetXliffTasksPackageVersion) $(MicrosoftDotNetXUnitExtensionsPackageVersion) - $(MicrosoftExtensionsConfigurationIniPackageVersion) - $(MicrosoftExtensionsDependencyModelPackageVersion) - $(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion) - $(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion) - $(MicrosoftExtensionsFileSystemGlobbingPackageVersion) - $(MicrosoftExtensionsLoggingPackageVersion) - $(MicrosoftExtensionsLoggingAbstractionsPackageVersion) - $(MicrosoftExtensionsLoggingConsolePackageVersion) - $(MicrosoftExtensionsObjectPoolPackageVersion) $(MicrosoftFSharpCompilerPackageVersion) - $(MicrosoftJSInteropPackageVersion) $(MicrosoftNetCompilersToolsetPackageVersion) $(MicrosoftNetCompilersToolsetFrameworkPackageVersion) - $(MicrosoftNETHostModelPackageVersion) - $(MicrosoftNETILLinkTasksPackageVersion) - $(MicrosoftNETRuntimeEmscripten3156Cachewinx64PackageVersion) $(MicrosoftNETRuntimeEmscriptenSdkInternalPackageVersion) $(MicrosoftNETSdkRazorSourceGeneratorsTransportPackageVersion) - $(MicrosoftNETSdkWindowsDesktopPackageVersion) $(MicrosoftNETTestSdkPackageVersion) - $(MicrosoftNETCoreAppRefPackageVersion) - $(MicrosoftNETCorePlatformsPackageVersion) $(MicrosoftSourceLinkAzureReposGitPackageVersion) $(MicrosoftSourceLinkBitbucketGitPackageVersion) $(MicrosoftSourceLinkCommonPackageVersion) @@ -239,10 +196,6 @@ This file should be imported by eng/Versions.props $(MicrosoftTemplateSearchTemplateDiscoveryPackageVersion) $(MicrosoftTestPlatformBuildPackageVersion) $(MicrosoftTestPlatformCLIPackageVersion) - $(MicrosoftWebXdtPackageVersion) - $(MicrosoftWin32SystemEventsPackageVersion) - $(MicrosoftWindowsDesktopAppInternalPackageVersion) - $(MicrosoftWindowsDesktopAppRefPackageVersion) $(NuGetBuildTasksPackageVersion) $(NuGetBuildTasksConsolePackageVersion) $(NuGetBuildTasksPackPackageVersion) @@ -259,6 +212,57 @@ This file should be imported by eng/Versions.props $(NuGetProjectModelPackageVersion) $(NuGetProtocolPackageVersion) $(NuGetVersioningPackageVersion) + + $(dotnetdevcertsPackageVersion) + $(dotnetuserjwtsPackageVersion) + $(dotnetusersecretsPackageVersion) + $(MicrosoftAspNetCoreAnalyzersPackageVersion) + $(MicrosoftAspNetCoreAppRefPackageVersion) + $(MicrosoftAspNetCoreAppRefInternalPackageVersion) + $(MicrosoftAspNetCoreAuthenticationFacebookPackageVersion) + $(MicrosoftAspNetCoreAuthenticationGooglePackageVersion) + $(MicrosoftAspNetCoreAuthenticationMicrosoftAccountPackageVersion) + $(MicrosoftAspNetCoreAuthorizationPackageVersion) + $(MicrosoftAspNetCoreComponentsPackageVersion) + $(MicrosoftAspNetCoreComponentsAnalyzersPackageVersion) + $(MicrosoftAspNetCoreComponentsFormsPackageVersion) + $(MicrosoftAspNetCoreComponentsSdkAnalyzersPackageVersion) + $(MicrosoftAspNetCoreComponentsWebPackageVersion) + $(MicrosoftAspNetCoreComponentsWebAssemblyPackageVersion) + $(MicrosoftAspNetCoreComponentsWebAssemblyServerPackageVersion) + $(MicrosoftAspNetCoreComponentsWebViewPackageVersion) + $(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion) + $(MicrosoftAspNetCoreMetadataPackageVersion) + $(MicrosoftAspNetCoreMvcAnalyzersPackageVersion) + $(MicrosoftAspNetCoreMvcApiAnalyzersPackageVersion) + $(MicrosoftAspNetCoreTestHostPackageVersion) + $(MicrosoftBclAsyncInterfacesPackageVersion) + $(MicrosoftDeploymentDotNetReleasesPackageVersion) + $(MicrosoftDiaSymReaderPackageVersion) + $(MicrosoftDotNetWebItemTemplates100PackageVersion) + $(MicrosoftDotNetWebProjectTemplates100PackageVersion) + $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) + $(MicrosoftDotnetWpfProjectTemplatesPackageVersion) + $(MicrosoftExtensionsConfigurationIniPackageVersion) + $(MicrosoftExtensionsDependencyModelPackageVersion) + $(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion) + $(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion) + $(MicrosoftExtensionsFileSystemGlobbingPackageVersion) + $(MicrosoftExtensionsLoggingPackageVersion) + $(MicrosoftExtensionsLoggingAbstractionsPackageVersion) + $(MicrosoftExtensionsLoggingConsolePackageVersion) + $(MicrosoftExtensionsObjectPoolPackageVersion) + $(MicrosoftJSInteropPackageVersion) + $(MicrosoftNETHostModelPackageVersion) + $(MicrosoftNETILLinkTasksPackageVersion) + $(MicrosoftNETRuntimeEmscripten3156Cachewinx64PackageVersion) + $(MicrosoftNETSdkWindowsDesktopPackageVersion) + $(MicrosoftNETCoreAppRefPackageVersion) + $(MicrosoftNETCorePlatformsPackageVersion) + $(MicrosoftWebXdtPackageVersion) + $(MicrosoftWin32SystemEventsPackageVersion) + $(MicrosoftWindowsDesktopAppInternalPackageVersion) + $(MicrosoftWindowsDesktopAppRefPackageVersion) $(SystemCodeDomPackageVersion) $(SystemCommandLinePackageVersion) $(SystemComponentModelCompositionPackageVersion) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 206762bc4ad4..8409ae6e4874 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b @@ -68,170 +68,170 @@ https://github.com/dotnet/dotnet 6a953e76162f3f079405f80e28664fa51b136740 - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + b0f34d51fccc69fd334253924abd8d6853fad7aa + + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + b0f34d51fccc69fd334253924abd8d6853fad7aa - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + 1359b581c6c349cd204f70df32f83bc539cd56ea - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b https://github.com/microsoft/testfx @@ -569,9 +572,9 @@ https://github.com/microsoft/testfx 25cc8f2b28eac830a37d1c666f05fa5b95d07b76 - - https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b diff --git a/eng/common/core-templates/job/publish-build-assets.yml b/eng/common/core-templates/job/publish-build-assets.yml index b955fac6e13f..3437087c80fc 100644 --- a/eng/common/core-templates/job/publish-build-assets.yml +++ b/eng/common/core-templates/job/publish-build-assets.yml @@ -80,7 +80,7 @@ jobs: # If it's not devdiv, it's dnceng ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: name: NetCore1ESPool-Publishing-Internal - image: windows.vs2022.amd64 + image: windows.vs2019.amd64 os: windows steps: - ${{ if eq(parameters.is1ESPipeline, '') }}: diff --git a/eng/common/core-templates/job/source-build.yml b/eng/common/core-templates/job/source-build.yml index c08b3ad8ad03..d805d5faeb94 100644 --- a/eng/common/core-templates/job/source-build.yml +++ b/eng/common/core-templates/job/source-build.yml @@ -63,7 +63,7 @@ jobs: demands: ImageOverride -equals build.ubuntu.2004.amd64 ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] - image: Azure-Linux-3-Amd64 + image: 1es-mariner-2 os: linux ${{ else }}: pool: diff --git a/eng/common/core-templates/post-build/post-build.yml b/eng/common/core-templates/post-build/post-build.yml index b942a79ef02d..9423d71ca3a2 100644 --- a/eng/common/core-templates/post-build/post-build.yml +++ b/eng/common/core-templates/post-build/post-build.yml @@ -293,11 +293,11 @@ stages: ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: NetCore1ESPool-Publishing-Internal - image: windows.vs2022.amd64 + image: windows.vs2019.amd64 os: windows ${{ else }}: name: NetCore1ESPool-Publishing-Internal - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2019.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: diff --git a/eng/common/templates/variables/pool-providers.yml b/eng/common/templates/variables/pool-providers.yml index 18693ea120d5..e0b19c14a073 100644 --- a/eng/common/templates/variables/pool-providers.yml +++ b/eng/common/templates/variables/pool-providers.yml @@ -23,7 +23,7 @@ # # pool: # name: $(DncEngInternalBuildPool) -# demands: ImageOverride -equals windows.vs2022.amd64 +# demands: ImageOverride -equals windows.vs2019.amd64 variables: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - template: /eng/common/templates-official/variables/pool-providers.yml diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 049fe6db994e..bef4affa4a41 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -560,26 +560,19 @@ function LocateVisualStudio([object]$vsRequirements = $null){ }) } - if (!$vsRequirements) { - if (Get-Member -InputObject $GlobalJson.tools -Name 'vs' -ErrorAction SilentlyContinue) { - $vsRequirements = $GlobalJson.tools.vs - } else { - $vsRequirements = $null - } - } - + if (!$vsRequirements) { $vsRequirements = $GlobalJson.tools.vs } $args = @('-latest', '-format', 'json', '-requires', 'Microsoft.Component.MSBuild', '-products', '*') if (!$excludePrereleaseVS) { $args += '-prerelease' } - if ($vsRequirements -and (Get-Member -InputObject $vsRequirements -Name 'version' -ErrorAction SilentlyContinue)) { + if (Get-Member -InputObject $vsRequirements -Name 'version') { $args += '-version' $args += $vsRequirements.version } - if ($vsRequirements -and (Get-Member -InputObject $vsRequirements -Name 'components' -ErrorAction SilentlyContinue)) { + if (Get-Member -InputObject $vsRequirements -Name 'components') { foreach ($component in $vsRequirements.components) { $args += '-requires' $args += $component diff --git a/global.json b/global.json index 36aae8f893dc..e120ded9cb26 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26080.102", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26080.102", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26079.118", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26079.118", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 88a4cc3c4b5997557aa1b898c362f85c6212401e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 21:54:17 +0000 Subject: [PATCH 004/179] Update target framework conditions and VS version requirements Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com> --- .../Microsoft.NET.SupportedTargetFrameworks.props | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.SupportedTargetFrameworks.props b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.SupportedTargetFrameworks.props index 509e027d00e3..56269079adb4 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.SupportedTargetFrameworks.props +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.SupportedTargetFrameworks.props @@ -14,6 +14,8 @@ Copyright (c) .NET Foundation. All rights reserved. This is used by VS to show the list of frameworks to which projects can be retargeted. --> + @@ -26,15 +28,15 @@ Copyright (c) .NET Foundation. All rights reserved. - - + + $([MSBuild]::Add($(NETCoreAppMaximumVersion), 1)).0 - 17.16 + 19.0 From b23fd84ed22b5e4b844ce8e070ff8990c30cbe80 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 27 Jan 2026 00:08:07 +0000 Subject: [PATCH 005/179] Remove VS-specific error message for unsupported target frameworks Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com> --- src/Tasks/Common/Resources/Strings.resx | 4 ---- src/Tasks/Common/Resources/xlf/Strings.cs.xlf | 5 ----- src/Tasks/Common/Resources/xlf/Strings.de.xlf | 5 ----- src/Tasks/Common/Resources/xlf/Strings.es.xlf | 5 ----- src/Tasks/Common/Resources/xlf/Strings.fr.xlf | 5 ----- src/Tasks/Common/Resources/xlf/Strings.it.xlf | 5 ----- src/Tasks/Common/Resources/xlf/Strings.ja.xlf | 5 ----- src/Tasks/Common/Resources/xlf/Strings.ko.xlf | 5 ----- src/Tasks/Common/Resources/xlf/Strings.pl.xlf | 5 ----- src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf | 5 ----- src/Tasks/Common/Resources/xlf/Strings.ru.xlf | 5 ----- src/Tasks/Common/Resources/xlf/Strings.tr.xlf | 5 ----- src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf | 5 ----- src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf | 5 ----- .../GivenThatWeHaveErrorCodes.cs | 1 + .../Microsoft.NET.SupportedTargetFrameworks.props | 1 - .../Microsoft.NET.TargetFrameworkInference.targets | 11 +---------- 17 files changed, 2 insertions(+), 80 deletions(-) diff --git a/src/Tasks/Common/Resources/Strings.resx b/src/Tasks/Common/Resources/Strings.resx index 518abb95d3de..96d35b358a3b 100644 --- a/src/Tasks/Common/Resources/Strings.resx +++ b/src/Tasks/Common/Resources/Strings.resx @@ -921,10 +921,6 @@ You may need to build the project on another operating system or architecture, o NETSDK1208: The target platform identifier {0} was not recognized. This is because MSBuildEnableWorkloadResolver is set to false which disables .NET SDK Workloads which is required for this identifer. Unset this environment variable or MSBuild property to enable workloads. {StrBegins="NETSDK1208: "} - - NETSDK1209: The current Visual Studio version does not support targeting {0} {1}. Either target {0} {2} or lower, or use Visual Studio version {3} or higher - {StrBegins="NETSDK1209: "} - NETSDK1210: IsAotCompatible and EnableAotAnalyzer are not supported for the target framework. Consider multi-targeting to a supported framework to enable ahead-of-time compilation analysis, and set IsAotCompatible only for the supported frameworks. For example: <IsAotCompatible Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', '{0}'))">true</IsAotCompatible> diff --git a/src/Tasks/Common/Resources/xlf/Strings.cs.xlf b/src/Tasks/Common/Resources/xlf/Strings.cs.xlf index b701f0ca0df6..246568a4f13d 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.cs.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.cs.xlf @@ -1043,11 +1043,6 @@ The following are names of parameters or literal values and should not be transl NETSDK1200: Pokud je vlastnost UseArtifactsPath nastavena na hodnotu true a parametr ArtifactsPath není nastaven, musí existovat soubor Directory.Build.props, aby bylo možné určit, kde má být složka artefaktů umístěna. {StrBegins="NETSDK1200: "} - - NETSDK1209: The current Visual Studio version does not support targeting {0} {1}. Either target {0} {2} or lower, or use Visual Studio version {3} or higher - NETSDK1209: Aktuální verze Visual Studio nepodporuje cílení {0} {1}. Buď zacilte {0} {2} nebo nižší, nebo použijte Visual Studio ve verzi {3} nebo vyšší. - {StrBegins="NETSDK1209: "} - NETSDK1208: The target platform identifier {0} was not recognized. This is because MSBuildEnableWorkloadResolver is set to false which disables .NET SDK Workloads which is required for this identifer. Unset this environment variable or MSBuild property to enable workloads. NETSDK1208: Identifikátor cílové platformy {0} nebyl rozpoznán. Důvodem je, že proměnná prostředí MSBuildEnableWorkloadResolver je nastavena na hodnotu false, což zakáže úlohy .NET SDK, které se pro tento identifikátor vyžadují. Pokud chcete povolit úlohy, zrušte nastavení této proměnné prostředí nebo vlastnosti MSBuild. diff --git a/src/Tasks/Common/Resources/xlf/Strings.de.xlf b/src/Tasks/Common/Resources/xlf/Strings.de.xlf index a18498f26c96..9d29ea2b7d1c 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.de.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.de.xlf @@ -1043,11 +1043,6 @@ The following are names of parameters or literal values and should not be transl NETSDK1200: Wenn UseArtifactsPath auf TRUE und ArtifactsPath nicht festgelegt ist, muss eine Directory.Build.props-Datei vorhanden sein, um zu bestimmen, wo sich der Ordner "artifacts" befinden soll. {StrBegins="NETSDK1200: "} - - NETSDK1209: The current Visual Studio version does not support targeting {0} {1}. Either target {0} {2} or lower, or use Visual Studio version {3} or higher - NETSDK1209: Die aktuelle Visual Studio-Version unterstützt {0} {1} nicht als Ziel. Geben Sie entweder {0} {2} oder niedriger als Ziel ein, oder verwenden Sie eine Version von Visual Studio {3} oder höher. - {StrBegins="NETSDK1209: "} - NETSDK1208: The target platform identifier {0} was not recognized. This is because MSBuildEnableWorkloadResolver is set to false which disables .NET SDK Workloads which is required for this identifer. Unset this environment variable or MSBuild property to enable workloads. NETSDK1208: Der Zielplattformbezeichner {0} wurde nicht erkannt. Dies liegt daran, dass MSBuildEnableWorkloadResolver auf FALSE festgelegt ist, wodurch .NET SDK-Workloads deaktiviert werden, die für diesen Bezeichner erforderlich sind. Löschen Sie diese Umgebungsvariablen oder die MSBuild-Eigenschaft, um Workloads zu aktivieren. diff --git a/src/Tasks/Common/Resources/xlf/Strings.es.xlf b/src/Tasks/Common/Resources/xlf/Strings.es.xlf index 601d9f47c1aa..642049253273 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.es.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.es.xlf @@ -1043,11 +1043,6 @@ The following are names of parameters or literal values and should not be transl NETSDK1200: Si UseArtifactsPath se establece en true y ArtifactsPath no está establecido, debe haber un archivo Directory.Build.props para determinar dónde debe ubicarse la carpeta de artefactos. {StrBegins="NETSDK1200: "} - - NETSDK1209: The current Visual Studio version does not support targeting {0} {1}. Either target {0} {2} or lower, or use Visual Studio version {3} or higher - NETSDK1209: La versión actual de Visual Studio no admite {0} {1} de destino. Use el destino {0} {2} o uno inferior, o use la versión {3} o una superior de Visual Studio. - {StrBegins="NETSDK1209: "} - NETSDK1208: The target platform identifier {0} was not recognized. This is because MSBuildEnableWorkloadResolver is set to false which disables .NET SDK Workloads which is required for this identifer. Unset this environment variable or MSBuild property to enable workloads. NETSDK1208: no se ha reconocido el identificador de la plataforma de destino {0}. Esto se debe a que MSBuildEnableWorkloadResolver está establecido en false, lo que deshabilita las cargas de trabajo del SDK de .NET necesarias para este identificador. Anule esta variable de entorno o propiedad de MSBuild para habilitar las cargas de trabajo. diff --git a/src/Tasks/Common/Resources/xlf/Strings.fr.xlf b/src/Tasks/Common/Resources/xlf/Strings.fr.xlf index 1a5a9dda9d96..0fd51af2e30b 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.fr.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.fr.xlf @@ -1043,11 +1043,6 @@ The following are names of parameters or literal values and should not be transl NETSDK1200: si UseArtifactsPath est défini sur true et que le chemin de l'artefact n'est pas défini, il doit y avoir un fichier Directory.Build.props afin de déterminer l'emplacement du dossier des artefacts. {StrBegins="NETSDK1200: "} - - NETSDK1209: The current Visual Studio version does not support targeting {0} {1}. Either target {0} {2} or lower, or use Visual Studio version {3} or higher - NETSDK1209: la version Visual Studio actuelle ne prend pas en charge le ciblage de {0} {1}. Ciblez {0} {2} ou une version antérieure, ou utilisez Visual Studio version {3} ou ultérieure - {StrBegins="NETSDK1209: "} - NETSDK1208: The target platform identifier {0} was not recognized. This is because MSBuildEnableWorkloadResolver is set to false which disables .NET SDK Workloads which is required for this identifer. Unset this environment variable or MSBuild property to enable workloads. NETSDK1208: l’identificateur de plateforme cible {0} n’a pas été reconnu. Cela est dû au fait que MSBuildEnableWorkloadResolver a la valeur false, ce qui désactive les charges de travail SDK .NET requises pour cet identificateur. Annulez la définition de cette variable d’environnement ou propriété MSBuild pour activer les charges de travail. diff --git a/src/Tasks/Common/Resources/xlf/Strings.it.xlf b/src/Tasks/Common/Resources/xlf/Strings.it.xlf index 549fa1ca7669..29a89ffeeec9 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.it.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.it.xlf @@ -1043,11 +1043,6 @@ The following are names of parameters or literal values and should not be transl NETSDK1200: se UseArtifactsPath è impostato su true e ArtifactsPath non è impostato, deve essere presente un file Directory.Build.props per determinare la posizione della cartella artefatti. {StrBegins="NETSDK1200: "} - - NETSDK1209: The current Visual Studio version does not support targeting {0} {1}. Either target {0} {2} or lower, or use Visual Studio version {3} or higher - NETSDK1209: la versione corrente di Visual Studio non supporta la destinazione {0}{1}. Impostare come destinazione {0} {2} o una versione precedente oppure usare una versione di Visual Studio {3} o più recente. - {StrBegins="NETSDK1209: "} - NETSDK1208: The target platform identifier {0} was not recognized. This is because MSBuildEnableWorkloadResolver is set to false which disables .NET SDK Workloads which is required for this identifer. Unset this environment variable or MSBuild property to enable workloads. NETSDK1208: l'identificatore della piattaforma di destinazione {0} non è stato riconosciuto. Questo perché MSBuildEnableWorkloadResolver è impostato su false, di conseguenza vengono disabilitati i carichi di lavoro di .NET SDK necessari per questo identificatore. Annullare l'impostazione di questa variabile di ambiente o della proprietà MSBuild per abilitare i carichi di lavoro. diff --git a/src/Tasks/Common/Resources/xlf/Strings.ja.xlf b/src/Tasks/Common/Resources/xlf/Strings.ja.xlf index 7264b95ff020..2ca03da3797d 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ja.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ja.xlf @@ -1043,11 +1043,6 @@ The following are names of parameters or literal values and should not be transl NETSDK1200: UseArtifactsPath が true に設定されていて ArtifactsPath が設定されていない場合は、成果物フォルダーの場所を特定するには Directory.Build.props ファイルが必要です。 {StrBegins="NETSDK1200: "} - - NETSDK1209: The current Visual Studio version does not support targeting {0} {1}. Either target {0} {2} or lower, or use Visual Studio version {3} or higher - NETSDK1209: 現在の Visual Studio バージョンは、ターゲット {0} {1} をサポートしていません。 ターゲット {0} {2} 以下、または Visual Studio バージョン {3} 以上を使用してください - {StrBegins="NETSDK1209: "} - NETSDK1208: The target platform identifier {0} was not recognized. This is because MSBuildEnableWorkloadResolver is set to false which disables .NET SDK Workloads which is required for this identifer. Unset this environment variable or MSBuild property to enable workloads. NETSDK1208: ターゲット プラットフォーム識別子 {0} が認識されませんでした。これは、MSBuildEnableWorkloadResolver が false に設定されており、この識別子に必要な .NET SDK ワークロードが無効なためです。ワークロードを有効にするには、この環境変数または MSBuild プロパティを設定解除します。 diff --git a/src/Tasks/Common/Resources/xlf/Strings.ko.xlf b/src/Tasks/Common/Resources/xlf/Strings.ko.xlf index c9cad353bfa1..d87ae9c9f222 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ko.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ko.xlf @@ -1043,11 +1043,6 @@ The following are names of parameters or literal values and should not be transl NETSDK1200: UseArtifactsPath가 true로 설정되어 있고 ArtifactsPath가 설정되지 않은 경우 아티팩트 폴더의 위치를 확인하려면 Directory.Build.props 파일이 있어야 합니다. {StrBegins="NETSDK1200: "} - - NETSDK1209: The current Visual Studio version does not support targeting {0} {1}. Either target {0} {2} or lower, or use Visual Studio version {3} or higher - NETSDK1209: 현재 Visual Studio 버전은 {0} {1} 타겟팅을 지원하지 않습니다. {0} {2} 이하를 대상으로 하거나 Visual Studio 버전 {3} 이상을 사용하세요. - {StrBegins="NETSDK1209: "} - NETSDK1208: The target platform identifier {0} was not recognized. This is because MSBuildEnableWorkloadResolver is set to false which disables .NET SDK Workloads which is required for this identifer. Unset this environment variable or MSBuild property to enable workloads. NETSDK1208: 대상 플랫폼 식별자 {0}을(를) 인식할 수 없습니다. 이 식별자에 필요한 .NET SDK 워크로드를 사용하지 않도록 설정하는 MSBuildEnableWorkloadResolver가 false로 설정되어 있기 때문입니다. 워크로드를 활성화하려면 이 환경 변수 또는 MSBuild 속성을 설정 해제하세요. diff --git a/src/Tasks/Common/Resources/xlf/Strings.pl.xlf b/src/Tasks/Common/Resources/xlf/Strings.pl.xlf index 4dfe51721c42..510d04769709 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.pl.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.pl.xlf @@ -1043,11 +1043,6 @@ The following are names of parameters or literal values and should not be transl NETSDK1200: Jeśli parametr UseArtifactsPath ma wartość true, a właściwość ArtifactsPath nie jest ustawiona, musi istnieć plik Directory.Build.props, aby określić, gdzie powinien znajdować się folder artefaktów. {StrBegins="NETSDK1200: "} - - NETSDK1209: The current Visual Studio version does not support targeting {0} {1}. Either target {0} {2} or lower, or use Visual Studio version {3} or higher - NETSDK1209: bieżąca wersja programu Visual Studio nie obsługuje wartości docelowej {0} {1}. Użyj wartości docelowej {0} {2} lub niższej albo wersji programu Visual Studio {3} lub wyższej - {StrBegins="NETSDK1209: "} - NETSDK1208: The target platform identifier {0} was not recognized. This is because MSBuildEnableWorkloadResolver is set to false which disables .NET SDK Workloads which is required for this identifer. Unset this environment variable or MSBuild property to enable workloads. NETSDK1208: Identyfikator {0} platformy docelowej nie został rozpoznany. Jest to spowodowane tym, że parametr MSBuildEnableWorkloadResolver ma wartość false, co powoduje wyłączenie obciążeń zestawu .NET SDK wymaganych dla tego identyfikatora. Cofnij ustawienie tej zmiennej środowiskowej lub właściwości MSBuild, aby włączyć obciążenia. diff --git a/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf b/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf index 445ee3cd2afd..31ffd472e212 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf @@ -1043,11 +1043,6 @@ The following are names of parameters or literal values and should not be transl NETSDK1200: Se UseArtifactsPath for definido como verdadeiro e Artifact Path não for definido, deve haver um arquivo Directory.Build.props para determinar onde a pasta de artefatos deve ser localizada. {StrBegins="NETSDK1200: "} - - NETSDK1209: The current Visual Studio version does not support targeting {0} {1}. Either target {0} {2} or lower, or use Visual Studio version {3} or higher - NETSDK1209: a versão atual do Visual Studio não oferece suporte ao direcionamento {0} {1}. Destino {0} {2} ou inferior, ou use a versão {3} ou superior do Visual Studio - {StrBegins="NETSDK1209: "} - NETSDK1208: The target platform identifier {0} was not recognized. This is because MSBuildEnableWorkloadResolver is set to false which disables .NET SDK Workloads which is required for this identifer. Unset this environment variable or MSBuild property to enable workloads. NETSDK1208: o identificador da plataforma de destino {0} não foi reconhecido. Isso ocorre porque MSBuildEnableWorkloadResolver é definido como falso, o que desabilita as cargas de trabalho do SDK do .NET necessárias desse identificador. Desmarque essa variável de ambiente ou a propriedade MSBuild para habilitar as cargas de trabalho. diff --git a/src/Tasks/Common/Resources/xlf/Strings.ru.xlf b/src/Tasks/Common/Resources/xlf/Strings.ru.xlf index 97b7aeb57621..59e9c080ea82 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ru.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ru.xlf @@ -1043,11 +1043,6 @@ The following are names of parameters or literal values and should not be transl NETSDK1200: если для UseArtifactsPath настроено значение true, а ArtifactsPath не настроен, для определения расположения папки артефактов необходим файл Directory.Build.props. {StrBegins="NETSDK1200: "} - - NETSDK1209: The current Visual Studio version does not support targeting {0} {1}. Either target {0} {2} or lower, or use Visual Studio version {3} or higher - NETSDK1209: текущая Visual Studio не поддерживает нацеливание {0} {1}. Выберите {0} {2} или более раннюю версию или используйте Visual Studio версии {3} или выше - {StrBegins="NETSDK1209: "} - NETSDK1208: The target platform identifier {0} was not recognized. This is because MSBuildEnableWorkloadResolver is set to false which disables .NET SDK Workloads which is required for this identifer. Unset this environment variable or MSBuild property to enable workloads. NETSDK1208: идентификатор целевой платформы {0} не распознан. Причина в том, что MSBuildEnableWorkloadResolver имеет значение false, что отключает рабочие нагрузки пакета SDK для .NET, необходимые для этого идентификатора. Удалите эту переменную среды или отмените свойство MSBuild, чтобы включить рабочие нагрузки. diff --git a/src/Tasks/Common/Resources/xlf/Strings.tr.xlf b/src/Tasks/Common/Resources/xlf/Strings.tr.xlf index 49e092210c40..9a586d3d009b 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.tr.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.tr.xlf @@ -1043,11 +1043,6 @@ The following are names of parameters or literal values and should not be transl NETSDK1200: UseArtifactsPath true olarak ayarlanırsa ve ArtifactsPath ayarlanmazsa, yapıtlar klasörünün nerede bulunacağını belirlemek için bir Directory.Build.props dosyası olmalıdır. {StrBegins="NETSDK1200: "} - - NETSDK1209: The current Visual Studio version does not support targeting {0} {1}. Either target {0} {2} or lower, or use Visual Studio version {3} or higher - NETSDK1209: Geçerli Visual Studio sürümü {0} {1} sürümünü hedeflemeyi desteklemiyor. {0} {2} veya daha düşük bir sürümü hedefleyin ya da Visual Studio sürümü {3} veya daha üzerini kullanın - {StrBegins="NETSDK1209: "} - NETSDK1208: The target platform identifier {0} was not recognized. This is because MSBuildEnableWorkloadResolver is set to false which disables .NET SDK Workloads which is required for this identifer. Unset this environment variable or MSBuild property to enable workloads. NETSDK1208: Hedef {0} platform tanımlayıcısı tanınmadı. Bunun nedeni, MSBuildEnableWorkloadResolver'ın false olarak ayarlanmasıdır ve bu işlem bu tanımlayıcı için gerekli olan .NET SDK İş Yüklerini devre dışı bırakır. İş yüklerini etkinleştirmek için bu ortam değişkeninin veya MSBuild özelliğinin ayarını kaldırın. diff --git a/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf b/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf index cd059a7527ce..63bfa4793d7a 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf @@ -1043,11 +1043,6 @@ The following are names of parameters or literal values and should not be transl NETSDK1200: 如果 UseArtifactsPath 设置为 true,并且未设置 ArtifactsPath,则必须具有 Directory.Build.props 文件才能确定工件文件夹的位置。 {StrBegins="NETSDK1200: "} - - NETSDK1209: The current Visual Studio version does not support targeting {0} {1}. Either target {0} {2} or lower, or use Visual Studio version {3} or higher - NETSDK1209: 当前 Visual Studio 版本不支持面向 {0} {1}。请面向 {0} {2} 或更低版本,或者使用 Visual Studio {3} 或更高版本 - {StrBegins="NETSDK1209: "} - NETSDK1208: The target platform identifier {0} was not recognized. This is because MSBuildEnableWorkloadResolver is set to false which disables .NET SDK Workloads which is required for this identifer. Unset this environment variable or MSBuild property to enable workloads. NETSDK1208: 无法识别目标平台标识符 {0}。这是因为 MSBuildEnableWorkloadResolver 设置为 false,这将禁用此标识符所需的 .NET SDK 工作负载。若要启用这些工作负载,请取消设置此环境变量或 MSBuild 属性。 diff --git a/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf b/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf index 3603bb504315..5d8817bbf279 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf @@ -1043,11 +1043,6 @@ The following are names of parameters or literal values and should not be transl NETSDK1200: 如果 UseArtifactsPath 設定為 true 且未設定 ArtifactsPath,則必須有 Directory.Build.props 檔案,才能判斷成品資料夾的位置。 {StrBegins="NETSDK1200: "} - - NETSDK1209: The current Visual Studio version does not support targeting {0} {1}. Either target {0} {2} or lower, or use Visual Studio version {3} or higher - NETSDK1209: 目前的 Visual Studio 版本不支援將 {0} {1} 設定為目標。請將 {0} {2} 或更低版本設定為目標,或是使用 Visual Studio 版本 {3} 或更新版本 - {StrBegins="NETSDK1209: "} - NETSDK1208: The target platform identifier {0} was not recognized. This is because MSBuildEnableWorkloadResolver is set to false which disables .NET SDK Workloads which is required for this identifer. Unset this environment variable or MSBuild property to enable workloads. NETSDK1208: 無法辨識目標平台識別碼 {0}。這是因為 MSBuildEnableWorkloadResolver 設為 false,這會停用此識別碼所需的 .NET SDK 工作負載。取消設定此環境變數或 MSBuild 屬性以啟用工作負載。 diff --git a/src/Tasks/Microsoft.NET.Build.Tasks.UnitTests/GivenThatWeHaveErrorCodes.cs b/src/Tasks/Microsoft.NET.Build.Tasks.UnitTests/GivenThatWeHaveErrorCodes.cs index dc383cfdeaa0..59d8a1cf0ba0 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks.UnitTests/GivenThatWeHaveErrorCodes.cs +++ b/src/Tasks/Microsoft.NET.Build.Tasks.UnitTests/GivenThatWeHaveErrorCodes.cs @@ -38,6 +38,7 @@ public class GivenThatWeHaveErrorCodes 1183, 1190, 1192, + 1209, 1213, 1214, 1219, diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.SupportedTargetFrameworks.props b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.SupportedTargetFrameworks.props index 56269079adb4..eb4d381d09a8 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.SupportedTargetFrameworks.props +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.SupportedTargetFrameworks.props @@ -36,7 +36,6 @@ Copyright (c) .NET Foundation. All rights reserved. $([MSBuild]::Add($(NETCoreAppMaximumVersion), 1)).0 - 19.0 diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.TargetFrameworkInference.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.TargetFrameworkInference.targets index 7e902d066b81..84059ae093f1 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.TargetFrameworkInference.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.TargetFrameworkInference.targets @@ -181,19 +181,10 @@ Copyright (c) .NET Foundation. All rights reserved. - - true - - - - - + For example, net10.0 is not supported in VS 17.14 and should only appear when using MSBuild 18.0.0 or higher (VS 18.0.0+). --> From ce2b7a54fd330ed35e0e82f69c63b384db7c2cf8 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 2 Feb 2026 01:26:52 +0000 Subject: [PATCH 007/179] [release/10.0.1xx] Source code updates from dotnet/dotnet (#52760) [release/10.0.1xx] Source code updates from dotnet/dotnet --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index 592f67f28054..95ae52cdb72e 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 8c31011dc5c4..35b81e5bdb65 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26080.102 - 10.0.4-servicing.26080.102 - 10.0.4-servicing.26080.102 - 10.0.4-servicing.26080.102 + 10.0.4-servicing.26101.102 + 10.0.4-servicing.26101.102 + 10.0.4-servicing.26101.102 + 10.0.4-servicing.26101.102 10.0.4 - 10.0.4-servicing.26080.102 + 10.0.4-servicing.26101.102 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26080.102 + 10.0.4-servicing.26101.102 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26080.102 + 10.0.4-servicing.26101.102 10.0.4 - 10.0.4-servicing.26080.102 - 10.0.4-servicing.26080.102 - 10.0.0-preview.26080.102 + 10.0.4-servicing.26101.102 + 10.0.4-servicing.26101.102 + 10.0.0-preview.26101.102 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26080-102 - 7.0.2-rc.8102 + 18.0.11-servicing-26101-102 + 7.0.2-rc.10202 10.0.104 - 5.0.0-2.26080.102 - 5.0.0-2.26080.102 - 5.0.0-2.26080.102 - 5.0.0-2.26080.102 - 5.0.0-2.26080.102 - 5.0.0-2.26080.102 - 5.0.0-2.26080.102 - 10.0.0-preview.26080.102 - 5.0.0-2.26080.102 - 5.0.0-2.26080.102 - 2.0.0-preview.1.26080.102 + 5.0.0-2.26101.102 + 5.0.0-2.26101.102 + 5.0.0-2.26101.102 + 5.0.0-2.26101.102 + 5.0.0-2.26101.102 + 5.0.0-2.26101.102 + 5.0.0-2.26101.102 + 10.0.0-preview.26101.102 + 5.0.0-2.26101.102 + 5.0.0-2.26101.102 + 2.0.0-preview.1.26101.102 2.2.4 - 10.0.0-beta.26080.102 - 10.0.0-beta.26080.102 - 10.0.0-beta.26080.102 - 10.0.0-beta.26080.102 - 10.0.0-beta.26080.102 - 10.0.0-beta.26080.102 + 10.0.0-beta.26101.102 + 10.0.0-beta.26101.102 + 10.0.0-beta.26101.102 + 10.0.0-beta.26101.102 + 10.0.0-beta.26101.102 + 10.0.0-beta.26101.102 10.0.4 10.0.4 - 10.0.4-servicing.26080.102 - 10.0.4-servicing.26080.102 - 10.0.0-beta.26080.102 - 10.0.0-beta.26080.102 + 10.0.4-servicing.26101.102 + 10.0.4-servicing.26101.102 + 10.0.0-beta.26101.102 + 10.0.0-beta.26101.102 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26080.102 + 14.0.104-servicing.26101.102 10.0.4 - 5.0.0-2.26080.102 - 5.0.0-2.26080.102 - 10.0.4-servicing.26080.102 + 5.0.0-2.26101.102 + 5.0.0-2.26101.102 + 10.0.4-servicing.26101.102 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26080.102 - 10.0.4-servicing.26080.102 - 18.0.1-release-26080-102 + 10.0.0-preview.26101.102 + 10.0.4-servicing.26101.102 + 18.0.1-release-26101-102 10.0.4 - 10.0.4-servicing.26080.102 + 10.0.4-servicing.26101.102 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26080.102 + 10.0.104-servicing.26101.102 10.0.104 - 10.0.104-servicing.26080.102 + 10.0.104-servicing.26101.102 10.0.104 10.0.104 - 10.0.104-servicing.26080.102 - 18.0.1-release-26080-102 - 18.0.1-release-26080-102 + 10.0.104-servicing.26101.102 + 18.0.1-release-26101-102 + 18.0.1-release-26101-102 3.2.4 10.0.4 - 10.0.4-servicing.26080.102 + 10.0.4-servicing.26101.102 10.0.4 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 - 7.0.2-rc.8102 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 206762bc4ad4..0d645326530e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 - + https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - c470c8dbf6577ae1d27962c24079eebeba087d8e + a2298b9bb4ad99547921adacac0504d2f55da322 diff --git a/global.json b/global.json index 36aae8f893dc..ffb7eb451512 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26080.102", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26080.102", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26101.102", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26101.102", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From bf355d646a8045f20db4d3508d7074d553499dc1 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Thu, 29 Jan 2026 15:33:35 -0500 Subject: [PATCH 008/179] Keep template_feed/../content/../.gitattributes in archives Some consumers of the VMR source build consume the `git archive` generated source tarball. Without this change, the source tarball doesn't include the content/../.gitattributes file, which makes `dotnet new gitattributes` non-functional. Fixes: https://github.com/dotnet/sdk/issues/52307 --- .gitattributes | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitattributes b/.gitattributes index 2f46e347155a..494352c82a1e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -67,3 +67,8 @@ *.verified.txt text eol=lf working-tree-encoding=UTF-8 *.verified.xml text eol=lf working-tree-encoding=UTF-8 *.verified.json text eol=lf working-tree-encoding=UTF-8 + +############################################################################### +# Ensure files are included in git archive +############################################################################### +/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/Gitattributes/.gitattributes -export-ignore From f34d7f65c07ad0dd3ba813b9425b13e306185805 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 2 Feb 2026 17:22:55 +0000 Subject: [PATCH 009/179] Update dependencies --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index 95ae52cdb72e..5318870a1123 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 35b81e5bdb65..36abab9788fb 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26101.102 - 10.0.4-servicing.26101.102 - 10.0.4-servicing.26101.102 - 10.0.4-servicing.26101.102 + 10.0.4-servicing.26102.102 + 10.0.4-servicing.26102.102 + 10.0.4-servicing.26102.102 + 10.0.4-servicing.26102.102 10.0.4 - 10.0.4-servicing.26101.102 + 10.0.4-servicing.26102.102 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26101.102 + 10.0.4-servicing.26102.102 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26101.102 + 10.0.4-servicing.26102.102 10.0.4 - 10.0.4-servicing.26101.102 - 10.0.4-servicing.26101.102 - 10.0.0-preview.26101.102 + 10.0.4-servicing.26102.102 + 10.0.4-servicing.26102.102 + 10.0.0-preview.26102.102 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26101-102 - 7.0.2-rc.10202 + 18.0.11-servicing-26102-102 + 7.0.2-rc.10302 10.0.104 - 5.0.0-2.26101.102 - 5.0.0-2.26101.102 - 5.0.0-2.26101.102 - 5.0.0-2.26101.102 - 5.0.0-2.26101.102 - 5.0.0-2.26101.102 - 5.0.0-2.26101.102 - 10.0.0-preview.26101.102 - 5.0.0-2.26101.102 - 5.0.0-2.26101.102 - 2.0.0-preview.1.26101.102 + 5.0.0-2.26102.102 + 5.0.0-2.26102.102 + 5.0.0-2.26102.102 + 5.0.0-2.26102.102 + 5.0.0-2.26102.102 + 5.0.0-2.26102.102 + 5.0.0-2.26102.102 + 10.0.0-preview.26102.102 + 5.0.0-2.26102.102 + 5.0.0-2.26102.102 + 2.0.0-preview.1.26102.102 2.2.4 - 10.0.0-beta.26101.102 - 10.0.0-beta.26101.102 - 10.0.0-beta.26101.102 - 10.0.0-beta.26101.102 - 10.0.0-beta.26101.102 - 10.0.0-beta.26101.102 + 10.0.0-beta.26102.102 + 10.0.0-beta.26102.102 + 10.0.0-beta.26102.102 + 10.0.0-beta.26102.102 + 10.0.0-beta.26102.102 + 10.0.0-beta.26102.102 10.0.4 10.0.4 - 10.0.4-servicing.26101.102 - 10.0.4-servicing.26101.102 - 10.0.0-beta.26101.102 - 10.0.0-beta.26101.102 + 10.0.4-servicing.26102.102 + 10.0.4-servicing.26102.102 + 10.0.0-beta.26102.102 + 10.0.0-beta.26102.102 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26101.102 + 14.0.104-servicing.26102.102 10.0.4 - 5.0.0-2.26101.102 - 5.0.0-2.26101.102 - 10.0.4-servicing.26101.102 + 5.0.0-2.26102.102 + 5.0.0-2.26102.102 + 10.0.4-servicing.26102.102 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26101.102 - 10.0.4-servicing.26101.102 - 18.0.1-release-26101-102 + 10.0.0-preview.26102.102 + 10.0.4-servicing.26102.102 + 18.0.1-release-26102-102 10.0.4 - 10.0.4-servicing.26101.102 + 10.0.4-servicing.26102.102 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26101.102 + 10.0.104-servicing.26102.102 10.0.104 - 10.0.104-servicing.26101.102 + 10.0.104-servicing.26102.102 10.0.104 10.0.104 - 10.0.104-servicing.26101.102 - 18.0.1-release-26101-102 - 18.0.1-release-26101-102 + 10.0.104-servicing.26102.102 + 18.0.1-release-26102-102 + 18.0.1-release-26102-102 3.2.4 10.0.4 - 10.0.4-servicing.26101.102 + 10.0.4-servicing.26102.102 10.0.4 - 7.0.2-rc.10202 - 7.0.2-rc.10202 - 7.0.2-rc.10202 - 7.0.2-rc.10202 - 7.0.2-rc.10202 - 7.0.2-rc.10202 - 7.0.2-rc.10202 - 7.0.2-rc.10202 - 7.0.2-rc.10202 - 7.0.2-rc.10202 - 7.0.2-rc.10202 - 7.0.2-rc.10202 - 7.0.2-rc.10202 - 7.0.2-rc.10202 - 7.0.2-rc.10202 - 7.0.2-rc.10202 + 7.0.2-rc.10302 + 7.0.2-rc.10302 + 7.0.2-rc.10302 + 7.0.2-rc.10302 + 7.0.2-rc.10302 + 7.0.2-rc.10302 + 7.0.2-rc.10302 + 7.0.2-rc.10302 + 7.0.2-rc.10302 + 7.0.2-rc.10302 + 7.0.2-rc.10302 + 7.0.2-rc.10302 + 7.0.2-rc.10302 + 7.0.2-rc.10302 + 7.0.2-rc.10302 + 7.0.2-rc.10302 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0d645326530e..ed59bad34081 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - a2298b9bb4ad99547921adacac0504d2f55da322 + 52be957329989783be8d83769123a17e3c251da0 diff --git a/global.json b/global.json index ffb7eb451512..08685a6ede4e 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26101.102", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26101.102", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26102.102", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26102.102", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 9795d4453e0485f35045e7d2d46964b1bc7b5ba7 Mon Sep 17 00:00:00 2001 From: Sean Reeser Date: Mon, 2 Feb 2026 09:35:10 -0800 Subject: [PATCH 010/179] Update branding to 9.0.312 --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index f7bca87d1eb6..ec50ff307659 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -6,7 +6,7 @@ 9 0 3 - 11 + 12 From c7b18e899ab0eab178f46efc1cb25493f9cf966c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 3 Feb 2026 00:22:51 +0000 Subject: [PATCH 011/179] Reset files to release/10.0.1xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- NuGet.config | 52 +- eng/Version.Details.props | 290 +++++ eng/Version.Details.xml | 1081 ++++++++--------- eng/common/CIBuild.cmd | 2 +- eng/common/SetupNugetSources.ps1 | 90 +- eng/common/SetupNugetSources.sh | 192 +-- eng/common/build.ps1 | 11 +- eng/common/build.sh | 33 +- eng/common/cibuild.sh | 2 +- eng/common/core-templates/job/job.yml | 48 +- eng/common/core-templates/job/onelocbuild.yml | 35 +- .../job/publish-build-assets.yml | 79 +- .../core-templates/job/source-build.yml | 11 +- .../job/source-index-stage1.yml | 47 +- .../core-templates/jobs/codeql-build.yml | 1 - eng/common/core-templates/jobs/jobs.yml | 15 +- .../core-templates/jobs/source-build.yml | 23 +- .../core-templates/post-build/post-build.yml | 26 +- .../steps/cleanup-microbuild.yml | 28 + .../core-templates/steps/generate-sbom.yml | 2 +- .../steps/get-delegation-sas.yml | 11 +- .../steps/install-microbuild.yml | 110 ++ .../core-templates/steps/publish-logs.yml | 7 +- .../core-templates/steps/source-build.yml | 88 +- .../steps/source-index-stage1-publish.yml | 35 + eng/common/cross/arm64/tizen/tizen.patch | 2 +- eng/common/cross/build-android-rootfs.sh | 49 +- eng/common/cross/build-rootfs.sh | 237 ++-- eng/common/cross/install-debs.py | 334 +++++ eng/common/cross/tizen-build-rootfs.sh | 0 eng/common/cross/tizen-fetch.sh | 9 +- eng/common/cross/toolchain.cmake | 82 +- eng/common/darc-init.sh | 2 +- eng/common/dotnet.cmd | 7 + eng/common/dotnet.ps1 | 11 + eng/common/dotnet.sh | 26 + eng/common/generate-locproject.ps1 | 49 +- eng/common/generate-sbom-prep.sh | 0 eng/common/native/install-dependencies.sh | 62 + eng/common/post-build/publish-using-darc.ps1 | 9 +- eng/common/post-build/redact-logs.ps1 | 5 +- eng/common/sdk-task.ps1 | 14 +- eng/common/sdk-task.sh | 121 ++ eng/common/sdl/packages.config | 2 +- eng/common/templates-official/job/job.yml | 4 +- .../steps/publish-build-artifacts.yml | 7 +- .../steps/source-index-stage1-publish.yml | 7 + eng/common/templates/job/job.yml | 4 +- .../steps/publish-build-artifacts.yml | 8 +- .../steps/source-index-stage1-publish.yml | 7 + eng/common/templates/steps/vmr-sync.yml | 207 ++++ eng/common/templates/vmr-build-pr.yml | 42 + eng/common/tools.ps1 | 66 +- eng/common/tools.sh | 73 +- eng/common/vmr-sync.ps1 | 138 +++ eng/common/vmr-sync.sh | 207 ++++ global.json | 21 +- 57 files changed, 2886 insertions(+), 1245 deletions(-) create mode 100644 eng/Version.Details.props mode change 100644 => 100755 eng/common/SetupNugetSources.sh create mode 100644 eng/common/core-templates/steps/cleanup-microbuild.yml create mode 100644 eng/common/core-templates/steps/install-microbuild.yml create mode 100644 eng/common/core-templates/steps/source-index-stage1-publish.yml create mode 100755 eng/common/cross/install-debs.py mode change 100644 => 100755 eng/common/cross/tizen-build-rootfs.sh mode change 100644 => 100755 eng/common/cross/tizen-fetch.sh create mode 100644 eng/common/dotnet.cmd create mode 100644 eng/common/dotnet.ps1 create mode 100755 eng/common/dotnet.sh mode change 100644 => 100755 eng/common/generate-sbom-prep.sh create mode 100755 eng/common/native/install-dependencies.sh create mode 100755 eng/common/sdk-task.sh create mode 100644 eng/common/templates-official/steps/source-index-stage1-publish.yml create mode 100644 eng/common/templates/steps/source-index-stage1-publish.yml create mode 100644 eng/common/templates/steps/vmr-sync.yml create mode 100644 eng/common/templates/vmr-build-pr.yml create mode 100755 eng/common/vmr-sync.ps1 create mode 100755 eng/common/vmr-sync.sh diff --git a/NuGet.config b/NuGet.config index 27580bfe749d..95ae52cdb72e 100644 --- a/NuGet.config +++ b/NuGet.config @@ -3,44 +3,15 @@ - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - @@ -51,6 +22,8 @@ + + @@ -60,19 +33,14 @@ + + + - - - - - - - - diff --git a/eng/Version.Details.props b/eng/Version.Details.props new file mode 100644 index 000000000000..35b81e5bdb65 --- /dev/null +++ b/eng/Version.Details.props @@ -0,0 +1,290 @@ + + + + + 10.0.4-servicing.26101.102 + 10.0.4-servicing.26101.102 + 10.0.4-servicing.26101.102 + 10.0.4-servicing.26101.102 + 10.0.4 + 10.0.4-servicing.26101.102 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26101.102 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26101.102 + 10.0.4 + 10.0.4-servicing.26101.102 + 10.0.4-servicing.26101.102 + 10.0.0-preview.26101.102 + 10.0.4 + 10.0.4 + 18.0.11 + 18.0.11-servicing-26101-102 + 7.0.2-rc.10202 + 10.0.104 + 5.0.0-2.26101.102 + 5.0.0-2.26101.102 + 5.0.0-2.26101.102 + 5.0.0-2.26101.102 + 5.0.0-2.26101.102 + 5.0.0-2.26101.102 + 5.0.0-2.26101.102 + 10.0.0-preview.26101.102 + 5.0.0-2.26101.102 + 5.0.0-2.26101.102 + 2.0.0-preview.1.26101.102 + 2.2.4 + 10.0.0-beta.26101.102 + 10.0.0-beta.26101.102 + 10.0.0-beta.26101.102 + 10.0.0-beta.26101.102 + 10.0.0-beta.26101.102 + 10.0.0-beta.26101.102 + 10.0.4 + 10.0.4 + 10.0.4-servicing.26101.102 + 10.0.4-servicing.26101.102 + 10.0.0-beta.26101.102 + 10.0.0-beta.26101.102 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 14.0.104-servicing.26101.102 + 10.0.4 + 5.0.0-2.26101.102 + 5.0.0-2.26101.102 + 10.0.4-servicing.26101.102 + 10.0.4 + 10.0.4 + 10.0.0-preview.7.25377.103 + 10.0.0-preview.26101.102 + 10.0.4-servicing.26101.102 + 18.0.1-release-26101-102 + 10.0.4 + 10.0.4-servicing.26101.102 + 10.0.104 + 10.0.104 + 10.0.104 + 10.0.104 + 10.0.104 + 10.0.104 + 10.0.104 + 10.0.104 + 10.0.104-servicing.26101.102 + 10.0.104 + 10.0.104-servicing.26101.102 + 10.0.104 + 10.0.104 + 10.0.104-servicing.26101.102 + 18.0.1-release-26101-102 + 18.0.1-release-26101-102 + 3.2.4 + 10.0.4 + 10.0.4-servicing.26101.102 + 10.0.4 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 7.0.2-rc.10202 + 10.0.4 + 2.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + 10.0.4 + + 2.1.0 + + 2.1.0-preview.26078.2 + 4.1.0-preview.26078.2 + + + + + $(dotnetdevcertsPackageVersion) + $(dotnetuserjwtsPackageVersion) + $(dotnetusersecretsPackageVersion) + $(MicrosoftAspNetCoreAnalyzersPackageVersion) + $(MicrosoftAspNetCoreAppRefPackageVersion) + $(MicrosoftAspNetCoreAppRefInternalPackageVersion) + $(MicrosoftAspNetCoreAuthenticationFacebookPackageVersion) + $(MicrosoftAspNetCoreAuthenticationGooglePackageVersion) + $(MicrosoftAspNetCoreAuthenticationMicrosoftAccountPackageVersion) + $(MicrosoftAspNetCoreAuthorizationPackageVersion) + $(MicrosoftAspNetCoreComponentsPackageVersion) + $(MicrosoftAspNetCoreComponentsAnalyzersPackageVersion) + $(MicrosoftAspNetCoreComponentsFormsPackageVersion) + $(MicrosoftAspNetCoreComponentsSdkAnalyzersPackageVersion) + $(MicrosoftAspNetCoreComponentsWebPackageVersion) + $(MicrosoftAspNetCoreComponentsWebAssemblyPackageVersion) + $(MicrosoftAspNetCoreComponentsWebAssemblyServerPackageVersion) + $(MicrosoftAspNetCoreComponentsWebViewPackageVersion) + $(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion) + $(MicrosoftAspNetCoreMetadataPackageVersion) + $(MicrosoftAspNetCoreMvcAnalyzersPackageVersion) + $(MicrosoftAspNetCoreMvcApiAnalyzersPackageVersion) + $(MicrosoftAspNetCoreMvcRazorExtensionsToolingInternalPackageVersion) + $(MicrosoftAspNetCoreTestHostPackageVersion) + $(MicrosoftBclAsyncInterfacesPackageVersion) + $(MicrosoftBuildPackageVersion) + $(MicrosoftBuildLocalizationPackageVersion) + $(MicrosoftBuildNuGetSdkResolverPackageVersion) + $(MicrosoftBuildTasksGitPackageVersion) + $(MicrosoftCodeAnalysisPackageVersion) + $(MicrosoftCodeAnalysisBuildClientPackageVersion) + $(MicrosoftCodeAnalysisCSharpPackageVersion) + $(MicrosoftCodeAnalysisCSharpCodeStylePackageVersion) + $(MicrosoftCodeAnalysisCSharpFeaturesPackageVersion) + $(MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion) + $(MicrosoftCodeAnalysisPublicApiAnalyzersPackageVersion) + $(MicrosoftCodeAnalysisRazorToolingInternalPackageVersion) + $(MicrosoftCodeAnalysisWorkspacesCommonPackageVersion) + $(MicrosoftCodeAnalysisWorkspacesMSBuildPackageVersion) + $(MicrosoftDeploymentDotNetReleasesPackageVersion) + $(MicrosoftDiaSymReaderPackageVersion) + $(MicrosoftDotNetArcadeSdkPackageVersion) + $(MicrosoftDotNetBuildTasksInstallersPackageVersion) + $(MicrosoftDotNetBuildTasksTemplatingPackageVersion) + $(MicrosoftDotNetBuildTasksWorkloadsPackageVersion) + $(MicrosoftDotNetHelixSdkPackageVersion) + $(MicrosoftDotNetSignToolPackageVersion) + $(MicrosoftDotNetWebItemTemplates100PackageVersion) + $(MicrosoftDotNetWebProjectTemplates100PackageVersion) + $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) + $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) + $(MicrosoftDotNetXliffTasksPackageVersion) + $(MicrosoftDotNetXUnitExtensionsPackageVersion) + $(MicrosoftExtensionsConfigurationIniPackageVersion) + $(MicrosoftExtensionsDependencyModelPackageVersion) + $(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion) + $(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion) + $(MicrosoftExtensionsFileSystemGlobbingPackageVersion) + $(MicrosoftExtensionsLoggingPackageVersion) + $(MicrosoftExtensionsLoggingAbstractionsPackageVersion) + $(MicrosoftExtensionsLoggingConsolePackageVersion) + $(MicrosoftExtensionsObjectPoolPackageVersion) + $(MicrosoftFSharpCompilerPackageVersion) + $(MicrosoftJSInteropPackageVersion) + $(MicrosoftNetCompilersToolsetPackageVersion) + $(MicrosoftNetCompilersToolsetFrameworkPackageVersion) + $(MicrosoftNETHostModelPackageVersion) + $(MicrosoftNETILLinkTasksPackageVersion) + $(MicrosoftNETRuntimeEmscripten3156Cachewinx64PackageVersion) + $(MicrosoftNETRuntimeEmscriptenSdkInternalPackageVersion) + $(MicrosoftNETSdkRazorSourceGeneratorsTransportPackageVersion) + $(MicrosoftNETSdkWindowsDesktopPackageVersion) + $(MicrosoftNETTestSdkPackageVersion) + $(MicrosoftNETCoreAppRefPackageVersion) + $(MicrosoftNETCorePlatformsPackageVersion) + $(MicrosoftSourceLinkAzureReposGitPackageVersion) + $(MicrosoftSourceLinkBitbucketGitPackageVersion) + $(MicrosoftSourceLinkCommonPackageVersion) + $(MicrosoftSourceLinkGitHubPackageVersion) + $(MicrosoftSourceLinkGitLabPackageVersion) + $(MicrosoftTemplateEngineAbstractionsPackageVersion) + $(MicrosoftTemplateEngineAuthoringTemplateVerifierPackageVersion) + $(MicrosoftTemplateEngineEdgePackageVersion) + $(MicrosoftTemplateEngineMocksPackageVersion) + $(MicrosoftTemplateEngineOrchestratorRunnableProjectsPackageVersion) + $(MicrosoftTemplateEngineTestHelperPackageVersion) + $(MicrosoftTemplateEngineUtilsPackageVersion) + $(MicrosoftTemplateSearchCommonPackageVersion) + $(MicrosoftTemplateSearchTemplateDiscoveryPackageVersion) + $(MicrosoftTestPlatformBuildPackageVersion) + $(MicrosoftTestPlatformCLIPackageVersion) + $(MicrosoftWebXdtPackageVersion) + $(MicrosoftWin32SystemEventsPackageVersion) + $(MicrosoftWindowsDesktopAppInternalPackageVersion) + $(MicrosoftWindowsDesktopAppRefPackageVersion) + $(NuGetBuildTasksPackageVersion) + $(NuGetBuildTasksConsolePackageVersion) + $(NuGetBuildTasksPackPackageVersion) + $(NuGetCommandLineXPlatPackageVersion) + $(NuGetCommandsPackageVersion) + $(NuGetCommonPackageVersion) + $(NuGetConfigurationPackageVersion) + $(NuGetCredentialsPackageVersion) + $(NuGetDependencyResolverCorePackageVersion) + $(NuGetFrameworksPackageVersion) + $(NuGetLibraryModelPackageVersion) + $(NuGetLocalizationPackageVersion) + $(NuGetPackagingPackageVersion) + $(NuGetProjectModelPackageVersion) + $(NuGetProtocolPackageVersion) + $(NuGetVersioningPackageVersion) + $(SystemCodeDomPackageVersion) + $(SystemCommandLinePackageVersion) + $(SystemComponentModelCompositionPackageVersion) + $(SystemCompositionAttributedModelPackageVersion) + $(SystemCompositionConventionPackageVersion) + $(SystemCompositionHostingPackageVersion) + $(SystemCompositionRuntimePackageVersion) + $(SystemCompositionTypedPartsPackageVersion) + $(SystemConfigurationConfigurationManagerPackageVersion) + $(SystemDiagnosticsDiagnosticSourcePackageVersion) + $(SystemFormatsAsn1PackageVersion) + $(SystemIOHashingPackageVersion) + $(SystemReflectionMetadataLoadContextPackageVersion) + $(SystemResourcesExtensionsPackageVersion) + $(SystemSecurityCryptographyPkcsPackageVersion) + $(SystemSecurityCryptographyProtectedDataPackageVersion) + $(SystemSecurityCryptographyXmlPackageVersion) + $(SystemSecurityPermissionsPackageVersion) + $(SystemServiceProcessServiceControllerPackageVersion) + $(SystemTextEncodingCodePagesPackageVersion) + $(SystemTextJsonPackageVersion) + $(SystemWindowsExtensionsPackageVersion) + + $(NETStandardLibraryRefPackageVersion) + + $(MicrosoftTestingPlatformPackageVersion) + $(MSTestPackageVersion) + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ed60ca0d36e2..0d645326530e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,634 +1,577 @@ + - - https://github.com/dotnet/templating - a1a11ad17b8d7a0999a8c0cfe21f15fce77ae4d6 - - - https://github.com/dotnet/templating - a1a11ad17b8d7a0999a8c0cfe21f15fce77ae4d6 - - - - https://github.com/dotnet/templating - b73682307aa0128c5edbec94c2e6a070d13ae6bb - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 - - - + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + https://github.com/dotnet/core-setup 7d57652f33493fa022125b7f63aad0d70c52d810 - - https://github.com/dotnet/emsdk - f364bf26bf50d8cbdd8652d284d25a8ccb55039a - - - - https://github.com/dotnet/emsdk - f364bf26bf50d8cbdd8652d284d25a8ccb55039a - - - - https://github.com/dotnet/msbuild - 6f6d310b4e44c8b10a7d2b64a712cee01afc7214 - - - https://github.com/dotnet/msbuild - 6f6d310b4e44c8b10a7d2b64a712cee01afc7214 - - - - https://github.com/dotnet/msbuild - 6f6d310b4e44c8b10a7d2b64a712cee01afc7214 - - - - https://github.com/dotnet/fsharp - 14987c804f33917bf15f4c25e0cd16ecd01807f4 - - - - https://github.com/dotnet/fsharp - 14987c804f33917bf15f4c25e0cd16ecd01807f4 - - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 - - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + 6a953e76162f3f079405f80e28664fa51b136740 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/nuget/nuget.client - 0da03caba83448ee887f0f1846dd05e1f1705d45 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/microsoft/vstest - 51441adcd6c424ae7315d66ce7e96baf34d70369 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/microsoft/vstest - 51441adcd6c424ae7315d66ce7e96baf34d70369 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/microsoft/vstest - 51441adcd6c424ae7315d66ce7e96baf34d70369 - - - - https://github.com/microsoft/vstest - 51441adcd6c424ae7315d66ce7e96baf34d70369 - + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 9b9a26408ddd07dc51c232082af1ca6863af7bc9 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 9b9a26408ddd07dc51c232082af1ca6863af7bc9 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 9b9a26408ddd07dc51c232082af1ca6863af7bc9 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 9b9a26408ddd07dc51c232082af1ca6863af7bc9 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - 58060180f2776452976616ae4894118dfd21f8d5 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - - https://github.com/dotnet/razor - 41f3afd466695ac2460260431537fe4d779ff446 - - - https://github.com/dotnet/razor - 41f3afd466695ac2460260431537fe4d779ff446 - - - https://github.com/dotnet/razor - 41f3afd466695ac2460260431537fe4d779ff446 - - - - https://github.com/dotnet/razor - 41f3afd466695ac2460260431537fe4d779ff446 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-winforms - b05fe71693c6c70b537911f88865ea456a9015f5 - - - https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - 58060180f2776452976616ae4894118dfd21f8d5 - - - https://github.com/dotnet/xdt - 63ae81154c50a1cf9287cc47d8351d55b4289e6d - - - - https://github.com/dotnet/xdt - 63ae81154c50a1cf9287cc47d8351d55b4289e6d - - - - https://github.com/dotnet/roslyn-analyzers - 742cc53ecfc7e7245f950e5ba58268ed2829913c - - - https://github.com/dotnet/roslyn - 450493a9b4ec6337bced0120e97cb76f4ed783db - - - - https://github.com/dotnet/roslyn-analyzers - 742cc53ecfc7e7245f950e5ba58268ed2829913c - - - - https://github.com/dotnet/command-line-api - 803d8598f98fb4efd94604b32627ee9407f246db - - - https://github.com/dotnet/command-line-api - 803d8598f98fb4efd94604b32627ee9407f246db + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - - https://github.com/dotnet/symreader - 0710a7892d89999956e8808c28e9dd0512bd53f3 - - - - https://github.com/dotnet/command-line-api - 803d8598f98fb4efd94604b32627ee9407f246db - - - - - https://github.com/dotnet/source-build-externals - 71dbdccd13f28cfd1a35649263b55ebbeab26ee7 - - - - - https://github.com/dotnet/source-build-reference-packages - 6092b62b7f35fddbd6bf31e19b2ab64bbe2443ae - - - - https://github.com/dotnet/deployment-tools - b2d5c0c5841de4bc036ef4c84b5db3532504e5f3 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - - https://github.com/dotnet/sourcelink - 657ade4711e607cc4759e89e0943aa1ca8aadc63 - - - - - https://github.com/dotnet/deployment-tools - b2d5c0c5841de4bc036ef4c84b5db3532504e5f3 - - - - - https://github.com/dotnet/symreader - 0710a7892d89999956e8808c28e9dd0512bd53f3 - + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - f736effe82a61eb6f5eba46e4173eae3b7d3dffd + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 - - https://github.com/dotnet/arcade - c85f9aceddaf85296e3efbc463daaa34fef5a375 - - - https://github.com/dotnet/arcade - c85f9aceddaf85296e3efbc463daaa34fef5a375 - - - https://github.com/dotnet/arcade - c85f9aceddaf85296e3efbc463daaa34fef5a375 - - - https://github.com/dotnet/arcade - c85f9aceddaf85296e3efbc463daaa34fef5a375 - - - https://github.com/dotnet/arcade - c85f9aceddaf85296e3efbc463daaa34fef5a375 - - - https://github.com/dotnet/arcade - c85f9aceddaf85296e3efbc463daaa34fef5a375 - - - - https://github.com/dotnet/arcade - c85f9aceddaf85296e3efbc463daaa34fef5a375 - - - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2f124007573374800632d39177cde00ca9fe1ef0 - - - https://github.com/dotnet/arcade-services - e156e649f28395d9d0ee1e848225a689b59e0fd3 - - - https://github.com/dotnet/arcade-services - e156e649f28395d9d0ee1e848225a689b59e0fd3 - - - https://github.com/dotnet/scenario-tests - 0898abbb5899ef400b8372913c2320295798a687 - - - - https://github.com/dotnet/scenario-tests - 0898abbb5899ef400b8372913c2320295798a687 - - - - - https://github.com/dotnet/aspire - 5fa9337a84a52e9bd185d04d156eccbdcf592f74 - - - - https://github.com/dotnet/aspire - 5fa9337a84a52e9bd185d04d156eccbdcf592f74 - - - - https://github.com/dotnet/runtime - e77011b31a3e5c47d931248a64b47f9b2d47853d + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 + + + https://github.com/microsoft/testfx + 25cc8f2b28eac830a37d1c666f05fa5b95d07b76 + + + https://github.com/microsoft/testfx + 25cc8f2b28eac830a37d1c666f05fa5b95d07b76 + + + https://github.com/dotnet/dotnet + a2298b9bb4ad99547921adacac0504d2f55da322 diff --git a/eng/common/CIBuild.cmd b/eng/common/CIBuild.cmd index 56c2f25ac22f..ac1f72bf94e0 100644 --- a/eng/common/CIBuild.cmd +++ b/eng/common/CIBuild.cmd @@ -1,2 +1,2 @@ @echo off -powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0Build.ps1""" -restore -build -test -sign -pack -publish -ci %*" \ No newline at end of file +powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0Build.ps1""" -restore -build -test -sign -pack -publish -ci %*" diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1 index 792b60b49d42..65ed3a8adef0 100644 --- a/eng/common/SetupNugetSources.ps1 +++ b/eng/common/SetupNugetSources.ps1 @@ -1,13 +1,14 @@ # This script adds internal feeds required to build commits that depend on internal package sources. For instance, -# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. In addition also enables -# disabled internal Maestro (darc-int*) feeds. +# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. Similarly, +# dotnet-eng-internal and dotnet-tools-internal are added if dotnet-eng and dotnet-tools are present. +# In addition, this script also enables disabled internal Maestro (darc-int*) feeds. # # Optionally, this script also adds a credential entry for each of the internal feeds if supplied. # # See example call for this script below. # # - task: PowerShell@2 -# displayName: Setup Private Feeds Credentials +# displayName: Setup internal Feeds Credentials # condition: eq(variables['Agent.OS'], 'Windows_NT') # inputs: # filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.ps1 @@ -34,19 +35,28 @@ Set-StrictMode -Version 2.0 . $PSScriptRoot\tools.ps1 +# Adds or enables the package source with the given name +function AddOrEnablePackageSource($sources, $disabledPackageSources, $SourceName, $SourceEndPoint, $creds, $Username, $pwd) { + if ($disabledPackageSources -eq $null -or -not (EnableInternalPackageSource -DisabledPackageSources $disabledPackageSources -Creds $creds -PackageSourceName $SourceName)) { + AddPackageSource -Sources $sources -SourceName $SourceName -SourceEndPoint $SourceEndPoint -Creds $creds -Username $userName -pwd $Password + } +} + # Add source entry to PackageSources function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Username, $pwd) { $packageSource = $sources.SelectSingleNode("add[@key='$SourceName']") if ($packageSource -eq $null) { + Write-Host "Adding package source $SourceName" + $packageSource = $doc.CreateElement("add") $packageSource.SetAttribute("key", $SourceName) $packageSource.SetAttribute("value", $SourceEndPoint) $sources.AppendChild($packageSource) | Out-Null } else { - Write-Host "Package source $SourceName already present." + Write-Host "Package source $SourceName already present and enabled." } AddCredential -Creds $creds -Source $SourceName -Username $Username -pwd $pwd @@ -59,6 +69,8 @@ function AddCredential($creds, $source, $username, $pwd) { return; } + Write-Host "Inserting credential for feed: " $source + # Looks for credential configuration for the given SourceName. Create it if none is found. $sourceElement = $creds.SelectSingleNode($Source) if ($sourceElement -eq $null) @@ -91,24 +103,27 @@ function AddCredential($creds, $source, $username, $pwd) { $passwordElement.SetAttribute("value", $pwd) } -function InsertMaestroPrivateFeedCredentials($Sources, $Creds, $Username, $pwd) { - $maestroPrivateSources = $Sources.SelectNodes("add[contains(@key,'darc-int')]") - - Write-Host "Inserting credentials for $($maestroPrivateSources.Count) Maestro's private feeds." - - ForEach ($PackageSource in $maestroPrivateSources) { - Write-Host "`tInserting credential for Maestro's feed:" $PackageSource.Key - AddCredential -Creds $creds -Source $PackageSource.Key -Username $Username -pwd $pwd +# Enable all darc-int package sources. +function EnableMaestroInternalPackageSources($DisabledPackageSources, $Creds) { + $maestroInternalSources = $DisabledPackageSources.SelectNodes("add[contains(@key,'darc-int')]") + ForEach ($DisabledPackageSource in $maestroInternalSources) { + EnableInternalPackageSource -DisabledPackageSources $DisabledPackageSources -Creds $Creds -PackageSourceName $DisabledPackageSource.key } } -function EnablePrivatePackageSources($DisabledPackageSources) { - $maestroPrivateSources = $DisabledPackageSources.SelectNodes("add[contains(@key,'darc-int')]") - ForEach ($DisabledPackageSource in $maestroPrivateSources) { - Write-Host "`tEnsuring private source '$($DisabledPackageSource.key)' is enabled by deleting it from disabledPackageSource" +# Enables an internal package source by name, if found. Returns true if the package source was found and enabled, false otherwise. +function EnableInternalPackageSource($DisabledPackageSources, $Creds, $PackageSourceName) { + $DisabledPackageSource = $DisabledPackageSources.SelectSingleNode("add[@key='$PackageSourceName']") + if ($DisabledPackageSource) { + Write-Host "Enabling internal source '$($DisabledPackageSource.key)'." + # Due to https://github.com/NuGet/Home/issues/10291, we must actually remove the disabled entries $DisabledPackageSources.RemoveChild($DisabledPackageSource) + + AddCredential -Creds $creds -Source $DisabledPackageSource.Key -Username $userName -pwd $Password + return $true } + return $false } if (!(Test-Path $ConfigFile -PathType Leaf)) { @@ -121,15 +136,17 @@ $doc = New-Object System.Xml.XmlDocument $filename = (Get-Item $ConfigFile).FullName $doc.Load($filename) -# Get reference to or create one if none exist already +# Get reference to - fail if none exist $sources = $doc.DocumentElement.SelectSingleNode("packageSources") if ($sources -eq $null) { - $sources = $doc.CreateElement("packageSources") - $doc.DocumentElement.AppendChild($sources) | Out-Null + Write-PipelineTelemetryError -Category 'Build' -Message "Eng/common/SetupNugetSources.ps1 returned a non-zero exit code. NuGet config file must contain a packageSources section: $ConfigFile" + ExitWithExitCode 1 } $creds = $null +$feedSuffix = "v3/index.json" if ($Password) { + $feedSuffix = "v2" # Looks for a node. Create it if none is found. $creds = $doc.DocumentElement.SelectSingleNode("packageSourceCredentials") if ($creds -eq $null) { @@ -138,34 +155,35 @@ if ($Password) { } } +$userName = "dn-bot" + # Check for disabledPackageSources; we'll enable any darc-int ones we find there $disabledSources = $doc.DocumentElement.SelectSingleNode("disabledPackageSources") if ($disabledSources -ne $null) { Write-Host "Checking for any darc-int disabled package sources in the disabledPackageSources node" - EnablePrivatePackageSources -DisabledPackageSources $disabledSources + EnableMaestroInternalPackageSources -DisabledPackageSources $disabledSources -Creds $creds } - -$userName = "dn-bot" - -# Insert credential nodes for Maestro's private feeds -InsertMaestroPrivateFeedCredentials -Sources $sources -Creds $creds -Username $userName -pwd $Password - -# 3.1 uses a different feed url format so it's handled differently here -$dotnet31Source = $sources.SelectSingleNode("add[@key='dotnet3.1']") -if ($dotnet31Source -ne $null) { - AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password - AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password -} - -$dotnetVersions = @('5','6','7','8','9') +$dotnetVersions = @('5','6','7','8','9','10') foreach ($dotnetVersion in $dotnetVersions) { $feedPrefix = "dotnet" + $dotnetVersion; $dotnetSource = $sources.SelectSingleNode("add[@key='$feedPrefix']") if ($dotnetSource -ne $null) { - AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password - AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password + AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password + AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password } } +# Check for dotnet-eng and add dotnet-eng-internal if present +$dotnetEngSource = $sources.SelectSingleNode("add[@key='dotnet-eng']") +if ($dotnetEngSource -ne $null) { + AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "dotnet-eng-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-eng-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password +} + +# Check for dotnet-tools and add dotnet-tools-internal if present +$dotnetToolsSource = $sources.SelectSingleNode("add[@key='dotnet-tools']") +if ($dotnetToolsSource -ne $null) { + AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "dotnet-tools-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-tools-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password +} + $doc.Save($filename) diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh old mode 100644 new mode 100755 index facb415ca6ff..b2163abbe71b --- a/eng/common/SetupNugetSources.sh +++ b/eng/common/SetupNugetSources.sh @@ -1,8 +1,9 @@ #!/usr/bin/env bash # This script adds internal feeds required to build commits that depend on internal package sources. For instance, -# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. In addition also enables -# disabled internal Maestro (darc-int*) feeds. +# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. Similarly, +# dotnet-eng-internal and dotnet-tools-internal are added if dotnet-eng and dotnet-tools are present. +# In addition, this script also enables disabled internal Maestro (darc-int*) feeds. # # Optionally, this script also adds a credential entry for each of the internal feeds if supplied. # @@ -52,81 +53,139 @@ if [[ `uname -s` == "Darwin" ]]; then TB='' fi -# Ensure there is a ... section. -grep -i "" $ConfigFile -if [ "$?" != "0" ]; then - echo "Adding ... section." - ConfigNodeHeader="" - PackageSourcesTemplate="${TB}${NL}${TB}" +# Enables an internal package source by name, if found. Returns 0 if found and enabled, 1 if not found. +EnableInternalPackageSource() { + local PackageSourceName="$1" + + # Check if disabledPackageSources section exists + grep -i "" "$ConfigFile" > /dev/null + if [ "$?" != "0" ]; then + return 1 # No disabled sources section + fi + + # Check if this source name is disabled + grep -i " /dev/null + if [ "$?" == "0" ]; then + echo "Enabling internal source '$PackageSourceName'." + # Remove the disabled entry (including any surrounding comments or whitespace on the same line) + sed -i.bak "//d" "$ConfigFile" + + # Add the source name to PackageSources for credential handling + PackageSources+=("$PackageSourceName") + return 0 # Found and enabled + fi + + return 1 # Not found in disabled sources +} + +# Add source entry to PackageSources +AddPackageSource() { + local SourceName="$1" + local SourceEndPoint="$2" + + # Check if source already exists + grep -i " /dev/null + if [ "$?" == "0" ]; then + echo "Package source $SourceName already present and enabled." + PackageSources+=("$SourceName") + return + fi + + echo "Adding package source $SourceName" + PackageSourcesNodeFooter="" + PackageSourceTemplate="${TB}" + + sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" "$ConfigFile" + PackageSources+=("$SourceName") +} + +# Adds or enables the package source with the given name +AddOrEnablePackageSource() { + local SourceName="$1" + local SourceEndPoint="$2" + + # Try to enable if disabled, if not found then add new source + EnableInternalPackageSource "$SourceName" + if [ "$?" != "0" ]; then + AddPackageSource "$SourceName" "$SourceEndPoint" + fi +} - sed -i.bak "s|$ConfigNodeHeader|$ConfigNodeHeader${NL}$PackageSourcesTemplate|" $ConfigFile -fi +# Enable all darc-int package sources +EnableMaestroInternalPackageSources() { + # Check if disabledPackageSources section exists + grep -i "" "$ConfigFile" > /dev/null + if [ "$?" != "0" ]; then + return # No disabled sources section + fi + + # Find all darc-int disabled sources + local DisabledDarcIntSources=() + DisabledDarcIntSources+=$(grep -oh '"darc-int-[^"]*" value="true"' "$ConfigFile" | tr -d '"') + + for DisabledSourceName in ${DisabledDarcIntSources[@]} ; do + if [[ $DisabledSourceName == darc-int* ]]; then + EnableInternalPackageSource "$DisabledSourceName" + fi + done +} -# Ensure there is a ... section. -grep -i "" $ConfigFile +# Ensure there is a ... section. +grep -i "" $ConfigFile if [ "$?" != "0" ]; then - echo "Adding ... section." - - PackageSourcesNodeFooter="" - PackageSourceCredentialsTemplate="${TB}${NL}${TB}" - - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourcesNodeFooter${NL}$PackageSourceCredentialsTemplate|" $ConfigFile + Write-PipelineTelemetryError -Category 'Build' "Error: Eng/common/SetupNugetSources.sh returned a non-zero exit code. NuGet config file must contain a packageSources section: $ConfigFile" + ExitWithExitCode 1 fi PackageSources=() -# Ensure dotnet3.1-internal and dotnet3.1-internal-transport are in the packageSources if the public dotnet3.1 feeds are present -grep -i "... section. + grep -i "" $ConfigFile if [ "$?" != "0" ]; then - echo "Adding dotnet3.1-internal to the packageSources." - PackageSourcesNodeFooter="" - PackageSourceTemplate="${TB}" + echo "Adding ... section." - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile - fi - PackageSources+=('dotnet3.1-internal') - - grep -i "" $ConfigFile - if [ "$?" != "0" ]; then - echo "Adding dotnet3.1-internal-transport to the packageSources." PackageSourcesNodeFooter="" - PackageSourceTemplate="${TB}" + PackageSourceCredentialsTemplate="${TB}${NL}${TB}" - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile + sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourcesNodeFooter${NL}$PackageSourceCredentialsTemplate|" $ConfigFile fi - PackageSources+=('dotnet3.1-internal-transport') fi -DotNetVersions=('5' '6' '7' '8' '9') +# Check for disabledPackageSources; we'll enable any darc-int ones we find there +grep -i "" $ConfigFile > /dev/null +if [ "$?" == "0" ]; then + echo "Checking for any darc-int disabled package sources in the disabledPackageSources node" + EnableMaestroInternalPackageSources +fi + +DotNetVersions=('5' '6' '7' '8' '9' '10') for DotNetVersion in ${DotNetVersions[@]} ; do FeedPrefix="dotnet${DotNetVersion}"; - grep -i " /dev/null if [ "$?" == "0" ]; then - grep -i "" - - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile - fi - PackageSources+=("$FeedPrefix-internal") - - grep -i "" $ConfigFile - if [ "$?" != "0" ]; then - echo "Adding $FeedPrefix-internal-transport to the packageSources." - PackageSourcesNodeFooter="" - PackageSourceTemplate="${TB}" - - sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile - fi - PackageSources+=("$FeedPrefix-internal-transport") + AddOrEnablePackageSource "$FeedPrefix-internal" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$FeedPrefix-internal/nuget/$FeedSuffix" + AddOrEnablePackageSource "$FeedPrefix-internal-transport" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$FeedPrefix-internal-transport/nuget/$FeedSuffix" fi done +# Check for dotnet-eng and add dotnet-eng-internal if present +grep -i " /dev/null +if [ "$?" == "0" ]; then + AddOrEnablePackageSource "dotnet-eng-internal" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-eng-internal/nuget/$FeedSuffix" +fi + +# Check for dotnet-tools and add dotnet-tools-internal if present +grep -i " /dev/null +if [ "$?" == "0" ]; then + AddOrEnablePackageSource "dotnet-tools-internal" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-tools-internal/nuget/$FeedSuffix" +fi + # I want things split line by line PrevIFS=$IFS IFS=$'\n' @@ -139,29 +198,12 @@ if [ "$CredToken" ]; then # Check if there is no existing credential for this FeedName grep -i "<$FeedName>" $ConfigFile if [ "$?" != "0" ]; then - echo "Adding credentials for $FeedName." + echo " Inserting credential for feed: $FeedName" PackageSourceCredentialsNodeFooter="" - NewCredential="${TB}${TB}<$FeedName>${NL}${NL}${NL}" + NewCredential="${TB}${TB}<$FeedName>${NL}${TB}${NL}${TB}${TB}${NL}${TB}${TB}" sed -i.bak "s|$PackageSourceCredentialsNodeFooter|$NewCredential${NL}$PackageSourceCredentialsNodeFooter|" $ConfigFile fi done fi - -# Re-enable any entries in disabledPackageSources where the feed name contains darc-int -grep -i "" $ConfigFile -if [ "$?" == "0" ]; then - DisabledDarcIntSources=() - echo "Re-enabling any disabled \"darc-int\" package sources in $ConfigFile" - DisabledDarcIntSources+=$(grep -oh '"darc-int-[^"]*" value="true"' $ConfigFile | tr -d '"') - for DisabledSourceName in ${DisabledDarcIntSources[@]} ; do - if [[ $DisabledSourceName == darc-int* ]] - then - OldDisableValue="" - NewDisableValue="" - sed -i.bak "s|$OldDisableValue|$NewDisableValue|" $ConfigFile - echo "Neutralized disablePackageSources entry for '$DisabledSourceName'" - fi - done -fi diff --git a/eng/common/build.ps1 b/eng/common/build.ps1 index 438f9920c43e..8cfee107e7a3 100644 --- a/eng/common/build.ps1 +++ b/eng/common/build.ps1 @@ -7,6 +7,7 @@ Param( [string] $msbuildEngine = $null, [bool] $warnAsError = $true, [bool] $nodeReuse = $true, + [switch] $buildCheck = $false, [switch][Alias('r')]$restore, [switch] $deployDeps, [switch][Alias('b')]$build, @@ -20,6 +21,7 @@ Param( [switch] $publish, [switch] $clean, [switch][Alias('pb')]$productBuild, + [switch]$fromVMR, [switch][Alias('bl')]$binaryLog, [switch][Alias('nobl')]$excludeCIBinarylog, [switch] $ci, @@ -71,6 +73,9 @@ function Print-Usage() { Write-Host " -msbuildEngine Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)." Write-Host " -excludePrereleaseVS Set to exclude build engines in prerelease versions of Visual Studio" Write-Host " -nativeToolsOnMachine Sets the native tools on machine environment variable (indicating that the script should use native tools on machine)" + Write-Host " -nodeReuse Sets nodereuse msbuild parameter ('true' or 'false')" + Write-Host " -buildCheck Sets /check msbuild parameter" + Write-Host " -fromVMR Set when building from within the VMR" Write-Host "" Write-Host "Command line arguments not listed above are passed thru to msbuild." @@ -97,6 +102,7 @@ function Build { $bl = if ($binaryLog) { '/bl:' + (Join-Path $LogDir 'Build.binlog') } else { '' } $platformArg = if ($platform) { "/p:Platform=$platform" } else { '' } + $check = if ($buildCheck) { '/check' } else { '' } if ($projects) { # Re-assign properties to a new variable because PowerShell doesn't let us append properties directly for unclear reasons. @@ -113,6 +119,7 @@ function Build { MSBuild $toolsetBuildProj ` $bl ` $platformArg ` + $check ` /p:Configuration=$configuration ` /p:RepoRoot=$RepoRoot ` /p:Restore=$restore ` @@ -122,11 +129,13 @@ function Build { /p:Deploy=$deploy ` /p:Test=$test ` /p:Pack=$pack ` - /p:DotNetBuildRepo=$productBuild ` + /p:DotNetBuild=$productBuild ` + /p:DotNetBuildFromVMR=$fromVMR ` /p:IntegrationTest=$integrationTest ` /p:PerformanceTest=$performanceTest ` /p:Sign=$sign ` /p:Publish=$publish ` + /p:RestoreStaticGraphEnableBinaryLogger=$binaryLog ` @properties } diff --git a/eng/common/build.sh b/eng/common/build.sh index ac1ee8620cd2..9767bb411a4f 100755 --- a/eng/common/build.sh +++ b/eng/common/build.sh @@ -42,6 +42,8 @@ usage() echo " --prepareMachine Prepare machine for CI run, clean up processes after build" echo " --nodeReuse Sets nodereuse msbuild parameter ('true' or 'false')" echo " --warnAsError Sets warnaserror msbuild parameter ('true' or 'false')" + echo " --buildCheck Sets /check msbuild parameter" + echo " --fromVMR Set when building from within the VMR" echo "" echo "Command line arguments not listed above are passed thru to msbuild." echo "Arguments can also be passed in with a single hyphen." @@ -63,6 +65,7 @@ restore=false build=false source_build=false product_build=false +from_vmr=false rebuild=false test=false integration_test=false @@ -76,6 +79,7 @@ clean=false warn_as_error=true node_reuse=true +build_check=false binary_log=false exclude_ci_binary_log=false pipelines_log=false @@ -87,7 +91,7 @@ verbosity='minimal' runtime_source_feed='' runtime_source_feed_key='' -properties='' +properties=() while [[ $# > 0 ]]; do opt="$(echo "${1/#--/-}" | tr "[:upper:]" "[:lower:]")" case "$opt" in @@ -127,19 +131,22 @@ while [[ $# > 0 ]]; do -pack) pack=true ;; - -sourcebuild|-sb) + -sourcebuild|-source-build|-sb) build=true source_build=true product_build=true restore=true pack=true ;; - -productBuild|-pb) + -productbuild|-product-build|-pb) build=true product_build=true restore=true pack=true ;; + -fromvmr|-from-vmr) + from_vmr=true + ;; -test|-t) test=true ;; @@ -173,6 +180,9 @@ while [[ $# > 0 ]]; do node_reuse=$2 shift ;; + -buildcheck) + build_check=true + ;; -runtimesourcefeed) runtime_source_feed=$2 shift @@ -182,7 +192,7 @@ while [[ $# > 0 ]]; do shift ;; *) - properties="$properties $1" + properties+=("$1") ;; esac @@ -216,7 +226,7 @@ function Build { InitializeCustomToolset if [[ ! -z "$projects" ]]; then - properties="$properties /p:Projects=$projects" + properties+=("/p:Projects=$projects") fi local bl="" @@ -224,15 +234,21 @@ function Build { bl="/bl:\"$log_dir/Build.binlog\"" fi + local check="" + if [[ "$build_check" == true ]]; then + check="/check" + fi + MSBuild $_InitializeToolset \ $bl \ + $check \ /p:Configuration=$configuration \ /p:RepoRoot="$repo_root" \ /p:Restore=$restore \ /p:Build=$build \ - /p:DotNetBuildRepo=$product_build \ - /p:ArcadeBuildFromSource=$source_build \ + /p:DotNetBuild=$product_build \ /p:DotNetBuildSourceOnly=$source_build \ + /p:DotNetBuildFromVMR=$from_vmr \ /p:Rebuild=$rebuild \ /p:Test=$test \ /p:Pack=$pack \ @@ -240,7 +256,8 @@ function Build { /p:PerformanceTest=$performance_test \ /p:Sign=$sign \ /p:Publish=$publish \ - $properties + /p:RestoreStaticGraphEnableBinaryLogger=$binary_log \ + ${properties[@]+"${properties[@]}"} ExitWithExitCode 0 } diff --git a/eng/common/cibuild.sh b/eng/common/cibuild.sh index 1a02c0dec8fd..66e3b0ac61c3 100755 --- a/eng/common/cibuild.sh +++ b/eng/common/cibuild.sh @@ -13,4 +13,4 @@ while [[ -h $source ]]; do done scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" -. "$scriptroot/build.sh" --restore --build --test --pack --publish --ci $@ \ No newline at end of file +. "$scriptroot/build.sh" --restore --build --test --pack --publish --ci $@ diff --git a/eng/common/core-templates/job/job.yml b/eng/common/core-templates/job/job.yml index 8da43d3b5837..5ce518406198 100644 --- a/eng/common/core-templates/job/job.yml +++ b/eng/common/core-templates/job/job.yml @@ -19,11 +19,11 @@ parameters: # publishing defaults artifacts: '' enableMicrobuild: false + enableMicrobuildForMacAndLinux: false microbuildUseESRP: true enablePublishBuildArtifacts: false enablePublishBuildAssets: false enablePublishTestResults: false - enablePublishUsingPipelines: false enableBuildRetry: false mergeTestResults: false testRunTitle: '' @@ -74,9 +74,6 @@ jobs: - ${{ if ne(parameters.enableTelemetry, 'false') }}: - name: DOTNET_CLI_TELEMETRY_PROFILE value: '$(Build.Repository.Uri)' - - ${{ if eq(parameters.enableRichCodeNavigation, 'true') }}: - - name: EnableRichCodeNavigation - value: 'true' # Retry signature validation up to three times, waiting 2 seconds between attempts. # See https://learn.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu3028#retry-untrusted-root-failures - name: NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY @@ -128,23 +125,12 @@ jobs: - ${{ preStep }} - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - ${{ if eq(parameters.enableMicrobuild, 'true') }}: - - task: MicroBuildSigningPlugin@4 - displayName: Install MicroBuild plugin - inputs: - signType: $(_SignType) - zipSources: false - feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json - ${{ if eq(parameters.microbuildUseESRP, true) }}: - ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: - ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea - ${{ else }}: - ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca - env: - TeamName: $(_TeamName) - MicroBuildOutputFolderOverride: '$(Agent.TempDirectory)' + - template: /eng/common/core-templates/steps/install-microbuild.yml + parameters: + enableMicrobuild: ${{ parameters.enableMicrobuild }} + enableMicrobuildForMacAndLinux: ${{ parameters.enableMicrobuildForMacAndLinux }} + microbuildUseESRP: ${{ parameters.microbuildUseESRP }} continueOnError: ${{ parameters.continueOnError }} - condition: and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) - ${{ if and(eq(parameters.runAsPublic, 'false'), eq(variables['System.TeamProject'], 'internal')) }}: - task: NuGetAuthenticate@1 @@ -160,27 +146,15 @@ jobs: - ${{ each step in parameters.steps }}: - ${{ step }} - - ${{ if eq(parameters.enableRichCodeNavigation, true) }}: - - task: RichCodeNavIndexer@0 - displayName: RichCodeNav Upload - inputs: - languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }} - environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'internal') }} - richNavLogOutputDirectory: $(System.DefaultWorkingDirectory)/artifacts/bin - uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }} - continueOnError: true - - ${{ each step in parameters.componentGovernanceSteps }}: - ${{ step }} - - ${{ if eq(parameters.enableMicrobuild, 'true') }}: - - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - task: MicroBuildCleanup@1 - displayName: Execute Microbuild cleanup tasks - condition: and(always(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - template: /eng/common/core-templates/steps/cleanup-microbuild.yml + parameters: + enableMicrobuild: ${{ parameters.enableMicrobuild }} + enableMicrobuildForMacAndLinux: ${{ parameters.enableMicrobuildForMacAndLinux }} continueOnError: ${{ parameters.continueOnError }} - env: - TeamName: $(_TeamName) # Publish test results - ${{ if or(and(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, '')), eq(parameters.testResultsFormat, 'xunit')) }}: diff --git a/eng/common/core-templates/job/onelocbuild.yml b/eng/common/core-templates/job/onelocbuild.yml index edefa789d360..c5788829a872 100644 --- a/eng/common/core-templates/job/onelocbuild.yml +++ b/eng/common/core-templates/job/onelocbuild.yml @@ -4,7 +4,7 @@ parameters: # Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool pool: '' - + CeapexPat: $(dn-bot-ceapex-package-r) # PAT for the loc AzDO instance https://dev.azure.com/ceapex GithubPat: $(BotAccount-dotnet-bot-repo-PAT) @@ -27,7 +27,7 @@ parameters: is1ESPipeline: '' jobs: - job: OneLocBuild${{ parameters.JobNameSuffix }} - + dependsOn: ${{ parameters.dependsOn }} displayName: OneLocBuild${{ parameters.JobNameSuffix }} @@ -86,8 +86,7 @@ jobs: isAutoCompletePrSelected: ${{ parameters.AutoCompletePr }} ${{ if eq(parameters.CreatePr, true) }}: isUseLfLineEndingsSelected: ${{ parameters.UseLfLineEndings }} - ${{ if eq(parameters.RepoType, 'gitHub') }}: - isShouldReusePrSelected: ${{ parameters.ReusePr }} + isShouldReusePrSelected: ${{ parameters.ReusePr }} packageSourceAuth: patAuth patVariable: ${{ parameters.CeapexPat }} ${{ if eq(parameters.RepoType, 'gitHub') }}: @@ -100,22 +99,20 @@ jobs: mirrorBranch: ${{ parameters.MirrorBranch }} condition: ${{ parameters.condition }} - - template: /eng/common/core-templates/steps/publish-build-artifacts.yml - parameters: - is1ESPipeline: ${{ parameters.is1ESPipeline }} - args: - displayName: Publish Localization Files - pathToPublish: '$(Build.ArtifactStagingDirectory)/loc' - publishLocation: Container - artifactName: Loc - condition: ${{ parameters.condition }} + # Copy the locProject.json to the root of the Loc directory, then publish a pipeline artifact + - task: CopyFiles@2 + displayName: Copy LocProject.json + inputs: + SourceFolder: '$(System.DefaultWorkingDirectory)/eng/Localize/' + Contents: 'LocProject.json' + TargetFolder: '$(Build.ArtifactStagingDirectory)/loc' + condition: ${{ parameters.condition }} - - template: /eng/common/core-templates/steps/publish-build-artifacts.yml + - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} args: - displayName: Publish LocProject.json - pathToPublish: '$(System.DefaultWorkingDirectory)/eng/Localize/' - publishLocation: Container - artifactName: Loc - condition: ${{ parameters.condition }} \ No newline at end of file + targetPath: '$(Build.ArtifactStagingDirectory)/loc' + artifactName: 'Loc' + displayName: 'Publish Localization Files' + condition: ${{ parameters.condition }} diff --git a/eng/common/core-templates/job/publish-build-assets.yml b/eng/common/core-templates/job/publish-build-assets.yml index 3cb20fb5041f..b955fac6e13f 100644 --- a/eng/common/core-templates/job/publish-build-assets.yml +++ b/eng/common/core-templates/job/publish-build-assets.yml @@ -20,9 +20,6 @@ parameters: # if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects. runAsPublic: false - # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing - publishUsingPipelines: false - # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing publishAssetsImmediately: false @@ -32,6 +29,15 @@ parameters: is1ESPipeline: '' + # Optional: 🌤️ or not the build has assets it wants to publish to BAR + isAssetlessBuild: false + + # Optional, publishing version + publishingVersion: 3 + + # Optional: A minimatch pattern for the asset manifests to publish to BAR + assetManifestsPattern: '*/manifests/**/*.xml' + repositoryAlias: self officialBuildId: '' @@ -84,18 +90,44 @@ jobs: - checkout: ${{ parameters.repositoryAlias }} fetchDepth: 3 clean: true - - - task: DownloadBuildArtifacts@0 - displayName: Download artifact - inputs: - artifactName: AssetManifests - downloadPath: '$(Build.StagingDirectory)/Download' - checkDownloadedFiles: true - condition: ${{ parameters.condition }} - continueOnError: ${{ parameters.continueOnError }} + + - ${{ if eq(parameters.isAssetlessBuild, 'false') }}: + - ${{ if eq(parameters.publishingVersion, 3) }}: + - task: DownloadPipelineArtifact@2 + displayName: Download Asset Manifests + inputs: + artifactName: AssetManifests + targetPath: '$(Build.StagingDirectory)/AssetManifests' + condition: ${{ parameters.condition }} + continueOnError: ${{ parameters.continueOnError }} + - ${{ if eq(parameters.publishingVersion, 4) }}: + - task: DownloadPipelineArtifact@2 + displayName: Download V4 asset manifests + inputs: + itemPattern: '*/manifests/**/*.xml' + targetPath: '$(Build.StagingDirectory)/AllAssetManifests' + condition: ${{ parameters.condition }} + continueOnError: ${{ parameters.continueOnError }} + - task: CopyFiles@2 + displayName: Copy V4 asset manifests to AssetManifests + inputs: + SourceFolder: '$(Build.StagingDirectory)/AllAssetManifests' + Contents: ${{ parameters.assetManifestsPattern }} + TargetFolder: '$(Build.StagingDirectory)/AssetManifests' + flattenFolders: true + condition: ${{ parameters.condition }} + continueOnError: ${{ parameters.continueOnError }} - task: NuGetAuthenticate@1 + # Populate internal runtime variables. + - template: /eng/common/templates/steps/enable-internal-sources.yml + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + parameters: + legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) + + - template: /eng/common/templates/steps/enable-internal-runtimes.yml + - task: AzureCLI@2 displayName: Publish Build Assets inputs: @@ -104,10 +136,13 @@ jobs: scriptLocation: scriptPath scriptPath: $(System.DefaultWorkingDirectory)/eng/common/sdk-task.ps1 arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet - /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests' + /p:ManifestsPath='$(Build.StagingDirectory)/AssetManifests' + /p:IsAssetlessBuild=${{ parameters.isAssetlessBuild }} /p:MaestroApiEndpoint=https://maestro.dot.net - /p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }} /p:OfficialBuildId=$(OfficialBuildId) + -runtimeSourceFeed https://ci.dot.net/internal + -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' + condition: ${{ parameters.condition }} continueOnError: ${{ parameters.continueOnError }} @@ -129,6 +164,17 @@ jobs: Copy-Item -Path $symbolExclusionfile -Destination "$(Build.StagingDirectory)/ReleaseConfigs" } + - ${{ if eq(parameters.publishingVersion, 4) }}: + - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml + parameters: + is1ESPipeline: ${{ parameters.is1ESPipeline }} + args: + targetPath: '$(Build.ArtifactStagingDirectory)/MergedManifest.xml' + artifactName: AssetManifests + displayName: 'Publish Merged Manifest' + retryCountOnTaskFailure: 10 # for any logs being locked + sbomEnabled: false # we don't need SBOM for logs + - template: /eng/common/core-templates/steps/publish-build-artifacts.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} @@ -138,7 +184,7 @@ jobs: publishLocation: Container artifactName: ReleaseConfigs - - ${{ if eq(parameters.publishAssetsImmediately, 'true') }}: + - ${{ if or(eq(parameters.publishAssetsImmediately, 'true'), eq(parameters.isAssetlessBuild, 'true')) }}: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: BARBuildId: ${{ parameters.BARBuildId }} @@ -164,6 +210,9 @@ jobs: -WaitPublishingFinish true -ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}' -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}' + -SkipAssetsPublishing '${{ parameters.isAssetlessBuild }}' + -runtimeSourceFeed https://ci.dot.net/internal + -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' - ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}: - template: /eng/common/core-templates/steps/publish-logs.yml diff --git a/eng/common/core-templates/job/source-build.yml b/eng/common/core-templates/job/source-build.yml index 1037ccedcb55..c08b3ad8ad03 100644 --- a/eng/common/core-templates/job/source-build.yml +++ b/eng/common/core-templates/job/source-build.yml @@ -12,9 +12,10 @@ parameters: # The name of the job. This is included in the job ID. # targetRID: '' # The name of the target RID to use, instead of the one auto-detected by Arcade. - # nonPortable: false + # portableBuild: false # Enables non-portable mode. This means a more specific RID (e.g. fedora.32-x64 rather than - # linux-x64), and compiling against distro-provided packages rather than portable ones. + # linux-x64), and compiling against distro-provided packages rather than portable ones. The + # default is portable mode. # skipPublishValidation: false # Disables publishing validation. By default, a check is performed to ensure no packages are # published by source-build. @@ -33,9 +34,6 @@ parameters: # container and pool. platform: {} - # Optional list of directories to ignore for component governance scans. - componentGovernanceIgnoreDirectories: [] - is1ESPipeline: '' # If set to true and running on a non-public project, @@ -65,7 +63,7 @@ jobs: demands: ImageOverride -equals build.ubuntu.2004.amd64 ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] - image: 1es-azurelinux-3 + image: Azure-Linux-3-Amd64 os: linux ${{ else }}: pool: @@ -96,4 +94,3 @@ jobs: parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} platform: ${{ parameters.platform }} - componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} diff --git a/eng/common/core-templates/job/source-index-stage1.yml b/eng/common/core-templates/job/source-index-stage1.yml index ddf8c2e00d80..76baf5c27258 100644 --- a/eng/common/core-templates/job/source-index-stage1.yml +++ b/eng/common/core-templates/job/source-index-stage1.yml @@ -1,8 +1,5 @@ parameters: runAsPublic: false - sourceIndexUploadPackageVersion: 2.0.0-20250425.2 - sourceIndexProcessBinlogPackageVersion: 1.0.1-20250425.2 - sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci" preSteps: [] binlogPath: artifacts/log/Debug/Build.binlog @@ -16,12 +13,6 @@ jobs: dependsOn: ${{ parameters.dependsOn }} condition: ${{ parameters.condition }} variables: - - name: SourceIndexUploadPackageVersion - value: ${{ parameters.sourceIndexUploadPackageVersion }} - - name: SourceIndexProcessBinlogPackageVersion - value: ${{ parameters.sourceIndexProcessBinlogPackageVersion }} - - name: SourceIndexPackageSource - value: ${{ parameters.sourceIndexPackageSource }} - name: BinlogPath value: ${{ parameters.binlogPath }} - template: /eng/common/core-templates/variables/pool-providers.yml @@ -34,12 +25,10 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $(DncEngPublicBuildPool) - image: 1es-windows-2022-open - os: windows + image: windows.vs2026preview.scout.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 - os: windows + image: windows.vs2026preview.scout.amd64 steps: - ${{ if eq(parameters.is1ESPipeline, '') }}: @@ -47,35 +36,9 @@ jobs: - ${{ each preStep in parameters.preSteps }}: - ${{ preStep }} - - - task: UseDotNet@2 - displayName: Use .NET 8 SDK - inputs: - packageType: sdk - version: 8.0.x - installationPath: $(Agent.TempDirectory)/dotnet - workingDirectory: $(Agent.TempDirectory) - - - script: | - $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version $(sourceIndexProcessBinlogPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools - $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version $(sourceIndexUploadPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools - displayName: Download Tools - # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk. - workingDirectory: $(Agent.TempDirectory) - - script: ${{ parameters.sourceIndexBuildCommand }} displayName: Build Repository - - script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i $(BinlogPath) -r $(System.DefaultWorkingDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output - displayName: Process Binlog into indexable sln - - - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - task: AzureCLI@2 - displayName: Log in to Azure and upload stage1 artifacts to source index - inputs: - azureSubscription: 'SourceDotNet Stage1 Publish' - addSpnToEnvironment: true - scriptType: 'ps' - scriptLocation: 'inlineScript' - inlineScript: | - $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) -s netsourceindexstage1 -b stage1 + - template: /eng/common/core-templates/steps/source-index-stage1-publish.yml + parameters: + binLogPath: ${{ parameters.binLogPath }} diff --git a/eng/common/core-templates/jobs/codeql-build.yml b/eng/common/core-templates/jobs/codeql-build.yml index 4571a7864df6..dbc14ac580a2 100644 --- a/eng/common/core-templates/jobs/codeql-build.yml +++ b/eng/common/core-templates/jobs/codeql-build.yml @@ -15,7 +15,6 @@ jobs: enablePublishBuildArtifacts: false enablePublishTestResults: false enablePublishBuildAssets: false - enablePublishUsingPipelines: false enableTelemetry: true variables: diff --git a/eng/common/core-templates/jobs/jobs.yml b/eng/common/core-templates/jobs/jobs.yml index bf33cdc2cc77..01ada7476651 100644 --- a/eng/common/core-templates/jobs/jobs.yml +++ b/eng/common/core-templates/jobs/jobs.yml @@ -5,9 +5,6 @@ parameters: # Optional: Include PublishBuildArtifacts task enablePublishBuildArtifacts: false - # Optional: Enable publishing using release pipelines - enablePublishUsingPipelines: false - # Optional: Enable running the source-build jobs to build repo from source enableSourceBuild: false @@ -30,6 +27,9 @@ parameters: # Optional: Publish the assets as soon as the publish to BAR stage is complete, rather doing so in a separate stage. publishAssetsImmediately: false + # Optional: 🌤️ or not the build has assets it wants to publish to BAR + isAssetlessBuild: false + # Optional: If using publishAssetsImmediately and additional parameters are needed, can be used to send along additional parameters (normally sent to post-build.yml) artifactsPublishingAdditionalParameters: '' signingValidationAdditionalParameters: '' @@ -85,7 +85,6 @@ jobs: - template: /eng/common/core-templates/jobs/source-build.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} - allCompletedJobId: Source_Build_Complete ${{ each parameter in parameters.sourceBuildParameters }}: ${{ parameter.key }}: ${{ parameter.value }} @@ -98,7 +97,7 @@ jobs: ${{ parameter.key }}: ${{ parameter.value }} - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}: + - ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, ''), eq(parameters.isAssetlessBuild, true)) }}: - template: ../job/publish-build-assets.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} @@ -110,12 +109,10 @@ jobs: - ${{ if eq(parameters.publishBuildAssetsDependsOn, '') }}: - ${{ each job in parameters.jobs }}: - ${{ job.job }} - - ${{ if eq(parameters.enableSourceBuild, true) }}: - - Source_Build_Complete runAsPublic: ${{ parameters.runAsPublic }} - publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }} - publishAssetsImmediately: ${{ parameters.publishAssetsImmediately }} + publishAssetsImmediately: ${{ or(parameters.publishAssetsImmediately, parameters.isAssetlessBuild) }} + isAssetlessBuild: ${{ parameters.isAssetlessBuild }} enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }} diff --git a/eng/common/core-templates/jobs/source-build.yml b/eng/common/core-templates/jobs/source-build.yml index 0b408a67bd51..d92860cba208 100644 --- a/eng/common/core-templates/jobs/source-build.yml +++ b/eng/common/core-templates/jobs/source-build.yml @@ -2,28 +2,19 @@ parameters: # This template adds arcade-powered source-build to CI. A job is created for each platform, as # well as an optional server job that completes when all platform jobs complete. - # The name of the "join" job for all source-build platforms. If set to empty string, the job is - # not included. Existing repo pipelines can use this job depend on all source-build jobs - # completing without maintaining a separate list of every single job ID: just depend on this one - # server job. By default, not included. Recommended name if used: 'Source_Build_Complete'. - allCompletedJobId: '' - # See /eng/common/core-templates/job/source-build.yml jobNamePrefix: 'Source_Build' # This is the default platform provided by Arcade, intended for use by a managed-only repo. defaultManagedPlatform: name: 'Managed' - container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9' + container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-10-amd64' # Defines the platforms on which to run build jobs. One job is created for each platform, and the # object in this array is sent to the job template as 'platform'. If no platforms are specified, # one job runs on 'defaultManagedPlatform'. platforms: [] - # Optional list of directories to ignore for component governance scans. - componentGovernanceIgnoreDirectories: [] - is1ESPipeline: '' # If set to true and running on a non-public project, @@ -34,23 +25,12 @@ parameters: jobs: -- ${{ if ne(parameters.allCompletedJobId, '') }}: - - job: ${{ parameters.allCompletedJobId }} - displayName: Source-Build Complete - pool: server - dependsOn: - - ${{ each platform in parameters.platforms }}: - - ${{ parameters.jobNamePrefix }}_${{ platform.name }} - - ${{ if eq(length(parameters.platforms), 0) }}: - - ${{ parameters.jobNamePrefix }}_${{ parameters.defaultManagedPlatform.name }} - - ${{ each platform in parameters.platforms }}: - template: /eng/common/core-templates/job/source-build.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} jobNamePrefix: ${{ parameters.jobNamePrefix }} platform: ${{ platform }} - componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} enableInternalSources: ${{ parameters.enableInternalSources }} - ${{ if eq(length(parameters.platforms), 0) }}: @@ -59,5 +39,4 @@ jobs: is1ESPipeline: ${{ parameters.is1ESPipeline }} jobNamePrefix: ${{ parameters.jobNamePrefix }} platform: ${{ parameters.defaultManagedPlatform }} - componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} enableInternalSources: ${{ parameters.enableInternalSources }} diff --git a/eng/common/core-templates/post-build/post-build.yml b/eng/common/core-templates/post-build/post-build.yml index 864427d9694a..b942a79ef02d 100644 --- a/eng/common/core-templates/post-build/post-build.yml +++ b/eng/common/core-templates/post-build/post-build.yml @@ -60,6 +60,11 @@ parameters: artifactNames: '' downloadArtifacts: true + - name: isAssetlessBuild + type: boolean + displayName: Is Assetless Build + default: false + # These parameters let the user customize the call to sdk-task.ps1 for publishing # symbols & general artifacts as well as for signing validation - name: symbolPublishingAdditionalParameters @@ -122,11 +127,11 @@ stages: ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: $(DncEngInternalBuildPool) - image: windows.vs2022.amd64 + image: windows.vs2026preview.scout.amd64 os: windows ${{ else }}: name: $(DncEngInternalBuildPool) - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026preview.scout.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml @@ -170,7 +175,7 @@ stages: os: windows ${{ else }}: name: $(DncEngInternalBuildPool) - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026preview.scout.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: @@ -188,9 +193,6 @@ stages: buildId: $(AzDOBuildId) artifactName: PackageArtifacts checkDownloadedFiles: true - itemPattern: | - ** - !**/Microsoft.SourceBuild.Intermediate.*.nupkg # This is necessary whenever we want to publish/restore to an AzDO private feed # Since sdk-task.ps1 tries to restore packages we need to do this authentication here @@ -234,7 +236,7 @@ stages: os: windows ${{ else }}: name: $(DncEngInternalBuildPool) - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2026preview.scout.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: @@ -305,6 +307,13 @@ stages: - task: NuGetAuthenticate@1 + # Populate internal runtime variables. + - template: /eng/common/templates/steps/enable-internal-sources.yml + parameters: + legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) + + - template: /eng/common/templates/steps/enable-internal-runtimes.yml + # Darc is targeting 8.0, so make sure it's installed - task: UseDotNet@2 inputs: @@ -325,3 +334,6 @@ stages: -RequireDefaultChannels ${{ parameters.requireDefaultChannels }} -ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}' -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}' + -SkipAssetsPublishing '${{ parameters.isAssetlessBuild }}' + -runtimeSourceFeed https://ci.dot.net/internal + -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' diff --git a/eng/common/core-templates/steps/cleanup-microbuild.yml b/eng/common/core-templates/steps/cleanup-microbuild.yml new file mode 100644 index 000000000000..c0fdcd3379d7 --- /dev/null +++ b/eng/common/core-templates/steps/cleanup-microbuild.yml @@ -0,0 +1,28 @@ +parameters: + # Enable cleanup tasks for MicroBuild + enableMicrobuild: false + # Enable cleanup tasks for MicroBuild on Mac and Linux + # Will be ignored if 'enableMicrobuild' is false or 'Agent.Os' is 'Windows_NT' + enableMicrobuildForMacAndLinux: false + continueOnError: false + +steps: + - ${{ if eq(parameters.enableMicrobuild, 'true') }}: + - task: MicroBuildCleanup@1 + displayName: Execute Microbuild cleanup tasks + condition: and( + always(), + or( + and( + eq(variables['Agent.Os'], 'Windows_NT'), + in(variables['_SignType'], 'real', 'test') + ), + and( + ${{ eq(parameters.enableMicrobuildForMacAndLinux, true) }}, + ne(variables['Agent.Os'], 'Windows_NT'), + eq(variables['_SignType'], 'real') + ) + )) + continueOnError: ${{ parameters.continueOnError }} + env: + TeamName: $(_TeamName) diff --git a/eng/common/core-templates/steps/generate-sbom.yml b/eng/common/core-templates/steps/generate-sbom.yml index 7f5b84c4cb82..c05f65027979 100644 --- a/eng/common/core-templates/steps/generate-sbom.yml +++ b/eng/common/core-templates/steps/generate-sbom.yml @@ -5,7 +5,7 @@ # IgnoreDirectories - Directories to ignore for SBOM generation. This will be passed through to the CG component detector. parameters: - PackageVersion: 9.0.0 + PackageVersion: 10.0.0 BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts' PackageName: '.NET' ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom diff --git a/eng/common/core-templates/steps/get-delegation-sas.yml b/eng/common/core-templates/steps/get-delegation-sas.yml index 9db5617ea7de..d2901470a7f0 100644 --- a/eng/common/core-templates/steps/get-delegation-sas.yml +++ b/eng/common/core-templates/steps/get-delegation-sas.yml @@ -31,16 +31,7 @@ steps: # Calculate the expiration of the SAS token and convert to UTC $expiry = (Get-Date).AddHours(${{ parameters.expiryInHours }}).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") - # Temporarily work around a helix issue where SAS tokens with / in them will cause incorrect downloads - # of correlation payloads. https://github.com/dotnet/dnceng/issues/3484 - $sas = "" - do { - $sas = az storage container generate-sas --account-name ${{ parameters.storageAccount }} --name ${{ parameters.container }} --permissions ${{ parameters.permissions }} --expiry $expiry --auth-mode login --as-user -o tsv - if ($LASTEXITCODE -ne 0) { - Write-Error "Failed to generate SAS token." - exit 1 - } - } while($sas.IndexOf('/') -ne -1) + $sas = az storage container generate-sas --account-name ${{ parameters.storageAccount }} --name ${{ parameters.container }} --permissions ${{ parameters.permissions }} --expiry $expiry --auth-mode login --as-user -o tsv if ($LASTEXITCODE -ne 0) { Write-Error "Failed to generate SAS token." diff --git a/eng/common/core-templates/steps/install-microbuild.yml b/eng/common/core-templates/steps/install-microbuild.yml new file mode 100644 index 000000000000..553fce66b940 --- /dev/null +++ b/eng/common/core-templates/steps/install-microbuild.yml @@ -0,0 +1,110 @@ +parameters: + # Enable install tasks for MicroBuild + enableMicrobuild: false + # Enable install tasks for MicroBuild on Mac and Linux + # Will be ignored if 'enableMicrobuild' is false or 'Agent.Os' is 'Windows_NT' + enableMicrobuildForMacAndLinux: false + # Determines whether the ESRP service connection information should be passed to the signing plugin. + # This overlaps with _SignType to some degree. We only need the service connection for real signing. + # It's important that the service connection not be passed to the MicroBuildSigningPlugin task in this place. + # Doing so will cause the service connection to be authorized for the pipeline, which isn't allowed and won't work for non-prod. + # Unfortunately, _SignType can't be used to exclude the use of the service connection in non-real sign scenarios. The + # variable is not available in template expression. _SignType has a very large proliferation across .NET, so replacing it is tough. + microbuildUseESRP: true + # Microbuild installation directory + microBuildOutputFolder: $(Agent.TempDirectory)/MicroBuild + + continueOnError: false + +steps: + - ${{ if eq(parameters.enableMicrobuild, 'true') }}: + - ${{ if eq(parameters.enableMicrobuildForMacAndLinux, 'true') }}: + # Needed to download the MicroBuild plugin nupkgs on Mac and Linux when nuget.exe is unavailable + - task: UseDotNet@2 + displayName: Install .NET 8.0 SDK for MicroBuild Plugin + inputs: + packageType: sdk + version: 8.0.x + installationPath: ${{ parameters.microBuildOutputFolder }}/.dotnet-microbuild + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT')) + + - script: | + set -euo pipefail + + # UseDotNet@2 prepends the dotnet executable path to the PATH variable, so we can call dotnet directly + version=$(dotnet --version) + cat << 'EOF' > ${{ parameters.microBuildOutputFolder }}/global.json + { + "sdk": { + "version": "$version", + "paths": [ + "${{ parameters.microBuildOutputFolder }}/.dotnet-microbuild" + ], + "errorMessage": "The .NET SDK version $version is required to install the MicroBuild signing plugin." + } + } + EOF + displayName: 'Add global.json to MicroBuild Installation path' + workingDirectory: ${{ parameters.microBuildOutputFolder }} + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT')) + + - script: | + REM Check if ESRP is disabled while SignType is real + if /I "${{ parameters.microbuildUseESRP }}"=="false" if /I "$(_SignType)"=="real" ( + echo Error: ESRP must be enabled when SignType is real. + exit /b 1 + ) + displayName: 'Validate ESRP usage (Windows)' + condition: and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT')) + - script: | + # Check if ESRP is disabled while SignType is real + if [ "${{ parameters.microbuildUseESRP }}" = "false" ] && [ "$(_SignType)" = "real" ]; then + echo "Error: ESRP must be enabled when SignType is real." + exit 1 + fi + displayName: 'Validate ESRP usage (Non-Windows)' + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT')) + + # Two different MB install steps. This is due to not being able to use the agent OS during + # YAML expansion, and Windows vs. Linux/Mac uses different service connections. However, + # we can avoid including the MB install step if not enabled at all. This avoids a bunch of + # extra pipeline authorizations, since most pipelines do not sign on non-Windows. + - task: MicroBuildSigningPlugin@4 + displayName: Install MicroBuild plugin (Windows) + inputs: + signType: $(_SignType) + zipSources: false + feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + ${{ if eq(parameters.microbuildUseESRP, true) }}: + ConnectedServiceName: 'MicroBuild Signing Task (DevDiv)' + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea + ${{ else }}: + ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca + env: + TeamName: $(_TeamName) + MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }} + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT'), in(variables['_SignType'], 'real', 'test')) + + - ${{ if eq(parameters.enableMicrobuildForMacAndLinux, true) }}: + - task: MicroBuildSigningPlugin@4 + displayName: Install MicroBuild plugin (non-Windows) + inputs: + signType: $(_SignType) + zipSources: false + feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + workingDirectory: ${{ parameters.microBuildOutputFolder }} + ${{ if eq(parameters.microbuildUseESRP, true) }}: + ConnectedServiceName: 'MicroBuild Signing Task (DevDiv)' + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedPMEServiceName: beb8cb23-b303-4c95-ab26-9e44bc958d39 + ${{ else }}: + ConnectedPMEServiceName: c24de2a5-cc7a-493d-95e4-8e5ff5cad2bc + env: + TeamName: $(_TeamName) + MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }} + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'), eq(variables['_SignType'], 'real')) diff --git a/eng/common/core-templates/steps/publish-logs.yml b/eng/common/core-templates/steps/publish-logs.yml index 0623ac6e1123..5a927b4c7bcb 100644 --- a/eng/common/core-templates/steps/publish-logs.yml +++ b/eng/common/core-templates/steps/publish-logs.yml @@ -26,15 +26,19 @@ steps: # If the file exists - sensitive data for redaction will be sourced from it # (single entry per line, lines starting with '# ' are considered comments and skipped) arguments: -InputPath '$(System.DefaultWorkingDirectory)/PostBuildLogs' - -BinlogToolVersion ${{parameters.BinlogToolVersion}} + -BinlogToolVersion '${{parameters.BinlogToolVersion}}' -TokensFilePath '$(System.DefaultWorkingDirectory)/eng/BinlogSecretsRedactionFile.txt' + -runtimeSourceFeed https://ci.dot.net/internal + -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' '$(publishing-dnceng-devdiv-code-r-build-re)' '$(MaestroAccessToken)' '$(dn-bot-all-orgs-artifact-feeds-rw)' '$(akams-client-id)' '$(microsoft-symbol-server-pat)' '$(symweb-symbol-server-pat)' + '$(dnceng-symbol-server-pat)' '$(dn-bot-all-orgs-build-rw-code-rw)' + '$(System.AccessToken)' ${{parameters.CustomSensitiveDataList}} continueOnError: true condition: always() @@ -45,6 +49,7 @@ steps: SourceFolder: '$(System.DefaultWorkingDirectory)/PostBuildLogs' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)/PostBuildLogs' + condition: always() - template: /eng/common/core-templates/steps/publish-build-artifacts.yml parameters: diff --git a/eng/common/core-templates/steps/source-build.yml b/eng/common/core-templates/steps/source-build.yml index 7846584d2a77..b9c86c18ae42 100644 --- a/eng/common/core-templates/steps/source-build.yml +++ b/eng/common/core-templates/steps/source-build.yml @@ -11,10 +11,6 @@ parameters: # for details. The entire object is described in the 'job' template for simplicity, even though # the usage of the properties on this object is split between the 'job' and 'steps' templates. platform: {} - - # Optional list of directories to ignore for component governance scans. - componentGovernanceIgnoreDirectories: [] - is1ESPipeline: false steps: @@ -23,25 +19,12 @@ steps: set -x df -h - # If file changes are detected, set CopyWipIntoInnerSourceBuildRepo to copy the WIP changes into the inner source build repo. - internalRestoreArgs= - if ! git diff --quiet; then - internalRestoreArgs='/p:CopyWipIntoInnerSourceBuildRepo=true' - # The 'Copy WIP' feature of source build uses git stash to apply changes from the original repo. - # This only works if there is a username/email configured, which won't be the case in most CI runs. - git config --get user.email - if [ $? -ne 0 ]; then - git config user.email dn-bot@microsoft.com - git config user.name dn-bot - fi - fi - # If building on the internal project, the internal storage variable may be available (usually only if needed) # In that case, add variables to allow the download of internal runtimes if the specified versions are not found # in the default public locations. internalRuntimeDownloadArgs= if [ '$(dotnetbuilds-internal-container-read-token-base64)' != '$''(dotnetbuilds-internal-container-read-token-base64)' ]; then - internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://ci.dot.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)' + internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://ci.dot.net/internal --runtimesourcefeedkey '$(dotnetbuilds-internal-container-read-token-base64)'' fi buildConfig=Release @@ -50,88 +33,33 @@ steps: buildConfig='$(_BuildConfig)' fi - officialBuildArgs= - if [ '${{ and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}' = 'True' ]; then - officialBuildArgs='/p:DotNetPublishUsingPipelines=true /p:OfficialBuildId=$(BUILD.BUILDNUMBER)' - fi - targetRidArgs= if [ '${{ parameters.platform.targetRID }}' != '' ]; then targetRidArgs='/p:TargetRid=${{ parameters.platform.targetRID }}' fi - runtimeOsArgs= - if [ '${{ parameters.platform.runtimeOS }}' != '' ]; then - runtimeOsArgs='/p:RuntimeOS=${{ parameters.platform.runtimeOS }}' - fi - - baseOsArgs= - if [ '${{ parameters.platform.baseOS }}' != '' ]; then - baseOsArgs='/p:BaseOS=${{ parameters.platform.baseOS }}' - fi - - publishArgs= - if [ '${{ parameters.platform.skipPublishValidation }}' != 'true' ]; then - publishArgs='--publish' - fi - - assetManifestFileName=SourceBuild_RidSpecific.xml - if [ '${{ parameters.platform.name }}' != '' ]; then - assetManifestFileName=SourceBuild_${{ parameters.platform.name }}.xml + portableBuildArgs= + if [ '${{ parameters.platform.portableBuild }}' != '' ]; then + portableBuildArgs='/p:PortableBuild=${{ parameters.platform.portableBuild }}' fi ${{ coalesce(parameters.platform.buildScript, './build.sh') }} --ci \ --configuration $buildConfig \ - --restore --build --pack $publishArgs -bl \ + --restore --build --pack -bl \ + --source-build \ ${{ parameters.platform.buildArguments }} \ - $officialBuildArgs \ $internalRuntimeDownloadArgs \ - $internalRestoreArgs \ $targetRidArgs \ - $runtimeOsArgs \ - $baseOsArgs \ - /p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \ - /p:ArcadeBuildFromSource=true \ - /p:DotNetBuildSourceOnly=true \ - /p:DotNetBuildRepo=true \ - /p:AssetManifestFileName=$assetManifestFileName + $portableBuildArgs \ displayName: Build -# Upload build logs for diagnosis. -- task: CopyFiles@2 - displayName: Prepare BuildLogs staging directory - inputs: - SourceFolder: '$(System.DefaultWorkingDirectory)' - Contents: | - **/*.log - **/*.binlog - artifacts/sb/prebuilt-report/** - TargetFolder: '$(Build.StagingDirectory)/BuildLogs' - CleanTargetFolder: true - continueOnError: true - condition: succeededOrFailed() - - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} args: displayName: Publish BuildLogs - targetPath: '$(Build.StagingDirectory)/BuildLogs' + targetPath: artifacts/log/${{ coalesce(variables._BuildConfig, 'Release') }} artifactName: BuildLogs_SourceBuild_${{ parameters.platform.name }}_Attempt$(System.JobAttempt) continueOnError: true condition: succeededOrFailed() sbomEnabled: false # we don't need SBOM for logs - -# Manually inject component detection so that we can ignore the source build upstream cache, which contains -# a nupkg cache of input packages (a local feed). -# This path must match the upstream cache path in property 'CurrentRepoSourceBuiltNupkgCacheDir' -# in src\Microsoft.DotNet.Arcade.Sdk\tools\SourceBuild\SourceBuildArcade.targets -- template: /eng/common/core-templates/steps/component-governance.yml - parameters: - displayName: Component Detection (Exclude upstream cache) - is1ESPipeline: ${{ parameters.is1ESPipeline }} - ${{ if eq(length(parameters.componentGovernanceIgnoreDirectories), 0) }}: - componentGovernanceIgnoreDirectories: '$(System.DefaultWorkingDirectory)/artifacts/sb/src/artifacts/obj/source-built-upstream-cache' - ${{ else }}: - componentGovernanceIgnoreDirectories: ${{ join(',', parameters.componentGovernanceIgnoreDirectories) }} - disableComponentGovernance: ${{ eq(variables['System.TeamProject'], 'public') }} diff --git a/eng/common/core-templates/steps/source-index-stage1-publish.yml b/eng/common/core-templates/steps/source-index-stage1-publish.yml new file mode 100644 index 000000000000..e9a694afa58e --- /dev/null +++ b/eng/common/core-templates/steps/source-index-stage1-publish.yml @@ -0,0 +1,35 @@ +parameters: + sourceIndexUploadPackageVersion: 2.0.0-20250818.1 + sourceIndexProcessBinlogPackageVersion: 1.0.1-20250818.1 + sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json + binlogPath: artifacts/log/Debug/Build.binlog + +steps: +- task: UseDotNet@2 + displayName: "Source Index: Use .NET 9 SDK" + inputs: + packageType: sdk + version: 9.0.x + installationPath: $(Agent.TempDirectory)/dotnet + workingDirectory: $(Agent.TempDirectory) + +- script: | + $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version ${{parameters.sourceIndexProcessBinlogPackageVersion}} --add-source ${{parameters.SourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools + $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version ${{parameters.sourceIndexUploadPackageVersion}} --add-source ${{parameters.SourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools + displayName: "Source Index: Download netsourceindex Tools" + # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk. + workingDirectory: $(Agent.TempDirectory) + +- script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i ${{parameters.BinlogPath}} -r $(System.DefaultWorkingDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output + displayName: "Source Index: Process Binlog into indexable sln" + +- ${{ if and(ne(parameters.runAsPublic, 'true'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - task: AzureCLI@2 + displayName: "Source Index: Upload Source Index stage1 artifacts to Azure" + inputs: + azureSubscription: 'SourceDotNet Stage1 Publish' + addSpnToEnvironment: true + scriptType: 'ps' + scriptLocation: 'inlineScript' + inlineScript: | + $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) -s netsourceindexstage1 -b stage1 diff --git a/eng/common/cross/arm64/tizen/tizen.patch b/eng/common/cross/arm64/tizen/tizen.patch index af7c8be05906..2cebc547382e 100644 --- a/eng/common/cross/arm64/tizen/tizen.patch +++ b/eng/common/cross/arm64/tizen/tizen.patch @@ -5,5 +5,5 @@ diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT(elf64-littleaarch64) --GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib/ld-linux-aarch64.so.1 ) ) +-GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-aarch64.so.1 ) ) +GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux-aarch64.so.1 ) ) diff --git a/eng/common/cross/build-android-rootfs.sh b/eng/common/cross/build-android-rootfs.sh index 7e9ba2b75ed3..fbd8d80848a6 100755 --- a/eng/common/cross/build-android-rootfs.sh +++ b/eng/common/cross/build-android-rootfs.sh @@ -6,10 +6,11 @@ usage() { echo "Creates a toolchain and sysroot used for cross-compiling for Android." echo - echo "Usage: $0 [BuildArch] [ApiLevel]" + echo "Usage: $0 [BuildArch] [ApiLevel] [--ndk NDKVersion]" echo echo "BuildArch is the target architecture of Android. Currently only arm64 is supported." echo "ApiLevel is the target Android API level. API levels usually match to Android releases. See https://source.android.com/source/build-numbers.html" + echo "NDKVersion is the version of Android NDK. The default is r21. See https://developer.android.com/ndk/downloads/revision_history" echo echo "By default, the toolchain and sysroot will be generated in cross/android-rootfs/toolchain/[BuildArch]. You can change this behavior" echo "by setting the TOOLCHAIN_DIR environment variable" @@ -25,10 +26,15 @@ __BuildArch=arm64 __AndroidArch=aarch64 __AndroidToolchain=aarch64-linux-android -for i in "$@" - do - lowerI="$(echo $i | tr "[:upper:]" "[:lower:]")" - case $lowerI in +while :; do + if [[ "$#" -le 0 ]]; then + break + fi + + i=$1 + + lowerI="$(echo $i | tr "[:upper:]" "[:lower:]")" + case $lowerI in -?|-h|--help) usage exit 1 @@ -43,6 +49,10 @@ for i in "$@" __AndroidArch=arm __AndroidToolchain=arm-linux-androideabi ;; + --ndk) + shift + __NDK_Version=$1 + ;; *[0-9]) __ApiLevel=$i ;; @@ -50,8 +60,17 @@ for i in "$@" __UnprocessedBuildArgs="$__UnprocessedBuildArgs $i" ;; esac + shift done +if [[ "$__NDK_Version" == "r21" ]] || [[ "$__NDK_Version" == "r22" ]]; then + __NDK_File_Arch_Spec=-x86_64 + __SysRoot=sysroot +else + __NDK_File_Arch_Spec= + __SysRoot=toolchains/llvm/prebuilt/linux-x86_64/sysroot +fi + # Obtain the location of the bash script to figure out where the root of the repo is. __ScriptBaseDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -78,6 +97,7 @@ fi echo "Target API level: $__ApiLevel" echo "Target architecture: $__BuildArch" +echo "NDK version: $__NDK_Version" echo "NDK location: $__NDK_Dir" echo "Target Toolchain location: $__ToolchainDir" @@ -85,8 +105,8 @@ echo "Target Toolchain location: $__ToolchainDir" if [ ! -d $__NDK_Dir ]; then echo Downloading the NDK into $__NDK_Dir mkdir -p $__NDK_Dir - wget -q --progress=bar:force:noscroll --show-progress https://dl.google.com/android/repository/android-ndk-$__NDK_Version-linux-x86_64.zip -O $__CrossDir/android-ndk-$__NDK_Version-linux-x86_64.zip - unzip -q $__CrossDir/android-ndk-$__NDK_Version-linux-x86_64.zip -d $__CrossDir + wget -q --progress=bar:force:noscroll --show-progress https://dl.google.com/android/repository/android-ndk-$__NDK_Version-linux$__NDK_File_Arch_Spec.zip -O $__CrossDir/android-ndk-$__NDK_Version-linux.zip + unzip -q $__CrossDir/android-ndk-$__NDK_Version-linux.zip -d $__CrossDir fi if [ ! -d $__lldb_Dir ]; then @@ -116,16 +136,11 @@ for path in $(wget -qO- https://packages.termux.dev/termux-main-21/dists/stable/ fi done -cp -R "$__TmpDir/data/data/com.termux/files/usr/"* "$__ToolchainDir/sysroot/usr/" +cp -R "$__TmpDir/data/data/com.termux/files/usr/"* "$__ToolchainDir/$__SysRoot/usr/" # Generate platform file for build.sh script to assign to __DistroRid echo "Generating platform file..." -echo "RID=android.${__ApiLevel}-${__BuildArch}" > $__ToolchainDir/sysroot/android_platform - -echo "Now to build coreclr, libraries and installers; run:" -echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \ - --subsetCategory coreclr -echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \ - --subsetCategory libraries -echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \ - --subsetCategory installer +echo "RID=android.${__ApiLevel}-${__BuildArch}" > $__ToolchainDir/$__SysRoot/android_platform + +echo "Now to build coreclr, libraries and host; run:" +echo ROOTFS_DIR=$(realpath $__ToolchainDir/$__SysRoot) ./build.sh clr+libs+host --cross --arch $__BuildArch diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh index 4b5e8d7166bd..8abfb71f7275 100755 --- a/eng/common/cross/build-rootfs.sh +++ b/eng/common/cross/build-rootfs.sh @@ -5,7 +5,7 @@ set -e usage() { echo "Usage: $0 [BuildArch] [CodeName] [lldbx.y] [llvmx[.y]] [--skipunmount] --rootfsdir ]" - echo "BuildArch can be: arm(default), arm64, armel, armv6, ppc64le, riscv64, s390x, x64, x86" + echo "BuildArch can be: arm(default), arm64, armel, armv6, loongarch64, ppc64le, riscv64, s390x, x64, x86" echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine" echo " for alpine can be specified with version: alpineX.YY or alpineedge" echo " for FreeBSD can be: freebsd13, freebsd14" @@ -15,6 +15,7 @@ usage() echo "llvmx[.y] - optional, LLVM version for LLVM related packages." echo "--skipunmount - optional, will skip the unmount of rootfs folder." echo "--skipsigcheck - optional, will skip package signature checks (allowing untrusted packages)." + echo "--skipemulation - optional, will skip qemu and debootstrap requirement when building environment for debian based systems." echo "--use-mirror - optional, use mirror URL to fetch resources, when available." echo "--jobs N - optional, restrict to N jobs." exit 1 @@ -52,28 +53,27 @@ __UbuntuPackages+=" symlinks" __UbuntuPackages+=" libicu-dev" __UbuntuPackages+=" liblttng-ust-dev" __UbuntuPackages+=" libunwind8-dev" -__UbuntuPackages+=" libnuma-dev" __AlpinePackages+=" gettext-dev" __AlpinePackages+=" icu-dev" __AlpinePackages+=" libunwind-dev" __AlpinePackages+=" lttng-ust-dev" __AlpinePackages+=" compiler-rt" -__AlpinePackages+=" numactl-dev" # runtime libraries' dependencies __UbuntuPackages+=" libcurl4-openssl-dev" __UbuntuPackages+=" libkrb5-dev" __UbuntuPackages+=" libssl-dev" __UbuntuPackages+=" zlib1g-dev" +__UbuntuPackages+=" libbrotli-dev" __AlpinePackages+=" curl-dev" __AlpinePackages+=" krb5-dev" __AlpinePackages+=" openssl-dev" __AlpinePackages+=" zlib-dev" -__FreeBSDBase="13.3-RELEASE" -__FreeBSDPkg="1.17.0" +__FreeBSDBase="13.4-RELEASE" +__FreeBSDPkg="1.21.3" __FreeBSDABI="13" __FreeBSDPackages="libunwind" __FreeBSDPackages+=" icu" @@ -91,18 +91,18 @@ __HaikuPackages="gcc_syslibs" __HaikuPackages+=" gcc_syslibs_devel" __HaikuPackages+=" gmp" __HaikuPackages+=" gmp_devel" -__HaikuPackages+=" icu66" -__HaikuPackages+=" icu66_devel" +__HaikuPackages+=" icu[0-9]+" +__HaikuPackages+=" icu[0-9]*_devel" __HaikuPackages+=" krb5" __HaikuPackages+=" krb5_devel" __HaikuPackages+=" libiconv" __HaikuPackages+=" libiconv_devel" -__HaikuPackages+=" llvm12_libunwind" -__HaikuPackages+=" llvm12_libunwind_devel" +__HaikuPackages+=" llvm[0-9]*_libunwind" +__HaikuPackages+=" llvm[0-9]*_libunwind_devel" __HaikuPackages+=" mpfr" __HaikuPackages+=" mpfr_devel" -__HaikuPackages+=" openssl" -__HaikuPackages+=" openssl_devel" +__HaikuPackages+=" openssl3" +__HaikuPackages+=" openssl3_devel" __HaikuPackages+=" zlib" __HaikuPackages+=" zlib_devel" @@ -128,10 +128,12 @@ __AlpineKeys=' 616adfeb:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0BFD1D4lIxQcsqEpQzU\npNCYM3aP1V/fxxVdT4DWvSI53JHTwHQamKdMWtEXetWVbP5zSROniYKFXd/xrD9X\n0jiGHey3lEtylXRIPxe5s+wXoCmNLcJVnvTcDtwx/ne2NLHxp76lyc25At+6RgE6\nADjLVuoD7M4IFDkAsd8UQ8zM0Dww9SylIk/wgV3ZkifecvgUQRagrNUdUjR56EBZ\nraQrev4hhzOgwelT0kXCu3snbUuNY/lU53CoTzfBJ5UfEJ5pMw1ij6X0r5S9IVsy\nKLWH1hiO0NzU2c8ViUYCly4Fe9xMTFc6u2dy/dxf6FwERfGzETQxqZvSfrRX+GLj\n/QZAXiPg5178hT/m0Y3z5IGenIC/80Z9NCi+byF1WuJlzKjDcF/TU72zk0+PNM/H\nKuppf3JT4DyjiVzNC5YoWJT2QRMS9KLP5iKCSThwVceEEg5HfhQBRT9M6KIcFLSs\nmFjx9kNEEmc1E8hl5IR3+3Ry8G5/bTIIruz14jgeY9u5jhL8Vyyvo41jgt9sLHR1\n/J1TxKfkgksYev7PoX6/ZzJ1ksWKZY5NFoDXTNYUgzFUTOoEaOg3BAQKadb3Qbbq\nXIrxmPBdgrn9QI7NCgfnAY3Tb4EEjs3ON/BNyEhUENcXOH6I1NbcuBQ7g9P73kE4\nVORdoc8MdJ5eoKBpO8Ww8HECAwEAAQ== 616ae350:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyduVzi1mWm+lYo2Tqt/0\nXkCIWrDNP1QBMVPrE0/ZlU2bCGSoo2Z9FHQKz/mTyMRlhNqTfhJ5qU3U9XlyGOPJ\npiM+b91g26pnpXJ2Q2kOypSgOMOPA4cQ42PkHBEqhuzssfj9t7x47ppS94bboh46\nxLSDRff/NAbtwTpvhStV3URYkxFG++cKGGa5MPXBrxIp+iZf9GnuxVdST5PGiVGP\nODL/b69sPJQNbJHVquqUTOh5Ry8uuD2WZuXfKf7/C0jC/ie9m2+0CttNu9tMciGM\nEyKG1/Xhk5iIWO43m4SrrT2WkFlcZ1z2JSf9Pjm4C2+HovYpihwwdM/OdP8Xmsnr\nDzVB4YvQiW+IHBjStHVuyiZWc+JsgEPJzisNY0Wyc/kNyNtqVKpX6dRhMLanLmy+\nf53cCSI05KPQAcGj6tdL+D60uKDkt+FsDa0BTAobZ31OsFVid0vCXtsbplNhW1IF\nHwsGXBTVcfXg44RLyL8Lk/2dQxDHNHzAUslJXzPxaHBLmt++2COa2EI1iWlvtznk\nOk9WP8SOAIj+xdqoiHcC4j72BOVVgiITIJNHrbppZCq6qPR+fgXmXa+sDcGh30m6\n9Wpbr28kLMSHiENCWTdsFij+NQTd5S47H7XTROHnalYDuF1RpS+DpQidT5tUimaT\nJZDr++FjKrnnijbyNF8b98UCAwEAAQ== 616db30d:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnpUpyWDWjlUk3smlWeA0\nlIMW+oJ38t92CRLHH3IqRhyECBRW0d0aRGtq7TY8PmxjjvBZrxTNDpJT6KUk4LRm\na6A6IuAI7QnNK8SJqM0DLzlpygd7GJf8ZL9SoHSH+gFsYF67Cpooz/YDqWrlN7Vw\ntO00s0B+eXy+PCXYU7VSfuWFGK8TGEv6HfGMALLjhqMManyvfp8hz3ubN1rK3c8C\nUS/ilRh1qckdbtPvoDPhSbTDmfU1g/EfRSIEXBrIMLg9ka/XB9PvWRrekrppnQzP\nhP9YE3x/wbFc5QqQWiRCYyQl/rgIMOXvIxhkfe8H5n1Et4VAorkpEAXdsfN8KSVv\nLSMazVlLp9GYq5SUpqYX3KnxdWBgN7BJoZ4sltsTpHQ/34SXWfu3UmyUveWj7wp0\nx9hwsPirVI00EEea9AbP7NM2rAyu6ukcm4m6ATd2DZJIViq2es6m60AE6SMCmrQF\nwmk4H/kdQgeAELVfGOm2VyJ3z69fQuywz7xu27S6zTKi05Qlnohxol4wVb6OB7qG\nLPRtK9ObgzRo/OPumyXqlzAi/Yvyd1ZQk8labZps3e16bQp8+pVPiumWioMFJDWV\nGZjCmyMSU8V6MB6njbgLHoyg2LCukCAeSjbPGGGYhnKLm1AKSoJh3IpZuqcKCk5C\n8CM1S15HxV78s9dFntEqIokCAwEAAQ== +66ba20fe:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtfB12w4ZgqsXWZDfUAV/\n6Y4aHUKIu3q4SXrNZ7CXF9nXoAVYrS7NAxJdAodsY3vPCN0g5O8DFXR+390LdOuQ\n+HsGKCc1k5tX5ZXld37EZNTNSbR0k+NKhd9h6X3u6wqPOx7SIKxwAQR8qeeFq4pP\nrt9GAGlxtuYgzIIcKJPwE0dZlcBCg+GnptCUZXp/38BP1eYC+xTXSL6Muq1etYfg\nodXdb7Yl+2h1IHuOwo5rjgY5kpY7GcAs8AjGk3lDD/av60OTYccknH0NCVSmPoXK\nvrxDBOn0LQRNBLcAfnTKgHrzy0Q5h4TNkkyTgxkoQw5ObDk9nnabTxql732yy9BY\ns+hM9+dSFO1HKeVXreYSA2n1ndF18YAvAumzgyqzB7I4pMHXq1kC/8bONMJxwSkS\nYm6CoXKyavp7RqGMyeVpRC7tV+blkrrUml0BwNkxE+XnwDRB3xDV6hqgWe0XrifD\nYTfvd9ScZQP83ip0r4IKlq4GMv/R5shcCRJSkSZ6QSGshH40JYSoiwJf5FHbj9ND\n7do0UAqebWo4yNx63j/wb2ULorW3AClv0BCFSdPsIrCStiGdpgJDBR2P2NZOCob3\nG9uMj+wJD6JJg2nWqNJxkANXX37Qf8plgzssrhrgOvB0fjjS7GYhfkfmZTJ0wPOw\nA8+KzFseBh4UFGgue78KwgkCAwEAAQ== ' __Keyring= __KeyringFile="/usr/share/keyrings/ubuntu-archive-keyring.gpg" __SkipSigCheck=0 +__SkipEmulation=0 __UseMirror=0 __UnprocessedBuildArgs= @@ -162,9 +164,13 @@ while :; do armel) __BuildArch=armel __UbuntuArch=armel - __UbuntuRepo="http://ftp.debian.org/debian/" - __CodeName=jessie + __UbuntuRepo="http://archive.debian.org/debian/" + __CodeName=buster __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" + __LLDB_Package="liblldb-6.0-dev" + __UbuntuPackages="${__UbuntuPackages// libomp-dev/}" + __UbuntuPackages="${__UbuntuPackages// libomp5/}" + __UbuntuSuites= ;; armv6) __BuildArch=armv6 @@ -180,6 +186,18 @@ while :; do __Keyring="--keyring $__KeyringFile" fi ;; + loongarch64) + __BuildArch=loongarch64 + __AlpineArch=loongarch64 + __QEMUArch=loongarch64 + __UbuntuArch=loong64 + __UbuntuSuites=unreleased + __LLDB_Package="liblldb-19-dev" + + if [[ "$__CodeName" == "sid" ]]; then + __UbuntuRepo="http://ftp.ports.debian.org/debian-ports/" + fi + ;; riscv64) __BuildArch=riscv64 __AlpineArch=riscv64 @@ -264,44 +282,21 @@ while :; do ;; xenial) # Ubuntu 16.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=xenial - fi - ;; - zesty) # Ubuntu 17.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=zesty - fi + __CodeName=xenial ;; bionic) # Ubuntu 18.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=bionic - fi + __CodeName=bionic ;; focal) # Ubuntu 20.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=focal - fi + __CodeName=focal ;; jammy) # Ubuntu 22.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=jammy - fi + __CodeName=jammy ;; noble) # Ubuntu 24.04 - if [[ "$__CodeName" != "jessie" ]]; then - __CodeName=noble - fi - if [[ -n "$__LLDB_Package" ]]; then - __LLDB_Package="liblldb-18-dev" - fi - ;; - jessie) # Debian 8 - __CodeName=jessie - __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" - - if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.debian.org/debian/" + __CodeName=noble + if [[ -z "$__LLDB_Package" ]]; then + __LLDB_Package="liblldb-19-dev" fi ;; stretch) # Debian 9 @@ -319,7 +314,7 @@ while :; do __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.debian.org/debian/" + __UbuntuRepo="http://archive.debian.org/debian/" fi ;; bullseye) # Debian 11 @@ -340,10 +335,28 @@ while :; do ;; sid) # Debian sid __CodeName=sid - __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" + __UbuntuSuites= - if [[ -z "$__UbuntuRepo" ]]; then - __UbuntuRepo="http://ftp.debian.org/debian/" + # Debian-Ports architectures need different values + case "$__UbuntuArch" in + amd64|arm64|armel|armhf|i386|mips64el|ppc64el|riscv64|s390x) + __KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg" + + if [[ -z "$__UbuntuRepo" ]]; then + __UbuntuRepo="http://ftp.debian.org/debian/" + fi + ;; + *) + __KeyringFile="/usr/share/keyrings/debian-ports-archive-keyring.gpg" + + if [[ -z "$__UbuntuRepo" ]]; then + __UbuntuRepo="http://ftp.ports.debian.org/debian-ports/" + fi + ;; + esac + + if [[ -e "$__KeyringFile" ]]; then + __Keyring="--keyring $__KeyringFile" fi ;; tizen) @@ -370,7 +383,7 @@ while :; do ;; freebsd14) __CodeName=freebsd - __FreeBSDBase="14.0-RELEASE" + __FreeBSDBase="14.2-RELEASE" __FreeBSDABI="14" __SkipUnmount=1 ;; @@ -388,6 +401,9 @@ while :; do --skipsigcheck) __SkipSigCheck=1 ;; + --skipemulation) + __SkipEmulation=1 + ;; --rootfsdir|-rootfsdir) shift __RootfsDir="$1" @@ -420,16 +436,15 @@ case "$__AlpineVersion" in elif [[ "$__AlpineArch" == "x86" ]]; then __AlpineVersion=3.17 # minimum version that supports lldb-dev __AlpinePackages+=" llvm15-libs" - elif [[ "$__AlpineArch" == "riscv64" ]]; then + elif [[ "$__AlpineArch" == "riscv64" || "$__AlpineArch" == "loongarch64" ]]; then + __AlpineVersion=3.21 # minimum version that supports lldb-dev + __AlpinePackages+=" llvm19-libs" + elif [[ -n "$__AlpineMajorVersion" ]]; then + # use whichever alpine version is provided and select the latest toolchain libs __AlpineLlvmLibsLookup=1 - __AlpineVersion=edge # minimum version with APKINDEX.tar.gz (packages archive) else __AlpineVersion=3.13 # 3.13 to maximize compatibility __AlpinePackages+=" llvm10-libs" - - if [[ "$__AlpineArch" == "armv7" ]]; then - __AlpinePackages="${__AlpinePackages//numactl-dev/}" - fi fi esac @@ -439,15 +454,6 @@ if [[ "$__AlpineVersion" =~ 3\.1[345] ]]; then __AlpinePackages="${__AlpinePackages/compiler-rt/compiler-rt-static}" fi -if [[ "$__BuildArch" == "armel" ]]; then - __LLDB_Package="lldb-3.5-dev" -fi - -if [[ "$__CodeName" == "xenial" && "$__UbuntuArch" == "armhf" ]]; then - # libnuma-dev is not available on armhf for xenial - __UbuntuPackages="${__UbuntuPackages//libnuma-dev/}" -fi - __UbuntuPackages+=" ${__LLDB_Package:-}" if [[ -z "$__UbuntuRepo" ]]; then @@ -496,7 +502,7 @@ if [[ "$__CodeName" == "alpine" ]]; then arch="$(uname -m)" ensureDownloadTool - + if [[ "$__hasWget" == 1 ]]; then wget -P "$__ApkToolsDir" "https://gitlab.alpinelinux.org/api/v4/projects/5/packages/generic/v$__ApkToolsVersion/$arch/apk.static" else @@ -512,11 +518,6 @@ if [[ "$__CodeName" == "alpine" ]]; then echo "$__ApkToolsSHA512SUM $__ApkToolsDir/apk.static" | sha512sum -c chmod +x "$__ApkToolsDir/apk.static" - if [[ -f "/usr/bin/qemu-$__QEMUArch-static" ]]; then - mkdir -p "$__RootfsDir"/usr/bin - cp -v "/usr/bin/qemu-$__QEMUArch-static" "$__RootfsDir/usr/bin" - fi - if [[ "$__AlpineVersion" == "edge" ]]; then version=edge else @@ -536,6 +537,10 @@ if [[ "$__CodeName" == "alpine" ]]; then __ApkSignatureArg="--keys-dir $__ApkKeysDir" fi + if [[ "$__SkipEmulation" == "1" ]]; then + __NoEmulationArg="--no-scripts" + fi + # initialize DB # shellcheck disable=SC2086 "$__ApkToolsDir/apk.static" \ @@ -557,7 +562,7 @@ if [[ "$__CodeName" == "alpine" ]]; then "$__ApkToolsDir/apk.static" \ -X "http://dl-cdn.alpinelinux.org/alpine/$version/main" \ -X "http://dl-cdn.alpinelinux.org/alpine/$version/community" \ - -U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" \ + -U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" $__NoEmulationArg \ add $__AlpinePackages rm -r "$__ApkToolsDir" @@ -573,7 +578,7 @@ elif [[ "$__CodeName" == "freebsd" ]]; then curl -SL "https://download.freebsd.org/ftp/releases/${__FreeBSDArch}/${__FreeBSDMachineArch}/${__FreeBSDBase}/base.txz" | tar -C "$__RootfsDir" -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version fi echo "ABI = \"FreeBSD:${__FreeBSDABI}:${__FreeBSDMachineArch}\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > "${__RootfsDir}"/usr/local/etc/pkg.conf - echo "FreeBSD: { url: \"pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly\", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > "${__RootfsDir}"/etc/pkg/FreeBSD.conf + echo "FreeBSD: { url: \"pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly\", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"/usr/share/keys/pkg\", enabled: yes }" > "${__RootfsDir}"/etc/pkg/FreeBSD.conf mkdir -p "$__RootfsDir"/tmp # get and build package manager if [[ "$__hasWget" == 1 ]]; then @@ -681,7 +686,7 @@ elif [[ "$__CodeName" == "haiku" ]]; then ensureDownloadTool - echo "Downloading Haiku package tool" + echo "Downloading Haiku package tools" git clone https://github.com/haiku/haiku-toolchains-ubuntu --depth 1 "$__RootfsDir/tmp/script" if [[ "$__hasWget" == 1 ]]; then wget -O "$__RootfsDir/tmp/download/hosttools.zip" "$("$__RootfsDir/tmp/script/fetch.sh" --hosttools)" @@ -691,34 +696,42 @@ elif [[ "$__CodeName" == "haiku" ]]; then unzip -o "$__RootfsDir/tmp/download/hosttools.zip" -d "$__RootfsDir/tmp/bin" - DepotBaseUrl="https://depot.haiku-os.org/__api/v2/pkg/get-pkg" - HpkgBaseUrl="https://eu.hpkg.haiku-os.org/haiku/master/$__HaikuArch/current" + HaikuBaseUrl="https://eu.hpkg.haiku-os.org/haiku/master/$__HaikuArch/current" + HaikuPortsBaseUrl="https://eu.hpkg.haiku-os.org/haikuports/master/$__HaikuArch/current" + + echo "Downloading HaikuPorts package repository index..." + if [[ "$__hasWget" == 1 ]]; then + wget -P "$__RootfsDir/tmp/download" "$HaikuPortsBaseUrl/repo" + else + curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$HaikuPortsBaseUrl/repo" + fi - # Download Haiku packages echo "Downloading Haiku packages" read -ra array <<<"$__HaikuPackages" for package in "${array[@]}"; do echo "Downloading $package..." - # API documented here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L60 - # The schema here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L598 + hpkgFilename="$(LD_LIBRARY_PATH="$__RootfsDir/tmp/bin" "$__RootfsDir/tmp/bin/package_repo" list -f "$__RootfsDir/tmp/download/repo" | + grep -E "${package}-" | sort -V | tail -n 1 | xargs)" + if [ -z "$hpkgFilename" ]; then + >&2 echo "ERROR: package $package missing." + exit 1 + fi + echo "Resolved filename: $hpkgFilename..." + hpkgDownloadUrl="$HaikuPortsBaseUrl/packages/$hpkgFilename" if [[ "$__hasWget" == 1 ]]; then - hpkgDownloadUrl="$(wget -qO- --post-data '{"name":"'"$package"'","repositorySourceCode":"haikuports_'$__HaikuArch'","versionType":"LATEST","naturalLanguageCode":"en"}' \ - --header 'Content-Type:application/json' "$DepotBaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')" wget -P "$__RootfsDir/tmp/download" "$hpkgDownloadUrl" else - hpkgDownloadUrl="$(curl -sSL -XPOST --data '{"name":"'"$package"'","repositorySourceCode":"haikuports_'$__HaikuArch'","versionType":"LATEST","naturalLanguageCode":"en"}' \ - --header 'Content-Type:application/json' "$DepotBaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')" curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$hpkgDownloadUrl" fi done for package in haiku haiku_devel; do echo "Downloading $package..." if [[ "$__hasWget" == 1 ]]; then - hpkgVersion="$(wget -qO- "$HpkgBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" - wget -P "$__RootfsDir/tmp/download" "$HpkgBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" + hpkgVersion="$(wget -qO- "$HaikuBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" + wget -P "$__RootfsDir/tmp/download" "$HaikuBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" else - hpkgVersion="$(curl -sSL "$HpkgBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" - curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$HpkgBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" + hpkgVersion="$(curl -sSL "$HaikuBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" + curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$HaikuBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" fi done @@ -744,25 +757,67 @@ elif [[ "$__CodeName" == "haiku" ]]; then popd rm -rf "$__RootfsDir/tmp" elif [[ -n "$__CodeName" ]]; then + __Suites="$__CodeName $(for suite in $__UbuntuSuites; do echo -n "$__CodeName-$suite "; done)" + + if [[ "$__SkipEmulation" == "1" ]]; then + if [[ -z "$AR" ]]; then + if command -v ar &>/dev/null; then + AR="$(command -v ar)" + elif command -v llvm-ar &>/dev/null; then + AR="$(command -v llvm-ar)" + else + echo "Unable to find ar or llvm-ar on PATH, add them to PATH or set AR environment variable pointing to the available AR tool" + exit 1 + fi + fi + + PYTHON=${PYTHON_EXECUTABLE:-python3} + + # shellcheck disable=SC2086,SC2046 + echo running "$PYTHON" "$__CrossDir/install-debs.py" --arch "$__UbuntuArch" --mirror "$__UbuntuRepo" --rootfsdir "$__RootfsDir" --artool "$AR" \ + $(for suite in $__Suites; do echo -n "--suite $suite "; done) \ + $__UbuntuPackages + + # shellcheck disable=SC2086,SC2046 + "$PYTHON" "$__CrossDir/install-debs.py" --arch "$__UbuntuArch" --mirror "$__UbuntuRepo" --rootfsdir "$__RootfsDir" --artool "$AR" \ + $(for suite in $__Suites; do echo -n "--suite $suite "; done) \ + $__UbuntuPackages + exit 0 + fi + + __UpdateOptions= if [[ "$__SkipSigCheck" == "0" ]]; then __Keyring="$__Keyring --force-check-gpg" + else + __Keyring= + __UpdateOptions="--allow-unauthenticated --allow-insecure-repositories" fi # shellcheck disable=SC2086 echo running debootstrap "--variant=minbase" $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo" - debootstrap "--variant=minbase" $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo" + # shellcheck disable=SC2086 + if ! debootstrap "--variant=minbase" $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo"; then + echo "debootstrap failed! dumping debootstrap.log" + cat "$__RootfsDir/debootstrap/debootstrap.log" + exit 1 + fi + + rm -rf "$__RootfsDir"/etc/apt/*.{sources,list} "$__RootfsDir"/etc/apt/sources.list.d mkdir -p "$__RootfsDir/etc/apt/sources.list.d/" + + # shellcheck disable=SC2086 cat > "$__RootfsDir/etc/apt/sources.list.d/$__CodeName.sources" < token2) - (token1 < token2) + else: + return -1 if isinstance(token1, str) else 1 + + return len(tokens1) - len(tokens2) + +def compare_debian_versions(version1, version2): + """Compare two Debian package versions.""" + epoch1, upstream1, revision1 = parse_debian_version(version1) + epoch2, upstream2, revision2 = parse_debian_version(version2) + + if epoch1 != epoch2: + return epoch1 - epoch2 + + result = compare_upstream_version(upstream1, upstream2) + if result != 0: + return result + + return compare_upstream_version(revision1, revision2) + +def resolve_dependencies(packages, aliases, desired_packages): + """Recursively resolves dependencies for the desired packages.""" + resolved = [] + to_process = deque(desired_packages) + + while to_process: + current = to_process.popleft() + resolved_package = current if current in packages else aliases.get(current, [None])[0] + + if not resolved_package: + print(f"Error: Package '{current}' was not found in the available packages.") + sys.exit(1) + + if resolved_package not in resolved: + resolved.append(resolved_package) + + deps = packages.get(resolved_package, {}).get("Depends", "") + if deps: + deps = [dep.split(' ')[0] for dep in deps.split(', ') if dep] + for dep in deps: + if dep not in resolved and dep not in to_process and dep in packages: + to_process.append(dep) + + return resolved + +def parse_package_index(content): + """Parses the Packages.gz file and returns package information.""" + packages = {} + aliases = {} + entries = re.split(r'\n\n+', content) + + for entry in entries: + fields = dict(re.findall(r'^(\S+): (.+)$', entry, re.MULTILINE)) + if "Package" in fields: + package_name = fields["Package"] + version = fields.get("Version") + filename = fields.get("Filename") + depends = fields.get("Depends") + provides = fields.get("Provides", None) + + # Only update if package_name is not in packages or if the new version is higher + if package_name not in packages or compare_debian_versions(version, packages[package_name]["Version"]) > 0: + packages[package_name] = { + "Version": version, + "Filename": filename, + "Depends": depends + } + + # Update aliases if package provides any alternatives + if provides: + provides_list = [x.strip() for x in provides.split(",")] + for alias in provides_list: + # Strip version specifiers + alias_name = re.sub(r'\s*\(=.*\)', '', alias) + if alias_name not in aliases: + aliases[alias_name] = [] + if package_name not in aliases[alias_name]: + aliases[alias_name].append(package_name) + + return packages, aliases + +def install_packages(mirror, packages_info, aliases, tmp_dir, extract_dir, ar_tool, desired_packages): + """Downloads .deb files and extracts them.""" + resolved_packages = resolve_dependencies(packages_info, aliases, desired_packages) + print(f"Resolved packages (including dependencies): {resolved_packages}") + + packages_to_download = {} + + for pkg in resolved_packages: + if pkg in packages_info: + packages_to_download[pkg] = packages_info[pkg] + + if pkg in aliases: + for alias in aliases[pkg]: + if alias in packages_info: + packages_to_download[alias] = packages_info[alias] + + asyncio.run(download_deb_files_parallel(mirror, packages_to_download, tmp_dir)) + + package_to_deb_file_map = {} + for pkg in resolved_packages: + pkg_info = packages_info.get(pkg) + if pkg_info: + deb_filename = pkg_info.get("Filename") + if deb_filename: + deb_file_path = os.path.join(tmp_dir, os.path.basename(deb_filename)) + package_to_deb_file_map[pkg] = deb_file_path + + for pkg in reversed(resolved_packages): + deb_file = package_to_deb_file_map.get(pkg) + if deb_file and os.path.exists(deb_file): + extract_deb_file(deb_file, tmp_dir, extract_dir, ar_tool) + + print("All done!") + +def extract_deb_file(deb_file, tmp_dir, extract_dir, ar_tool): + """Extract .deb file contents""" + + os.makedirs(extract_dir, exist_ok=True) + + with tempfile.TemporaryDirectory(dir=tmp_dir) as tmp_subdir: + result = subprocess.run(f"{ar_tool} t {os.path.abspath(deb_file)}", cwd=tmp_subdir, check=True, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + tar_filename = None + for line in result.stdout.decode().splitlines(): + if line.startswith("data.tar"): + tar_filename = line.strip() + break + + if not tar_filename: + raise FileNotFoundError(f"Could not find 'data.tar.*' in {deb_file}.") + + tar_file_path = os.path.join(tmp_subdir, tar_filename) + print(f"Extracting {tar_filename} from {deb_file}..") + + subprocess.run(f"{ar_tool} p {os.path.abspath(deb_file)} {tar_filename} > {tar_file_path}", check=True, shell=True) + + file_extension = os.path.splitext(tar_file_path)[1].lower() + + if file_extension == ".xz": + mode = "r:xz" + elif file_extension == ".gz": + mode = "r:gz" + elif file_extension == ".zst": + # zstd is not supported by standard library yet + decompressed_tar_path = tar_file_path.replace(".zst", "") + with open(tar_file_path, "rb") as zst_file, open(decompressed_tar_path, "wb") as decompressed_file: + dctx = zstandard.ZstdDecompressor() + dctx.copy_stream(zst_file, decompressed_file) + + tar_file_path = decompressed_tar_path + mode = "r" + else: + raise ValueError(f"Unsupported compression format: {file_extension}") + + with tarfile.open(tar_file_path, mode) as tar: + tar.extractall(path=extract_dir, filter='fully_trusted') + +def finalize_setup(rootfsdir): + lib_dir = os.path.join(rootfsdir, 'lib') + usr_lib_dir = os.path.join(rootfsdir, 'usr', 'lib') + + if os.path.exists(lib_dir): + if os.path.islink(lib_dir): + os.remove(lib_dir) + else: + os.makedirs(usr_lib_dir, exist_ok=True) + + for item in os.listdir(lib_dir): + src = os.path.join(lib_dir, item) + dest = os.path.join(usr_lib_dir, item) + + if os.path.isdir(src): + shutil.copytree(src, dest, dirs_exist_ok=True) + else: + shutil.copy2(src, dest) + + shutil.rmtree(lib_dir) + + os.symlink(usr_lib_dir, lib_dir) + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Generate rootfs for .NET runtime on Debian-like OS") + parser.add_argument("--distro", required=False, help="Distro name (e.g., debian, ubuntu, etc.)") + parser.add_argument("--arch", required=True, help="Architecture (e.g., amd64, loong64, etc.)") + parser.add_argument("--rootfsdir", required=True, help="Destination directory.") + parser.add_argument('--suite', required=True, action='append', help='Specify one or more repository suites to collect index data.') + parser.add_argument("--mirror", required=False, help="Mirror (e.g., http://ftp.debian.org/debian-ports etc.)") + parser.add_argument("--artool", required=False, default="ar", help="ar tool to extract debs (e.g., ar, llvm-ar etc.)") + parser.add_argument("packages", nargs="+", help="List of package names to be installed.") + + args = parser.parse_args() + + if args.mirror is None: + if args.distro == "ubuntu": + args.mirror = "http://archive.ubuntu.com/ubuntu" if args.arch in ["amd64", "i386"] else "http://ports.ubuntu.com/ubuntu-ports" + elif args.distro == "debian": + args.mirror = "http://ftp.debian.org/debian-ports" + else: + raise Exception("Unsupported distro") + + DESIRED_PACKAGES = args.packages + [ # base packages + "dpkg", + "busybox", + "libc-bin", + "base-files", + "base-passwd", + "debianutils" + ] + + print(f"Creating rootfs. rootfsdir: {args.rootfsdir}, distro: {args.distro}, arch: {args.arch}, suites: {args.suite}, mirror: {args.mirror}") + + package_index_content = asyncio.run(download_package_index_parallel(args.mirror, args.arch, args.suite)) + + packages_info, aliases = parse_package_index(package_index_content) + + with tempfile.TemporaryDirectory() as tmp_dir: + install_packages(args.mirror, packages_info, aliases, tmp_dir, args.rootfsdir, args.artool, DESIRED_PACKAGES) + + finalize_setup(args.rootfsdir) diff --git a/eng/common/cross/tizen-build-rootfs.sh b/eng/common/cross/tizen-build-rootfs.sh old mode 100644 new mode 100755 diff --git a/eng/common/cross/tizen-fetch.sh b/eng/common/cross/tizen-fetch.sh old mode 100644 new mode 100755 index 28936ceef3a7..37c3a61f1de8 --- a/eng/common/cross/tizen-fetch.sh +++ b/eng/common/cross/tizen-fetch.sh @@ -156,13 +156,8 @@ fetch_tizen_pkgs() done } -if [ "$TIZEN_ARCH" == "riscv64" ]; then - BASE="Tizen-Base-RISCV" - UNIFIED="Tizen-Unified-RISCV" -else - BASE="Tizen-Base" - UNIFIED="Tizen-Unified" -fi +BASE="Tizen-Base" +UNIFIED="Tizen-Unified" Inform "Initialize ${TIZEN_ARCH} base" fetch_tizen_pkgs_init standard $BASE diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake index 9a7ecfbd42c5..0ff85cf0367e 100644 --- a/eng/common/cross/toolchain.cmake +++ b/eng/common/cross/toolchain.cmake @@ -67,6 +67,13 @@ elseif(TARGET_ARCH_NAME STREQUAL "armv6") else() set(TOOLCHAIN "arm-linux-gnueabihf") endif() +elseif(TARGET_ARCH_NAME STREQUAL "loongarch64") + set(CMAKE_SYSTEM_PROCESSOR "loongarch64") + if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/loongarch64-alpine-linux-musl) + set(TOOLCHAIN "loongarch64-alpine-linux-musl") + else() + set(TOOLCHAIN "loongarch64-linux-gnu") + endif() elseif(TARGET_ARCH_NAME STREQUAL "ppc64le") set(CMAKE_SYSTEM_PROCESSOR ppc64le) if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/powerpc64le-alpine-linux-musl) @@ -118,7 +125,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "x86") set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu") endif() else() - message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only arm, arm64, armel, armv6, ppc64le, riscv64, s390x, x64 and x86 are supported!") + message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only arm, arm64, armel, armv6, loongarch64, ppc64le, riscv64, s390x, x64 and x86 are supported!") endif() if(DEFINED ENV{TOOLCHAIN}) @@ -148,6 +155,25 @@ if(TIZEN) include_directories(SYSTEM ${TIZEN_TOOLCHAIN_PATH}/include/c++/${TIZEN_TOOLCHAIN}) endif() +function(locate_toolchain_exec exec var) + set(TOOLSET_PREFIX ${TOOLCHAIN}-) + string(TOUPPER ${exec} EXEC_UPPERCASE) + if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "") + set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE) + return() + endif() + + find_program(EXEC_LOCATION_${exec} + NAMES + "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}" + "${TOOLSET_PREFIX}${exec}") + + if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND") + message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.") + endif() + set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE) +endfunction() + if(ANDROID) if(TARGET_ARCH_NAME STREQUAL "arm") set(ANDROID_ABI armeabi-v7a) @@ -178,66 +204,24 @@ elseif(FREEBSD) set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=lld") elseif(ILLUMOS) set(CMAKE_SYSROOT "${CROSS_ROOTFS}") + set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}") + set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") + set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") include_directories(SYSTEM ${CROSS_ROOTFS}/include) - set(TOOLSET_PREFIX ${TOOLCHAIN}-) - function(locate_toolchain_exec exec var) - string(TOUPPER ${exec} EXEC_UPPERCASE) - if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "") - set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE) - return() - endif() - - find_program(EXEC_LOCATION_${exec} - NAMES - "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}" - "${TOOLSET_PREFIX}${exec}") - - if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND") - message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.") - endif() - set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE) - endfunction() - - set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}") - locate_toolchain_exec(gcc CMAKE_C_COMPILER) locate_toolchain_exec(g++ CMAKE_CXX_COMPILER) - - set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") - set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") elseif(HAIKU) set(CMAKE_SYSROOT "${CROSS_ROOTFS}") set(CMAKE_PROGRAM_PATH "${CMAKE_PROGRAM_PATH};${CROSS_ROOTFS}/cross-tools-x86_64/bin") - - set(TOOLSET_PREFIX ${TOOLCHAIN}-) - function(locate_toolchain_exec exec var) - string(TOUPPER ${exec} EXEC_UPPERCASE) - if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "") - set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE) - return() - endif() - - find_program(EXEC_LOCATION_${exec} - NAMES - "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}" - "${TOOLSET_PREFIX}${exec}") - - if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND") - message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.") - endif() - set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE) - endfunction() - set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}") + set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") + set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") locate_toolchain_exec(gcc CMAKE_C_COMPILER) locate_toolchain_exec(g++ CMAKE_CXX_COMPILER) - set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp") - set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") - # let CMake set up the correct search paths include(Platform/Haiku) else() @@ -307,7 +291,7 @@ endif() # Specify compile options -if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|ppc64le|riscv64|s390x|x64|x86)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS OR HAIKU) +if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|loongarch64|ppc64le|riscv64|s390x|x64|x86)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS OR HAIKU) set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN}) set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN}) set(CMAKE_ASM_COMPILER_TARGET ${TOOLCHAIN}) diff --git a/eng/common/darc-init.sh b/eng/common/darc-init.sh index 36dbd45e1ce8..e889f439b8dc 100755 --- a/eng/common/darc-init.sh +++ b/eng/common/darc-init.sh @@ -68,7 +68,7 @@ function InstallDarcCli { fi fi - local arcadeServicesSource="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" + local arcadeServicesSource="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" echo "Installing Darc CLI version $darcVersion..." echo "You may need to restart your command shell if this is the first dotnet tool you have installed." diff --git a/eng/common/dotnet.cmd b/eng/common/dotnet.cmd new file mode 100644 index 000000000000..527fa4bb38fb --- /dev/null +++ b/eng/common/dotnet.cmd @@ -0,0 +1,7 @@ +@echo off + +:: This script is used to install the .NET SDK. +:: It will also invoke the SDK with any provided arguments. + +powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0dotnet.ps1""" %*" +exit /b %ErrorLevel% diff --git a/eng/common/dotnet.ps1 b/eng/common/dotnet.ps1 new file mode 100644 index 000000000000..45e5676c9ebd --- /dev/null +++ b/eng/common/dotnet.ps1 @@ -0,0 +1,11 @@ +# This script is used to install the .NET SDK. +# It will also invoke the SDK with any provided arguments. + +. $PSScriptRoot\tools.ps1 +$dotnetRoot = InitializeDotNetCli -install:$true + +# Invoke acquired SDK with args if they are provided +if ($args.count -gt 0) { + $env:DOTNET_NOLOGO=1 + & "$dotnetRoot\dotnet.exe" $args +} diff --git a/eng/common/dotnet.sh b/eng/common/dotnet.sh new file mode 100755 index 000000000000..2ef68235675f --- /dev/null +++ b/eng/common/dotnet.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# This script is used to install the .NET SDK. +# It will also invoke the SDK with any provided arguments. + +source="${BASH_SOURCE[0]}" +# resolve $SOURCE until the file is no longer a symlink +while [[ -h $source ]]; do + scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" + source="$(readlink "$source")" + + # if $source was a relative symlink, we need to resolve it relative to the path where the + # symlink file was located + [[ $source != /* ]] && source="$scriptroot/$source" +done +scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" + +source $scriptroot/tools.sh +InitializeDotNetCli true # install + +# Invoke acquired SDK with args if they are provided +if [[ $# > 0 ]]; then + __dotnetDir=${_InitializeDotNetCli} + dotnetPath=${__dotnetDir}/dotnet + ${dotnetPath} "$@" +fi diff --git a/eng/common/generate-locproject.ps1 b/eng/common/generate-locproject.ps1 index 524aaa57f2b7..fa1cdc2b3007 100644 --- a/eng/common/generate-locproject.ps1 +++ b/eng/common/generate-locproject.ps1 @@ -33,15 +33,27 @@ $jsonTemplateFiles | ForEach-Object { $jsonWinformsTemplateFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "en\\strings\.json" } # current winforms pattern +$wxlFilesV3 = @() +$wxlFilesV5 = @() $wxlFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\.+\.wxl" -And -Not( $_.Directory.Name -Match "\d{4}" ) } # localized files live in four digit lang ID directories; this excludes them if (-not $wxlFiles) { $wxlEnFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\1033\\.+\.wxl" } # pick up en files (1033 = en) specifically so we can copy them to use as the neutral xlf files if ($wxlEnFiles) { - $wxlFiles = @() - $wxlEnFiles | ForEach-Object { - $destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)" - $wxlFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru - } + $wxlFiles = @() + $wxlEnFiles | ForEach-Object { + $destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)" + $content = Get-Content $_.FullName -Raw + + # Split files on schema to select different parser settings in the generated project. + if ($content -like "*http://wixtoolset.org/schemas/v4/wxl*") + { + $wxlFilesV5 += Copy-Item $_.FullName -Destination $destinationFile -PassThru + } + elseif ($content -like "*http://schemas.microsoft.com/wix/2006/localization*") + { + $wxlFilesV3 += Copy-Item $_.FullName -Destination $destinationFile -PassThru + } + } } } @@ -114,7 +126,32 @@ $locJson = @{ CloneLanguageSet = "WiX_CloneLanguages" LssFiles = @( "wxl_loc.lss" ) LocItems = @( - $wxlFiles | ForEach-Object { + $wxlFilesV3 | ForEach-Object { + $outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\" + $continue = $true + foreach ($exclusion in $exclusions.Exclusions) { + if ($_.FullName.Contains($exclusion)) { + $continue = $false + } + } + $sourceFile = ($_.FullName | Resolve-Path -Relative) + if ($continue) + { + return @{ + SourceFile = $sourceFile + CopyOption = "LangIDOnPath" + OutputPath = $outputPath + } + } + } + ) + }, + @{ + LanguageSet = $LanguageSet + CloneLanguageSet = "WiX_CloneLanguages" + LssFiles = @( "P210WxlSchemaV4.lss" ) + LocItems = @( + $wxlFilesV5 | ForEach-Object { $outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\" $continue = $true foreach ($exclusion in $exclusions.Exclusions) { diff --git a/eng/common/generate-sbom-prep.sh b/eng/common/generate-sbom-prep.sh old mode 100644 new mode 100755 diff --git a/eng/common/native/install-dependencies.sh b/eng/common/native/install-dependencies.sh new file mode 100755 index 000000000000..477a44f335be --- /dev/null +++ b/eng/common/native/install-dependencies.sh @@ -0,0 +1,62 @@ +#!/bin/sh + +set -e + +# This is a simple script primarily used for CI to install necessary dependencies +# +# Usage: +# +# ./install-dependencies.sh + +os="$(echo "$1" | tr "[:upper:]" "[:lower:]")" + +if [ -z "$os" ]; then + . "$(dirname "$0")"/init-os-and-arch.sh +fi + +case "$os" in + linux) + if [ -e /etc/os-release ]; then + . /etc/os-release + fi + + if [ "$ID" = "debian" ] || [ "$ID_LIKE" = "debian" ]; then + apt update + + apt install -y build-essential gettext locales cmake llvm clang lld lldb liblldb-dev libunwind8-dev libicu-dev liblttng-ust-dev \ + libssl-dev libkrb5-dev pigz cpio + + localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 + elif [ "$ID" = "fedora" ] || [ "$ID" = "rhel" ] || [ "$ID" = "azurelinux" ]; then + pkg_mgr="$(command -v tdnf 2>/dev/null || command -v dnf)" + $pkg_mgr install -y cmake llvm lld lldb clang python curl libicu-devel openssl-devel krb5-devel lttng-ust-devel pigz cpio + elif [ "$ID" = "alpine" ]; then + apk add build-base cmake bash curl clang llvm-dev lld lldb krb5-dev lttng-ust-dev icu-dev openssl-dev pigz cpio + else + echo "Unsupported distro. distro: $ID" + exit 1 + fi + ;; + + osx|maccatalyst|ios|iossimulator|tvos|tvossimulator) + echo "Installed xcode version: $(xcode-select -p)" + + export HOMEBREW_NO_INSTALL_CLEANUP=1 + export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 + # Skip brew update for now, see https://github.com/actions/setup-python/issues/577 + # brew update --preinstall + brew bundle --no-upgrade --file=- < Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)." + Write-Host " -excludeCIBinaryLog When running on CI, allow no binary log (short: -nobl)" Write-Host "" Write-Host "Command line arguments not listed above are passed thru to msbuild." } @@ -34,10 +39,11 @@ function Print-Usage() { function Build([string]$target) { $logSuffix = if ($target -eq 'Execute') { '' } else { ".$target" } $log = Join-Path $LogDir "$task$logSuffix.binlog" + $binaryLogArg = if ($binaryLog) { "/bl:$log" } else { "" } $outputPath = Join-Path $ToolsetDir "$task\" MSBuild $taskProject ` - /bl:$log ` + $binaryLogArg ` /t:$target ` /p:Configuration=$configuration ` /p:RepoRoot=$RepoRoot ` @@ -64,7 +70,7 @@ try { $GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty } if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) { - $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.12.0" -MemberType NoteProperty + $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "18.0.0" -MemberType NoteProperty } if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") { $xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true diff --git a/eng/common/sdk-task.sh b/eng/common/sdk-task.sh new file mode 100755 index 000000000000..3270f83fa9a7 --- /dev/null +++ b/eng/common/sdk-task.sh @@ -0,0 +1,121 @@ +#!/usr/bin/env bash + +show_usage() { + echo "Common settings:" + echo " --task Name of Arcade task (name of a project in SdkTasks directory of the Arcade SDK package)" + echo " --restore Restore dependencies" + echo " --verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]" + echo " --help Print help and exit" + echo "" + + echo "Advanced settings:" + echo " --excludeCIBinarylog Don't output binary log (short: -nobl)" + echo " --noWarnAsError Do not warn as error" + echo "" + echo "Command line arguments not listed above are passed thru to msbuild." +} + +source="${BASH_SOURCE[0]}" + +# resolve $source until the file is no longer a symlink +while [[ -h "$source" ]]; do + scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" + source="$(readlink "$source")" + # if $source was a relative symlink, we need to resolve it relative to the path where the + # symlink file was located + [[ $source != /* ]] && source="$scriptroot/$source" +done +scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" + +Build() { + local target=$1 + local log_suffix="" + [[ "$target" != "Execute" ]] && log_suffix=".$target" + local log="$log_dir/$task$log_suffix.binlog" + local binaryLogArg="" + [[ $binary_log == true ]] && binaryLogArg="/bl:$log" + local output_path="$toolset_dir/$task/" + + MSBuild "$taskProject" \ + $binaryLogArg \ + /t:"$target" \ + /p:Configuration="$configuration" \ + /p:RepoRoot="$repo_root" \ + /p:BaseIntermediateOutputPath="$output_path" \ + /v:"$verbosity" \ + $properties +} + +binary_log=true +configuration="Debug" +verbosity="minimal" +exclude_ci_binary_log=false +restore=false +help=false +properties='' +warnAsError=true + +while (($# > 0)); do + lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")" + case $lowerI in + --task) + task=$2 + shift 2 + ;; + --restore) + restore=true + shift 1 + ;; + --verbosity) + verbosity=$2 + shift 2 + ;; + --excludecibinarylog|--nobl) + binary_log=false + exclude_ci_binary_log=true + shift 1 + ;; + --noWarnAsError) + warnAsError=false + shift 1 + ;; + --help) + help=true + shift 1 + ;; + *) + properties="$properties $1" + shift 1 + ;; + esac +done + +ci=true + +if $help; then + show_usage + exit 0 +fi + +. "$scriptroot/tools.sh" +InitializeToolset + +if [[ -z "$task" ]]; then + Write-PipelineTelemetryError -Category 'Task' -Name 'MissingTask' -Message "Missing required parameter '-task '" + ExitWithExitCode 1 +fi + +taskProject=$(GetSdkTaskProject "$task") +if [[ ! -e "$taskProject" ]]; then + Write-PipelineTelemetryError -Category 'Task' -Name 'UnknownTask' -Message "Unknown task: $task" + ExitWithExitCode 1 +fi + +if $restore; then + Build "Restore" +fi + +Build "Execute" + + +ExitWithExitCode 0 diff --git a/eng/common/sdl/packages.config b/eng/common/sdl/packages.config index 4585cfd6bba1..e5f543ea68c2 100644 --- a/eng/common/sdl/packages.config +++ b/eng/common/sdl/packages.config @@ -1,4 +1,4 @@ - + diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml index 81ea7a261f2d..92a0664f5647 100644 --- a/eng/common/templates-official/job/job.yml +++ b/eng/common/templates-official/job/job.yml @@ -31,6 +31,7 @@ jobs: PathtoPublish: '$(Build.ArtifactStagingDirectory)/artifacts' ArtifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }} condition: always() + retryCountOnTaskFailure: 10 # for any logs being locked continueOnError: true - ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}: - output: pipelineArtifact @@ -39,6 +40,7 @@ jobs: displayName: 'Publish logs' continueOnError: true condition: always() + retryCountOnTaskFailure: 10 # for any logs being locked sbomEnabled: false # we don't need SBOM for logs - ${{ if eq(parameters.enablePublishBuildArtifacts, true) }}: @@ -46,7 +48,7 @@ jobs: displayName: Publish Logs PathtoPublish: '$(Build.ArtifactStagingDirectory)/artifacts/log/$(_BuildConfig)' publishLocation: Container - ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} + ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)_Attempt$(System.JobAttempt)' ) }} continueOnError: true condition: always() sbomEnabled: false # we don't need SBOM for logs diff --git a/eng/common/templates-official/steps/publish-build-artifacts.yml b/eng/common/templates-official/steps/publish-build-artifacts.yml index 100a3fc98493..fcf6637b2ebc 100644 --- a/eng/common/templates-official/steps/publish-build-artifacts.yml +++ b/eng/common/templates-official/steps/publish-build-artifacts.yml @@ -24,6 +24,10 @@ parameters: - name: is1ESPipeline type: boolean default: true + +- name: retryCountOnTaskFailure + type: string + default: 10 steps: - ${{ if ne(parameters.is1ESPipeline, true) }}: @@ -38,4 +42,5 @@ steps: PathtoPublish: ${{ parameters.pathToPublish }} ${{ if parameters.artifactName }}: ArtifactName: ${{ parameters.artifactName }} - + ${{ if parameters.retryCountOnTaskFailure }}: + retryCountOnTaskFailure: ${{ parameters.retryCountOnTaskFailure }} diff --git a/eng/common/templates-official/steps/source-index-stage1-publish.yml b/eng/common/templates-official/steps/source-index-stage1-publish.yml new file mode 100644 index 000000000000..9b8b80942b5c --- /dev/null +++ b/eng/common/templates-official/steps/source-index-stage1-publish.yml @@ -0,0 +1,7 @@ +steps: +- template: /eng/common/core-templates/steps/source-index-stage1-publish.yml + parameters: + is1ESPipeline: true + + ${{ each parameter in parameters }}: + ${{ parameter.key }}: ${{ parameter.value }} diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml index 5bdd3dd85fd2..238fa0818f7b 100644 --- a/eng/common/templates/job/job.yml +++ b/eng/common/templates/job/job.yml @@ -46,6 +46,7 @@ jobs: artifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }} continueOnError: true condition: always() + retryCountOnTaskFailure: 10 # for any logs being locked - ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}: - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml parameters: @@ -56,6 +57,7 @@ jobs: displayName: 'Publish logs' continueOnError: true condition: always() + retryCountOnTaskFailure: 10 # for any logs being locked sbomEnabled: false # we don't need SBOM for logs - ${{ if ne(parameters.enablePublishBuildArtifacts, 'false') }}: @@ -66,7 +68,7 @@ jobs: displayName: Publish Logs pathToPublish: '$(Build.ArtifactStagingDirectory)/artifacts/log/$(_BuildConfig)' publishLocation: Container - artifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} + artifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)_Attempt$(System.JobAttempt)' ) }} continueOnError: true condition: always() diff --git a/eng/common/templates/steps/publish-build-artifacts.yml b/eng/common/templates/steps/publish-build-artifacts.yml index 6428a98dfef6..605e602e94d1 100644 --- a/eng/common/templates/steps/publish-build-artifacts.yml +++ b/eng/common/templates/steps/publish-build-artifacts.yml @@ -25,6 +25,10 @@ parameters: type: string default: 'Container' +- name: retryCountOnTaskFailure + type: string + default: 10 + steps: - ${{ if eq(parameters.is1ESPipeline, true) }}: - 'eng/common/templates cannot be referenced from a 1ES managed template': error @@ -37,4 +41,6 @@ steps: PublishLocation: ${{ parameters.publishLocation }} PathtoPublish: ${{ parameters.pathToPublish }} ${{ if parameters.artifactName }}: - ArtifactName: ${{ parameters.artifactName }} \ No newline at end of file + ArtifactName: ${{ parameters.artifactName }} + ${{ if parameters.retryCountOnTaskFailure }}: + retryCountOnTaskFailure: ${{ parameters.retryCountOnTaskFailure }} diff --git a/eng/common/templates/steps/source-index-stage1-publish.yml b/eng/common/templates/steps/source-index-stage1-publish.yml new file mode 100644 index 000000000000..182cec33a7bb --- /dev/null +++ b/eng/common/templates/steps/source-index-stage1-publish.yml @@ -0,0 +1,7 @@ +steps: +- template: /eng/common/core-templates/steps/source-index-stage1-publish.yml + parameters: + is1ESPipeline: false + + ${{ each parameter in parameters }}: + ${{ parameter.key }}: ${{ parameter.value }} diff --git a/eng/common/templates/steps/vmr-sync.yml b/eng/common/templates/steps/vmr-sync.yml new file mode 100644 index 000000000000..599afb6186b8 --- /dev/null +++ b/eng/common/templates/steps/vmr-sync.yml @@ -0,0 +1,207 @@ +### These steps synchronize new code from product repositories into the VMR (https://github.com/dotnet/dotnet). +### They initialize the darc CLI and pull the new updates. +### Changes are applied locally onto the already cloned VMR (located in $vmrPath). + +parameters: +- name: targetRef + displayName: Target revision in dotnet/ to synchronize + type: string + default: $(Build.SourceVersion) + +- name: vmrPath + displayName: Path where the dotnet/dotnet is checked out to + type: string + default: $(Agent.BuildDirectory)/vmr + +- name: additionalSyncs + displayName: Optional list of package names whose repo's source will also be synchronized in the local VMR, e.g. NuGet.Protocol + type: object + default: [] + +steps: +- checkout: vmr + displayName: Clone dotnet/dotnet + path: vmr + clean: true + +- checkout: self + displayName: Clone $(Build.Repository.Name) + path: repo + fetchDepth: 0 + +# This step is needed so that when we get a detached HEAD / shallow clone, +# we still pull the commit into the temporary repo clone to use it during the sync. +# Also unshallow the clone so that forwardflow command would work. +- script: | + git branch repo-head + git rev-parse HEAD + displayName: Label PR commit + workingDirectory: $(Agent.BuildDirectory)/repo + +- script: | + vmr_sha=$(grep -oP '(?<=Sha=")[^"]*' $(Agent.BuildDirectory)/repo/eng/Version.Details.xml) + echo "##vso[task.setvariable variable=vmr_sha]$vmr_sha" + displayName: Obtain the vmr sha from Version.Details.xml (Unix) + condition: ne(variables['Agent.OS'], 'Windows_NT') + workingDirectory: $(Agent.BuildDirectory)/repo + +- powershell: | + [xml]$xml = Get-Content -Path $(Agent.BuildDirectory)/repo/eng/Version.Details.xml + $vmr_sha = $xml.SelectSingleNode("//Source").Sha + Write-Output "##vso[task.setvariable variable=vmr_sha]$vmr_sha" + displayName: Obtain the vmr sha from Version.Details.xml (Windows) + condition: eq(variables['Agent.OS'], 'Windows_NT') + workingDirectory: $(Agent.BuildDirectory)/repo + +- script: | + git fetch --all + git checkout $(vmr_sha) + displayName: Checkout VMR at correct sha for repo flow + workingDirectory: ${{ parameters.vmrPath }} + +- script: | + git config --global user.name "dotnet-maestro[bot]" + git config --global user.email "dotnet-maestro[bot]@users.noreply.github.com" + displayName: Set git author to dotnet-maestro[bot] + workingDirectory: ${{ parameters.vmrPath }} + +- script: | + ./eng/common/vmr-sync.sh \ + --vmr ${{ parameters.vmrPath }} \ + --tmp $(Agent.TempDirectory) \ + --azdev-pat '$(dn-bot-all-orgs-code-r)' \ + --ci \ + --debug + + if [ "$?" -ne 0 ]; then + echo "##vso[task.logissue type=error]Failed to synchronize the VMR" + exit 1 + fi + displayName: Sync repo into VMR (Unix) + condition: ne(variables['Agent.OS'], 'Windows_NT') + workingDirectory: $(Agent.BuildDirectory)/repo + +- script: | + git config --global diff.astextplain.textconv echo + git config --system core.longpaths true + displayName: Configure Windows git (longpaths, astextplain) + condition: eq(variables['Agent.OS'], 'Windows_NT') + +- powershell: | + ./eng/common/vmr-sync.ps1 ` + -vmr ${{ parameters.vmrPath }} ` + -tmp $(Agent.TempDirectory) ` + -azdevPat '$(dn-bot-all-orgs-code-r)' ` + -ci ` + -debugOutput + + if ($LASTEXITCODE -ne 0) { + echo "##vso[task.logissue type=error]Failed to synchronize the VMR" + exit 1 + } + displayName: Sync repo into VMR (Windows) + condition: eq(variables['Agent.OS'], 'Windows_NT') + workingDirectory: $(Agent.BuildDirectory)/repo + +- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}: + - task: CopyFiles@2 + displayName: Collect failed patches + condition: failed() + inputs: + SourceFolder: '$(Agent.TempDirectory)' + Contents: '*.patch' + TargetFolder: '$(Build.ArtifactStagingDirectory)/FailedPatches' + + - publish: '$(Build.ArtifactStagingDirectory)/FailedPatches' + artifact: $(System.JobDisplayName)_FailedPatches + displayName: Upload failed patches + condition: failed() + +- ${{ each assetName in parameters.additionalSyncs }}: + # The vmr-sync script ends up staging files in the local VMR so we have to commit those + - script: + git commit --allow-empty -am "Forward-flow $(Build.Repository.Name)" + displayName: Commit local VMR changes + workingDirectory: ${{ parameters.vmrPath }} + + - script: | + set -ex + + echo "Searching for details of asset ${{ assetName }}..." + + # Use darc to get dependencies information + dependencies=$(./.dotnet/dotnet darc get-dependencies --name '${{ assetName }}' --ci) + + # Extract repository URL and commit hash + repository=$(echo "$dependencies" | grep 'Repo:' | sed 's/Repo:[[:space:]]*//' | head -1) + + if [ -z "$repository" ]; then + echo "##vso[task.logissue type=error]Asset ${{ assetName }} not found in the dependency list" + exit 1 + fi + + commit=$(echo "$dependencies" | grep 'Commit:' | sed 's/Commit:[[:space:]]*//' | head -1) + + echo "Updating the VMR from $repository / $commit..." + cd .. + git clone $repository ${{ assetName }} + cd ${{ assetName }} + git checkout $commit + git branch "sync/$commit" + + ./eng/common/vmr-sync.sh \ + --vmr ${{ parameters.vmrPath }} \ + --tmp $(Agent.TempDirectory) \ + --azdev-pat '$(dn-bot-all-orgs-code-r)' \ + --ci \ + --debug + + if [ "$?" -ne 0 ]; then + echo "##vso[task.logissue type=error]Failed to synchronize the VMR" + exit 1 + fi + displayName: Sync ${{ assetName }} into (Unix) + condition: ne(variables['Agent.OS'], 'Windows_NT') + workingDirectory: $(Agent.BuildDirectory)/repo + + - powershell: | + $ErrorActionPreference = 'Stop' + + Write-Host "Searching for details of asset ${{ assetName }}..." + + $dependencies = .\.dotnet\dotnet darc get-dependencies --name '${{ assetName }}' --ci + + $repository = $dependencies | Select-String -Pattern 'Repo:\s+([^\s]+)' | Select-Object -First 1 + $repository -match 'Repo:\s+([^\s]+)' | Out-Null + $repository = $matches[1] + + if ($repository -eq $null) { + Write-Error "Asset ${{ assetName }} not found in the dependency list" + exit 1 + } + + $commit = $dependencies | Select-String -Pattern 'Commit:\s+([^\s]+)' | Select-Object -First 1 + $commit -match 'Commit:\s+([^\s]+)' | Out-Null + $commit = $matches[1] + + Write-Host "Updating the VMR from $repository / $commit..." + cd .. + git clone $repository ${{ assetName }} + cd ${{ assetName }} + git checkout $commit + git branch "sync/$commit" + + .\eng\common\vmr-sync.ps1 ` + -vmr ${{ parameters.vmrPath }} ` + -tmp $(Agent.TempDirectory) ` + -azdevPat '$(dn-bot-all-orgs-code-r)' ` + -ci ` + -debugOutput + + if ($LASTEXITCODE -ne 0) { + echo "##vso[task.logissue type=error]Failed to synchronize the VMR" + exit 1 + } + displayName: Sync ${{ assetName }} into (Windows) + condition: ne(variables['Agent.OS'], 'Windows_NT') + workingDirectory: $(Agent.BuildDirectory)/repo diff --git a/eng/common/templates/vmr-build-pr.yml b/eng/common/templates/vmr-build-pr.yml new file mode 100644 index 000000000000..ce3c29a62faf --- /dev/null +++ b/eng/common/templates/vmr-build-pr.yml @@ -0,0 +1,42 @@ +# This pipeline is used for running the VMR verification of the PR changes in repo-level PRs. +# +# It will run a full set of verification jobs defined in: +# https://github.com/dotnet/dotnet/blob/10060d128e3f470e77265f8490f5e4f72dae738e/eng/pipelines/templates/stages/vmr-build.yml#L27-L38 +# +# For repos that do not need to run the full set, you would do the following: +# +# 1. Copy this YML file to a repo-specific location, i.e. outside of eng/common. +# +# 2. Add `verifications` parameter to VMR template reference +# +# Examples: +# - For source-build stage 1 verification, add the following: +# verifications: [ "source-build-stage1" ] +# +# - For Windows only verifications, add the following: +# verifications: [ "unified-build-windows-x64", "unified-build-windows-x86" ] + +trigger: none +pr: none + +variables: +- template: /eng/common/templates/variables/pool-providers.yml@self + +- name: skipComponentGovernanceDetection # we run CG on internal builds only + value: true + +- name: Codeql.Enabled # we run CodeQL on internal builds only + value: false + +resources: + repositories: + - repository: vmr + type: github + name: dotnet/dotnet + endpoint: dotnet + +stages: +- template: /eng/pipelines/templates/stages/vmr-build.yml@vmr + parameters: + isBuiltFromVmr: false + scope: lite diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index a06513a59407..049fe6db994e 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -65,10 +65,8 @@ $ErrorActionPreference = 'Stop' # Base-64 encoded SAS token that has permission to storage container described by $runtimeSourceFeed [string]$runtimeSourceFeedKey = if (Test-Path variable:runtimeSourceFeedKey) { $runtimeSourceFeedKey } else { $null } -# True if the build is a product build -[bool]$productBuild = if (Test-Path variable:productBuild) { $productBuild } else { $false } - -[String[]]$properties = if (Test-Path variable:properties) { $properties } else { @() } +# True when the build is running within the VMR. +[bool]$fromVMR = if (Test-Path variable:fromVMR) { $fromVMR } else { $false } function Create-Directory ([string[]] $path) { New-Item -Path $path -Force -ItemType 'Directory' | Out-Null @@ -259,7 +257,20 @@ function Retry($downloadBlock, $maxRetries = 5) { function GetDotNetInstallScript([string] $dotnetRoot) { $installScript = Join-Path $dotnetRoot 'dotnet-install.ps1' + $shouldDownload = $false + if (!(Test-Path $installScript)) { + $shouldDownload = $true + } else { + # Check if the script is older than 30 days + $fileAge = (Get-Date) - (Get-Item $installScript).LastWriteTime + if ($fileAge.Days -gt 30) { + Write-Host "Existing install script is too old, re-downloading..." + $shouldDownload = $true + } + } + + if ($shouldDownload) { Create-Directory $dotnetRoot $ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit $uri = "https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.ps1" @@ -383,8 +394,8 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = # If the version of msbuild is going to be xcopied, # use this version. Version matches a package here: - # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/Microsoft.DotNet.Arcade.MSBuild.Xcopy/versions/17.12.0 - $defaultXCopyMSBuildVersion = '17.12.0' + # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/Microsoft.DotNet.Arcade.MSBuild.Xcopy/versions/18.0.0 + $defaultXCopyMSBuildVersion = '18.0.0' if (!$vsRequirements) { if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') { @@ -533,7 +544,8 @@ function LocateVisualStudio([object]$vsRequirements = $null){ if (Get-Member -InputObject $GlobalJson.tools -Name 'vswhere') { $vswhereVersion = $GlobalJson.tools.vswhere } else { - $vswhereVersion = '2.5.2' + # keep this in sync with the VSWhereVersion in DefaultVersions.props + $vswhereVersion = '3.1.7' } $vsWhereDir = Join-Path $ToolsDir "vswhere\$vswhereVersion" @@ -541,7 +553,8 @@ function LocateVisualStudio([object]$vsRequirements = $null){ if (!(Test-Path $vsWhereExe)) { Create-Directory $vsWhereDir - Write-Host 'Downloading vswhere' + Write-Host "Downloading vswhere $vswhereVersion" + $ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit Retry({ Invoke-WebRequest "https://netcorenativeassets.blob.core.windows.net/resource-packages/external/windows/vswhere/$vswhereVersion/vswhere.exe" -UseBasicParsing -OutFile $vswhereExe }) @@ -611,14 +624,7 @@ function InitializeBuildTool() { } $dotnetPath = Join-Path $dotnetRoot (GetExecutableFileName 'dotnet') - # Use override if it exists - commonly set by source-build - if ($null -eq $env:_OverrideArcadeInitializeBuildToolFramework) { - $initializeBuildToolFramework="net9.0" - } else { - $initializeBuildToolFramework=$env:_OverrideArcadeInitializeBuildToolFramework - } - - $buildTool = @{ Path = $dotnetPath; Command = 'msbuild'; Tool = 'dotnet'; Framework = $initializeBuildToolFramework } + $buildTool = @{ Path = $dotnetPath; Command = 'msbuild'; Tool = 'dotnet'; Framework = 'net' } } elseif ($msbuildEngine -eq "vs") { try { $msbuildPath = InitializeVisualStudioMSBuild -install:$restore @@ -627,7 +633,7 @@ function InitializeBuildTool() { ExitWithExitCode 1 } - $buildTool = @{ Path = $msbuildPath; Command = ""; Tool = "vs"; Framework = "net472"; ExcludePrereleaseVS = $excludePrereleaseVS } + $buildTool = @{ Path = $msbuildPath; Command = ""; Tool = "vs"; Framework = "netframework"; ExcludePrereleaseVS = $excludePrereleaseVS } } else { Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "Unexpected value of -msbuildEngine: '$msbuildEngine'." ExitWithExitCode 1 @@ -660,7 +666,6 @@ function GetNuGetPackageCachePath() { $env:NUGET_PACKAGES = Join-Path $env:UserProfile '.nuget\packages\' } else { $env:NUGET_PACKAGES = Join-Path $RepoRoot '.packages\' - $env:RESTORENOHTTPCACHE = $true } } @@ -782,26 +787,13 @@ function MSBuild() { $toolsetBuildProject = InitializeToolset $basePath = Split-Path -parent $toolsetBuildProject - $possiblePaths = @( - # new scripts need to work with old packages, so we need to look for the old names/versions - (Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.ArcadeLogging.dll')), - (Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.Arcade.Sdk.dll')), - (Join-Path $basePath (Join-Path net7.0 'Microsoft.DotNet.ArcadeLogging.dll')), - (Join-Path $basePath (Join-Path net7.0 'Microsoft.DotNet.Arcade.Sdk.dll')), - (Join-Path $basePath (Join-Path net8.0 'Microsoft.DotNet.ArcadeLogging.dll')), - (Join-Path $basePath (Join-Path net8.0 'Microsoft.DotNet.Arcade.Sdk.dll')) - ) - $selectedPath = $null - foreach ($path in $possiblePaths) { - if (Test-Path $path -PathType Leaf) { - $selectedPath = $path - break - } - } + $selectedPath = Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.ArcadeLogging.dll') + if (-not $selectedPath) { - Write-PipelineTelemetryError -Category 'Build' -Message 'Unable to find arcade sdk logger assembly.' + Write-PipelineTelemetryError -Category 'Build' -Message "Unable to find arcade sdk logger assembly: $selectedPath" ExitWithExitCode 1 } + $args += "/logger:$selectedPath" } @@ -864,8 +856,8 @@ function MSBuild-Core() { } # When running on Azure Pipelines, override the returned exit code to avoid double logging. - # Skip this when the build is a child of the VMR orchestrator build. - if ($ci -and $env:SYSTEM_TEAMPROJECT -ne $null -and !$productBuild -and -not($properties -like "*DotNetBuildRepo=true*")) { + # Skip this when the build is a child of the VMR build. + if ($ci -and $env:SYSTEM_TEAMPROJECT -ne $null -and !$fromVMR) { Write-PipelineSetResult -Result "Failed" -Message "msbuild execution failed." # Exiting with an exit code causes the azure pipelines task to log yet another "noise" error # The above Write-PipelineSetResult will cause the task to be marked as failure without adding yet another error diff --git a/eng/common/tools.sh b/eng/common/tools.sh index 01b09b65796c..c1841c9dfd0f 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -5,6 +5,9 @@ # CI mode - set to true on CI server for PR validation build or official build. ci=${ci:-false} +# Build mode +source_build=${source_build:-false} + # Set to true to use the pipelines logger which will enable Azure logging output. # https://github.com/Microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md # This flag is meant as a temporary opt-opt for the feature while validate it across @@ -58,7 +61,8 @@ use_installed_dotnet_cli=${use_installed_dotnet_cli:-true} dotnetInstallScriptVersion=${dotnetInstallScriptVersion:-'v1'} # True to use global NuGet cache instead of restoring packages to repository-local directory. -if [[ "$ci" == true ]]; then +# Keep in sync with NuGetPackageroot in Arcade SDK's RepositoryLayout.props. +if [[ "$ci" == true || "$source_build" == true ]]; then use_global_nuget_cache=${use_global_nuget_cache:-false} else use_global_nuget_cache=${use_global_nuget_cache:-true} @@ -68,8 +72,8 @@ fi runtime_source_feed=${runtime_source_feed:-''} runtime_source_feed_key=${runtime_source_feed_key:-''} -# True if the build is a product build -product_build=${product_build:-false} +# True when the build is running within the VMR. +from_vmr=${from_vmr:-false} # Resolve any symlinks in the given path. function ResolvePath { @@ -296,8 +300,29 @@ function GetDotNetInstallScript { local root=$1 local install_script="$root/dotnet-install.sh" local install_script_url="https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.sh" + local timestamp_file="$root/.dotnet-install.timestamp" + local should_download=false if [[ ! -a "$install_script" ]]; then + should_download=true + elif [[ -f "$timestamp_file" ]]; then + # Check if the script is older than 30 days using timestamp file + local download_time=$(cat "$timestamp_file" 2>/dev/null || echo "0") + local current_time=$(date +%s) + local age_seconds=$((current_time - download_time)) + + # 30 days = 30 * 24 * 60 * 60 = 2592000 seconds + if [[ $age_seconds -gt 2592000 ]]; then + echo "Existing install script is too old, re-downloading..." + should_download=true + fi + else + # No timestamp file exists, assume script is old and re-download + echo "No timestamp found for existing install script, re-downloading..." + should_download=true + fi + + if [[ "$should_download" == true ]]; then mkdir -p "$root" echo "Downloading '$install_script_url'" @@ -324,6 +349,9 @@ function GetDotNetInstallScript { ExitWithExitCode $exit_code } fi + + # Create timestamp file to track download time in seconds from epoch + date +%s > "$timestamp_file" fi # return value _GetDotNetInstallScript="$install_script" @@ -339,22 +367,14 @@ function InitializeBuildTool { # return values _InitializeBuildTool="$_InitializeDotNetCli/dotnet" _InitializeBuildToolCommand="msbuild" - # use override if it exists - commonly set by source-build - if [[ "${_OverrideArcadeInitializeBuildToolFramework:-x}" == "x" ]]; then - _InitializeBuildToolFramework="net9.0" - else - _InitializeBuildToolFramework="${_OverrideArcadeInitializeBuildToolFramework}" - fi } -# Set RestoreNoHttpCache as a workaround for https://github.com/NuGet/Home/issues/3116 function GetNuGetPackageCachePath { if [[ -z ${NUGET_PACKAGES:-} ]]; then if [[ "$use_global_nuget_cache" == true ]]; then export NUGET_PACKAGES="$HOME/.nuget/packages/" else export NUGET_PACKAGES="$repo_root/.packages/" - export RESTORENOHTTPCACHE=true fi fi @@ -451,25 +471,13 @@ function MSBuild { fi local toolset_dir="${_InitializeToolset%/*}" - # new scripts need to work with old packages, so we need to look for the old names/versions - local selectedPath= - local possiblePaths=() - possiblePaths+=( "$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.ArcadeLogging.dll" ) - possiblePaths+=( "$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.Arcade.Sdk.dll" ) - possiblePaths+=( "$toolset_dir/net7.0/Microsoft.DotNet.ArcadeLogging.dll" ) - possiblePaths+=( "$toolset_dir/net7.0/Microsoft.DotNet.Arcade.Sdk.dll" ) - possiblePaths+=( "$toolset_dir/net8.0/Microsoft.DotNet.ArcadeLogging.dll" ) - possiblePaths+=( "$toolset_dir/net8.0/Microsoft.DotNet.Arcade.Sdk.dll" ) - for path in "${possiblePaths[@]}"; do - if [[ -f $path ]]; then - selectedPath=$path - break - fi - done + local selectedPath="$toolset_dir/net/Microsoft.DotNet.ArcadeLogging.dll" + if [[ -z "$selectedPath" ]]; then - Write-PipelineTelemetryError -category 'Build' "Unable to find arcade sdk logger assembly." + Write-PipelineTelemetryError -category 'Build' "Unable to find arcade sdk logger assembly: $selectedPath" ExitWithExitCode 1 fi + args+=( "-logger:$selectedPath" ) fi @@ -506,8 +514,8 @@ function MSBuild-Core { echo "Build failed with exit code $exit_code. Check errors above." # When running on Azure Pipelines, override the returned exit code to avoid double logging. - # Skip this when the build is a child of the VMR orchestrator build. - if [[ "$ci" == true && -n ${SYSTEM_TEAMPROJECT:-} && "$product_build" != true && "$properties" != *"DotNetBuildRepo=true"* ]]; then + # Skip this when the build is a child of the VMR build. + if [[ "$ci" == true && -n ${SYSTEM_TEAMPROJECT:-} && "$from_vmr" != true ]]; then Write-PipelineSetResult -result "Failed" -message "msbuild execution failed." # Exiting with an exit code causes the azure pipelines task to log yet another "noise" error # The above Write-PipelineSetResult will cause the task to be marked as failure without adding yet another error @@ -530,6 +538,13 @@ function GetDarc { fi "$eng_root/common/darc-init.sh" --toolpath "$darc_path" $version + darc_tool="$darc_path/darc" +} + +# Returns a full path to an Arcade SDK task project file. +function GetSdkTaskProject { + taskName=$1 + echo "$(dirname $_InitializeToolset)/SdkTasks/$taskName.proj" } ResolvePath "${BASH_SOURCE[0]}" diff --git a/eng/common/vmr-sync.ps1 b/eng/common/vmr-sync.ps1 new file mode 100755 index 000000000000..97302f3205be --- /dev/null +++ b/eng/common/vmr-sync.ps1 @@ -0,0 +1,138 @@ +<# +.SYNOPSIS + +This script is used for synchronizing the current repository into a local VMR. +It pulls the current repository's code into the specified VMR directory for local testing or +Source-Build validation. + +.DESCRIPTION + +The tooling used for synchronization will clone the VMR repository into a temporary folder if +it does not already exist. These clones can be reused in future synchronizations, so it is +recommended to dedicate a folder for this to speed up re-runs. + +.EXAMPLE + Synchronize current repository into a local VMR: + ./vmr-sync.ps1 -vmrDir "$HOME/repos/dotnet" -tmpDir "$HOME/repos/tmp" + +.PARAMETER tmpDir +Required. Path to the temporary folder where repositories will be cloned + +.PARAMETER vmrBranch +Optional. Branch of the 'dotnet/dotnet' repo to synchronize. The VMR will be checked out to this branch + +.PARAMETER azdevPat +Optional. Azure DevOps PAT to use for cloning private repositories. + +.PARAMETER vmrDir +Optional. Path to the dotnet/dotnet repository. When null, gets cloned to the temporary folder + +.PARAMETER debugOutput +Optional. Enables debug logging in the darc vmr command. + +.PARAMETER ci +Optional. Denotes that the script is running in a CI environment. +#> +param ( + [Parameter(Mandatory=$true, HelpMessage="Path to the temporary folder where repositories will be cloned")] + [string][Alias('t', 'tmp')]$tmpDir, + [string][Alias('b', 'branch')]$vmrBranch, + [string]$remote, + [string]$azdevPat, + [string][Alias('v', 'vmr')]$vmrDir, + [switch]$ci, + [switch]$debugOutput +) + +function Fail { + Write-Host "> $($args[0])" -ForegroundColor 'Red' +} + +function Highlight { + Write-Host "> $($args[0])" -ForegroundColor 'Cyan' +} + +$verbosity = 'verbose' +if ($debugOutput) { + $verbosity = 'debug' +} +# Validation + +if (-not $tmpDir) { + Fail "Missing -tmpDir argument. Please specify the path to the temporary folder where the repositories will be cloned" + exit 1 +} + +# Sanitize the input + +if (-not $vmrDir) { + $vmrDir = Join-Path $tmpDir 'dotnet' +} + +if (-not (Test-Path -Path $tmpDir -PathType Container)) { + New-Item -ItemType Directory -Path $tmpDir | Out-Null +} + +# Prepare the VMR + +if (-not (Test-Path -Path $vmrDir -PathType Container)) { + Highlight "Cloning 'dotnet/dotnet' into $vmrDir.." + git clone https://github.com/dotnet/dotnet $vmrDir + + if ($vmrBranch) { + git -C $vmrDir switch -c $vmrBranch + } +} +else { + if ((git -C $vmrDir diff --quiet) -eq $false) { + Fail "There are changes in the working tree of $vmrDir. Please commit or stash your changes" + exit 1 + } + + if ($vmrBranch) { + Highlight "Preparing $vmrDir" + git -C $vmrDir checkout $vmrBranch + git -C $vmrDir pull + } +} + +Set-StrictMode -Version Latest + +# Prepare darc + +Highlight 'Installing .NET, preparing the tooling..' +. .\eng\common\tools.ps1 +$dotnetRoot = InitializeDotNetCli -install:$true +$darc = Get-Darc +$dotnet = "$dotnetRoot\dotnet.exe" + +Highlight "Starting the synchronization of VMR.." + +# Synchronize the VMR +$darcArgs = ( + "vmr", "forwardflow", + "--tmp", $tmpDir, + "--$verbosity", + $vmrDir +) + +if ($ci) { + $darcArgs += ("--ci") +} + +if ($azdevPat) { + $darcArgs += ("--azdev-pat", $azdevPat) +} + +& "$darc" $darcArgs + +if ($LASTEXITCODE -eq 0) { + Highlight "Synchronization succeeded" +} +else { + Fail "Synchronization of repo to VMR failed!" + Fail "'$vmrDir' is left in its last state (re-run of this script will reset it)." + Fail "Please inspect the logs which contain path to the failing patch file (use -debugOutput to get all the details)." + Fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script." + exit 1 +} diff --git a/eng/common/vmr-sync.sh b/eng/common/vmr-sync.sh new file mode 100755 index 000000000000..44239e331c0c --- /dev/null +++ b/eng/common/vmr-sync.sh @@ -0,0 +1,207 @@ +#!/bin/bash + +### This script is used for synchronizing the current repository into a local VMR. +### It pulls the current repository's code into the specified VMR directory for local testing or +### Source-Build validation. +### +### The tooling used for synchronization will clone the VMR repository into a temporary folder if +### it does not already exist. These clones can be reused in future synchronizations, so it is +### recommended to dedicate a folder for this to speed up re-runs. +### +### USAGE: +### Synchronize current repository into a local VMR: +### ./vmr-sync.sh --tmp "$HOME/repos/tmp" "$HOME/repos/dotnet" +### +### Options: +### -t, --tmp, --tmp-dir PATH +### Required. Path to the temporary folder where repositories will be cloned +### +### -b, --branch, --vmr-branch BRANCH_NAME +### Optional. Branch of the 'dotnet/dotnet' repo to synchronize. The VMR will be checked out to this branch +### +### --debug +### Optional. Turns on the most verbose logging for the VMR tooling +### +### --remote name:URI +### Optional. Additional remote to use during the synchronization +### This can be used to synchronize to a commit from a fork of the repository +### Example: 'runtime:https://github.com/yourfork/runtime' +### +### --azdev-pat +### Optional. Azure DevOps PAT to use for cloning private repositories. +### +### -v, --vmr, --vmr-dir PATH +### Optional. Path to the dotnet/dotnet repository. When null, gets cloned to the temporary folder + +source="${BASH_SOURCE[0]}" + +# resolve $source until the file is no longer a symlink +while [[ -h "$source" ]]; do + scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" + source="$(readlink "$source")" + # if $source was a relative symlink, we need to resolve it relative to the path where the + # symlink file was located + [[ $source != /* ]] && source="$scriptroot/$source" +done +scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" + +function print_help () { + sed -n '/^### /,/^$/p' "$source" | cut -b 5- +} + +COLOR_RED=$(tput setaf 1 2>/dev/null || true) +COLOR_CYAN=$(tput setaf 6 2>/dev/null || true) +COLOR_CLEAR=$(tput sgr0 2>/dev/null || true) +COLOR_RESET=uniquesearchablestring +FAILURE_PREFIX='> ' + +function fail () { + echo "${COLOR_RED}$FAILURE_PREFIX${1//${COLOR_RESET}/${COLOR_RED}}${COLOR_CLEAR}" >&2 +} + +function highlight () { + echo "${COLOR_CYAN}$FAILURE_PREFIX${1//${COLOR_RESET}/${COLOR_CYAN}}${COLOR_CLEAR}" +} + +tmp_dir='' +vmr_dir='' +vmr_branch='' +additional_remotes='' +verbosity=verbose +azdev_pat='' +ci=false + +while [[ $# -gt 0 ]]; do + opt="$(echo "$1" | tr "[:upper:]" "[:lower:]")" + case "$opt" in + -t|--tmp|--tmp-dir) + tmp_dir=$2 + shift + ;; + -v|--vmr|--vmr-dir) + vmr_dir=$2 + shift + ;; + -b|--branch|--vmr-branch) + vmr_branch=$2 + shift + ;; + --remote) + additional_remotes="$additional_remotes $2" + shift + ;; + --azdev-pat) + azdev_pat=$2 + shift + ;; + --ci) + ci=true + ;; + -d|--debug) + verbosity=debug + ;; + -h|--help) + print_help + exit 0 + ;; + *) + fail "Invalid argument: $1" + print_help + exit 1 + ;; + esac + + shift +done + +# Validation + +if [[ -z "$tmp_dir" ]]; then + fail "Missing --tmp-dir argument. Please specify the path to the temporary folder where the repositories will be cloned" + exit 1 +fi + +# Sanitize the input + +if [[ -z "$vmr_dir" ]]; then + vmr_dir="$tmp_dir/dotnet" +fi + +if [[ ! -d "$tmp_dir" ]]; then + mkdir -p "$tmp_dir" +fi + +if [[ "$verbosity" == "debug" ]]; then + set -x +fi + +# Prepare the VMR + +if [[ ! -d "$vmr_dir" ]]; then + highlight "Cloning 'dotnet/dotnet' into $vmr_dir.." + git clone https://github.com/dotnet/dotnet "$vmr_dir" + + if [[ -n "$vmr_branch" ]]; then + git -C "$vmr_dir" switch -c "$vmr_branch" + fi +else + if ! git -C "$vmr_dir" diff --quiet; then + fail "There are changes in the working tree of $vmr_dir. Please commit or stash your changes" + exit 1 + fi + + if [[ -n "$vmr_branch" ]]; then + highlight "Preparing $vmr_dir" + git -C "$vmr_dir" checkout "$vmr_branch" + git -C "$vmr_dir" pull + fi +fi + +set -e + +# Prepare darc + +highlight 'Installing .NET, preparing the tooling..' +source "./eng/common/tools.sh" +InitializeDotNetCli true +GetDarc +dotnetDir=$( cd ./.dotnet/; pwd -P ) +dotnet=$dotnetDir/dotnet + +highlight "Starting the synchronization of VMR.." +set +e + +if [[ -n "$additional_remotes" ]]; then + additional_remotes="--additional-remotes $additional_remotes" +fi + +if [[ -n "$azdev_pat" ]]; then + azdev_pat="--azdev-pat $azdev_pat" +fi + +ci_arg='' +if [[ "$ci" == "true" ]]; then + ci_arg="--ci" +fi + +# Synchronize the VMR + +export DOTNET_ROOT="$dotnetDir" + +"$darc_tool" vmr forwardflow \ + --tmp "$tmp_dir" \ + $azdev_pat \ + --$verbosity \ + $ci_arg \ + $additional_remotes \ + "$vmr_dir" + +if [[ $? == 0 ]]; then + highlight "Synchronization succeeded" +else + fail "Synchronization of repo to VMR failed!" + fail "'$vmr_dir' is left in its last state (re-run of this script will reset it)." + fail "Please inspect the logs which contain path to the failing patch file (use --debug to get all the details)." + fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script." + exit 1 +fi diff --git a/global.json b/global.json index 43b27ffea644..ffb7eb451512 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,16 @@ { + "sdk": { + "paths": [ + ".dotnet", + "$host$" + ], + "errorMessage": "The .NET SDK is not installed or is not configured correctly. Please run ./build to install the correct SDK version locally." + }, "tools": { - "dotnet": "9.0.112", + "dotnet": "10.0.102", "runtimes": { "dotnet": [ - "$(VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion)" + "$(MicrosoftNETCorePlatformsPackageVersion)" ], "aspnetcore": [ "$(MicrosoftAspNetCoreComponentsSdkAnalyzersPackageVersion)" @@ -13,13 +20,11 @@ "version": "16.8" } }, - "native-tools": { - "cmake": "latest" - }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.26063.2", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.26063.2", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26101.102", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26101.102", "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24217.1" + "Microsoft.Build.Traversal": "3.4.0", + "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" } } From a18013c959b4209a468f477c6fd699ae333e360d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 3 Feb 2026 02:01:36 +0000 Subject: [PATCH 012/179] Update dependencies from https://github.com/microsoft/testfx build 20260202.3 On relative base path root Microsoft.Testing.Platform From Version 2.1.0-preview.26078.2 -> To Version 2.1.0-preview.26102.3 MSTest From Version 4.1.0-preview.26078.2 -> To Version 4.1.0-preview.26102.3 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 36abab9788fb..6e85dd3c1cf6 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.1.0-preview.26078.2 - 4.1.0-preview.26078.2 + 2.1.0-preview.26102.3 + 4.1.0-preview.26102.3 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ed59bad34081..ef5a08bd388b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 52be957329989783be8d83769123a17e3c251da0 - + https://github.com/microsoft/testfx - 25cc8f2b28eac830a37d1c666f05fa5b95d07b76 + 263532d95929e372f9d2e3688cbaa4ac7288d9df - + https://github.com/microsoft/testfx - 25cc8f2b28eac830a37d1c666f05fa5b95d07b76 + 263532d95929e372f9d2e3688cbaa4ac7288d9df https://github.com/dotnet/dotnet From f46c335982ae897cd102d7b773073b27e057e48d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 3 Feb 2026 21:26:52 +0000 Subject: [PATCH 013/179] [release/10.0.1xx] Source code updates from dotnet/dotnet (#52801) [release/10.0.1xx] Source code updates from dotnet/dotnet --- NuGet.config | 2 +- eng/Version.Details.props | 126 +++--- eng/Version.Details.xml | 392 +++++++++--------- .../core-templates/job/source-build.yml | 6 +- global.json | 4 +- 5 files changed, 265 insertions(+), 265 deletions(-) diff --git a/NuGet.config b/NuGet.config index 5318870a1123..48293ac0b8c4 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 6e85dd3c1cf6..5e42a3a96c4c 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26102.102 - 10.0.4-servicing.26102.102 - 10.0.4-servicing.26102.102 - 10.0.4-servicing.26102.102 + 10.0.4-servicing.26103.102 + 10.0.4-servicing.26103.102 + 10.0.4-servicing.26103.102 + 10.0.4-servicing.26103.102 10.0.4 - 10.0.4-servicing.26102.102 + 10.0.4-servicing.26103.102 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26102.102 + 10.0.4-servicing.26103.102 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26102.102 + 10.0.4-servicing.26103.102 10.0.4 - 10.0.4-servicing.26102.102 - 10.0.4-servicing.26102.102 - 10.0.0-preview.26102.102 + 10.0.4-servicing.26103.102 + 10.0.4-servicing.26103.102 + 10.0.0-preview.26103.102 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26102-102 - 7.0.2-rc.10302 + 18.0.11-servicing-26103-102 + 7.0.2-rc.10402 10.0.104 - 5.0.0-2.26102.102 - 5.0.0-2.26102.102 - 5.0.0-2.26102.102 - 5.0.0-2.26102.102 - 5.0.0-2.26102.102 - 5.0.0-2.26102.102 - 5.0.0-2.26102.102 - 10.0.0-preview.26102.102 - 5.0.0-2.26102.102 - 5.0.0-2.26102.102 - 2.0.0-preview.1.26102.102 + 5.0.0-2.26103.102 + 5.0.0-2.26103.102 + 5.0.0-2.26103.102 + 5.0.0-2.26103.102 + 5.0.0-2.26103.102 + 5.0.0-2.26103.102 + 5.0.0-2.26103.102 + 10.0.0-preview.26103.102 + 5.0.0-2.26103.102 + 5.0.0-2.26103.102 + 2.0.0-preview.1.26103.102 2.2.4 - 10.0.0-beta.26102.102 - 10.0.0-beta.26102.102 - 10.0.0-beta.26102.102 - 10.0.0-beta.26102.102 - 10.0.0-beta.26102.102 - 10.0.0-beta.26102.102 + 10.0.0-beta.26103.102 + 10.0.0-beta.26103.102 + 10.0.0-beta.26103.102 + 10.0.0-beta.26103.102 + 10.0.0-beta.26103.102 + 10.0.0-beta.26103.102 10.0.4 10.0.4 - 10.0.4-servicing.26102.102 - 10.0.4-servicing.26102.102 - 10.0.0-beta.26102.102 - 10.0.0-beta.26102.102 + 10.0.4-servicing.26103.102 + 10.0.4-servicing.26103.102 + 10.0.0-beta.26103.102 + 10.0.0-beta.26103.102 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26102.102 + 14.0.104-servicing.26103.102 10.0.4 - 5.0.0-2.26102.102 - 5.0.0-2.26102.102 - 10.0.4-servicing.26102.102 + 5.0.0-2.26103.102 + 5.0.0-2.26103.102 + 10.0.4-servicing.26103.102 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26102.102 - 10.0.4-servicing.26102.102 - 18.0.1-release-26102-102 + 10.0.0-preview.26103.102 + 10.0.4-servicing.26103.102 + 18.0.1-release-26103-102 10.0.4 - 10.0.4-servicing.26102.102 + 10.0.4-servicing.26103.102 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26102.102 + 10.0.104-servicing.26103.102 10.0.104 - 10.0.104-servicing.26102.102 + 10.0.104-servicing.26103.102 10.0.104 10.0.104 - 10.0.104-servicing.26102.102 - 18.0.1-release-26102-102 - 18.0.1-release-26102-102 + 10.0.104-servicing.26103.102 + 18.0.1-release-26103-102 + 18.0.1-release-26103-102 3.2.4 10.0.4 - 10.0.4-servicing.26102.102 + 10.0.4-servicing.26103.102 10.0.4 - 7.0.2-rc.10302 - 7.0.2-rc.10302 - 7.0.2-rc.10302 - 7.0.2-rc.10302 - 7.0.2-rc.10302 - 7.0.2-rc.10302 - 7.0.2-rc.10302 - 7.0.2-rc.10302 - 7.0.2-rc.10302 - 7.0.2-rc.10302 - 7.0.2-rc.10302 - 7.0.2-rc.10302 - 7.0.2-rc.10302 - 7.0.2-rc.10302 - 7.0.2-rc.10302 - 7.0.2-rc.10302 + 7.0.2-rc.10402 + 7.0.2-rc.10402 + 7.0.2-rc.10402 + 7.0.2-rc.10402 + 7.0.2-rc.10402 + 7.0.2-rc.10402 + 7.0.2-rc.10402 + 7.0.2-rc.10402 + 7.0.2-rc.10402 + 7.0.2-rc.10402 + 7.0.2-rc.10402 + 7.0.2-rc.10402 + 7.0.2-rc.10402 + 7.0.2-rc.10402 + 7.0.2-rc.10402 + 7.0.2-rc.10402 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ef5a08bd388b..bd8ce9de9c9c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 52be957329989783be8d83769123a17e3c251da0 + c9f352d981c10cbdf083c1032a6a7fa69b0e6868 diff --git a/eng/common/core-templates/job/source-build.yml b/eng/common/core-templates/job/source-build.yml index c08b3ad8ad03..4cb769473f70 100644 --- a/eng/common/core-templates/job/source-build.yml +++ b/eng/common/core-templates/job/source-build.yml @@ -60,7 +60,7 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] - demands: ImageOverride -equals build.ubuntu.2004.amd64 + demands: ImageOverride -equals Azure-Linux-3-Amd64-Public ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] image: Azure-Linux-3-Amd64 @@ -69,10 +69,10 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] - demands: ImageOverride -equals Build.Ubuntu.2204.Amd64.Open + demands: ImageOverride -equals Azure-Linux-3-Amd64-Public ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] - demands: ImageOverride -equals Build.Ubuntu.2204.Amd64 + demands: ImageOverride -equals Azure-Linux-3-Amd64 ${{ if ne(parameters.platform.pool, '') }}: pool: ${{ parameters.platform.pool }} diff --git a/global.json b/global.json index 08685a6ede4e..87bff9f1b683 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26102.102", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26102.102", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26103.102", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26103.102", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From ab8aac183d66368ffbc281a651b6675776791d62 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Feb 2026 01:50:10 +0000 Subject: [PATCH 014/179] Update dependencies --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index 48293ac0b8c4..078fdcb1daec 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 5e42a3a96c4c..2c56377b1866 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26103.102 - 10.0.4-servicing.26103.102 - 10.0.4-servicing.26103.102 - 10.0.4-servicing.26103.102 + 10.0.4-servicing.26103.106 + 10.0.4-servicing.26103.106 + 10.0.4-servicing.26103.106 + 10.0.4-servicing.26103.106 10.0.4 - 10.0.4-servicing.26103.102 + 10.0.4-servicing.26103.106 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26103.102 + 10.0.4-servicing.26103.106 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26103.102 + 10.0.4-servicing.26103.106 10.0.4 - 10.0.4-servicing.26103.102 - 10.0.4-servicing.26103.102 - 10.0.0-preview.26103.102 + 10.0.4-servicing.26103.106 + 10.0.4-servicing.26103.106 + 10.0.0-preview.26103.106 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26103-102 - 7.0.2-rc.10402 + 18.0.11-servicing-26103-106 + 7.0.2-rc.10406 10.0.104 - 5.0.0-2.26103.102 - 5.0.0-2.26103.102 - 5.0.0-2.26103.102 - 5.0.0-2.26103.102 - 5.0.0-2.26103.102 - 5.0.0-2.26103.102 - 5.0.0-2.26103.102 - 10.0.0-preview.26103.102 - 5.0.0-2.26103.102 - 5.0.0-2.26103.102 - 2.0.0-preview.1.26103.102 + 5.0.0-2.26103.106 + 5.0.0-2.26103.106 + 5.0.0-2.26103.106 + 5.0.0-2.26103.106 + 5.0.0-2.26103.106 + 5.0.0-2.26103.106 + 5.0.0-2.26103.106 + 10.0.0-preview.26103.106 + 5.0.0-2.26103.106 + 5.0.0-2.26103.106 + 2.0.0-preview.1.26103.106 2.2.4 - 10.0.0-beta.26103.102 - 10.0.0-beta.26103.102 - 10.0.0-beta.26103.102 - 10.0.0-beta.26103.102 - 10.0.0-beta.26103.102 - 10.0.0-beta.26103.102 + 10.0.0-beta.26103.106 + 10.0.0-beta.26103.106 + 10.0.0-beta.26103.106 + 10.0.0-beta.26103.106 + 10.0.0-beta.26103.106 + 10.0.0-beta.26103.106 10.0.4 10.0.4 - 10.0.4-servicing.26103.102 - 10.0.4-servicing.26103.102 - 10.0.0-beta.26103.102 - 10.0.0-beta.26103.102 + 10.0.4-servicing.26103.106 + 10.0.4-servicing.26103.106 + 10.0.0-beta.26103.106 + 10.0.0-beta.26103.106 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26103.102 + 14.0.104-servicing.26103.106 10.0.4 - 5.0.0-2.26103.102 - 5.0.0-2.26103.102 - 10.0.4-servicing.26103.102 + 5.0.0-2.26103.106 + 5.0.0-2.26103.106 + 10.0.4-servicing.26103.106 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26103.102 - 10.0.4-servicing.26103.102 - 18.0.1-release-26103-102 + 10.0.0-preview.26103.106 + 10.0.4-servicing.26103.106 + 18.0.1-release-26103-106 10.0.4 - 10.0.4-servicing.26103.102 + 10.0.4-servicing.26103.106 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26103.102 + 10.0.104-servicing.26103.106 10.0.104 - 10.0.104-servicing.26103.102 + 10.0.104-servicing.26103.106 10.0.104 10.0.104 - 10.0.104-servicing.26103.102 - 18.0.1-release-26103-102 - 18.0.1-release-26103-102 + 10.0.104-servicing.26103.106 + 18.0.1-release-26103-106 + 18.0.1-release-26103-106 3.2.4 10.0.4 - 10.0.4-servicing.26103.102 + 10.0.4-servicing.26103.106 10.0.4 - 7.0.2-rc.10402 - 7.0.2-rc.10402 - 7.0.2-rc.10402 - 7.0.2-rc.10402 - 7.0.2-rc.10402 - 7.0.2-rc.10402 - 7.0.2-rc.10402 - 7.0.2-rc.10402 - 7.0.2-rc.10402 - 7.0.2-rc.10402 - 7.0.2-rc.10402 - 7.0.2-rc.10402 - 7.0.2-rc.10402 - 7.0.2-rc.10402 - 7.0.2-rc.10402 - 7.0.2-rc.10402 + 7.0.2-rc.10406 + 7.0.2-rc.10406 + 7.0.2-rc.10406 + 7.0.2-rc.10406 + 7.0.2-rc.10406 + 7.0.2-rc.10406 + 7.0.2-rc.10406 + 7.0.2-rc.10406 + 7.0.2-rc.10406 + 7.0.2-rc.10406 + 7.0.2-rc.10406 + 7.0.2-rc.10406 + 7.0.2-rc.10406 + 7.0.2-rc.10406 + 7.0.2-rc.10406 + 7.0.2-rc.10406 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bd8ce9de9c9c..b06fc68c69de 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 - + https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - c9f352d981c10cbdf083c1032a6a7fa69b0e6868 + 3fda132048f5089da6722646c397a9e43928c987 diff --git a/global.json b/global.json index 87bff9f1b683..2399240fccd2 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26103.102", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26103.102", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26103.106", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26103.106", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From b8d8a9d38c42f160a54dc5c76ae4d01a8377d8fa Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Feb 2026 02:02:17 +0000 Subject: [PATCH 015/179] Update dependencies from https://github.com/microsoft/testfx build 20260203.9 On relative base path root Microsoft.Testing.Platform From Version 2.1.0-preview.26102.3 -> To Version 2.1.0-preview.26103.9 MSTest From Version 4.1.0-preview.26102.3 -> To Version 4.1.0-preview.26103.9 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 5e42a3a96c4c..71eeafff5412 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.1.0-preview.26102.3 - 4.1.0-preview.26102.3 + 2.1.0-preview.26103.9 + 4.1.0-preview.26103.9 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bd8ce9de9c9c..806185baa724 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet c9f352d981c10cbdf083c1032a6a7fa69b0e6868 - + https://github.com/microsoft/testfx - 263532d95929e372f9d2e3688cbaa4ac7288d9df + 12bdecdbba87490b64a88a233429805f8704ecbb - + https://github.com/microsoft/testfx - 263532d95929e372f9d2e3688cbaa4ac7288d9df + 12bdecdbba87490b64a88a233429805f8704ecbb https://github.com/dotnet/dotnet From d8ba29e78726a70cc1a8924d0879fd5eb90c51ab Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 5 Feb 2026 01:18:10 +0000 Subject: [PATCH 016/179] [release/10.0.1xx] Source code updates from dotnet/dotnet (#52831) [release/10.0.1xx] Source code updates from dotnet/dotnet --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index 078fdcb1daec..8f90d46b1782 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index db0b7582110d..3817b0aa3c25 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26103.106 - 10.0.4-servicing.26103.106 - 10.0.4-servicing.26103.106 - 10.0.4-servicing.26103.106 + 10.0.4-servicing.26104.101 + 10.0.4-servicing.26104.101 + 10.0.4-servicing.26104.101 + 10.0.4-servicing.26104.101 10.0.4 - 10.0.4-servicing.26103.106 + 10.0.4-servicing.26104.101 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26103.106 + 10.0.4-servicing.26104.101 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26103.106 + 10.0.4-servicing.26104.101 10.0.4 - 10.0.4-servicing.26103.106 - 10.0.4-servicing.26103.106 - 10.0.0-preview.26103.106 + 10.0.4-servicing.26104.101 + 10.0.4-servicing.26104.101 + 10.0.0-preview.26104.101 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26103-106 - 7.0.2-rc.10406 + 18.0.11-servicing-26104-101 + 7.0.2-rc.10501 10.0.104 - 5.0.0-2.26103.106 - 5.0.0-2.26103.106 - 5.0.0-2.26103.106 - 5.0.0-2.26103.106 - 5.0.0-2.26103.106 - 5.0.0-2.26103.106 - 5.0.0-2.26103.106 - 10.0.0-preview.26103.106 - 5.0.0-2.26103.106 - 5.0.0-2.26103.106 - 2.0.0-preview.1.26103.106 + 5.0.0-2.26104.101 + 5.0.0-2.26104.101 + 5.0.0-2.26104.101 + 5.0.0-2.26104.101 + 5.0.0-2.26104.101 + 5.0.0-2.26104.101 + 5.0.0-2.26104.101 + 10.0.0-preview.26104.101 + 5.0.0-2.26104.101 + 5.0.0-2.26104.101 + 2.0.0-preview.1.26104.101 2.2.4 - 10.0.0-beta.26103.106 - 10.0.0-beta.26103.106 - 10.0.0-beta.26103.106 - 10.0.0-beta.26103.106 - 10.0.0-beta.26103.106 - 10.0.0-beta.26103.106 + 10.0.0-beta.26104.101 + 10.0.0-beta.26104.101 + 10.0.0-beta.26104.101 + 10.0.0-beta.26104.101 + 10.0.0-beta.26104.101 + 10.0.0-beta.26104.101 10.0.4 10.0.4 - 10.0.4-servicing.26103.106 - 10.0.4-servicing.26103.106 - 10.0.0-beta.26103.106 - 10.0.0-beta.26103.106 + 10.0.4-servicing.26104.101 + 10.0.4-servicing.26104.101 + 10.0.0-beta.26104.101 + 10.0.0-beta.26104.101 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26103.106 + 14.0.104-servicing.26104.101 10.0.4 - 5.0.0-2.26103.106 - 5.0.0-2.26103.106 - 10.0.4-servicing.26103.106 + 5.0.0-2.26104.101 + 5.0.0-2.26104.101 + 10.0.4-servicing.26104.101 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26103.106 - 10.0.4-servicing.26103.106 - 18.0.1-release-26103-106 + 10.0.0-preview.26104.101 + 10.0.4-servicing.26104.101 + 18.0.1-release-26104-101 10.0.4 - 10.0.4-servicing.26103.106 + 10.0.4-servicing.26104.101 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26103.106 + 10.0.104-servicing.26104.101 10.0.104 - 10.0.104-servicing.26103.106 + 10.0.104-servicing.26104.101 10.0.104 10.0.104 - 10.0.104-servicing.26103.106 - 18.0.1-release-26103-106 - 18.0.1-release-26103-106 + 10.0.104-servicing.26104.101 + 18.0.1-release-26104-101 + 18.0.1-release-26104-101 3.2.4 10.0.4 - 10.0.4-servicing.26103.106 + 10.0.4-servicing.26104.101 10.0.4 - 7.0.2-rc.10406 - 7.0.2-rc.10406 - 7.0.2-rc.10406 - 7.0.2-rc.10406 - 7.0.2-rc.10406 - 7.0.2-rc.10406 - 7.0.2-rc.10406 - 7.0.2-rc.10406 - 7.0.2-rc.10406 - 7.0.2-rc.10406 - 7.0.2-rc.10406 - 7.0.2-rc.10406 - 7.0.2-rc.10406 - 7.0.2-rc.10406 - 7.0.2-rc.10406 - 7.0.2-rc.10406 + 7.0.2-rc.10501 + 7.0.2-rc.10501 + 7.0.2-rc.10501 + 7.0.2-rc.10501 + 7.0.2-rc.10501 + 7.0.2-rc.10501 + 7.0.2-rc.10501 + 7.0.2-rc.10501 + 7.0.2-rc.10501 + 7.0.2-rc.10501 + 7.0.2-rc.10501 + 7.0.2-rc.10501 + 7.0.2-rc.10501 + 7.0.2-rc.10501 + 7.0.2-rc.10501 + 7.0.2-rc.10501 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ccf451f44611..e8a0c180ada5 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 3fda132048f5089da6722646c397a9e43928c987 + 337271a70fe3313419232a25ca26f815aece50c1 diff --git a/global.json b/global.json index 2399240fccd2..a10955ab254f 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26103.106", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26103.106", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26104.101", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26104.101", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 0dce9304c83b681fa1491ece124e88029a706ca6 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 5 Feb 2026 02:02:08 +0000 Subject: [PATCH 017/179] Update dependencies from https://github.com/microsoft/testfx build 20260204.5 On relative base path root Microsoft.Testing.Platform From Version 2.1.0-preview.26103.9 -> To Version 2.1.0-preview.26104.5 MSTest From Version 4.1.0-preview.26103.9 -> To Version 4.1.0-preview.26104.5 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 3817b0aa3c25..f264bc5fec7c 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.1.0-preview.26103.9 - 4.1.0-preview.26103.9 + 2.1.0-preview.26104.5 + 4.1.0-preview.26104.5 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e8a0c180ada5..6c9b6d14c317 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 337271a70fe3313419232a25ca26f815aece50c1 - + https://github.com/microsoft/testfx - 12bdecdbba87490b64a88a233429805f8704ecbb + a2c4911469efabcce5f79d6814ebc6e6f36b7d76 - + https://github.com/microsoft/testfx - 12bdecdbba87490b64a88a233429805f8704ecbb + a2c4911469efabcce5f79d6814ebc6e6f36b7d76 https://github.com/dotnet/dotnet From 20fa05fdead66f011705c30158bdb0a76d6d4de8 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 5 Feb 2026 19:59:23 +0000 Subject: [PATCH 018/179] Update dependencies --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index 8f90d46b1782..37c4c36ba845 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 3817b0aa3c25..aeff516bc26c 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26104.101 - 10.0.4-servicing.26104.101 - 10.0.4-servicing.26104.101 - 10.0.4-servicing.26104.101 + 10.0.4-servicing.26105.106 + 10.0.4-servicing.26105.106 + 10.0.4-servicing.26105.106 + 10.0.4-servicing.26105.106 10.0.4 - 10.0.4-servicing.26104.101 + 10.0.4-servicing.26105.106 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26104.101 + 10.0.4-servicing.26105.106 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26104.101 + 10.0.4-servicing.26105.106 10.0.4 - 10.0.4-servicing.26104.101 - 10.0.4-servicing.26104.101 - 10.0.0-preview.26104.101 + 10.0.4-servicing.26105.106 + 10.0.4-servicing.26105.106 + 10.0.0-preview.26105.106 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26104-101 - 7.0.2-rc.10501 + 18.0.11-servicing-26105-106 + 7.0.2-rc.10606 10.0.104 - 5.0.0-2.26104.101 - 5.0.0-2.26104.101 - 5.0.0-2.26104.101 - 5.0.0-2.26104.101 - 5.0.0-2.26104.101 - 5.0.0-2.26104.101 - 5.0.0-2.26104.101 - 10.0.0-preview.26104.101 - 5.0.0-2.26104.101 - 5.0.0-2.26104.101 - 2.0.0-preview.1.26104.101 + 5.0.0-2.26105.106 + 5.0.0-2.26105.106 + 5.0.0-2.26105.106 + 5.0.0-2.26105.106 + 5.0.0-2.26105.106 + 5.0.0-2.26105.106 + 5.0.0-2.26105.106 + 10.0.0-preview.26105.106 + 5.0.0-2.26105.106 + 5.0.0-2.26105.106 + 2.0.0-preview.1.26105.106 2.2.4 - 10.0.0-beta.26104.101 - 10.0.0-beta.26104.101 - 10.0.0-beta.26104.101 - 10.0.0-beta.26104.101 - 10.0.0-beta.26104.101 - 10.0.0-beta.26104.101 + 10.0.0-beta.26105.106 + 10.0.0-beta.26105.106 + 10.0.0-beta.26105.106 + 10.0.0-beta.26105.106 + 10.0.0-beta.26105.106 + 10.0.0-beta.26105.106 10.0.4 10.0.4 - 10.0.4-servicing.26104.101 - 10.0.4-servicing.26104.101 - 10.0.0-beta.26104.101 - 10.0.0-beta.26104.101 + 10.0.4-servicing.26105.106 + 10.0.4-servicing.26105.106 + 10.0.0-beta.26105.106 + 10.0.0-beta.26105.106 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26104.101 + 14.0.104-servicing.26105.106 10.0.4 - 5.0.0-2.26104.101 - 5.0.0-2.26104.101 - 10.0.4-servicing.26104.101 + 5.0.0-2.26105.106 + 5.0.0-2.26105.106 + 10.0.4-servicing.26105.106 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26104.101 - 10.0.4-servicing.26104.101 - 18.0.1-release-26104-101 + 10.0.0-preview.26105.106 + 10.0.4-servicing.26105.106 + 18.0.1-release-26105-106 10.0.4 - 10.0.4-servicing.26104.101 + 10.0.4-servicing.26105.106 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26104.101 + 10.0.104-servicing.26105.106 10.0.104 - 10.0.104-servicing.26104.101 + 10.0.104-servicing.26105.106 10.0.104 10.0.104 - 10.0.104-servicing.26104.101 - 18.0.1-release-26104-101 - 18.0.1-release-26104-101 + 10.0.104-servicing.26105.106 + 18.0.1-release-26105-106 + 18.0.1-release-26105-106 3.2.4 10.0.4 - 10.0.4-servicing.26104.101 + 10.0.4-servicing.26105.106 10.0.4 - 7.0.2-rc.10501 - 7.0.2-rc.10501 - 7.0.2-rc.10501 - 7.0.2-rc.10501 - 7.0.2-rc.10501 - 7.0.2-rc.10501 - 7.0.2-rc.10501 - 7.0.2-rc.10501 - 7.0.2-rc.10501 - 7.0.2-rc.10501 - 7.0.2-rc.10501 - 7.0.2-rc.10501 - 7.0.2-rc.10501 - 7.0.2-rc.10501 - 7.0.2-rc.10501 - 7.0.2-rc.10501 + 7.0.2-rc.10606 + 7.0.2-rc.10606 + 7.0.2-rc.10606 + 7.0.2-rc.10606 + 7.0.2-rc.10606 + 7.0.2-rc.10606 + 7.0.2-rc.10606 + 7.0.2-rc.10606 + 7.0.2-rc.10606 + 7.0.2-rc.10606 + 7.0.2-rc.10606 + 7.0.2-rc.10606 + 7.0.2-rc.10606 + 7.0.2-rc.10606 + 7.0.2-rc.10606 + 7.0.2-rc.10606 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e8a0c180ada5..33c06f476d05 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 337271a70fe3313419232a25ca26f815aece50c1 + 3f106e53de8994cbe931ddb9bcec1f095586f089 diff --git a/global.json b/global.json index a10955ab254f..6c43ad3dd853 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26104.101", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26104.101", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26105.106", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26105.106", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 1da96c200ff199177ecbc057916db79865c3ed57 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Feb 2026 00:50:43 +0000 Subject: [PATCH 019/179] Initial plan From 27f89d3f04aa062ace7fc06cd50a76b66cc5d571 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Feb 2026 01:08:58 +0000 Subject: [PATCH 020/179] Add validation to reject --add-source with package source mapping - Add ValidateSourceMappingCompatibility method to check for incompatible option combination - Add CannotUseAddSourceWithSourceMapping error message - Add test RejectsAdditionalSourceFeedsWhenMappingActive Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com> --- src/Cli/dotnet/CliStrings.resx | 3 +++ .../NuGetPackageDownloader.cs | 25 +++++++++++++++++++ src/Cli/dotnet/xlf/CliStrings.cs.xlf | 5 ++++ src/Cli/dotnet/xlf/CliStrings.de.xlf | 5 ++++ src/Cli/dotnet/xlf/CliStrings.es.xlf | 5 ++++ src/Cli/dotnet/xlf/CliStrings.fr.xlf | 5 ++++ src/Cli/dotnet/xlf/CliStrings.it.xlf | 5 ++++ src/Cli/dotnet/xlf/CliStrings.ja.xlf | 5 ++++ src/Cli/dotnet/xlf/CliStrings.ko.xlf | 5 ++++ src/Cli/dotnet/xlf/CliStrings.pl.xlf | 5 ++++ src/Cli/dotnet/xlf/CliStrings.pt-BR.xlf | 5 ++++ src/Cli/dotnet/xlf/CliStrings.ru.xlf | 5 ++++ src/Cli/dotnet/xlf/CliStrings.tr.xlf | 5 ++++ src/Cli/dotnet/xlf/CliStrings.zh-Hans.xlf | 5 ++++ src/Cli/dotnet/xlf/CliStrings.zh-Hant.xlf | 5 ++++ .../NuGetPackageInstallerTests.cs | 20 +++++++++++++++ 16 files changed, 113 insertions(+) diff --git a/src/Cli/dotnet/CliStrings.resx b/src/Cli/dotnet/CliStrings.resx index e84f13ad8021..65cf8884f3ad 100644 --- a/src/Cli/dotnet/CliStrings.resx +++ b/src/Cli/dotnet/CliStrings.resx @@ -455,6 +455,9 @@ setx PATH "%PATH%;{0}" {0}: failed to find toolAssembly for {1} + + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + Failed to load NuGet source {0} diff --git a/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs b/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs index a0ce16fe6d0b..cdba7ea6f87e 100644 --- a/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs +++ b/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs @@ -371,6 +371,25 @@ private IEnumerable LoadOverrideSources(PackageSourceLocation pac } + private void ValidateSourceMappingCompatibility(PackageSourceLocation sourceLocation, PackageSourceMapping mapping) + { + // When mapping feature is active and user specified extra feeds via CLI, this creates a conflict + // because the extra feeds won't be in the mapping configuration + if (mapping?.IsEnabled != true) + { + return; + } + + var extraFeeds = sourceLocation?.AdditionalSourceFeed; + if (extraFeeds == null || extraFeeds.Length == 0) + { + return; + } + + // Found both mapping and CLI-added feeds - this combination won't work + throw new NuGetPackageInstallerException(CliStrings.CannotUseAddSourceWithSourceMapping); + } + private List LoadDefaultSources(PackageId packageId, PackageSourceLocation packageSourceLocation = null, PackageSourceMapping packageSourceMapping = null) { List defaultSources = []; @@ -395,6 +414,12 @@ private List LoadDefaultSources(PackageId packageId, PackageSourc packageSourceMapping ??= PackageSourceMapping.GetPackageSourceMapping(settings); + // Ensure compatibility between source mapping configuration and CLI options + if (_shouldUsePackageSourceMapping) + { + ValidateSourceMappingCompatibility(packageSourceLocation, packageSourceMapping); + } + // filter package patterns if enabled if (_shouldUsePackageSourceMapping && packageSourceMapping?.IsEnabled == true) { diff --git a/src/Cli/dotnet/xlf/CliStrings.cs.xlf b/src/Cli/dotnet/xlf/CliStrings.cs.xlf index 389c5822431c..b8c635f20f56 100644 --- a/src/Cli/dotnet/xlf/CliStrings.cs.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.cs.xlf @@ -59,6 +59,11 @@ Zadání možností -r|--runtime a -os zároveň se nepodporuje. + + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + + Column maximum width must be greater than zero. Maximální šířka sloupce musí být větší než nula. diff --git a/src/Cli/dotnet/xlf/CliStrings.de.xlf b/src/Cli/dotnet/xlf/CliStrings.de.xlf index b1249c1c91e0..526be4f2358b 100644 --- a/src/Cli/dotnet/xlf/CliStrings.de.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.de.xlf @@ -59,6 +59,11 @@ Das gleichzeitige Angeben der Optionen „-r|--runtime“ und „-os“ wird nicht unterstützt. + + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + + Column maximum width must be greater than zero. Die maximale Spaltenbreite muss größer als 0 sein. diff --git a/src/Cli/dotnet/xlf/CliStrings.es.xlf b/src/Cli/dotnet/xlf/CliStrings.es.xlf index c2a7f96f8839..b53adb419c5a 100644 --- a/src/Cli/dotnet/xlf/CliStrings.es.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.es.xlf @@ -59,6 +59,11 @@ No se admite la especificación de las opciones '-r|--runtime' y '-os'. + + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + + Column maximum width must be greater than zero. El ancho máximo de la columna debe ser superior a cero. diff --git a/src/Cli/dotnet/xlf/CliStrings.fr.xlf b/src/Cli/dotnet/xlf/CliStrings.fr.xlf index eeff65e8e1e0..8a6ecc195f3a 100644 --- a/src/Cli/dotnet/xlf/CliStrings.fr.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.fr.xlf @@ -59,6 +59,11 @@ La spécification des options « -r |--Runtime » et « os » n’est pas prise en charge. + + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + + Column maximum width must be greater than zero. La largeur maximale de colonne doit être supérieure à zéro. diff --git a/src/Cli/dotnet/xlf/CliStrings.it.xlf b/src/Cli/dotnet/xlf/CliStrings.it.xlf index 206d295fe385..9f9a84940bc8 100644 --- a/src/Cli/dotnet/xlf/CliStrings.it.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.it.xlf @@ -59,6 +59,11 @@ La specifica di entrambe le opzioni `-r|--runtime` e `-os` non è supportata. + + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + + Column maximum width must be greater than zero. La larghezza massima della colonna deve essere maggiore di zero. diff --git a/src/Cli/dotnet/xlf/CliStrings.ja.xlf b/src/Cli/dotnet/xlf/CliStrings.ja.xlf index 4a8b5dd083ad..395160dad564 100644 --- a/src/Cli/dotnet/xlf/CliStrings.ja.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.ja.xlf @@ -59,6 +59,11 @@ `-r|--runtime` および `-os` オプションの両方を指定することはサポートされていません。 + + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + + Column maximum width must be greater than zero. 列の最大幅はゼロより大きくなければなりません。 diff --git a/src/Cli/dotnet/xlf/CliStrings.ko.xlf b/src/Cli/dotnet/xlf/CliStrings.ko.xlf index 069408145055..81b2687cc8b0 100644 --- a/src/Cli/dotnet/xlf/CliStrings.ko.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.ko.xlf @@ -59,6 +59,11 @@ `-r|--runtime` 및 `-os` 옵션을 모두 지정하는 것은 지원되지 않습니다. + + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + + Column maximum width must be greater than zero. 열 최대 너비는 0보다 커야 합니다. diff --git a/src/Cli/dotnet/xlf/CliStrings.pl.xlf b/src/Cli/dotnet/xlf/CliStrings.pl.xlf index 09cf70e51f97..d1e805c29fdc 100644 --- a/src/Cli/dotnet/xlf/CliStrings.pl.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.pl.xlf @@ -59,6 +59,11 @@ Określanie opcji „-r|--runtime” i „-os” nie jest obsługiwane. + + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + + Column maximum width must be greater than zero. Maksymalna szerokość kolumny musi być większa niż zero. diff --git a/src/Cli/dotnet/xlf/CliStrings.pt-BR.xlf b/src/Cli/dotnet/xlf/CliStrings.pt-BR.xlf index f92a5e258743..24daa58356ed 100644 --- a/src/Cli/dotnet/xlf/CliStrings.pt-BR.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.pt-BR.xlf @@ -59,6 +59,11 @@ Não há suporte para especificar as opções '-r |--runtime ' e '-a |--os '. + + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + + Column maximum width must be greater than zero. A largura máxima da coluna deve ser maior que zero. diff --git a/src/Cli/dotnet/xlf/CliStrings.ru.xlf b/src/Cli/dotnet/xlf/CliStrings.ru.xlf index a45ec9415519..7ab8b2c946c6 100644 --- a/src/Cli/dotnet/xlf/CliStrings.ru.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.ru.xlf @@ -59,6 +59,11 @@ Указание параметров "-r|--runtime" и "-os" не поддерживается. + + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + + Column maximum width must be greater than zero. Максимальная ширина столбца должна быть больше нуля. diff --git a/src/Cli/dotnet/xlf/CliStrings.tr.xlf b/src/Cli/dotnet/xlf/CliStrings.tr.xlf index b139a21005e6..2a88dad9a84a 100644 --- a/src/Cli/dotnet/xlf/CliStrings.tr.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.tr.xlf @@ -59,6 +59,11 @@ Hem `-r|--runtime` hem de `-os` seçeneğinin belirtilmesi desteklenmiyor. + + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + + Column maximum width must be greater than zero. Maksimum sütun genişliği sıfırdan büyük olmalıdır. diff --git a/src/Cli/dotnet/xlf/CliStrings.zh-Hans.xlf b/src/Cli/dotnet/xlf/CliStrings.zh-Hans.xlf index 28f1e78422ac..23622ae70d00 100644 --- a/src/Cli/dotnet/xlf/CliStrings.zh-Hans.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.zh-Hans.xlf @@ -59,6 +59,11 @@ 不支持同时指定“-r |--runtime”和“-os”选项。 + + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + + Column maximum width must be greater than zero. 列的最大宽度必须大于零。 diff --git a/src/Cli/dotnet/xlf/CliStrings.zh-Hant.xlf b/src/Cli/dotnet/xlf/CliStrings.zh-Hant.xlf index 59521667921e..ab7e59678b5a 100644 --- a/src/Cli/dotnet/xlf/CliStrings.zh-Hant.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.zh-Hant.xlf @@ -59,6 +59,11 @@ 不支援同時指定 `-r|--runtime` 與 `-os` 選項。 + + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + + Column maximum width must be greater than zero. 資料行寬度上限必須大於零。 diff --git a/test/Microsoft.DotNet.PackageInstall.Tests/NuGetPackageInstallerTests.cs b/test/Microsoft.DotNet.PackageInstall.Tests/NuGetPackageInstallerTests.cs index 8e0693efdad9..cbed99704b05 100644 --- a/test/Microsoft.DotNet.PackageInstall.Tests/NuGetPackageInstallerTests.cs +++ b/test/Microsoft.DotNet.PackageInstall.Tests/NuGetPackageInstallerTests.cs @@ -391,5 +391,25 @@ private static FilePath GenerateRandomNugetConfigFilePath() private static string GetTestLocalFeedPath() => Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "TestAssetLocalNugetFeed"); + + [Fact] + public async Task RejectsAdditionalSourceFeedsWhenMappingActive() + { + var mappingRules = new Dictionary> + { + { "feed1", new List { "PackageX.*" } } + }; + var mapping = new PackageSourceMapping(new ReadOnlyDictionary>(mappingRules)); + string someFeed = GetTestLocalFeedPath(); + + var download = async () => await _toolInstaller.DownloadPackageAsync( + TestPackageId, + new NuGetVersion(TestPackageVersion), + new PackageSourceLocation(additionalSourceFeeds: new[] { someFeed }), + packageSourceMapping: mapping); + + var ex = await download.Should().ThrowAsync(); + ex.Which.Message.Should().Contain(CliStrings.CannotUseAddSourceWithSourceMapping); + } } } From ed3346f048c774bb5c0aa91977042f4e2becdff7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Feb 2026 01:16:30 +0000 Subject: [PATCH 021/179] Fix package source mapping tests to use nuget config instead of source overrides Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com> --- .../NuGetPackageInstallerTests.cs | 68 ++++++++++++------- 1 file changed, 42 insertions(+), 26 deletions(-) diff --git a/test/Microsoft.DotNet.PackageInstall.Tests/NuGetPackageInstallerTests.cs b/test/Microsoft.DotNet.PackageInstall.Tests/NuGetPackageInstallerTests.cs index cbed99704b05..5c64eacaee25 100644 --- a/test/Microsoft.DotNet.PackageInstall.Tests/NuGetPackageInstallerTests.cs +++ b/test/Microsoft.DotNet.PackageInstall.Tests/NuGetPackageInstallerTests.cs @@ -174,43 +174,59 @@ public async Task GivenARelativeSourcePathInstallSucceeds() [Fact] public async Task GivenNoPackageSourceMappingItShouldError() { - string getTestLocalFeedPath = GetTestLocalFeedPath(); - string relativePath = Path.GetRelativePath(Environment.CurrentDirectory, getTestLocalFeedPath); - Log.WriteLine(relativePath); - var dictionary = new Dictionary> - { - { "sourceA", new List() { "a" } } - }; - var patterns = new ReadOnlyDictionary>(dictionary); - var mockPackageSourceMapping = new PackageSourceMapping(patterns); + string testFeed = GetTestLocalFeedPath(); + FilePath configPath = GenerateRandomNugetConfigFilePath(); + FileSystemWrapper fs = new(); + + fs.Directory.CreateDirectory(configPath.GetDirectoryPath().Value); + string configContent = $@" + + + + + + + + + + +"; + fs.File.WriteAllText(configPath.Value, configContent); - Func a = () => _toolInstaller.DownloadPackageAsync( + Func downloadAction = () => _toolInstaller.DownloadPackageAsync( TestPackageId, new NuGetVersion(TestPackageVersion), - new PackageSourceLocation(additionalSourceFeeds: [ relativePath ]), - packageSourceMapping: mockPackageSourceMapping); - (await a.Should().ThrowAsync()).And.Message.Should().Contain(string.Format(CliStrings.FailedToFindSourceUnderPackageSourceMapping, TestPackageId)); + new PackageSourceLocation(nugetConfig: configPath)); + (await downloadAction.Should().ThrowAsync()).And.Message.Should().Contain(string.Format(CliStrings.FailedToFindSourceUnderPackageSourceMapping, TestPackageId)); } [Fact] public async Task GivenPackageSourceMappingFeedNotFoundItShouldError() { - string getTestLocalFeedPath = GetTestLocalFeedPath(); - string relativePath = Path.GetRelativePath(Environment.CurrentDirectory, getTestLocalFeedPath); - Log.WriteLine(relativePath); - var dictionary = new Dictionary> - { - { "nonexistentfeed", new List() { TestPackageId.ToString() } } - }; - var patterns = new ReadOnlyDictionary>(dictionary); - var mockPackageSourceMapping = new PackageSourceMapping(patterns); + string testFeed = GetTestLocalFeedPath(); + FilePath configPath = GenerateRandomNugetConfigFilePath(); + FileSystemWrapper fs = new(); + + fs.Directory.CreateDirectory(configPath.GetDirectoryPath().Value); + string configContent = $@" + + + + + + + + + + +"; + fs.File.WriteAllText(configPath.Value, configContent); - Func a = () => _toolInstaller.DownloadPackageAsync( + Func downloadAction = () => _toolInstaller.DownloadPackageAsync( TestPackageId, new NuGetVersion(TestPackageVersion), - new PackageSourceLocation(additionalSourceFeeds: [ relativePath ]), - packageSourceMapping: mockPackageSourceMapping); - (await a.Should().ThrowAsync()).And.Message.Should().Contain(string.Format(CliStrings.FailedToMapSourceUnderPackageSourceMapping, TestPackageId)); + new PackageSourceLocation(nugetConfig: configPath)); + (await downloadAction.Should().ThrowAsync()).And.Message.Should().Contain(string.Format(CliStrings.FailedToMapSourceUnderPackageSourceMapping, TestPackageId)); } [Fact] From c35433bfffe43ecbb6444cc907b062963120d5c2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Feb 2026 01:18:59 +0000 Subject: [PATCH 022/179] Address code review feedback on test Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com> --- .../NuGetPackageInstallerTests.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/Microsoft.DotNet.PackageInstall.Tests/NuGetPackageInstallerTests.cs b/test/Microsoft.DotNet.PackageInstall.Tests/NuGetPackageInstallerTests.cs index 5c64eacaee25..a23dac5004c2 100644 --- a/test/Microsoft.DotNet.PackageInstall.Tests/NuGetPackageInstallerTests.cs +++ b/test/Microsoft.DotNet.PackageInstall.Tests/NuGetPackageInstallerTests.cs @@ -418,14 +418,14 @@ public async Task RejectsAdditionalSourceFeedsWhenMappingActive() var mapping = new PackageSourceMapping(new ReadOnlyDictionary>(mappingRules)); string someFeed = GetTestLocalFeedPath(); - var download = async () => await _toolInstaller.DownloadPackageAsync( + var download = () => _toolInstaller.DownloadPackageAsync( TestPackageId, new NuGetVersion(TestPackageVersion), new PackageSourceLocation(additionalSourceFeeds: new[] { someFeed }), packageSourceMapping: mapping); - var ex = await download.Should().ThrowAsync(); - ex.Which.Message.Should().Contain(CliStrings.CannotUseAddSourceWithSourceMapping); + (await download.Should().ThrowAsync()) + .Which.Message.Should().Contain(CliStrings.CannotUseAddSourceWithSourceMapping); } } } From d539d26503eb64ee8cc100e8b93a2a0f476c194b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 6 Feb 2026 02:02:03 +0000 Subject: [PATCH 023/179] Update dependencies from https://github.com/microsoft/testfx build 20260205.1 On relative base path root Microsoft.Testing.Platform From Version 2.1.0-preview.26104.5 -> To Version 2.1.0-preview.26105.1 MSTest From Version 4.1.0-preview.26104.5 -> To Version 4.1.0-preview.26105.1 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 9cadf42ae1f7..a4e3041c30d9 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.1.0-preview.26104.5 - 4.1.0-preview.26104.5 + 2.1.0-preview.26105.1 + 4.1.0-preview.26105.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7bd4505ecca0..0c85eed22c5b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/microsoft/testfx - a2c4911469efabcce5f79d6814ebc6e6f36b7d76 + 649edbcc0fa7db4e72b10718deb05680e94f7cfa - + https://github.com/microsoft/testfx - a2c4911469efabcce5f79d6814ebc6e6f36b7d76 + 649edbcc0fa7db4e72b10718deb05680e94f7cfa https://github.com/dotnet/dotnet From 43fdca5605c314e1ea5c2efdc9497d3aefbde845 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Feb 2026 23:13:52 +0000 Subject: [PATCH 024/179] Simplify error message per feedback Remove redundant second sentence and change "different" to "additional" Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com> --- src/Cli/dotnet/CliStrings.resx | 2 +- src/Cli/dotnet/xlf/CliStrings.cs.xlf | 4 ++-- src/Cli/dotnet/xlf/CliStrings.de.xlf | 4 ++-- src/Cli/dotnet/xlf/CliStrings.es.xlf | 4 ++-- src/Cli/dotnet/xlf/CliStrings.fr.xlf | 4 ++-- src/Cli/dotnet/xlf/CliStrings.it.xlf | 4 ++-- src/Cli/dotnet/xlf/CliStrings.ja.xlf | 4 ++-- src/Cli/dotnet/xlf/CliStrings.ko.xlf | 4 ++-- src/Cli/dotnet/xlf/CliStrings.pl.xlf | 4 ++-- src/Cli/dotnet/xlf/CliStrings.pt-BR.xlf | 4 ++-- src/Cli/dotnet/xlf/CliStrings.ru.xlf | 4 ++-- src/Cli/dotnet/xlf/CliStrings.tr.xlf | 4 ++-- src/Cli/dotnet/xlf/CliStrings.zh-Hans.xlf | 4 ++-- src/Cli/dotnet/xlf/CliStrings.zh-Hant.xlf | 4 ++-- 14 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/Cli/dotnet/CliStrings.resx b/src/Cli/dotnet/CliStrings.resx index 65cf8884f3ad..9852b3e8cb5c 100644 --- a/src/Cli/dotnet/CliStrings.resx +++ b/src/Cli/dotnet/CliStrings.resx @@ -456,7 +456,7 @@ setx PATH "%PATH%;{0}" {0}: failed to find toolAssembly for {1} - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping Failed to load NuGet source {0} diff --git a/src/Cli/dotnet/xlf/CliStrings.cs.xlf b/src/Cli/dotnet/xlf/CliStrings.cs.xlf index b8c635f20f56..db5371f22682 100644 --- a/src/Cli/dotnet/xlf/CliStrings.cs.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.cs.xlf @@ -60,8 +60,8 @@ - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.de.xlf b/src/Cli/dotnet/xlf/CliStrings.de.xlf index 526be4f2358b..ddea45d9cfb0 100644 --- a/src/Cli/dotnet/xlf/CliStrings.de.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.de.xlf @@ -60,8 +60,8 @@ - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.es.xlf b/src/Cli/dotnet/xlf/CliStrings.es.xlf index b53adb419c5a..2e66a832a734 100644 --- a/src/Cli/dotnet/xlf/CliStrings.es.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.es.xlf @@ -60,8 +60,8 @@ - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.fr.xlf b/src/Cli/dotnet/xlf/CliStrings.fr.xlf index 8a6ecc195f3a..b3cd285e60fc 100644 --- a/src/Cli/dotnet/xlf/CliStrings.fr.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.fr.xlf @@ -60,8 +60,8 @@ - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.it.xlf b/src/Cli/dotnet/xlf/CliStrings.it.xlf index 9f9a84940bc8..6b4798b5e654 100644 --- a/src/Cli/dotnet/xlf/CliStrings.it.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.it.xlf @@ -60,8 +60,8 @@ - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.ja.xlf b/src/Cli/dotnet/xlf/CliStrings.ja.xlf index 395160dad564..de6ce5eb5e0d 100644 --- a/src/Cli/dotnet/xlf/CliStrings.ja.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.ja.xlf @@ -60,8 +60,8 @@ - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.ko.xlf b/src/Cli/dotnet/xlf/CliStrings.ko.xlf index 81b2687cc8b0..8e2a8fd5cbe0 100644 --- a/src/Cli/dotnet/xlf/CliStrings.ko.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.ko.xlf @@ -60,8 +60,8 @@ - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.pl.xlf b/src/Cli/dotnet/xlf/CliStrings.pl.xlf index d1e805c29fdc..ecdf18a4ef35 100644 --- a/src/Cli/dotnet/xlf/CliStrings.pl.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.pl.xlf @@ -60,8 +60,8 @@ - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.pt-BR.xlf b/src/Cli/dotnet/xlf/CliStrings.pt-BR.xlf index 24daa58356ed..953da0a993eb 100644 --- a/src/Cli/dotnet/xlf/CliStrings.pt-BR.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.pt-BR.xlf @@ -60,8 +60,8 @@ - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.ru.xlf b/src/Cli/dotnet/xlf/CliStrings.ru.xlf index 7ab8b2c946c6..a0d9c87fb26a 100644 --- a/src/Cli/dotnet/xlf/CliStrings.ru.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.ru.xlf @@ -60,8 +60,8 @@ - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.tr.xlf b/src/Cli/dotnet/xlf/CliStrings.tr.xlf index 2a88dad9a84a..b69a06287572 100644 --- a/src/Cli/dotnet/xlf/CliStrings.tr.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.tr.xlf @@ -60,8 +60,8 @@ - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.zh-Hans.xlf b/src/Cli/dotnet/xlf/CliStrings.zh-Hans.xlf index 23622ae70d00..bb50e59dfae7 100644 --- a/src/Cli/dotnet/xlf/CliStrings.zh-Hans.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.zh-Hans.xlf @@ -60,8 +60,8 @@ - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.zh-Hant.xlf b/src/Cli/dotnet/xlf/CliStrings.zh-Hant.xlf index ab7e59678b5a..f8f638292eac 100644 --- a/src/Cli/dotnet/xlf/CliStrings.zh-Hant.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.zh-Hant.xlf @@ -60,8 +60,8 @@ - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. When source mapping is configured, additional sources specified via command line are not permitted. To use a different source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping From d7b1062656e53db86caf3f4f0f193b3abe97aea8 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 7 Feb 2026 02:02:30 +0000 Subject: [PATCH 025/179] Update dependencies from https://github.com/microsoft/testfx build 20260206.5 On relative base path root Microsoft.Testing.Platform From Version 2.1.0-preview.26105.1 -> To Version 2.1.0-preview.26106.5 MSTest From Version 4.1.0-preview.26105.1 -> To Version 4.1.0-preview.26106.5 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index a4e3041c30d9..48f3f9fa4346 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.1.0-preview.26105.1 - 4.1.0-preview.26105.1 + 2.1.0-preview.26106.5 + 4.1.0-preview.26106.5 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0c85eed22c5b..d579c25e0993 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/microsoft/testfx - 649edbcc0fa7db4e72b10718deb05680e94f7cfa + a02044d021b6dff22b94655166e50b6819f9989d - + https://github.com/microsoft/testfx - 649edbcc0fa7db4e72b10718deb05680e94f7cfa + a02044d021b6dff22b94655166e50b6819f9989d https://github.com/dotnet/dotnet From 181f7eabe1050313d1734b7613c8ce4e4166db25 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 8 Feb 2026 02:01:46 +0000 Subject: [PATCH 026/179] Update dependencies from https://github.com/microsoft/testfx build 20260207.1 On relative base path root Microsoft.Testing.Platform From Version 2.1.0-preview.26105.1 -> To Version 2.1.0-preview.26107.1 MSTest From Version 4.1.0-preview.26105.1 -> To Version 4.1.0-preview.26107.1 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 48f3f9fa4346..aee8c430ca2e 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.1.0-preview.26106.5 - 4.1.0-preview.26106.5 + 2.1.0-preview.26107.1 + 4.1.0-preview.26107.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d579c25e0993..bc4cf452d604 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/microsoft/testfx - a02044d021b6dff22b94655166e50b6819f9989d + 46578cb4ef47e5ac64818305e50851bcd4fbb4b8 - + https://github.com/microsoft/testfx - a02044d021b6dff22b94655166e50b6819f9989d + 46578cb4ef47e5ac64818305e50851bcd4fbb4b8 https://github.com/dotnet/dotnet From ca809c5959b93aec1d2a0a6e47c04cdf79a1161b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Feb 2026 18:47:18 +0000 Subject: [PATCH 027/179] Initial plan From f39f8c9d9265de9b46b4afd77392257c53f97c7e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Feb 2026 18:55:19 +0000 Subject: [PATCH 028/179] Add comprehensive LLM tool detections with tests Co-authored-by: baronfel <573979+baronfel@users.noreply.github.com> --- .../Telemetry/EnvironmentDetectionRule.cs | 21 +++++++++++++ .../LLMEnvironmentDetectorForTelemetry.cs | 30 +++++++++++++++++-- .../TelemetryCommonPropertiesTests.cs | 22 ++++++++++++++ 3 files changed, 71 insertions(+), 2 deletions(-) diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/Telemetry/EnvironmentDetectionRule.cs b/src/Cli/Microsoft.DotNet.Cli.Definitions/Telemetry/EnvironmentDetectionRule.cs index 80d710d66cc0..ad9322a22633 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/Telemetry/EnvironmentDetectionRule.cs +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/Telemetry/EnvironmentDetectionRule.cs @@ -69,6 +69,27 @@ public override bool IsMatch() } } +/// +/// Rule that matches when an environment variable contains a specific value (case-insensitive). +/// +internal class EnvironmentVariableValueRule : EnvironmentDetectionRule +{ + private readonly string _variable; + private readonly string _expectedValue; + + public EnvironmentVariableValueRule(string variable, string expectedValue) + { + _variable = variable ?? throw new ArgumentNullException(nameof(variable)); + _expectedValue = expectedValue ?? throw new ArgumentNullException(nameof(expectedValue)); + } + + public override bool IsMatch() + { + var value = Environment.GetEnvironmentVariable(_variable); + return !string.IsNullOrEmpty(value) && value.Equals(_expectedValue, StringComparison.OrdinalIgnoreCase); + } +} + /// /// Rule that matches when any of the specified environment variables is present and not null/empty, /// and returns the associated result value. diff --git a/src/Cli/dotnet/Telemetry/LLMEnvironmentDetectorForTelemetry.cs b/src/Cli/dotnet/Telemetry/LLMEnvironmentDetectorForTelemetry.cs index b37f9b5d0830..65368c4eef69 100644 --- a/src/Cli/dotnet/Telemetry/LLMEnvironmentDetectorForTelemetry.cs +++ b/src/Cli/dotnet/Telemetry/LLMEnvironmentDetectorForTelemetry.cs @@ -7,13 +7,39 @@ internal class LLMEnvironmentDetectorForTelemetry : ILLMEnvironmentDetector { private static readonly EnvironmentDetectionRuleWithResult[] _detectionRules = [ // Claude Code - new EnvironmentDetectionRuleWithResult("claude", new AnyPresentEnvironmentRule("CLAUDECODE")), + new EnvironmentDetectionRuleWithResult("claude", new AnyPresentEnvironmentRule("CLAUDECODE", "CLAUDE_CODE_ENTRYPOINT")), // Cursor AI - new EnvironmentDetectionRuleWithResult("cursor", new AnyPresentEnvironmentRule("CURSOR_EDITOR")), + new EnvironmentDetectionRuleWithResult("cursor", new AnyPresentEnvironmentRule("CURSOR_EDITOR", "CURSOR_AI")), // Gemini new EnvironmentDetectionRuleWithResult("gemini", new BooleanEnvironmentRule("GEMINI_CLI")), // GitHub Copilot new EnvironmentDetectionRuleWithResult("copilot", new BooleanEnvironmentRule("GITHUB_COPILOT_CLI_MODE")), + // Codex CLI + new EnvironmentDetectionRuleWithResult("codex", new AnyPresentEnvironmentRule("CODEX_CLI", "CODEX_SANDBOX")), + // Aider + new EnvironmentDetectionRuleWithResult("aider", new EnvironmentVariableValueRule("OR_APP_NAME", "Aider")), + // Amp + new EnvironmentDetectionRuleWithResult("amp", new AnyPresentEnvironmentRule("AMP_HOME")), + // Qwen Code + new EnvironmentDetectionRuleWithResult("qwen", new AnyPresentEnvironmentRule("QWEN_CODE")), + // Droid + new EnvironmentDetectionRuleWithResult("droid", new BooleanEnvironmentRule("DROID_CLI")), + // OpenCode + new EnvironmentDetectionRuleWithResult("opencode", new AnyPresentEnvironmentRule("OPENCODE_AI")), + // Zed AI + new EnvironmentDetectionRuleWithResult("zed", new AnyPresentEnvironmentRule("ZED_ENVIRONMENT", "ZED_TERM")), + // Kimi CLI + new EnvironmentDetectionRuleWithResult("kimi", new BooleanEnvironmentRule("KIMI_CLI")), + // OpenHands + new EnvironmentDetectionRuleWithResult("openhands", new EnvironmentVariableValueRule("OR_APP_NAME", "OpenHands")), + // Goose + new EnvironmentDetectionRuleWithResult("goose", new AnyPresentEnvironmentRule("GOOSE_TERMINAL")), + // Cline + new EnvironmentDetectionRuleWithResult("cline", new AnyPresentEnvironmentRule("CLINE_TASK_ID")), + // Roo Code + new EnvironmentDetectionRuleWithResult("roo", new AnyPresentEnvironmentRule("ROO_CODE_TASK_ID")), + // Windsurf + new EnvironmentDetectionRuleWithResult("windsurf", new AnyPresentEnvironmentRule("WINDSURF_SESSION")), // (proposed) generic flag for Agentic usage new EnvironmentDetectionRuleWithResult("generic_agent", new BooleanEnvironmentRule("AGENT_CLI")), ]; diff --git a/test/dotnet.Tests/TelemetryCommonPropertiesTests.cs b/test/dotnet.Tests/TelemetryCommonPropertiesTests.cs index 4e28b92479d7..ce773577dc1f 100644 --- a/test/dotnet.Tests/TelemetryCommonPropertiesTests.cs +++ b/test/dotnet.Tests/TelemetryCommonPropertiesTests.cs @@ -231,9 +231,28 @@ public void TelemetryCommonPropertiesShouldContainSessionId(string? sessionId) public static TheoryData?, string?> LLMTelemetryTestCases => new() { { new Dictionary { {"CLAUDECODE", "1" } }, "claude" }, + { new Dictionary { {"CLAUDE_CODE_ENTRYPOINT", "some_value" } }, "claude" }, { new Dictionary { { "CURSOR_EDITOR", "1" } }, "cursor" }, + { new Dictionary { { "CURSOR_AI", "1" } }, "cursor" }, { new Dictionary { { "GEMINI_CLI", "true" } }, "gemini" }, { new Dictionary { { "GITHUB_COPILOT_CLI_MODE", "true" } }, "copilot" }, + { new Dictionary { { "CODEX_CLI", "1" } }, "codex" }, + { new Dictionary { { "CODEX_SANDBOX", "1" } }, "codex" }, + { new Dictionary { { "OR_APP_NAME", "Aider" } }, "aider" }, + { new Dictionary { { "OR_APP_NAME", "aider" } }, "aider" }, + { new Dictionary { { "AMP_HOME", "/path/to/amp" } }, "amp" }, + { new Dictionary { { "QWEN_CODE", "1" } }, "qwen" }, + { new Dictionary { { "DROID_CLI", "true" } }, "droid" }, + { new Dictionary { { "OPENCODE_AI", "1" } }, "opencode" }, + { new Dictionary { { "ZED_ENVIRONMENT", "1" } }, "zed" }, + { new Dictionary { { "ZED_TERM", "1" } }, "zed" }, + { new Dictionary { { "KIMI_CLI", "true" } }, "kimi" }, + { new Dictionary { { "OR_APP_NAME", "OpenHands" } }, "openhands" }, + { new Dictionary { { "OR_APP_NAME", "openhands" } }, "openhands" }, + { new Dictionary { { "GOOSE_TERMINAL", "1" } }, "goose" }, + { new Dictionary { { "CLINE_TASK_ID", "task123" } }, "cline" }, + { new Dictionary { { "ROO_CODE_TASK_ID", "task456" } }, "roo" }, + { new Dictionary { { "WINDSURF_SESSION", "session789" } }, "windsurf" }, { new Dictionary { { "AGENT_CLI", "true" } }, "generic_agent" }, { new Dictionary { { "CLAUDECODE", "1" }, { "CURSOR_EDITOR", "1" } }, "claude, cursor" }, { new Dictionary { { "GEMINI_CLI", "true" }, { "GITHUB_COPILOT_CLI_MODE", "true" } }, "gemini, copilot" }, @@ -242,6 +261,9 @@ public void TelemetryCommonPropertiesShouldContainSessionId(string? sessionId) { new Dictionary { { "GEMINI_CLI", "false" } }, null }, { new Dictionary { { "GITHUB_COPILOT_CLI_MODE", "false" } }, null }, { new Dictionary { { "AGENT_CLI", "false" } }, null }, + { new Dictionary { { "DROID_CLI", "false" } }, null }, + { new Dictionary { { "KIMI_CLI", "false" } }, null }, + { new Dictionary { { "OR_APP_NAME", "SomeOtherApp" } }, null }, { new Dictionary(), null }, }; From 9438deab5d1ab39936148004b88622e402ac1ba0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Feb 2026 18:59:20 +0000 Subject: [PATCH 029/179] Add test cases for combinations of newer LLM tools Co-authored-by: baronfel <573979+baronfel@users.noreply.github.com> --- test/dotnet.Tests/TelemetryCommonPropertiesTests.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/dotnet.Tests/TelemetryCommonPropertiesTests.cs b/test/dotnet.Tests/TelemetryCommonPropertiesTests.cs index ce773577dc1f..188faf237128 100644 --- a/test/dotnet.Tests/TelemetryCommonPropertiesTests.cs +++ b/test/dotnet.Tests/TelemetryCommonPropertiesTests.cs @@ -254,10 +254,15 @@ public void TelemetryCommonPropertiesShouldContainSessionId(string? sessionId) { new Dictionary { { "ROO_CODE_TASK_ID", "task456" } }, "roo" }, { new Dictionary { { "WINDSURF_SESSION", "session789" } }, "windsurf" }, { new Dictionary { { "AGENT_CLI", "true" } }, "generic_agent" }, + // Test combinations of older tools { new Dictionary { { "CLAUDECODE", "1" }, { "CURSOR_EDITOR", "1" } }, "claude, cursor" }, { new Dictionary { { "GEMINI_CLI", "true" }, { "GITHUB_COPILOT_CLI_MODE", "true" } }, "gemini, copilot" }, { new Dictionary { { "CLAUDECODE", "1" }, { "GEMINI_CLI", "true" }, { "AGENT_CLI", "true" } }, "claude, gemini, generic_agent" }, { new Dictionary { { "CLAUDECODE", "1" }, { "CURSOR_EDITOR", "1" }, { "GEMINI_CLI", "true" }, { "GITHUB_COPILOT_CLI_MODE", "true" }, { "AGENT_CLI", "true" } }, "claude, cursor, gemini, copilot, generic_agent" }, + // Test combinations of newer tools + { new Dictionary { { "OR_APP_NAME", "Aider" }, { "CLINE_TASK_ID", "task123" } }, "aider, cline" }, + { new Dictionary { { "CODEX_CLI", "1" }, { "WINDSURF_SESSION", "session789" } }, "codex, windsurf" }, + { new Dictionary { { "GOOSE_TERMINAL", "1" }, { "ROO_CODE_TASK_ID", "task456" } }, "goose, roo" }, { new Dictionary { { "GEMINI_CLI", "false" } }, null }, { new Dictionary { { "GITHUB_COPILOT_CLI_MODE", "false" } }, null }, { new Dictionary { { "AGENT_CLI", "false" } }, null }, From 3211e64e3ab761e34a97d006bb45a0bc4b2cdb8b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Feb 2026 23:59:19 +0000 Subject: [PATCH 030/179] Update telemetry documentation with new LLM tools Co-authored-by: baronfel <573979+baronfel@users.noreply.github.com> --- documentation/project-docs/telemetry.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/project-docs/telemetry.md b/documentation/project-docs/telemetry.md index e559f60bb25b..6db82f712ee1 100644 --- a/documentation/project-docs/telemetry.md +++ b/documentation/project-docs/telemetry.md @@ -61,7 +61,7 @@ Every telemetry event automatically includes these common properties: | **Telemetry Profile** | Custom telemetry profile (if set via env var) | Custom value or null | | **Docker Container** | Whether running in Docker container | `True` or `False` | | **CI** | Whether running in CI environment | `True` or `False` | -| **LLM** | Detected LLM/assistant environment identifiers (comma-separated) | `claude`, `cursor`, `gemini`, `copilot`, `generic_agent` | +| **LLM** | Detected LLM/assistant environment identifiers (comma-separated) | `claude`, `cursor`, `gemini`, `copilot`, `codex`, `aider`, `amp`, `qwen`, `droid`, `opencode`, `zed`, `kimi`, `openhands`, `goose`, `cline`, `roo`, `windsurf`, `generic_agent` | | **Current Path Hash** | SHA256 hash of current directory path | Hashed value | | **Machine ID** | SHA256 hash of machine MAC address (or GUID if unavailable) | Hashed value | | **Machine ID Old** | Legacy machine ID for compatibility | Hashed value | From c46b581215b510ac18d43f3e5536ea656ac3326a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 9 Feb 2026 02:02:35 +0000 Subject: [PATCH 031/179] Update dependencies from https://github.com/microsoft/testfx build 20260208.2 On relative base path root Microsoft.Testing.Platform From Version 2.1.0-preview.26105.1 -> To Version 2.1.0-preview.26108.2 MSTest From Version 4.1.0-preview.26105.1 -> To Version 4.1.0-preview.26108.2 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index aee8c430ca2e..94378d8276e0 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.1.0-preview.26107.1 - 4.1.0-preview.26107.1 + 2.1.0-preview.26108.2 + 4.1.0-preview.26108.2 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bc4cf452d604..2a7f51604d8e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/microsoft/testfx - 46578cb4ef47e5ac64818305e50851bcd4fbb4b8 + 8d0f926788049a72e5292c827020e87bb454d371 - + https://github.com/microsoft/testfx - 46578cb4ef47e5ac64818305e50851bcd4fbb4b8 + 8d0f926788049a72e5292c827020e87bb454d371 https://github.com/dotnet/dotnet From e74da2d5add1ca332856d766ccfe9d6e5d535229 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 9 Feb 2026 21:50:02 +0000 Subject: [PATCH 032/179] Update dependencies from build 301019 On relative base path root Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal,Microsoft.CodeAnalysis.Razor.Tooling.Internal,Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 10.0.0-preview.26106.102 -> To Version 10.0.0-preview.26109.105 (parent: ) Microsoft.Build,Microsoft.Build.Localization,Microsoft.NET.Test.Sdk,Microsoft.TestPlatform.Build,Microsoft.TestPlatform.CLI From Version 18.3.0-release-26106-102 -> To Version 18.3.0-release-26109-105 (parent: ) Microsoft.Build.NuGetSdkResolver,NuGet.Build.Tasks,NuGet.Build.Tasks.Console,NuGet.Build.Tasks.Pack,NuGet.CommandLine.XPlat,NuGet.Commands,NuGet.Common,NuGet.Configuration,NuGet.Credentials,NuGet.DependencyResolver.Core,NuGet.Frameworks,NuGet.LibraryModel,NuGet.Localization,NuGet.Packaging,NuGet.ProjectModel,NuGet.Protocol,NuGet.Versioning From Version 7.3.0-preview.1.10702 -> To Version 7.3.0-preview.1.11005 (parent: ) Microsoft.Build.Tasks.Git,Microsoft.SourceLink.AzureRepos.Git,Microsoft.SourceLink.Bitbucket.Git,Microsoft.SourceLink.Common,Microsoft.SourceLink.GitHub,Microsoft.SourceLink.GitLab From Version 10.0.200-alpha.26106.102 -> To Version 10.0.200-alpha.26109.105 (parent: ) Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.BuildClient,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.CSharp.CodeStyle,Microsoft.CodeAnalysis.CSharp.Features,Microsoft.CodeAnalysis.CSharp.Workspaces,Microsoft.CodeAnalysis.ExternalAccess.HotReload,Microsoft.CodeAnalysis.PublicApiAnalyzers,Microsoft.CodeAnalysis.Workspaces.Common,Microsoft.CodeAnalysis.Workspaces.MSBuild,Microsoft.Net.Compilers.Toolset,Microsoft.Net.Compilers.Toolset.Framework From Version 5.3.0-2.26106.102 -> To Version 5.3.0-2.26109.105 (parent: ) Microsoft.DotNet.Arcade.Sdk,Microsoft.DotNet.Build.Tasks.Installers,Microsoft.DotNet.Build.Tasks.Templating,Microsoft.DotNet.Build.Tasks.Workloads,Microsoft.DotNet.Helix.Sdk,Microsoft.DotNet.SignTool,Microsoft.DotNet.XliffTasks,Microsoft.DotNet.XUnitExtensions From Version 10.0.0-beta.26106.102 -> To Version 10.0.0-beta.26109.105 (parent: ) Microsoft.FSharp.Compiler From Version 15.2.200-servicing.26106.102 -> To Version 15.2.200-servicing.26109.105 (parent: ) Microsoft.TemplateEngine.Abstractions,Microsoft.TemplateEngine.Authoring.TemplateVerifier,Microsoft.TemplateEngine.Edge,Microsoft.TemplateEngine.Mocks,Microsoft.TemplateEngine.Orchestrator.RunnableProjects,Microsoft.TemplateEngine.TestHelper,Microsoft.TemplateEngine.Utils,Microsoft.TemplateSearch.Common,Microsoft.TemplateSearch.TemplateDiscovery From Version 10.0.200-preview.26106.102 -> To Version 10.0.200-preview.26109.105 (parent: ) [[ commit created by automation ]] --- eng/Version.Details.props | 122 +++++++++---------- eng/Version.Details.xml | 246 +++++++++++++++++++------------------- global.json | 4 +- 3 files changed, 186 insertions(+), 186 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index b0670b6f0c64..f7dc60cd0c74 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,68 +6,68 @@ This file should be imported by eng/Versions.props - 10.0.0-preview.26106.102 - 18.3.0-release-26106-102 - 18.3.0-release-26106-102 - 7.3.0-preview.1.10702 - 10.0.200-alpha.26106.102 - 5.3.0-2.26106.102 - 5.3.0-2.26106.102 - 5.3.0-2.26106.102 - 5.3.0-2.26106.102 - 5.3.0-2.26106.102 - 5.3.0-2.26106.102 - 5.3.0-2.26106.102 - 5.3.0-2.26106.102 - 10.0.0-preview.26106.102 - 5.3.0-2.26106.102 - 5.3.0-2.26106.102 - 10.0.0-beta.26106.102 - 10.0.0-beta.26106.102 - 10.0.0-beta.26106.102 - 10.0.0-beta.26106.102 - 10.0.0-beta.26106.102 - 10.0.0-beta.26106.102 - 10.0.0-beta.26106.102 - 10.0.0-beta.26106.102 - 15.2.200-servicing.26106.102 - 5.3.0-2.26106.102 - 5.3.0-2.26106.102 + 10.0.0-preview.26109.105 + 18.3.0-release-26109-105 + 18.3.0-release-26109-105 + 7.3.0-preview.1.11005 + 10.0.200-alpha.26109.105 + 5.3.0-2.26109.105 + 5.3.0-2.26109.105 + 5.3.0-2.26109.105 + 5.3.0-2.26109.105 + 5.3.0-2.26109.105 + 5.3.0-2.26109.105 + 5.3.0-2.26109.105 + 5.3.0-2.26109.105 + 10.0.0-preview.26109.105 + 5.3.0-2.26109.105 + 5.3.0-2.26109.105 + 10.0.0-beta.26109.105 + 10.0.0-beta.26109.105 + 10.0.0-beta.26109.105 + 10.0.0-beta.26109.105 + 10.0.0-beta.26109.105 + 10.0.0-beta.26109.105 + 10.0.0-beta.26109.105 + 10.0.0-beta.26109.105 + 15.2.200-servicing.26109.105 + 5.3.0-2.26109.105 + 5.3.0-2.26109.105 10.0.0-preview.7.25377.103 - 10.0.0-preview.26106.102 - 18.3.0-release-26106-102 - 10.0.200-alpha.26106.102 - 10.0.200-alpha.26106.102 - 10.0.200-alpha.26106.102 - 10.0.200-alpha.26106.102 - 10.0.200-alpha.26106.102 - 10.0.200-preview.26106.102 - 10.0.200-preview.26106.102 - 10.0.200-preview.26106.102 - 10.0.200-preview.26106.102 - 10.0.200-preview.26106.102 - 10.0.200-preview.26106.102 - 10.0.200-preview.26106.102 - 10.0.200-preview.26106.102 - 10.0.200-preview.26106.102 - 18.3.0-release-26106-102 - 18.3.0-release-26106-102 - 7.3.0-preview.1.10702 - 7.3.0-preview.1.10702 - 7.3.0-preview.1.10702 - 7.3.0-preview.1.10702 - 7.3.0-preview.1.10702 - 7.3.0-preview.1.10702 - 7.3.0-preview.1.10702 - 7.3.0-preview.1.10702 - 7.3.0-preview.1.10702 - 7.3.0-preview.1.10702 - 7.3.0-preview.1.10702 - 7.3.0-preview.1.10702 - 7.3.0-preview.1.10702 - 7.3.0-preview.1.10702 - 7.3.0-preview.1.10702 - 7.3.0-preview.1.10702 + 10.0.0-preview.26109.105 + 18.3.0-release-26109-105 + 10.0.200-alpha.26109.105 + 10.0.200-alpha.26109.105 + 10.0.200-alpha.26109.105 + 10.0.200-alpha.26109.105 + 10.0.200-alpha.26109.105 + 10.0.200-preview.26109.105 + 10.0.200-preview.26109.105 + 10.0.200-preview.26109.105 + 10.0.200-preview.26109.105 + 10.0.200-preview.26109.105 + 10.0.200-preview.26109.105 + 10.0.200-preview.26109.105 + 10.0.200-preview.26109.105 + 10.0.200-preview.26109.105 + 18.3.0-release-26109-105 + 18.3.0-release-26109-105 + 7.3.0-preview.1.11005 + 7.3.0-preview.1.11005 + 7.3.0-preview.1.11005 + 7.3.0-preview.1.11005 + 7.3.0-preview.1.11005 + 7.3.0-preview.1.11005 + 7.3.0-preview.1.11005 + 7.3.0-preview.1.11005 + 7.3.0-preview.1.11005 + 7.3.0-preview.1.11005 + 7.3.0-preview.1.11005 + 7.3.0-preview.1.11005 + 7.3.0-preview.1.11005 + 7.3.0-preview.1.11005 + 7.3.0-preview.1.11005 + 7.3.0-preview.1.11005 10.0.2-servicing.25612.105 10.0.2-servicing.25612.105 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1455e9dd2f61..6e33d2cf0eaa 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,42 +1,42 @@ - + - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -72,138 +72,138 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -370,25 +370,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -405,29 +405,29 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 @@ -514,9 +514,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -528,37 +528,37 @@ - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 - + https://github.com/dotnet/dotnet - c8bc46f9ed494cfc09ab38965d72b6a29d50a90d + d49805f26e70023549ead379596f94401432db49 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet diff --git a/global.json b/global.json index 55f97ce8896a..e4fcf242534c 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26106.102", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26106.102", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26109.105", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26109.105", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 10a2d63da226b3f7a39889cd9535e118b3a62295 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 10 Feb 2026 02:02:29 +0000 Subject: [PATCH 033/179] Update dependencies from https://github.com/microsoft/testfx build 20260209.13 On relative base path root Microsoft.Testing.Platform From Version 2.1.0-preview.26108.2 -> To Version 2.2.0-preview.26109.13 MSTest From Version 4.1.0-preview.26108.2 -> To Version 4.2.0-preview.26109.13 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 94378d8276e0..74ffba8a2b5d 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.1.0-preview.26108.2 - 4.1.0-preview.26108.2 + 2.2.0-preview.26109.13 + 4.2.0-preview.26109.13 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2a7f51604d8e..edd6d32c11a8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 3f106e53de8994cbe931ddb9bcec1f095586f089 - + https://github.com/microsoft/testfx - 8d0f926788049a72e5292c827020e87bb454d371 + 05878c02a5bab9320ab574acae6587081362a3ad - + https://github.com/microsoft/testfx - 8d0f926788049a72e5292c827020e87bb454d371 + 05878c02a5bab9320ab574acae6587081362a3ad https://github.com/dotnet/dotnet From 1a07e51ad4621ad5a8fa70887ee9619132751ad6 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 10 Feb 2026 02:02:51 +0000 Subject: [PATCH 034/179] Update dependencies from https://github.com/microsoft/testfx build 20260209.13 On relative base path root Microsoft.Testing.Platform From Version 2.1.0-preview.26108.2 -> To Version 2.2.0-preview.26109.13 MSTest From Version 4.1.0-preview.26108.2 -> To Version 4.2.0-preview.26109.13 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index b0670b6f0c64..a09922bd5528 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -144,8 +144,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.1.0-preview.26108.2 - 4.1.0-preview.26108.2 + 2.2.0-preview.26109.13 + 4.2.0-preview.26109.13 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1455e9dd2f61..14dde61d44ac 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -564,13 +564,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - 8d0f926788049a72e5292c827020e87bb454d371 + 05878c02a5bab9320ab574acae6587081362a3ad - + https://github.com/microsoft/testfx - 8d0f926788049a72e5292c827020e87bb454d371 + 05878c02a5bab9320ab574acae6587081362a3ad https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet From cccad8658554aee86921ba72a92e1d7028ac4865 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 10 Feb 2026 03:14:29 +0000 Subject: [PATCH 035/179] Update dependencies from build 301072 On relative base path root dotnet-dev-certs,dotnet-user-jwts,dotnet-user-secrets,Microsoft.AspNetCore.Analyzers,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.Components.SdkAnalyzers,Microsoft.AspNetCore.DeveloperCertificates.XPlat,Microsoft.AspNetCore.Mvc.Analyzers,Microsoft.AspNetCore.Mvc.Api.Analyzers,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates,Microsoft.NET.HostModel,Microsoft.NET.Sdk.WindowsDesktop,Microsoft.NETCore.Platforms,Microsoft.WindowsDesktop.App.Internal From Version 10.0.4-servicing.26105.106 -> To Version 10.0.4-servicing.26109.109 (parent: ) Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.Authentication.Facebook,Microsoft.AspNetCore.Authentication.Google,Microsoft.AspNetCore.Authentication.MicrosoftAccount,Microsoft.AspNetCore.Authorization,Microsoft.AspNetCore.Components,Microsoft.AspNetCore.Components.Analyzers,Microsoft.AspNetCore.Components.Forms,Microsoft.AspNetCore.Components.Web,Microsoft.AspNetCore.Components.WebAssembly,Microsoft.AspNetCore.Components.WebAssembly.Server,Microsoft.AspNetCore.Components.WebView,Microsoft.AspNetCore.Metadata,Microsoft.AspNetCore.TestHost,Microsoft.Bcl.AsyncInterfaces,Microsoft.DotNet.Web.ItemTemplates.10.0,Microsoft.DotNet.Web.ProjectTemplates.10.0,Microsoft.Extensions.Configuration.Ini,Microsoft.Extensions.DependencyModel,Microsoft.Extensions.FileProviders.Abstractions,Microsoft.Extensions.FileProviders.Embedded,Microsoft.Extensions.FileSystemGlobbing,Microsoft.Extensions.Logging,Microsoft.Extensions.Logging.Abstractions,Microsoft.Extensions.Logging.Console,Microsoft.Extensions.ObjectPool,Microsoft.JSInterop,Microsoft.NET.ILLink.Tasks,Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64,Microsoft.NETCore.App.Ref,Microsoft.Win32.SystemEvents,Microsoft.WindowsDesktop.App.Ref,System.CodeDom,System.ComponentModel.Composition,System.Composition.AttributedModel,System.Composition.Convention,System.Composition.Hosting,System.Composition.Runtime,System.Composition.TypedParts,System.Configuration.ConfigurationManager,System.Diagnostics.DiagnosticSource,System.Formats.Asn1,System.IO.Hashing,System.Reflection.MetadataLoadContext,System.Resources.Extensions,System.Security.Cryptography.Pkcs,System.Security.Cryptography.ProtectedData,System.Security.Cryptography.Xml,System.Security.Permissions,System.ServiceProcess.ServiceController,System.Text.Encoding.CodePages,System.Text.Json,System.Windows.Extensions From Version 10.0.4 -> To Version 10.0.4 (parent: ) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal,Microsoft.CodeAnalysis.Razor.Tooling.Internal,Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 10.0.0-preview.26105.106 -> To Version 10.0.0-preview.26109.109 (parent: ) Microsoft.Build From Version 18.0.11 -> To Version 18.0.11 (parent: ) Microsoft.Build.Localization From Version 18.0.11-servicing-26105-106 -> To Version 18.0.11-servicing-26109-109 (parent: ) Microsoft.Build.NuGetSdkResolver,NuGet.Build.Tasks,NuGet.Build.Tasks.Console,NuGet.Build.Tasks.Pack,NuGet.CommandLine.XPlat,NuGet.Commands,NuGet.Common,NuGet.Configuration,NuGet.Credentials,NuGet.DependencyResolver.Core,NuGet.Frameworks,NuGet.LibraryModel,NuGet.Localization,NuGet.Packaging,NuGet.ProjectModel,NuGet.Protocol,NuGet.Versioning From Version 7.0.2-rc.10606 -> To Version 7.0.2-rc.11009 (parent: ) Microsoft.Build.Tasks.Git,Microsoft.SourceLink.AzureRepos.Git,Microsoft.SourceLink.Bitbucket.Git,Microsoft.SourceLink.Common,Microsoft.SourceLink.GitHub,Microsoft.SourceLink.GitLab,Microsoft.TemplateEngine.Abstractions,Microsoft.TemplateEngine.Authoring.TemplateVerifier,Microsoft.TemplateEngine.Edge,Microsoft.TemplateEngine.Orchestrator.RunnableProjects,Microsoft.TemplateEngine.Utils,Microsoft.TemplateSearch.Common From Version 10.0.104 -> To Version 10.0.104 (parent: ) Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.BuildClient,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.CSharp.CodeStyle,Microsoft.CodeAnalysis.CSharp.Features,Microsoft.CodeAnalysis.CSharp.Workspaces,Microsoft.CodeAnalysis.PublicApiAnalyzers,Microsoft.CodeAnalysis.Workspaces.Common,Microsoft.CodeAnalysis.Workspaces.MSBuild,Microsoft.Net.Compilers.Toolset,Microsoft.Net.Compilers.Toolset.Framework From Version 5.0.0-2.26105.106 -> To Version 5.0.0-2.26109.109 (parent: ) Microsoft.Deployment.DotNet.Releases From Version 2.0.0-preview.1.26105.106 -> To Version 2.0.0-preview.1.26109.109 (parent: ) Microsoft.DiaSymReader From Version 2.2.4 -> To Version 2.2.4 (parent: ) Microsoft.DotNet.Arcade.Sdk,Microsoft.DotNet.Build.Tasks.Installers,Microsoft.DotNet.Build.Tasks.Templating,Microsoft.DotNet.Build.Tasks.Workloads,Microsoft.DotNet.Helix.Sdk,Microsoft.DotNet.SignTool,Microsoft.DotNet.XliffTasks,Microsoft.DotNet.XUnitExtensions From Version 10.0.0-beta.26105.106 -> To Version 10.0.0-beta.26109.109 (parent: ) Microsoft.FSharp.Compiler From Version 14.0.104-servicing.26105.106 -> To Version 14.0.104-servicing.26109.109 (parent: ) Microsoft.NET.Test.Sdk,Microsoft.TestPlatform.Build,Microsoft.TestPlatform.CLI From Version 18.0.1-release-26105-106 -> To Version 18.0.1-release-26109-109 (parent: ) Microsoft.TemplateEngine.Mocks,Microsoft.TemplateEngine.TestHelper,Microsoft.TemplateSearch.TemplateDiscovery From Version 10.0.104-servicing.26105.106 -> To Version 10.0.104-servicing.26109.109 (parent: ) Microsoft.Web.Xdt From Version 3.2.4 -> To Version 3.2.4 (parent: ) System.CommandLine From Version 2.0.4 -> To Version 2.0.4 (parent: ) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index 37c4c36ba845..fb02d3d63b66 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 94378d8276e0..ccdabda758a9 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26105.106 - 10.0.4-servicing.26105.106 - 10.0.4-servicing.26105.106 - 10.0.4-servicing.26105.106 + 10.0.4-servicing.26109.109 + 10.0.4-servicing.26109.109 + 10.0.4-servicing.26109.109 + 10.0.4-servicing.26109.109 10.0.4 - 10.0.4-servicing.26105.106 + 10.0.4-servicing.26109.109 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26105.106 + 10.0.4-servicing.26109.109 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26105.106 + 10.0.4-servicing.26109.109 10.0.4 - 10.0.4-servicing.26105.106 - 10.0.4-servicing.26105.106 - 10.0.0-preview.26105.106 + 10.0.4-servicing.26109.109 + 10.0.4-servicing.26109.109 + 10.0.0-preview.26109.109 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26105-106 - 7.0.2-rc.10606 + 18.0.11-servicing-26109-109 + 7.0.2-rc.11009 10.0.104 - 5.0.0-2.26105.106 - 5.0.0-2.26105.106 - 5.0.0-2.26105.106 - 5.0.0-2.26105.106 - 5.0.0-2.26105.106 - 5.0.0-2.26105.106 - 5.0.0-2.26105.106 - 10.0.0-preview.26105.106 - 5.0.0-2.26105.106 - 5.0.0-2.26105.106 - 2.0.0-preview.1.26105.106 + 5.0.0-2.26109.109 + 5.0.0-2.26109.109 + 5.0.0-2.26109.109 + 5.0.0-2.26109.109 + 5.0.0-2.26109.109 + 5.0.0-2.26109.109 + 5.0.0-2.26109.109 + 10.0.0-preview.26109.109 + 5.0.0-2.26109.109 + 5.0.0-2.26109.109 + 2.0.0-preview.1.26109.109 2.2.4 - 10.0.0-beta.26105.106 - 10.0.0-beta.26105.106 - 10.0.0-beta.26105.106 - 10.0.0-beta.26105.106 - 10.0.0-beta.26105.106 - 10.0.0-beta.26105.106 + 10.0.0-beta.26109.109 + 10.0.0-beta.26109.109 + 10.0.0-beta.26109.109 + 10.0.0-beta.26109.109 + 10.0.0-beta.26109.109 + 10.0.0-beta.26109.109 10.0.4 10.0.4 - 10.0.4-servicing.26105.106 - 10.0.4-servicing.26105.106 - 10.0.0-beta.26105.106 - 10.0.0-beta.26105.106 + 10.0.4-servicing.26109.109 + 10.0.4-servicing.26109.109 + 10.0.0-beta.26109.109 + 10.0.0-beta.26109.109 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26105.106 + 14.0.104-servicing.26109.109 10.0.4 - 5.0.0-2.26105.106 - 5.0.0-2.26105.106 - 10.0.4-servicing.26105.106 + 5.0.0-2.26109.109 + 5.0.0-2.26109.109 + 10.0.4-servicing.26109.109 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26105.106 - 10.0.4-servicing.26105.106 - 18.0.1-release-26105-106 + 10.0.0-preview.26109.109 + 10.0.4-servicing.26109.109 + 18.0.1-release-26109-109 10.0.4 - 10.0.4-servicing.26105.106 + 10.0.4-servicing.26109.109 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26105.106 + 10.0.104-servicing.26109.109 10.0.104 - 10.0.104-servicing.26105.106 + 10.0.104-servicing.26109.109 10.0.104 10.0.104 - 10.0.104-servicing.26105.106 - 18.0.1-release-26105-106 - 18.0.1-release-26105-106 + 10.0.104-servicing.26109.109 + 18.0.1-release-26109-109 + 18.0.1-release-26109-109 3.2.4 10.0.4 - 10.0.4-servicing.26105.106 + 10.0.4-servicing.26109.109 10.0.4 - 7.0.2-rc.10606 - 7.0.2-rc.10606 - 7.0.2-rc.10606 - 7.0.2-rc.10606 - 7.0.2-rc.10606 - 7.0.2-rc.10606 - 7.0.2-rc.10606 - 7.0.2-rc.10606 - 7.0.2-rc.10606 - 7.0.2-rc.10606 - 7.0.2-rc.10606 - 7.0.2-rc.10606 - 7.0.2-rc.10606 - 7.0.2-rc.10606 - 7.0.2-rc.10606 - 7.0.2-rc.10606 + 7.0.2-rc.11009 + 7.0.2-rc.11009 + 7.0.2-rc.11009 + 7.0.2-rc.11009 + 7.0.2-rc.11009 + 7.0.2-rc.11009 + 7.0.2-rc.11009 + 7.0.2-rc.11009 + 7.0.2-rc.11009 + 7.0.2-rc.11009 + 7.0.2-rc.11009 + 7.0.2-rc.11009 + 7.0.2-rc.11009 + 7.0.2-rc.11009 + 7.0.2-rc.11009 + 7.0.2-rc.11009 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2a7f51604d8e..ecd2c8732e0c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 3f106e53de8994cbe931ddb9bcec1f095586f089 + c33eae440d44b1280b560cf00791f59d3a1cfe5e diff --git a/global.json b/global.json index 6c43ad3dd853..b3ac5a1c44c8 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26105.106", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26105.106", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26109.109", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26109.109", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From ce339c5d60d34ae40ca5d10ec5aff3f644689527 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 10 Feb 2026 13:51:17 +0000 Subject: [PATCH 036/179] Update dependencies from build 301141 On relative base path root Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal,Microsoft.CodeAnalysis.Razor.Tooling.Internal,Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 10.0.0-preview.26109.105 -> To Version 10.0.0-preview.26110.102 (parent: ) Microsoft.Build,Microsoft.Build.Localization,Microsoft.NET.Test.Sdk,Microsoft.TestPlatform.Build,Microsoft.TestPlatform.CLI From Version 18.3.0-release-26109-105 -> To Version 18.3.0-release-26110-102 (parent: ) Microsoft.Build.NuGetSdkResolver,NuGet.Build.Tasks,NuGet.Build.Tasks.Console,NuGet.Build.Tasks.Pack,NuGet.CommandLine.XPlat,NuGet.Commands,NuGet.Common,NuGet.Configuration,NuGet.Credentials,NuGet.DependencyResolver.Core,NuGet.Frameworks,NuGet.LibraryModel,NuGet.Localization,NuGet.Packaging,NuGet.ProjectModel,NuGet.Protocol,NuGet.Versioning From Version 7.3.0-preview.1.11005 -> To Version 7.3.0-preview.1.11102 (parent: ) Microsoft.Build.Tasks.Git,Microsoft.SourceLink.AzureRepos.Git,Microsoft.SourceLink.Bitbucket.Git,Microsoft.SourceLink.Common,Microsoft.SourceLink.GitHub,Microsoft.SourceLink.GitLab From Version 10.0.200-alpha.26109.105 -> To Version 10.0.200-alpha.26110.102 (parent: ) Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.BuildClient,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.CSharp.CodeStyle,Microsoft.CodeAnalysis.CSharp.Features,Microsoft.CodeAnalysis.CSharp.Workspaces,Microsoft.CodeAnalysis.ExternalAccess.HotReload,Microsoft.CodeAnalysis.PublicApiAnalyzers,Microsoft.CodeAnalysis.Workspaces.Common,Microsoft.CodeAnalysis.Workspaces.MSBuild,Microsoft.Net.Compilers.Toolset,Microsoft.Net.Compilers.Toolset.Framework From Version 5.3.0-2.26109.105 -> To Version 5.3.0-2.26110.102 (parent: ) Microsoft.DotNet.Arcade.Sdk,Microsoft.DotNet.Build.Tasks.Installers,Microsoft.DotNet.Build.Tasks.Templating,Microsoft.DotNet.Build.Tasks.Workloads,Microsoft.DotNet.Helix.Sdk,Microsoft.DotNet.SignTool,Microsoft.DotNet.XliffTasks,Microsoft.DotNet.XUnitExtensions From Version 10.0.0-beta.26109.105 -> To Version 10.0.0-beta.26110.102 (parent: ) Microsoft.FSharp.Compiler From Version 15.2.200-servicing.26109.105 -> To Version 15.2.200-servicing.26110.102 (parent: ) Microsoft.TemplateEngine.Abstractions,Microsoft.TemplateEngine.Authoring.TemplateVerifier,Microsoft.TemplateEngine.Edge,Microsoft.TemplateEngine.Mocks,Microsoft.TemplateEngine.Orchestrator.RunnableProjects,Microsoft.TemplateEngine.TestHelper,Microsoft.TemplateEngine.Utils,Microsoft.TemplateSearch.Common,Microsoft.TemplateSearch.TemplateDiscovery From Version 10.0.200-preview.26109.105 -> To Version 10.0.200-preview.26110.102 (parent: ) [[ commit created by automation ]] --- eng/Version.Details.props | 122 +++++++++---------- eng/Version.Details.xml | 246 +++++++++++++++++++------------------- global.json | 4 +- 3 files changed, 186 insertions(+), 186 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index f7dc60cd0c74..200f3ec518e0 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,68 +6,68 @@ This file should be imported by eng/Versions.props - 10.0.0-preview.26109.105 - 18.3.0-release-26109-105 - 18.3.0-release-26109-105 - 7.3.0-preview.1.11005 - 10.0.200-alpha.26109.105 - 5.3.0-2.26109.105 - 5.3.0-2.26109.105 - 5.3.0-2.26109.105 - 5.3.0-2.26109.105 - 5.3.0-2.26109.105 - 5.3.0-2.26109.105 - 5.3.0-2.26109.105 - 5.3.0-2.26109.105 - 10.0.0-preview.26109.105 - 5.3.0-2.26109.105 - 5.3.0-2.26109.105 - 10.0.0-beta.26109.105 - 10.0.0-beta.26109.105 - 10.0.0-beta.26109.105 - 10.0.0-beta.26109.105 - 10.0.0-beta.26109.105 - 10.0.0-beta.26109.105 - 10.0.0-beta.26109.105 - 10.0.0-beta.26109.105 - 15.2.200-servicing.26109.105 - 5.3.0-2.26109.105 - 5.3.0-2.26109.105 + 10.0.0-preview.26110.102 + 18.3.0-release-26110-102 + 18.3.0-release-26110-102 + 7.3.0-preview.1.11102 + 10.0.200-alpha.26110.102 + 5.3.0-2.26110.102 + 5.3.0-2.26110.102 + 5.3.0-2.26110.102 + 5.3.0-2.26110.102 + 5.3.0-2.26110.102 + 5.3.0-2.26110.102 + 5.3.0-2.26110.102 + 5.3.0-2.26110.102 + 10.0.0-preview.26110.102 + 5.3.0-2.26110.102 + 5.3.0-2.26110.102 + 10.0.0-beta.26110.102 + 10.0.0-beta.26110.102 + 10.0.0-beta.26110.102 + 10.0.0-beta.26110.102 + 10.0.0-beta.26110.102 + 10.0.0-beta.26110.102 + 10.0.0-beta.26110.102 + 10.0.0-beta.26110.102 + 15.2.200-servicing.26110.102 + 5.3.0-2.26110.102 + 5.3.0-2.26110.102 10.0.0-preview.7.25377.103 - 10.0.0-preview.26109.105 - 18.3.0-release-26109-105 - 10.0.200-alpha.26109.105 - 10.0.200-alpha.26109.105 - 10.0.200-alpha.26109.105 - 10.0.200-alpha.26109.105 - 10.0.200-alpha.26109.105 - 10.0.200-preview.26109.105 - 10.0.200-preview.26109.105 - 10.0.200-preview.26109.105 - 10.0.200-preview.26109.105 - 10.0.200-preview.26109.105 - 10.0.200-preview.26109.105 - 10.0.200-preview.26109.105 - 10.0.200-preview.26109.105 - 10.0.200-preview.26109.105 - 18.3.0-release-26109-105 - 18.3.0-release-26109-105 - 7.3.0-preview.1.11005 - 7.3.0-preview.1.11005 - 7.3.0-preview.1.11005 - 7.3.0-preview.1.11005 - 7.3.0-preview.1.11005 - 7.3.0-preview.1.11005 - 7.3.0-preview.1.11005 - 7.3.0-preview.1.11005 - 7.3.0-preview.1.11005 - 7.3.0-preview.1.11005 - 7.3.0-preview.1.11005 - 7.3.0-preview.1.11005 - 7.3.0-preview.1.11005 - 7.3.0-preview.1.11005 - 7.3.0-preview.1.11005 - 7.3.0-preview.1.11005 + 10.0.0-preview.26110.102 + 18.3.0-release-26110-102 + 10.0.200-alpha.26110.102 + 10.0.200-alpha.26110.102 + 10.0.200-alpha.26110.102 + 10.0.200-alpha.26110.102 + 10.0.200-alpha.26110.102 + 10.0.200-preview.26110.102 + 10.0.200-preview.26110.102 + 10.0.200-preview.26110.102 + 10.0.200-preview.26110.102 + 10.0.200-preview.26110.102 + 10.0.200-preview.26110.102 + 10.0.200-preview.26110.102 + 10.0.200-preview.26110.102 + 10.0.200-preview.26110.102 + 18.3.0-release-26110-102 + 18.3.0-release-26110-102 + 7.3.0-preview.1.11102 + 7.3.0-preview.1.11102 + 7.3.0-preview.1.11102 + 7.3.0-preview.1.11102 + 7.3.0-preview.1.11102 + 7.3.0-preview.1.11102 + 7.3.0-preview.1.11102 + 7.3.0-preview.1.11102 + 7.3.0-preview.1.11102 + 7.3.0-preview.1.11102 + 7.3.0-preview.1.11102 + 7.3.0-preview.1.11102 + 7.3.0-preview.1.11102 + 7.3.0-preview.1.11102 + 7.3.0-preview.1.11102 + 7.3.0-preview.1.11102 10.0.2-servicing.25612.105 10.0.2-servicing.25612.105 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6e33d2cf0eaa..87d72387e2e6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,42 +1,42 @@ - + - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -72,138 +72,138 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -370,25 +370,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -405,29 +405,29 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 @@ -514,9 +514,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -528,37 +528,37 @@ - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 - + https://github.com/dotnet/dotnet - d49805f26e70023549ead379596f94401432db49 + abe572506b0c80c706691579b1c80d8486821d55 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet diff --git a/global.json b/global.json index e4fcf242534c..a4f8b533a8c5 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26109.105", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26109.105", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26110.102", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26110.102", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 4f8b117a726f81e07cf47fcdfa472f9add810b1a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 10 Feb 2026 16:49:53 +0000 Subject: [PATCH 037/179] Update dependencies from build 301163 On relative base path root Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal,Microsoft.CodeAnalysis.Razor.Tooling.Internal,Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 10.0.0-preview.26110.102 -> To Version 10.0.0-preview.26110.110 (parent: ) Microsoft.Build,Microsoft.Build.Localization,Microsoft.NET.Test.Sdk,Microsoft.TestPlatform.Build,Microsoft.TestPlatform.CLI From Version 18.3.0-release-26110-102 -> To Version 18.3.0-release-26110-110 (parent: ) Microsoft.Build.NuGetSdkResolver,NuGet.Build.Tasks,NuGet.Build.Tasks.Console,NuGet.Build.Tasks.Pack,NuGet.CommandLine.XPlat,NuGet.Commands,NuGet.Common,NuGet.Configuration,NuGet.Credentials,NuGet.DependencyResolver.Core,NuGet.Frameworks,NuGet.LibraryModel,NuGet.Localization,NuGet.Packaging,NuGet.ProjectModel,NuGet.Protocol,NuGet.Versioning From Version 7.3.0-preview.1.11102 -> To Version 7.3.0-preview.1.11110 (parent: ) Microsoft.Build.Tasks.Git,Microsoft.SourceLink.AzureRepos.Git,Microsoft.SourceLink.Bitbucket.Git,Microsoft.SourceLink.Common,Microsoft.SourceLink.GitHub,Microsoft.SourceLink.GitLab From Version 10.0.200-alpha.26110.102 -> To Version 10.0.200-alpha.26110.110 (parent: ) Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.BuildClient,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.CSharp.CodeStyle,Microsoft.CodeAnalysis.CSharp.Features,Microsoft.CodeAnalysis.CSharp.Workspaces,Microsoft.CodeAnalysis.ExternalAccess.HotReload,Microsoft.CodeAnalysis.PublicApiAnalyzers,Microsoft.CodeAnalysis.Workspaces.Common,Microsoft.CodeAnalysis.Workspaces.MSBuild,Microsoft.Net.Compilers.Toolset,Microsoft.Net.Compilers.Toolset.Framework From Version 5.3.0-2.26110.102 -> To Version 5.3.0-2.26110.110 (parent: ) Microsoft.DotNet.Arcade.Sdk,Microsoft.DotNet.Build.Tasks.Installers,Microsoft.DotNet.Build.Tasks.Templating,Microsoft.DotNet.Build.Tasks.Workloads,Microsoft.DotNet.Helix.Sdk,Microsoft.DotNet.SignTool,Microsoft.DotNet.XliffTasks,Microsoft.DotNet.XUnitExtensions From Version 10.0.0-beta.26110.102 -> To Version 10.0.0-beta.26110.110 (parent: ) Microsoft.FSharp.Compiler From Version 15.2.200-servicing.26110.102 -> To Version 15.2.200-servicing.26110.110 (parent: ) Microsoft.TemplateEngine.Abstractions,Microsoft.TemplateEngine.Authoring.TemplateVerifier,Microsoft.TemplateEngine.Edge,Microsoft.TemplateEngine.Mocks,Microsoft.TemplateEngine.Orchestrator.RunnableProjects,Microsoft.TemplateEngine.TestHelper,Microsoft.TemplateEngine.Utils,Microsoft.TemplateSearch.Common,Microsoft.TemplateSearch.TemplateDiscovery From Version 10.0.200-preview.26110.102 -> To Version 10.0.200-preview.26110.110 (parent: ) [[ commit created by automation ]] --- eng/Version.Details.props | 122 +++++++++---------- eng/Version.Details.xml | 246 +++++++++++++++++++------------------- global.json | 4 +- 3 files changed, 186 insertions(+), 186 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 200f3ec518e0..85074f81304f 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,68 +6,68 @@ This file should be imported by eng/Versions.props - 10.0.0-preview.26110.102 - 18.3.0-release-26110-102 - 18.3.0-release-26110-102 - 7.3.0-preview.1.11102 - 10.0.200-alpha.26110.102 - 5.3.0-2.26110.102 - 5.3.0-2.26110.102 - 5.3.0-2.26110.102 - 5.3.0-2.26110.102 - 5.3.0-2.26110.102 - 5.3.0-2.26110.102 - 5.3.0-2.26110.102 - 5.3.0-2.26110.102 - 10.0.0-preview.26110.102 - 5.3.0-2.26110.102 - 5.3.0-2.26110.102 - 10.0.0-beta.26110.102 - 10.0.0-beta.26110.102 - 10.0.0-beta.26110.102 - 10.0.0-beta.26110.102 - 10.0.0-beta.26110.102 - 10.0.0-beta.26110.102 - 10.0.0-beta.26110.102 - 10.0.0-beta.26110.102 - 15.2.200-servicing.26110.102 - 5.3.0-2.26110.102 - 5.3.0-2.26110.102 + 10.0.0-preview.26110.110 + 18.3.0-release-26110-110 + 18.3.0-release-26110-110 + 7.3.0-preview.1.11110 + 10.0.200-alpha.26110.110 + 5.3.0-2.26110.110 + 5.3.0-2.26110.110 + 5.3.0-2.26110.110 + 5.3.0-2.26110.110 + 5.3.0-2.26110.110 + 5.3.0-2.26110.110 + 5.3.0-2.26110.110 + 5.3.0-2.26110.110 + 10.0.0-preview.26110.110 + 5.3.0-2.26110.110 + 5.3.0-2.26110.110 + 10.0.0-beta.26110.110 + 10.0.0-beta.26110.110 + 10.0.0-beta.26110.110 + 10.0.0-beta.26110.110 + 10.0.0-beta.26110.110 + 10.0.0-beta.26110.110 + 10.0.0-beta.26110.110 + 10.0.0-beta.26110.110 + 15.2.200-servicing.26110.110 + 5.3.0-2.26110.110 + 5.3.0-2.26110.110 10.0.0-preview.7.25377.103 - 10.0.0-preview.26110.102 - 18.3.0-release-26110-102 - 10.0.200-alpha.26110.102 - 10.0.200-alpha.26110.102 - 10.0.200-alpha.26110.102 - 10.0.200-alpha.26110.102 - 10.0.200-alpha.26110.102 - 10.0.200-preview.26110.102 - 10.0.200-preview.26110.102 - 10.0.200-preview.26110.102 - 10.0.200-preview.26110.102 - 10.0.200-preview.26110.102 - 10.0.200-preview.26110.102 - 10.0.200-preview.26110.102 - 10.0.200-preview.26110.102 - 10.0.200-preview.26110.102 - 18.3.0-release-26110-102 - 18.3.0-release-26110-102 - 7.3.0-preview.1.11102 - 7.3.0-preview.1.11102 - 7.3.0-preview.1.11102 - 7.3.0-preview.1.11102 - 7.3.0-preview.1.11102 - 7.3.0-preview.1.11102 - 7.3.0-preview.1.11102 - 7.3.0-preview.1.11102 - 7.3.0-preview.1.11102 - 7.3.0-preview.1.11102 - 7.3.0-preview.1.11102 - 7.3.0-preview.1.11102 - 7.3.0-preview.1.11102 - 7.3.0-preview.1.11102 - 7.3.0-preview.1.11102 - 7.3.0-preview.1.11102 + 10.0.0-preview.26110.110 + 18.3.0-release-26110-110 + 10.0.200-alpha.26110.110 + 10.0.200-alpha.26110.110 + 10.0.200-alpha.26110.110 + 10.0.200-alpha.26110.110 + 10.0.200-alpha.26110.110 + 10.0.200-preview.26110.110 + 10.0.200-preview.26110.110 + 10.0.200-preview.26110.110 + 10.0.200-preview.26110.110 + 10.0.200-preview.26110.110 + 10.0.200-preview.26110.110 + 10.0.200-preview.26110.110 + 10.0.200-preview.26110.110 + 10.0.200-preview.26110.110 + 18.3.0-release-26110-110 + 18.3.0-release-26110-110 + 7.3.0-preview.1.11110 + 7.3.0-preview.1.11110 + 7.3.0-preview.1.11110 + 7.3.0-preview.1.11110 + 7.3.0-preview.1.11110 + 7.3.0-preview.1.11110 + 7.3.0-preview.1.11110 + 7.3.0-preview.1.11110 + 7.3.0-preview.1.11110 + 7.3.0-preview.1.11110 + 7.3.0-preview.1.11110 + 7.3.0-preview.1.11110 + 7.3.0-preview.1.11110 + 7.3.0-preview.1.11110 + 7.3.0-preview.1.11110 + 7.3.0-preview.1.11110 10.0.2-servicing.25612.105 10.0.2-servicing.25612.105 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 87d72387e2e6..c375a08cddaf 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,42 +1,42 @@ - + - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -72,138 +72,138 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -370,25 +370,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -405,29 +405,29 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e @@ -514,9 +514,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -528,37 +528,37 @@ - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e - + https://github.com/dotnet/dotnet - abe572506b0c80c706691579b1c80d8486821d55 + 24f66fec875855c1e7bcddebf0703b2fcab1ee3e https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet diff --git a/global.json b/global.json index a4f8b533a8c5..e12862d61aad 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26110.102", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26110.102", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26110.110", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26110.110", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From fc3e7ece4199a56b092e60f13ec3ddbacf48d89f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 11 Feb 2026 02:02:48 +0000 Subject: [PATCH 038/179] Update dependencies from https://github.com/microsoft/testfx build 20260210.3 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26109.13 -> To Version 2.2.0-preview.26110.3 MSTest From Version 4.2.0-preview.26109.13 -> To Version 4.2.0-preview.26110.3 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 573f1360e32f..879ce7cd344c 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26109.13 - 4.2.0-preview.26109.13 + 2.2.0-preview.26110.3 + 4.2.0-preview.26110.3 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index eb6bb0a09839..f95eb46a340f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet c33eae440d44b1280b560cf00791f59d3a1cfe5e - + https://github.com/microsoft/testfx - 05878c02a5bab9320ab574acae6587081362a3ad + 5bc5a928cf62ab2d68e27ccc5435345502bb5df7 - + https://github.com/microsoft/testfx - 05878c02a5bab9320ab574acae6587081362a3ad + 5bc5a928cf62ab2d68e27ccc5435345502bb5df7 https://github.com/dotnet/dotnet From fc44412b7f916f5560103d6f6826d26c14637b1d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 11 Feb 2026 02:03:43 +0000 Subject: [PATCH 039/179] Update dependencies from https://github.com/microsoft/testfx build 20260210.3 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26109.13 -> To Version 2.2.0-preview.26110.3 MSTest From Version 4.2.0-preview.26109.13 -> To Version 4.2.0-preview.26110.3 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index afa6c8a7a3a8..5522bf33c595 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -144,8 +144,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26109.13 - 4.2.0-preview.26109.13 + 2.2.0-preview.26110.3 + 4.2.0-preview.26110.3 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9612e216a3e6..63f7ed6180c5 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -564,13 +564,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - 05878c02a5bab9320ab574acae6587081362a3ad + 5bc5a928cf62ab2d68e27ccc5435345502bb5df7 - + https://github.com/microsoft/testfx - 05878c02a5bab9320ab574acae6587081362a3ad + 5bc5a928cf62ab2d68e27ccc5435345502bb5df7 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet From 7855671d6e44d089b30b8e9b839f3a79ad52e383 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 11 Feb 2026 02:23:57 +0000 Subject: [PATCH 040/179] Update dependencies from build 301247 On relative base path root dotnet-dev-certs,dotnet-user-jwts,dotnet-user-secrets,Microsoft.AspNetCore.Analyzers,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.Components.SdkAnalyzers,Microsoft.AspNetCore.DeveloperCertificates.XPlat,Microsoft.AspNetCore.Mvc.Analyzers,Microsoft.AspNetCore.Mvc.Api.Analyzers,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates,Microsoft.NET.HostModel,Microsoft.NET.Sdk.WindowsDesktop,Microsoft.NETCore.Platforms,Microsoft.WindowsDesktop.App.Internal From Version 10.0.4-servicing.26109.109 -> To Version 10.0.4-servicing.26110.118 (parent: ) Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.Authentication.Facebook,Microsoft.AspNetCore.Authentication.Google,Microsoft.AspNetCore.Authentication.MicrosoftAccount,Microsoft.AspNetCore.Authorization,Microsoft.AspNetCore.Components,Microsoft.AspNetCore.Components.Analyzers,Microsoft.AspNetCore.Components.Forms,Microsoft.AspNetCore.Components.Web,Microsoft.AspNetCore.Components.WebAssembly,Microsoft.AspNetCore.Components.WebAssembly.Server,Microsoft.AspNetCore.Components.WebView,Microsoft.AspNetCore.Metadata,Microsoft.AspNetCore.TestHost,Microsoft.Bcl.AsyncInterfaces,Microsoft.DotNet.Web.ItemTemplates.10.0,Microsoft.DotNet.Web.ProjectTemplates.10.0,Microsoft.Extensions.Configuration.Ini,Microsoft.Extensions.DependencyModel,Microsoft.Extensions.FileProviders.Abstractions,Microsoft.Extensions.FileProviders.Embedded,Microsoft.Extensions.FileSystemGlobbing,Microsoft.Extensions.Logging,Microsoft.Extensions.Logging.Abstractions,Microsoft.Extensions.Logging.Console,Microsoft.Extensions.ObjectPool,Microsoft.JSInterop,Microsoft.NET.ILLink.Tasks,Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64,Microsoft.NETCore.App.Ref,Microsoft.Win32.SystemEvents,Microsoft.WindowsDesktop.App.Ref,System.CodeDom,System.ComponentModel.Composition,System.Composition.AttributedModel,System.Composition.Convention,System.Composition.Hosting,System.Composition.Runtime,System.Composition.TypedParts,System.Configuration.ConfigurationManager,System.Diagnostics.DiagnosticSource,System.Formats.Asn1,System.IO.Hashing,System.Reflection.MetadataLoadContext,System.Resources.Extensions,System.Security.Cryptography.Pkcs,System.Security.Cryptography.ProtectedData,System.Security.Cryptography.Xml,System.Security.Permissions,System.ServiceProcess.ServiceController,System.Text.Encoding.CodePages,System.Text.Json,System.Windows.Extensions From Version 10.0.4 -> To Version 10.0.4 (parent: ) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal,Microsoft.CodeAnalysis.Razor.Tooling.Internal,Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 10.0.0-preview.26109.109 -> To Version 10.0.0-preview.26110.118 (parent: ) Microsoft.Build From Version 18.0.11 -> To Version 18.0.11 (parent: ) Microsoft.Build.Localization From Version 18.0.11-servicing-26109-109 -> To Version 18.0.11-servicing-26110-118 (parent: ) Microsoft.Build.NuGetSdkResolver,NuGet.Build.Tasks,NuGet.Build.Tasks.Console,NuGet.Build.Tasks.Pack,NuGet.CommandLine.XPlat,NuGet.Commands,NuGet.Common,NuGet.Configuration,NuGet.Credentials,NuGet.DependencyResolver.Core,NuGet.Frameworks,NuGet.LibraryModel,NuGet.Localization,NuGet.Packaging,NuGet.ProjectModel,NuGet.Protocol,NuGet.Versioning From Version 7.0.2-rc.11009 -> To Version 7.0.2-rc.11118 (parent: ) Microsoft.Build.Tasks.Git,Microsoft.SourceLink.AzureRepos.Git,Microsoft.SourceLink.Bitbucket.Git,Microsoft.SourceLink.Common,Microsoft.SourceLink.GitHub,Microsoft.SourceLink.GitLab,Microsoft.TemplateEngine.Abstractions,Microsoft.TemplateEngine.Authoring.TemplateVerifier,Microsoft.TemplateEngine.Edge,Microsoft.TemplateEngine.Orchestrator.RunnableProjects,Microsoft.TemplateEngine.Utils,Microsoft.TemplateSearch.Common From Version 10.0.104 -> To Version 10.0.104 (parent: ) Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.BuildClient,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.CSharp.CodeStyle,Microsoft.CodeAnalysis.CSharp.Features,Microsoft.CodeAnalysis.CSharp.Workspaces,Microsoft.CodeAnalysis.PublicApiAnalyzers,Microsoft.CodeAnalysis.Workspaces.Common,Microsoft.CodeAnalysis.Workspaces.MSBuild,Microsoft.Net.Compilers.Toolset,Microsoft.Net.Compilers.Toolset.Framework From Version 5.0.0-2.26109.109 -> To Version 5.0.0-2.26110.118 (parent: ) Microsoft.Deployment.DotNet.Releases From Version 2.0.0-preview.1.26109.109 -> To Version 2.0.0-preview.1.26110.118 (parent: ) Microsoft.DiaSymReader From Version 2.2.4 -> To Version 2.2.4 (parent: ) Microsoft.DotNet.Arcade.Sdk,Microsoft.DotNet.Build.Tasks.Installers,Microsoft.DotNet.Build.Tasks.Templating,Microsoft.DotNet.Build.Tasks.Workloads,Microsoft.DotNet.Helix.Sdk,Microsoft.DotNet.SignTool,Microsoft.DotNet.XliffTasks,Microsoft.DotNet.XUnitExtensions From Version 10.0.0-beta.26109.109 -> To Version 10.0.0-beta.26110.118 (parent: ) Microsoft.FSharp.Compiler From Version 14.0.104-servicing.26109.109 -> To Version 14.0.104-servicing.26110.118 (parent: ) Microsoft.NET.Test.Sdk,Microsoft.TestPlatform.Build,Microsoft.TestPlatform.CLI From Version 18.0.1-release-26109-109 -> To Version 18.0.1-release-26110-118 (parent: ) Microsoft.TemplateEngine.Mocks,Microsoft.TemplateEngine.TestHelper,Microsoft.TemplateSearch.TemplateDiscovery From Version 10.0.104-servicing.26109.109 -> To Version 10.0.104-servicing.26110.118 (parent: ) Microsoft.Web.Xdt From Version 3.2.4 -> To Version 3.2.4 (parent: ) System.CommandLine From Version 2.0.4 -> To Version 2.0.4 (parent: ) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 +++--- eng/Version.Details.xml | 392 +++++++++--------- .../core-templates/job/source-build.yml | 8 +- global.json | 4 +- 5 files changed, 266 insertions(+), 266 deletions(-) diff --git a/NuGet.config b/NuGet.config index fb02d3d63b66..749ef520b60e 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 573f1360e32f..0688e6ce1005 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26109.109 - 10.0.4-servicing.26109.109 - 10.0.4-servicing.26109.109 - 10.0.4-servicing.26109.109 + 10.0.4-servicing.26110.118 + 10.0.4-servicing.26110.118 + 10.0.4-servicing.26110.118 + 10.0.4-servicing.26110.118 10.0.4 - 10.0.4-servicing.26109.109 + 10.0.4-servicing.26110.118 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26109.109 + 10.0.4-servicing.26110.118 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26109.109 + 10.0.4-servicing.26110.118 10.0.4 - 10.0.4-servicing.26109.109 - 10.0.4-servicing.26109.109 - 10.0.0-preview.26109.109 + 10.0.4-servicing.26110.118 + 10.0.4-servicing.26110.118 + 10.0.0-preview.26110.118 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26109-109 - 7.0.2-rc.11009 + 18.0.11-servicing-26110-118 + 7.0.2-rc.11118 10.0.104 - 5.0.0-2.26109.109 - 5.0.0-2.26109.109 - 5.0.0-2.26109.109 - 5.0.0-2.26109.109 - 5.0.0-2.26109.109 - 5.0.0-2.26109.109 - 5.0.0-2.26109.109 - 10.0.0-preview.26109.109 - 5.0.0-2.26109.109 - 5.0.0-2.26109.109 - 2.0.0-preview.1.26109.109 + 5.0.0-2.26110.118 + 5.0.0-2.26110.118 + 5.0.0-2.26110.118 + 5.0.0-2.26110.118 + 5.0.0-2.26110.118 + 5.0.0-2.26110.118 + 5.0.0-2.26110.118 + 10.0.0-preview.26110.118 + 5.0.0-2.26110.118 + 5.0.0-2.26110.118 + 2.0.0-preview.1.26110.118 2.2.4 - 10.0.0-beta.26109.109 - 10.0.0-beta.26109.109 - 10.0.0-beta.26109.109 - 10.0.0-beta.26109.109 - 10.0.0-beta.26109.109 - 10.0.0-beta.26109.109 + 10.0.0-beta.26110.118 + 10.0.0-beta.26110.118 + 10.0.0-beta.26110.118 + 10.0.0-beta.26110.118 + 10.0.0-beta.26110.118 + 10.0.0-beta.26110.118 10.0.4 10.0.4 - 10.0.4-servicing.26109.109 - 10.0.4-servicing.26109.109 - 10.0.0-beta.26109.109 - 10.0.0-beta.26109.109 + 10.0.4-servicing.26110.118 + 10.0.4-servicing.26110.118 + 10.0.0-beta.26110.118 + 10.0.0-beta.26110.118 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26109.109 + 14.0.104-servicing.26110.118 10.0.4 - 5.0.0-2.26109.109 - 5.0.0-2.26109.109 - 10.0.4-servicing.26109.109 + 5.0.0-2.26110.118 + 5.0.0-2.26110.118 + 10.0.4-servicing.26110.118 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26109.109 - 10.0.4-servicing.26109.109 - 18.0.1-release-26109-109 + 10.0.0-preview.26110.118 + 10.0.4-servicing.26110.118 + 18.0.1-release-26110-118 10.0.4 - 10.0.4-servicing.26109.109 + 10.0.4-servicing.26110.118 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26109.109 + 10.0.104-servicing.26110.118 10.0.104 - 10.0.104-servicing.26109.109 + 10.0.104-servicing.26110.118 10.0.104 10.0.104 - 10.0.104-servicing.26109.109 - 18.0.1-release-26109-109 - 18.0.1-release-26109-109 + 10.0.104-servicing.26110.118 + 18.0.1-release-26110-118 + 18.0.1-release-26110-118 3.2.4 10.0.4 - 10.0.4-servicing.26109.109 + 10.0.4-servicing.26110.118 10.0.4 - 7.0.2-rc.11009 - 7.0.2-rc.11009 - 7.0.2-rc.11009 - 7.0.2-rc.11009 - 7.0.2-rc.11009 - 7.0.2-rc.11009 - 7.0.2-rc.11009 - 7.0.2-rc.11009 - 7.0.2-rc.11009 - 7.0.2-rc.11009 - 7.0.2-rc.11009 - 7.0.2-rc.11009 - 7.0.2-rc.11009 - 7.0.2-rc.11009 - 7.0.2-rc.11009 - 7.0.2-rc.11009 + 7.0.2-rc.11118 + 7.0.2-rc.11118 + 7.0.2-rc.11118 + 7.0.2-rc.11118 + 7.0.2-rc.11118 + 7.0.2-rc.11118 + 7.0.2-rc.11118 + 7.0.2-rc.11118 + 7.0.2-rc.11118 + 7.0.2-rc.11118 + 7.0.2-rc.11118 + 7.0.2-rc.11118 + 7.0.2-rc.11118 + 7.0.2-rc.11118 + 7.0.2-rc.11118 + 7.0.2-rc.11118 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index eb6bb0a09839..e979f3ab0ec7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c - + https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - c33eae440d44b1280b560cf00791f59d3a1cfe5e + a95a98f08d4181c90f78b6c4c83c001286662a3c diff --git a/eng/common/core-templates/job/source-build.yml b/eng/common/core-templates/job/source-build.yml index 4cb769473f70..1997c2ae00d7 100644 --- a/eng/common/core-templates/job/source-build.yml +++ b/eng/common/core-templates/job/source-build.yml @@ -60,19 +60,19 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] - demands: ImageOverride -equals Azure-Linux-3-Amd64-Public + demands: ImageOverride -equals build.azurelinux.3.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] - image: Azure-Linux-3-Amd64 + image: build.azurelinux.3.amd64 os: linux ${{ else }}: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] - demands: ImageOverride -equals Azure-Linux-3-Amd64-Public + demands: ImageOverride -equals build.azurelinux.3.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] - demands: ImageOverride -equals Azure-Linux-3-Amd64 + demands: ImageOverride -equals build.azurelinux.3.amd64 ${{ if ne(parameters.platform.pool, '') }}: pool: ${{ parameters.platform.pool }} diff --git a/global.json b/global.json index b3ac5a1c44c8..9e19614ceb1d 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26109.109", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26109.109", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26110.118", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26110.118", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 25f439499098de8c5147692410376dfbee6688c5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 11 Feb 2026 10:12:59 +0000 Subject: [PATCH 041/179] Update dependencies from build 301313 On relative base path root dotnet-dev-certs,dotnet-user-jwts,dotnet-user-secrets,Microsoft.AspNetCore.Analyzers,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.Components.SdkAnalyzers,Microsoft.AspNetCore.DeveloperCertificates.XPlat,Microsoft.AspNetCore.Mvc.Analyzers,Microsoft.AspNetCore.Mvc.Api.Analyzers,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates,Microsoft.NET.HostModel,Microsoft.NET.Sdk.WindowsDesktop,Microsoft.NETCore.Platforms,Microsoft.WindowsDesktop.App.Internal From Version 10.0.4-servicing.26110.118 -> To Version 10.0.4-servicing.26110.124 (parent: ) Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.Authentication.Facebook,Microsoft.AspNetCore.Authentication.Google,Microsoft.AspNetCore.Authentication.MicrosoftAccount,Microsoft.AspNetCore.Authorization,Microsoft.AspNetCore.Components,Microsoft.AspNetCore.Components.Analyzers,Microsoft.AspNetCore.Components.Forms,Microsoft.AspNetCore.Components.Web,Microsoft.AspNetCore.Components.WebAssembly,Microsoft.AspNetCore.Components.WebAssembly.Server,Microsoft.AspNetCore.Components.WebView,Microsoft.AspNetCore.Metadata,Microsoft.AspNetCore.TestHost,Microsoft.Bcl.AsyncInterfaces,Microsoft.DotNet.Web.ItemTemplates.10.0,Microsoft.DotNet.Web.ProjectTemplates.10.0,Microsoft.Extensions.Configuration.Ini,Microsoft.Extensions.DependencyModel,Microsoft.Extensions.FileProviders.Abstractions,Microsoft.Extensions.FileProviders.Embedded,Microsoft.Extensions.FileSystemGlobbing,Microsoft.Extensions.Logging,Microsoft.Extensions.Logging.Abstractions,Microsoft.Extensions.Logging.Console,Microsoft.Extensions.ObjectPool,Microsoft.JSInterop,Microsoft.NET.ILLink.Tasks,Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64,Microsoft.NETCore.App.Ref,Microsoft.Win32.SystemEvents,Microsoft.WindowsDesktop.App.Ref,System.CodeDom,System.ComponentModel.Composition,System.Composition.AttributedModel,System.Composition.Convention,System.Composition.Hosting,System.Composition.Runtime,System.Composition.TypedParts,System.Configuration.ConfigurationManager,System.Diagnostics.DiagnosticSource,System.Formats.Asn1,System.IO.Hashing,System.Reflection.MetadataLoadContext,System.Resources.Extensions,System.Security.Cryptography.Pkcs,System.Security.Cryptography.ProtectedData,System.Security.Cryptography.Xml,System.Security.Permissions,System.ServiceProcess.ServiceController,System.Text.Encoding.CodePages,System.Text.Json,System.Windows.Extensions From Version 10.0.4 -> To Version 10.0.4 (parent: ) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal,Microsoft.CodeAnalysis.Razor.Tooling.Internal,Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 10.0.0-preview.26110.118 -> To Version 10.0.0-preview.26110.124 (parent: ) Microsoft.Build From Version 18.0.11 -> To Version 18.0.11 (parent: ) Microsoft.Build.Localization From Version 18.0.11-servicing-26110-118 -> To Version 18.0.11-servicing-26110-124 (parent: ) Microsoft.Build.NuGetSdkResolver,NuGet.Build.Tasks,NuGet.Build.Tasks.Console,NuGet.Build.Tasks.Pack,NuGet.CommandLine.XPlat,NuGet.Commands,NuGet.Common,NuGet.Configuration,NuGet.Credentials,NuGet.DependencyResolver.Core,NuGet.Frameworks,NuGet.LibraryModel,NuGet.Localization,NuGet.Packaging,NuGet.ProjectModel,NuGet.Protocol,NuGet.Versioning From Version 7.0.2-rc.11118 -> To Version 7.0.2-rc.11124 (parent: ) Microsoft.Build.Tasks.Git,Microsoft.SourceLink.AzureRepos.Git,Microsoft.SourceLink.Bitbucket.Git,Microsoft.SourceLink.Common,Microsoft.SourceLink.GitHub,Microsoft.SourceLink.GitLab,Microsoft.TemplateEngine.Abstractions,Microsoft.TemplateEngine.Authoring.TemplateVerifier,Microsoft.TemplateEngine.Edge,Microsoft.TemplateEngine.Orchestrator.RunnableProjects,Microsoft.TemplateEngine.Utils,Microsoft.TemplateSearch.Common From Version 10.0.104 -> To Version 10.0.104 (parent: ) Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.BuildClient,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.CSharp.CodeStyle,Microsoft.CodeAnalysis.CSharp.Features,Microsoft.CodeAnalysis.CSharp.Workspaces,Microsoft.CodeAnalysis.PublicApiAnalyzers,Microsoft.CodeAnalysis.Workspaces.Common,Microsoft.CodeAnalysis.Workspaces.MSBuild,Microsoft.Net.Compilers.Toolset,Microsoft.Net.Compilers.Toolset.Framework From Version 5.0.0-2.26110.118 -> To Version 5.0.0-2.26110.124 (parent: ) Microsoft.Deployment.DotNet.Releases From Version 2.0.0-preview.1.26110.118 -> To Version 2.0.0-preview.1.26110.124 (parent: ) Microsoft.DiaSymReader From Version 2.2.4 -> To Version 2.2.4 (parent: ) Microsoft.DotNet.Arcade.Sdk,Microsoft.DotNet.Build.Tasks.Installers,Microsoft.DotNet.Build.Tasks.Templating,Microsoft.DotNet.Build.Tasks.Workloads,Microsoft.DotNet.Helix.Sdk,Microsoft.DotNet.SignTool,Microsoft.DotNet.XliffTasks,Microsoft.DotNet.XUnitExtensions From Version 10.0.0-beta.26110.118 -> To Version 10.0.0-beta.26110.124 (parent: ) Microsoft.FSharp.Compiler From Version 14.0.104-servicing.26110.118 -> To Version 14.0.104-servicing.26110.124 (parent: ) Microsoft.NET.Test.Sdk,Microsoft.TestPlatform.Build,Microsoft.TestPlatform.CLI From Version 18.0.1-release-26110-118 -> To Version 18.0.1-release-26110-124 (parent: ) Microsoft.TemplateEngine.Mocks,Microsoft.TemplateEngine.TestHelper,Microsoft.TemplateSearch.TemplateDiscovery From Version 10.0.104-servicing.26110.118 -> To Version 10.0.104-servicing.26110.124 (parent: ) Microsoft.Web.Xdt From Version 3.2.4 -> To Version 3.2.4 (parent: ) System.CommandLine From Version 2.0.4 -> To Version 2.0.4 (parent: ) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index 749ef520b60e..c74450fde0db 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 03bb21cd9e62..2cc2369d5dc9 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26110.118 - 10.0.4-servicing.26110.118 - 10.0.4-servicing.26110.118 - 10.0.4-servicing.26110.118 + 10.0.4-servicing.26110.124 + 10.0.4-servicing.26110.124 + 10.0.4-servicing.26110.124 + 10.0.4-servicing.26110.124 10.0.4 - 10.0.4-servicing.26110.118 + 10.0.4-servicing.26110.124 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26110.118 + 10.0.4-servicing.26110.124 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26110.118 + 10.0.4-servicing.26110.124 10.0.4 - 10.0.4-servicing.26110.118 - 10.0.4-servicing.26110.118 - 10.0.0-preview.26110.118 + 10.0.4-servicing.26110.124 + 10.0.4-servicing.26110.124 + 10.0.0-preview.26110.124 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26110-118 - 7.0.2-rc.11118 + 18.0.11-servicing-26110-124 + 7.0.2-rc.11124 10.0.104 - 5.0.0-2.26110.118 - 5.0.0-2.26110.118 - 5.0.0-2.26110.118 - 5.0.0-2.26110.118 - 5.0.0-2.26110.118 - 5.0.0-2.26110.118 - 5.0.0-2.26110.118 - 10.0.0-preview.26110.118 - 5.0.0-2.26110.118 - 5.0.0-2.26110.118 - 2.0.0-preview.1.26110.118 + 5.0.0-2.26110.124 + 5.0.0-2.26110.124 + 5.0.0-2.26110.124 + 5.0.0-2.26110.124 + 5.0.0-2.26110.124 + 5.0.0-2.26110.124 + 5.0.0-2.26110.124 + 10.0.0-preview.26110.124 + 5.0.0-2.26110.124 + 5.0.0-2.26110.124 + 2.0.0-preview.1.26110.124 2.2.4 - 10.0.0-beta.26110.118 - 10.0.0-beta.26110.118 - 10.0.0-beta.26110.118 - 10.0.0-beta.26110.118 - 10.0.0-beta.26110.118 - 10.0.0-beta.26110.118 + 10.0.0-beta.26110.124 + 10.0.0-beta.26110.124 + 10.0.0-beta.26110.124 + 10.0.0-beta.26110.124 + 10.0.0-beta.26110.124 + 10.0.0-beta.26110.124 10.0.4 10.0.4 - 10.0.4-servicing.26110.118 - 10.0.4-servicing.26110.118 - 10.0.0-beta.26110.118 - 10.0.0-beta.26110.118 + 10.0.4-servicing.26110.124 + 10.0.4-servicing.26110.124 + 10.0.0-beta.26110.124 + 10.0.0-beta.26110.124 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26110.118 + 14.0.104-servicing.26110.124 10.0.4 - 5.0.0-2.26110.118 - 5.0.0-2.26110.118 - 10.0.4-servicing.26110.118 + 5.0.0-2.26110.124 + 5.0.0-2.26110.124 + 10.0.4-servicing.26110.124 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26110.118 - 10.0.4-servicing.26110.118 - 18.0.1-release-26110-118 + 10.0.0-preview.26110.124 + 10.0.4-servicing.26110.124 + 18.0.1-release-26110-124 10.0.4 - 10.0.4-servicing.26110.118 + 10.0.4-servicing.26110.124 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26110.118 + 10.0.104-servicing.26110.124 10.0.104 - 10.0.104-servicing.26110.118 + 10.0.104-servicing.26110.124 10.0.104 10.0.104 - 10.0.104-servicing.26110.118 - 18.0.1-release-26110-118 - 18.0.1-release-26110-118 + 10.0.104-servicing.26110.124 + 18.0.1-release-26110-124 + 18.0.1-release-26110-124 3.2.4 10.0.4 - 10.0.4-servicing.26110.118 + 10.0.4-servicing.26110.124 10.0.4 - 7.0.2-rc.11118 - 7.0.2-rc.11118 - 7.0.2-rc.11118 - 7.0.2-rc.11118 - 7.0.2-rc.11118 - 7.0.2-rc.11118 - 7.0.2-rc.11118 - 7.0.2-rc.11118 - 7.0.2-rc.11118 - 7.0.2-rc.11118 - 7.0.2-rc.11118 - 7.0.2-rc.11118 - 7.0.2-rc.11118 - 7.0.2-rc.11118 - 7.0.2-rc.11118 - 7.0.2-rc.11118 + 7.0.2-rc.11124 + 7.0.2-rc.11124 + 7.0.2-rc.11124 + 7.0.2-rc.11124 + 7.0.2-rc.11124 + 7.0.2-rc.11124 + 7.0.2-rc.11124 + 7.0.2-rc.11124 + 7.0.2-rc.11124 + 7.0.2-rc.11124 + 7.0.2-rc.11124 + 7.0.2-rc.11124 + 7.0.2-rc.11124 + 7.0.2-rc.11124 + 7.0.2-rc.11124 + 7.0.2-rc.11124 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d47c114d1802..e084c6c1f250 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - a95a98f08d4181c90f78b6c4c83c001286662a3c + 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 diff --git a/global.json b/global.json index 9e19614ceb1d..3bb454cc8f72 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26110.118", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26110.118", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26110.124", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26110.124", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 14f0f8807b6c8034e164b3bdbb06afbb66d82046 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Feb 2026 19:44:23 +0000 Subject: [PATCH 042/179] Initial plan From 09d6f7c357c7281cf24f846fc1f0afa4c1de222c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Feb 2026 19:50:08 +0000 Subject: [PATCH 043/179] Remove dotnet format instructions from copilot-instructions.md Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com> --- .github/copilot-instructions.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index d40dbf671a10..3c2f2f74fb4d 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -6,11 +6,9 @@ Coding Style and Changes: - Code should match the style of the file it's in. - Changes should be minimal to resolve a problem in a clean way. - User-visible changes to behavior should be considered carefully before committing. They should always be flagged. -- When generating code, run `dotnet format` to ensure uniform formatting. +- Only edit the files that are necessary to address the specific issue. Do not run `dotnet format` or make formatting changes to additional files. - Prefer using file-based namespaces for new code. - Do not allow unused `using` directives to be committed. -- Commit your changes, and then format them. -- Add the format commit SHA to the .git-blame-ignore-revs file so that the commit doesn't dirty git blame in the future - Use `#if NET` blocks for .NET Core specific code, and `#if NETFRAMEWORK` for .NET Framework specific code. Testing: From 2fca80beccb1a01bbf9b0e41e8e4c5d5120b8aa7 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 12 Feb 2026 02:02:38 +0000 Subject: [PATCH 044/179] Update dependencies from https://github.com/microsoft/testfx build 20260211.3 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26110.3 -> To Version 2.2.0-preview.26111.3 MSTest From Version 4.2.0-preview.26110.3 -> To Version 4.2.0-preview.26111.3 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 2cc2369d5dc9..911d261c6cae 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26110.3 - 4.2.0-preview.26110.3 + 2.2.0-preview.26111.3 + 4.2.0-preview.26111.3 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e084c6c1f250..632d1d0d5ba0 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 - + https://github.com/microsoft/testfx - 5bc5a928cf62ab2d68e27ccc5435345502bb5df7 + 55388f9fbe66d30f3aae74453780776ccd0bc1b1 - + https://github.com/microsoft/testfx - 5bc5a928cf62ab2d68e27ccc5435345502bb5df7 + 55388f9fbe66d30f3aae74453780776ccd0bc1b1 https://github.com/dotnet/dotnet From 3ee9b7d8c9d2d69561792dc2c961cfedae4481d5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 12 Feb 2026 02:03:04 +0000 Subject: [PATCH 045/179] Update dependencies from https://github.com/microsoft/testfx build 20260211.3 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26110.3 -> To Version 2.2.0-preview.26111.3 MSTest From Version 4.2.0-preview.26110.3 -> To Version 4.2.0-preview.26111.3 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 5522bf33c595..a6a9809471e9 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -144,8 +144,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26110.3 - 4.2.0-preview.26110.3 + 2.2.0-preview.26111.3 + 4.2.0-preview.26111.3 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 63f7ed6180c5..e26f2a814512 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -564,13 +564,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - 5bc5a928cf62ab2d68e27ccc5435345502bb5df7 + 55388f9fbe66d30f3aae74453780776ccd0bc1b1 - + https://github.com/microsoft/testfx - 5bc5a928cf62ab2d68e27ccc5435345502bb5df7 + 55388f9fbe66d30f3aae74453780776ccd0bc1b1 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet From 18f13a537a577143e01860ccbb329d978c8633c2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 05:59:45 +0000 Subject: [PATCH 046/179] Reset files to release/10.0.3xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- eng/Version.Details.props | 132 +++++++++---------- eng/Version.Details.xml | 267 +++++++++++++++++++------------------- global.json | 4 +- 3 files changed, 202 insertions(+), 201 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index a6a9809471e9..a056dd5cfce8 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,68 +6,68 @@ This file should be imported by eng/Versions.props - 10.0.0-preview.26110.110 - 18.3.0-release-26110-110 - 18.3.0-release-26110-110 - 7.3.0-preview.1.11110 - 10.0.200-alpha.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 - 10.0.0-preview.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 - 10.0.0-beta.26110.110 - 10.0.0-beta.26110.110 - 10.0.0-beta.26110.110 - 10.0.0-beta.26110.110 - 10.0.0-beta.26110.110 - 10.0.0-beta.26110.110 - 10.0.0-beta.26110.110 - 10.0.0-beta.26110.110 - 15.2.200-servicing.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 + 10.0.0-preview.26103.116 + 18.3.0-preview-26103-116 + 18.3.0-preview-26103-116 + 7.4.0-rc.10416 + 10.0.300-alpha.26103.116 + 5.5.0-2.26103.116 + 5.5.0-2.26103.116 + 5.5.0-2.26103.116 + 5.5.0-2.26103.116 + 5.5.0-2.26103.116 + 5.5.0-2.26103.116 + 5.5.0-2.26103.116 + 5.5.0-2.26103.116 + 10.0.0-preview.26103.116 + 5.5.0-2.26103.116 + 5.5.0-2.26103.116 + 10.0.0-beta.26103.116 + 10.0.0-beta.26103.116 + 10.0.0-beta.26103.116 + 10.0.0-beta.26103.116 + 10.0.0-beta.26103.116 + 10.0.0-beta.26103.116 + 10.0.0-beta.26103.116 + 10.0.0-beta.26103.116 + 15.2.300-servicing.26103.116 + 5.5.0-2.26103.116 + 5.5.0-2.26103.116 10.0.0-preview.7.25377.103 - 10.0.0-preview.26110.110 - 18.3.0-release-26110-110 - 10.0.200-alpha.26110.110 - 10.0.200-alpha.26110.110 - 10.0.200-alpha.26110.110 - 10.0.200-alpha.26110.110 - 10.0.200-alpha.26110.110 - 10.0.200-preview.26110.110 - 10.0.200-preview.26110.110 - 10.0.200-preview.26110.110 - 10.0.200-preview.26110.110 - 10.0.200-preview.26110.110 - 10.0.200-preview.26110.110 - 10.0.200-preview.26110.110 - 10.0.200-preview.26110.110 - 10.0.200-preview.26110.110 - 18.3.0-release-26110-110 - 18.3.0-release-26110-110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 + 10.0.0-preview.26103.116 + 18.3.0-release-26103-116 + 10.0.300-alpha.26103.116 + 10.0.300-alpha.26103.116 + 10.0.300-alpha.26103.116 + 10.0.300-alpha.26103.116 + 10.0.300-alpha.26103.116 + 10.0.200-preview.26103.116 + 10.0.200-preview.26103.116 + 10.0.200-preview.26103.116 + 10.0.200-preview.26103.116 + 10.0.200-preview.26103.116 + 10.0.200-preview.26103.116 + 10.0.200-preview.26103.116 + 10.0.200-preview.26103.116 + 10.0.200-preview.26103.116 + 18.3.0-release-26103-116 + 18.3.0-release-26103-116 + 7.4.0-rc.10416 + 7.4.0-rc.10416 + 7.4.0-rc.10416 + 7.4.0-rc.10416 + 7.4.0-rc.10416 + 7.4.0-rc.10416 + 7.4.0-rc.10416 + 7.4.0-rc.10416 + 7.4.0-rc.10416 + 7.4.0-rc.10416 + 7.4.0-rc.10416 + 7.4.0-rc.10416 + 7.4.0-rc.10416 + 7.4.0-rc.10416 + 7.4.0-rc.10416 + 7.4.0-rc.10416 10.0.2-servicing.25612.105 10.0.2-servicing.25612.105 @@ -97,9 +97,9 @@ This file should be imported by eng/Versions.props 2.2.2 10.0.2 10.0.2 - 10.0.0-rtm.25523.111 - 10.0.0-rtm.25523.111 + 10.0.2-servicing.25612.105 10.0.2 + 10.0.2 10.0.2 10.0.2 10.0.2 @@ -144,8 +144,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26111.3 - 4.2.0-preview.26111.3 + 2.1.0-preview.25571.1 + 4.1.0-preview.25571.1 @@ -242,8 +242,8 @@ This file should be imported by eng/Versions.props $(MicrosoftDotNetWebItemTemplates100PackageVersion) $(MicrosoftDotNetWebProjectTemplates100PackageVersion) $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) - $(MicrosoftDotnetWpfProjectTemplatesPackageVersion) $(MicrosoftExtensionsConfigurationIniPackageVersion) + $(MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion) $(MicrosoftExtensionsDependencyModelPackageVersion) $(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion) $(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e26f2a814512..c85ec7c9ebaa 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,42 +1,42 @@ - + - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -72,138 +72,138 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -370,25 +370,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -405,29 +405,29 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac @@ -440,6 +440,11 @@ 44525024595742ebe09023abe709df51de65009b + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + fad253f51b461736dfd3cd9c15977bb7493becef + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b @@ -514,63 +519,59 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - b0f34d51fccc69fd334253924abd8d6853fad7aa - - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - b0f34d51fccc69fd334253924abd8d6853fad7aa + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 9477b510bb25fc69515d2ab188af3b72799929ac https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - 55388f9fbe66d30f3aae74453780776ccd0bc1b1 + 43e592148ac1c7916908477bdffcf2a345affa6d - + https://github.com/microsoft/testfx - 55388f9fbe66d30f3aae74453780776ccd0bc1b1 + 43e592148ac1c7916908477bdffcf2a345affa6d https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet diff --git a/global.json b/global.json index e12862d61aad..ecba0c109058 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26110.110", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26110.110", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26103.116", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26103.116", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From d42b8abef89eb07ad7962ca45423717607212df0 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 12 Feb 2026 06:45:26 +0000 Subject: [PATCH 047/179] Update dependencies from build 301442 On relative base path root dotnet-dev-certs,dotnet-user-jwts,dotnet-user-secrets,Microsoft.AspNetCore.Analyzers,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.Components.SdkAnalyzers,Microsoft.AspNetCore.DeveloperCertificates.XPlat,Microsoft.AspNetCore.Mvc.Analyzers,Microsoft.AspNetCore.Mvc.Api.Analyzers,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates,Microsoft.NET.HostModel,Microsoft.NET.Sdk.WindowsDesktop,Microsoft.NETCore.Platforms,Microsoft.WindowsDesktop.App.Internal From Version 10.0.4-servicing.26110.124 -> To Version 10.0.4-servicing.26111.116 (parent: ) Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.Authentication.Facebook,Microsoft.AspNetCore.Authentication.Google,Microsoft.AspNetCore.Authentication.MicrosoftAccount,Microsoft.AspNetCore.Authorization,Microsoft.AspNetCore.Components,Microsoft.AspNetCore.Components.Analyzers,Microsoft.AspNetCore.Components.Forms,Microsoft.AspNetCore.Components.Web,Microsoft.AspNetCore.Components.WebAssembly,Microsoft.AspNetCore.Components.WebAssembly.Server,Microsoft.AspNetCore.Components.WebView,Microsoft.AspNetCore.Metadata,Microsoft.AspNetCore.TestHost,Microsoft.Bcl.AsyncInterfaces,Microsoft.DotNet.Web.ItemTemplates.10.0,Microsoft.DotNet.Web.ProjectTemplates.10.0,Microsoft.Extensions.Configuration.Ini,Microsoft.Extensions.DependencyModel,Microsoft.Extensions.FileProviders.Abstractions,Microsoft.Extensions.FileProviders.Embedded,Microsoft.Extensions.FileSystemGlobbing,Microsoft.Extensions.Logging,Microsoft.Extensions.Logging.Abstractions,Microsoft.Extensions.Logging.Console,Microsoft.Extensions.ObjectPool,Microsoft.JSInterop,Microsoft.NET.ILLink.Tasks,Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64,Microsoft.NETCore.App.Ref,Microsoft.Win32.SystemEvents,Microsoft.WindowsDesktop.App.Ref,System.CodeDom,System.ComponentModel.Composition,System.Composition.AttributedModel,System.Composition.Convention,System.Composition.Hosting,System.Composition.Runtime,System.Composition.TypedParts,System.Configuration.ConfigurationManager,System.Diagnostics.DiagnosticSource,System.Formats.Asn1,System.IO.Hashing,System.Reflection.MetadataLoadContext,System.Resources.Extensions,System.Security.Cryptography.Pkcs,System.Security.Cryptography.ProtectedData,System.Security.Cryptography.Xml,System.Security.Permissions,System.ServiceProcess.ServiceController,System.Text.Encoding.CodePages,System.Text.Json,System.Windows.Extensions From Version 10.0.4 -> To Version 10.0.4 (parent: ) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal,Microsoft.CodeAnalysis.Razor.Tooling.Internal,Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 10.0.0-preview.26110.124 -> To Version 10.0.0-preview.26111.116 (parent: ) Microsoft.Build From Version 18.0.11 -> To Version 18.0.11 (parent: ) Microsoft.Build.Localization From Version 18.0.11-servicing-26110-124 -> To Version 18.0.11-servicing-26111-116 (parent: ) Microsoft.Build.NuGetSdkResolver,NuGet.Build.Tasks,NuGet.Build.Tasks.Console,NuGet.Build.Tasks.Pack,NuGet.CommandLine.XPlat,NuGet.Commands,NuGet.Common,NuGet.Configuration,NuGet.Credentials,NuGet.DependencyResolver.Core,NuGet.Frameworks,NuGet.LibraryModel,NuGet.Localization,NuGet.Packaging,NuGet.ProjectModel,NuGet.Protocol,NuGet.Versioning From Version 7.0.2-rc.11124 -> To Version 7.0.2-rc.11216 (parent: ) Microsoft.Build.Tasks.Git,Microsoft.SourceLink.AzureRepos.Git,Microsoft.SourceLink.Bitbucket.Git,Microsoft.SourceLink.Common,Microsoft.SourceLink.GitHub,Microsoft.SourceLink.GitLab,Microsoft.TemplateEngine.Abstractions,Microsoft.TemplateEngine.Authoring.TemplateVerifier,Microsoft.TemplateEngine.Edge,Microsoft.TemplateEngine.Orchestrator.RunnableProjects,Microsoft.TemplateEngine.Utils,Microsoft.TemplateSearch.Common From Version 10.0.104 -> To Version 10.0.104 (parent: ) Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.BuildClient,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.CSharp.CodeStyle,Microsoft.CodeAnalysis.CSharp.Features,Microsoft.CodeAnalysis.CSharp.Workspaces,Microsoft.CodeAnalysis.PublicApiAnalyzers,Microsoft.CodeAnalysis.Workspaces.Common,Microsoft.CodeAnalysis.Workspaces.MSBuild,Microsoft.Net.Compilers.Toolset,Microsoft.Net.Compilers.Toolset.Framework From Version 5.0.0-2.26110.124 -> To Version 5.0.0-2.26111.116 (parent: ) Microsoft.Deployment.DotNet.Releases From Version 2.0.0-preview.1.26110.124 -> To Version 2.0.0-preview.1.26111.116 (parent: ) Microsoft.DiaSymReader From Version 2.2.4 -> To Version 2.2.4 (parent: ) Microsoft.DotNet.Arcade.Sdk,Microsoft.DotNet.Build.Tasks.Installers,Microsoft.DotNet.Build.Tasks.Templating,Microsoft.DotNet.Build.Tasks.Workloads,Microsoft.DotNet.Helix.Sdk,Microsoft.DotNet.SignTool,Microsoft.DotNet.XliffTasks,Microsoft.DotNet.XUnitExtensions From Version 10.0.0-beta.26110.124 -> To Version 10.0.0-beta.26111.116 (parent: ) Microsoft.FSharp.Compiler From Version 14.0.104-servicing.26110.124 -> To Version 14.0.104-servicing.26111.116 (parent: ) Microsoft.NET.Test.Sdk,Microsoft.TestPlatform.Build,Microsoft.TestPlatform.CLI From Version 18.0.1-release-26110-124 -> To Version 18.0.1-release-26111-116 (parent: ) Microsoft.TemplateEngine.Mocks,Microsoft.TemplateEngine.TestHelper,Microsoft.TemplateSearch.TemplateDiscovery From Version 10.0.104-servicing.26110.124 -> To Version 10.0.104-servicing.26111.116 (parent: ) Microsoft.Web.Xdt From Version 3.2.4 -> To Version 3.2.4 (parent: ) System.CommandLine From Version 2.0.4 -> To Version 2.0.4 (parent: ) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index c74450fde0db..ac911aa8d7d8 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 2cc2369d5dc9..e3583ff1dc0b 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26110.124 - 10.0.4-servicing.26110.124 - 10.0.4-servicing.26110.124 - 10.0.4-servicing.26110.124 + 10.0.4-servicing.26111.116 + 10.0.4-servicing.26111.116 + 10.0.4-servicing.26111.116 + 10.0.4-servicing.26111.116 10.0.4 - 10.0.4-servicing.26110.124 + 10.0.4-servicing.26111.116 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26110.124 + 10.0.4-servicing.26111.116 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26110.124 + 10.0.4-servicing.26111.116 10.0.4 - 10.0.4-servicing.26110.124 - 10.0.4-servicing.26110.124 - 10.0.0-preview.26110.124 + 10.0.4-servicing.26111.116 + 10.0.4-servicing.26111.116 + 10.0.0-preview.26111.116 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26110-124 - 7.0.2-rc.11124 + 18.0.11-servicing-26111-116 + 7.0.2-rc.11216 10.0.104 - 5.0.0-2.26110.124 - 5.0.0-2.26110.124 - 5.0.0-2.26110.124 - 5.0.0-2.26110.124 - 5.0.0-2.26110.124 - 5.0.0-2.26110.124 - 5.0.0-2.26110.124 - 10.0.0-preview.26110.124 - 5.0.0-2.26110.124 - 5.0.0-2.26110.124 - 2.0.0-preview.1.26110.124 + 5.0.0-2.26111.116 + 5.0.0-2.26111.116 + 5.0.0-2.26111.116 + 5.0.0-2.26111.116 + 5.0.0-2.26111.116 + 5.0.0-2.26111.116 + 5.0.0-2.26111.116 + 10.0.0-preview.26111.116 + 5.0.0-2.26111.116 + 5.0.0-2.26111.116 + 2.0.0-preview.1.26111.116 2.2.4 - 10.0.0-beta.26110.124 - 10.0.0-beta.26110.124 - 10.0.0-beta.26110.124 - 10.0.0-beta.26110.124 - 10.0.0-beta.26110.124 - 10.0.0-beta.26110.124 + 10.0.0-beta.26111.116 + 10.0.0-beta.26111.116 + 10.0.0-beta.26111.116 + 10.0.0-beta.26111.116 + 10.0.0-beta.26111.116 + 10.0.0-beta.26111.116 10.0.4 10.0.4 - 10.0.4-servicing.26110.124 - 10.0.4-servicing.26110.124 - 10.0.0-beta.26110.124 - 10.0.0-beta.26110.124 + 10.0.4-servicing.26111.116 + 10.0.4-servicing.26111.116 + 10.0.0-beta.26111.116 + 10.0.0-beta.26111.116 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26110.124 + 14.0.104-servicing.26111.116 10.0.4 - 5.0.0-2.26110.124 - 5.0.0-2.26110.124 - 10.0.4-servicing.26110.124 + 5.0.0-2.26111.116 + 5.0.0-2.26111.116 + 10.0.4-servicing.26111.116 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26110.124 - 10.0.4-servicing.26110.124 - 18.0.1-release-26110-124 + 10.0.0-preview.26111.116 + 10.0.4-servicing.26111.116 + 18.0.1-release-26111-116 10.0.4 - 10.0.4-servicing.26110.124 + 10.0.4-servicing.26111.116 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26110.124 + 10.0.104-servicing.26111.116 10.0.104 - 10.0.104-servicing.26110.124 + 10.0.104-servicing.26111.116 10.0.104 10.0.104 - 10.0.104-servicing.26110.124 - 18.0.1-release-26110-124 - 18.0.1-release-26110-124 + 10.0.104-servicing.26111.116 + 18.0.1-release-26111-116 + 18.0.1-release-26111-116 3.2.4 10.0.4 - 10.0.4-servicing.26110.124 + 10.0.4-servicing.26111.116 10.0.4 - 7.0.2-rc.11124 - 7.0.2-rc.11124 - 7.0.2-rc.11124 - 7.0.2-rc.11124 - 7.0.2-rc.11124 - 7.0.2-rc.11124 - 7.0.2-rc.11124 - 7.0.2-rc.11124 - 7.0.2-rc.11124 - 7.0.2-rc.11124 - 7.0.2-rc.11124 - 7.0.2-rc.11124 - 7.0.2-rc.11124 - 7.0.2-rc.11124 - 7.0.2-rc.11124 - 7.0.2-rc.11124 + 7.0.2-rc.11216 + 7.0.2-rc.11216 + 7.0.2-rc.11216 + 7.0.2-rc.11216 + 7.0.2-rc.11216 + 7.0.2-rc.11216 + 7.0.2-rc.11216 + 7.0.2-rc.11216 + 7.0.2-rc.11216 + 7.0.2-rc.11216 + 7.0.2-rc.11216 + 7.0.2-rc.11216 + 7.0.2-rc.11216 + 7.0.2-rc.11216 + 7.0.2-rc.11216 + 7.0.2-rc.11216 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e084c6c1f250..b28fba22e88c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a - + https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 9d0c3bebf9d368ad51c0b9a7b954219d192cd9d6 + 8f353e638642d74c8bcafd3e6023db9a47254b2a diff --git a/global.json b/global.json index 3bb454cc8f72..f8c0041895e9 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26110.124", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26110.124", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26111.116", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26111.116", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 735f12e7c033052fbf638688855009a0b368dc1a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 12 Feb 2026 19:44:34 +0000 Subject: [PATCH 048/179] Update dependencies from build 301549 On relative base path root dotnet-dev-certs,dotnet-user-jwts,dotnet-user-secrets,Microsoft.AspNetCore.Analyzers,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.Components.SdkAnalyzers,Microsoft.AspNetCore.DeveloperCertificates.XPlat,Microsoft.AspNetCore.Mvc.Analyzers,Microsoft.AspNetCore.Mvc.Api.Analyzers,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates,Microsoft.NET.HostModel,Microsoft.NET.Sdk.WindowsDesktop,Microsoft.NETCore.Platforms,Microsoft.WindowsDesktop.App.Internal From Version 10.0.4-servicing.26111.116 -> To Version 10.0.4-servicing.26112.101 (parent: ) Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.Authentication.Facebook,Microsoft.AspNetCore.Authentication.Google,Microsoft.AspNetCore.Authentication.MicrosoftAccount,Microsoft.AspNetCore.Authorization,Microsoft.AspNetCore.Components,Microsoft.AspNetCore.Components.Analyzers,Microsoft.AspNetCore.Components.Forms,Microsoft.AspNetCore.Components.Web,Microsoft.AspNetCore.Components.WebAssembly,Microsoft.AspNetCore.Components.WebAssembly.Server,Microsoft.AspNetCore.Components.WebView,Microsoft.AspNetCore.Metadata,Microsoft.AspNetCore.TestHost,Microsoft.Bcl.AsyncInterfaces,Microsoft.DotNet.Web.ItemTemplates.10.0,Microsoft.DotNet.Web.ProjectTemplates.10.0,Microsoft.Extensions.Configuration.Ini,Microsoft.Extensions.DependencyModel,Microsoft.Extensions.FileProviders.Abstractions,Microsoft.Extensions.FileProviders.Embedded,Microsoft.Extensions.FileSystemGlobbing,Microsoft.Extensions.Logging,Microsoft.Extensions.Logging.Abstractions,Microsoft.Extensions.Logging.Console,Microsoft.Extensions.ObjectPool,Microsoft.JSInterop,Microsoft.NET.ILLink.Tasks,Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64,Microsoft.NETCore.App.Ref,Microsoft.Win32.SystemEvents,Microsoft.WindowsDesktop.App.Ref,System.CodeDom,System.ComponentModel.Composition,System.Composition.AttributedModel,System.Composition.Convention,System.Composition.Hosting,System.Composition.Runtime,System.Composition.TypedParts,System.Configuration.ConfigurationManager,System.Diagnostics.DiagnosticSource,System.Formats.Asn1,System.IO.Hashing,System.Reflection.MetadataLoadContext,System.Resources.Extensions,System.Security.Cryptography.Pkcs,System.Security.Cryptography.ProtectedData,System.Security.Cryptography.Xml,System.Security.Permissions,System.ServiceProcess.ServiceController,System.Text.Encoding.CodePages,System.Text.Json,System.Windows.Extensions From Version 10.0.4 -> To Version 10.0.4 (parent: ) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal,Microsoft.CodeAnalysis.Razor.Tooling.Internal,Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 10.0.0-preview.26111.116 -> To Version 10.0.0-preview.26112.101 (parent: ) Microsoft.Build From Version 18.0.11 -> To Version 18.0.11 (parent: ) Microsoft.Build.Localization From Version 18.0.11-servicing-26111-116 -> To Version 18.0.11-servicing-26112-101 (parent: ) Microsoft.Build.NuGetSdkResolver,NuGet.Build.Tasks,NuGet.Build.Tasks.Console,NuGet.Build.Tasks.Pack,NuGet.CommandLine.XPlat,NuGet.Commands,NuGet.Common,NuGet.Configuration,NuGet.Credentials,NuGet.DependencyResolver.Core,NuGet.Frameworks,NuGet.LibraryModel,NuGet.Localization,NuGet.Packaging,NuGet.ProjectModel,NuGet.Protocol,NuGet.Versioning From Version 7.0.2-rc.11216 -> To Version 7.0.2-rc.11301 (parent: ) Microsoft.Build.Tasks.Git,Microsoft.SourceLink.AzureRepos.Git,Microsoft.SourceLink.Bitbucket.Git,Microsoft.SourceLink.Common,Microsoft.SourceLink.GitHub,Microsoft.SourceLink.GitLab,Microsoft.TemplateEngine.Abstractions,Microsoft.TemplateEngine.Authoring.TemplateVerifier,Microsoft.TemplateEngine.Edge,Microsoft.TemplateEngine.Orchestrator.RunnableProjects,Microsoft.TemplateEngine.Utils,Microsoft.TemplateSearch.Common From Version 10.0.104 -> To Version 10.0.104 (parent: ) Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.BuildClient,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.CSharp.CodeStyle,Microsoft.CodeAnalysis.CSharp.Features,Microsoft.CodeAnalysis.CSharp.Workspaces,Microsoft.CodeAnalysis.PublicApiAnalyzers,Microsoft.CodeAnalysis.Workspaces.Common,Microsoft.CodeAnalysis.Workspaces.MSBuild,Microsoft.Net.Compilers.Toolset,Microsoft.Net.Compilers.Toolset.Framework From Version 5.0.0-2.26111.116 -> To Version 5.0.0-2.26112.101 (parent: ) Microsoft.Deployment.DotNet.Releases From Version 2.0.0-preview.1.26111.116 -> To Version 2.0.0-preview.1.26112.101 (parent: ) Microsoft.DiaSymReader From Version 2.2.4 -> To Version 2.2.4 (parent: ) Microsoft.DotNet.Arcade.Sdk,Microsoft.DotNet.Build.Tasks.Installers,Microsoft.DotNet.Build.Tasks.Templating,Microsoft.DotNet.Build.Tasks.Workloads,Microsoft.DotNet.Helix.Sdk,Microsoft.DotNet.SignTool,Microsoft.DotNet.XliffTasks,Microsoft.DotNet.XUnitExtensions From Version 10.0.0-beta.26111.116 -> To Version 10.0.0-beta.26112.101 (parent: ) Microsoft.FSharp.Compiler From Version 14.0.104-servicing.26111.116 -> To Version 14.0.104-servicing.26112.101 (parent: ) Microsoft.NET.Test.Sdk,Microsoft.TestPlatform.Build,Microsoft.TestPlatform.CLI From Version 18.0.1-release-26111-116 -> To Version 18.0.1-release-26112-101 (parent: ) Microsoft.TemplateEngine.Mocks,Microsoft.TemplateEngine.TestHelper,Microsoft.TemplateSearch.TemplateDiscovery From Version 10.0.104-servicing.26111.116 -> To Version 10.0.104-servicing.26112.101 (parent: ) Microsoft.Web.Xdt From Version 3.2.4 -> To Version 3.2.4 (parent: ) System.CommandLine From Version 2.0.4 -> To Version 2.0.4 (parent: ) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index ac911aa8d7d8..db5163e8d1a7 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index b8a0038c8263..16956cda1b90 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26111.116 - 10.0.4-servicing.26111.116 - 10.0.4-servicing.26111.116 - 10.0.4-servicing.26111.116 + 10.0.4-servicing.26112.101 + 10.0.4-servicing.26112.101 + 10.0.4-servicing.26112.101 + 10.0.4-servicing.26112.101 10.0.4 - 10.0.4-servicing.26111.116 + 10.0.4-servicing.26112.101 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26111.116 + 10.0.4-servicing.26112.101 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26111.116 + 10.0.4-servicing.26112.101 10.0.4 - 10.0.4-servicing.26111.116 - 10.0.4-servicing.26111.116 - 10.0.0-preview.26111.116 + 10.0.4-servicing.26112.101 + 10.0.4-servicing.26112.101 + 10.0.0-preview.26112.101 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26111-116 - 7.0.2-rc.11216 + 18.0.11-servicing-26112-101 + 7.0.2-rc.11301 10.0.104 - 5.0.0-2.26111.116 - 5.0.0-2.26111.116 - 5.0.0-2.26111.116 - 5.0.0-2.26111.116 - 5.0.0-2.26111.116 - 5.0.0-2.26111.116 - 5.0.0-2.26111.116 - 10.0.0-preview.26111.116 - 5.0.0-2.26111.116 - 5.0.0-2.26111.116 - 2.0.0-preview.1.26111.116 + 5.0.0-2.26112.101 + 5.0.0-2.26112.101 + 5.0.0-2.26112.101 + 5.0.0-2.26112.101 + 5.0.0-2.26112.101 + 5.0.0-2.26112.101 + 5.0.0-2.26112.101 + 10.0.0-preview.26112.101 + 5.0.0-2.26112.101 + 5.0.0-2.26112.101 + 2.0.0-preview.1.26112.101 2.2.4 - 10.0.0-beta.26111.116 - 10.0.0-beta.26111.116 - 10.0.0-beta.26111.116 - 10.0.0-beta.26111.116 - 10.0.0-beta.26111.116 - 10.0.0-beta.26111.116 + 10.0.0-beta.26112.101 + 10.0.0-beta.26112.101 + 10.0.0-beta.26112.101 + 10.0.0-beta.26112.101 + 10.0.0-beta.26112.101 + 10.0.0-beta.26112.101 10.0.4 10.0.4 - 10.0.4-servicing.26111.116 - 10.0.4-servicing.26111.116 - 10.0.0-beta.26111.116 - 10.0.0-beta.26111.116 + 10.0.4-servicing.26112.101 + 10.0.4-servicing.26112.101 + 10.0.0-beta.26112.101 + 10.0.0-beta.26112.101 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26111.116 + 14.0.104-servicing.26112.101 10.0.4 - 5.0.0-2.26111.116 - 5.0.0-2.26111.116 - 10.0.4-servicing.26111.116 + 5.0.0-2.26112.101 + 5.0.0-2.26112.101 + 10.0.4-servicing.26112.101 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26111.116 - 10.0.4-servicing.26111.116 - 18.0.1-release-26111-116 + 10.0.0-preview.26112.101 + 10.0.4-servicing.26112.101 + 18.0.1-release-26112-101 10.0.4 - 10.0.4-servicing.26111.116 + 10.0.4-servicing.26112.101 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26111.116 + 10.0.104-servicing.26112.101 10.0.104 - 10.0.104-servicing.26111.116 + 10.0.104-servicing.26112.101 10.0.104 10.0.104 - 10.0.104-servicing.26111.116 - 18.0.1-release-26111-116 - 18.0.1-release-26111-116 + 10.0.104-servicing.26112.101 + 18.0.1-release-26112-101 + 18.0.1-release-26112-101 3.2.4 10.0.4 - 10.0.4-servicing.26111.116 + 10.0.4-servicing.26112.101 10.0.4 - 7.0.2-rc.11216 - 7.0.2-rc.11216 - 7.0.2-rc.11216 - 7.0.2-rc.11216 - 7.0.2-rc.11216 - 7.0.2-rc.11216 - 7.0.2-rc.11216 - 7.0.2-rc.11216 - 7.0.2-rc.11216 - 7.0.2-rc.11216 - 7.0.2-rc.11216 - 7.0.2-rc.11216 - 7.0.2-rc.11216 - 7.0.2-rc.11216 - 7.0.2-rc.11216 - 7.0.2-rc.11216 + 7.0.2-rc.11301 + 7.0.2-rc.11301 + 7.0.2-rc.11301 + 7.0.2-rc.11301 + 7.0.2-rc.11301 + 7.0.2-rc.11301 + 7.0.2-rc.11301 + 7.0.2-rc.11301 + 7.0.2-rc.11301 + 7.0.2-rc.11301 + 7.0.2-rc.11301 + 7.0.2-rc.11301 + 7.0.2-rc.11301 + 7.0.2-rc.11301 + 7.0.2-rc.11301 + 7.0.2-rc.11301 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index cb7355b5170e..d699d5ecaf18 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 8f353e638642d74c8bcafd3e6023db9a47254b2a + fed627baa5ecd147271ada875bbd183f0d2a01d7 diff --git a/global.json b/global.json index f8c0041895e9..ee2184a5a0d7 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26111.116", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26111.116", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26112.101", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26112.101", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 5f4b7d2cbe1f727e82c5ccc456e3e9a16d4f0770 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 13 Feb 2026 02:02:18 +0000 Subject: [PATCH 049/179] Update dependencies from https://github.com/microsoft/testfx build 20260212.1 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26111.3 -> To Version 2.2.0-preview.26112.1 MSTest From Version 4.2.0-preview.26111.3 -> To Version 4.2.0-preview.26112.1 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 16956cda1b90..4243ffe61da4 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26111.3 - 4.2.0-preview.26111.3 + 2.2.0-preview.26112.1 + 4.2.0-preview.26112.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d699d5ecaf18..ffe5352a53c9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet fed627baa5ecd147271ada875bbd183f0d2a01d7 - + https://github.com/microsoft/testfx - 55388f9fbe66d30f3aae74453780776ccd0bc1b1 + 65588671e1dcddd4d1f2229d2d74d2cf2f2d99cc - + https://github.com/microsoft/testfx - 55388f9fbe66d30f3aae74453780776ccd0bc1b1 + 65588671e1dcddd4d1f2229d2d74d2cf2f2d99cc https://github.com/dotnet/dotnet From 57831601d90c62d7dbb6323524510ad2cbe859aa Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 13 Feb 2026 02:02:47 +0000 Subject: [PATCH 050/179] Update dependencies from https://github.com/microsoft/testfx build 20260212.1 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26111.3 -> To Version 2.2.0-preview.26112.1 MSTest From Version 4.2.0-preview.26111.3 -> To Version 4.2.0-preview.26112.1 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index a6a9809471e9..aa6835c00e50 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -144,8 +144,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26111.3 - 4.2.0-preview.26111.3 + 2.2.0-preview.26112.1 + 4.2.0-preview.26112.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e26f2a814512..c619dfaf94e0 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -564,13 +564,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - 55388f9fbe66d30f3aae74453780776ccd0bc1b1 + 65588671e1dcddd4d1f2229d2d74d2cf2f2d99cc - + https://github.com/microsoft/testfx - 55388f9fbe66d30f3aae74453780776ccd0bc1b1 + 65588671e1dcddd4d1f2229d2d74d2cf2f2d99cc https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet From 31d5753e3ee99b3b705eb7771e857259705620cf Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Thu, 12 Feb 2026 10:15:27 -0800 Subject: [PATCH 051/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2902600 --- .../.template.config/localize/templatestrings.cs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.cs.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.cs.json index 535e0d7b8229..55a5f276b71a 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.cs.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.cs.json @@ -1,4 +1,4 @@ -{ +{ "author": "Microsoft", "name": "Solution Filter File", "description": "Create a solution filter file that references a parent solution", From ba7ccf955662e931bbf86818dd393f4f931e1dc0 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Thu, 12 Feb 2026 10:16:43 -0800 Subject: [PATCH 052/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2902600 --- .../.template.config/localize/templatestrings.de.json | 2 +- .../.template.config/localize/templatestrings.es.json | 2 +- .../.template.config/localize/templatestrings.fr.json | 2 +- .../.template.config/localize/templatestrings.it.json | 2 +- .../.template.config/localize/templatestrings.ja.json | 2 +- .../.template.config/localize/templatestrings.ko.json | 2 +- .../.template.config/localize/templatestrings.pl.json | 2 +- .../.template.config/localize/templatestrings.pt-BR.json | 2 +- .../.template.config/localize/templatestrings.ru.json | 2 +- .../.template.config/localize/templatestrings.tr.json | 2 +- .../.template.config/localize/templatestrings.zh-Hans.json | 2 +- .../.template.config/localize/templatestrings.zh-Hant.json | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.de.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.de.json index 535e0d7b8229..55a5f276b71a 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.de.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.de.json @@ -1,4 +1,4 @@ -{ +{ "author": "Microsoft", "name": "Solution Filter File", "description": "Create a solution filter file that references a parent solution", diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.es.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.es.json index 535e0d7b8229..55a5f276b71a 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.es.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.es.json @@ -1,4 +1,4 @@ -{ +{ "author": "Microsoft", "name": "Solution Filter File", "description": "Create a solution filter file that references a parent solution", diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.fr.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.fr.json index 535e0d7b8229..55a5f276b71a 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.fr.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.fr.json @@ -1,4 +1,4 @@ -{ +{ "author": "Microsoft", "name": "Solution Filter File", "description": "Create a solution filter file that references a parent solution", diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.it.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.it.json index 535e0d7b8229..55a5f276b71a 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.it.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.it.json @@ -1,4 +1,4 @@ -{ +{ "author": "Microsoft", "name": "Solution Filter File", "description": "Create a solution filter file that references a parent solution", diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ja.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ja.json index 535e0d7b8229..55a5f276b71a 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ja.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ja.json @@ -1,4 +1,4 @@ -{ +{ "author": "Microsoft", "name": "Solution Filter File", "description": "Create a solution filter file that references a parent solution", diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ko.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ko.json index 535e0d7b8229..55a5f276b71a 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ko.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ko.json @@ -1,4 +1,4 @@ -{ +{ "author": "Microsoft", "name": "Solution Filter File", "description": "Create a solution filter file that references a parent solution", diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.pl.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.pl.json index 535e0d7b8229..55a5f276b71a 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.pl.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.pl.json @@ -1,4 +1,4 @@ -{ +{ "author": "Microsoft", "name": "Solution Filter File", "description": "Create a solution filter file that references a parent solution", diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.pt-BR.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.pt-BR.json index 535e0d7b8229..55a5f276b71a 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.pt-BR.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.pt-BR.json @@ -1,4 +1,4 @@ -{ +{ "author": "Microsoft", "name": "Solution Filter File", "description": "Create a solution filter file that references a parent solution", diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ru.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ru.json index 535e0d7b8229..55a5f276b71a 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ru.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ru.json @@ -1,4 +1,4 @@ -{ +{ "author": "Microsoft", "name": "Solution Filter File", "description": "Create a solution filter file that references a parent solution", diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.tr.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.tr.json index 535e0d7b8229..55a5f276b71a 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.tr.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.tr.json @@ -1,4 +1,4 @@ -{ +{ "author": "Microsoft", "name": "Solution Filter File", "description": "Create a solution filter file that references a parent solution", diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.zh-Hans.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.zh-Hans.json index 535e0d7b8229..55a5f276b71a 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.zh-Hans.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.zh-Hans.json @@ -1,4 +1,4 @@ -{ +{ "author": "Microsoft", "name": "Solution Filter File", "description": "Create a solution filter file that references a parent solution", diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.zh-Hant.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.zh-Hant.json index 535e0d7b8229..55a5f276b71a 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.zh-Hant.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.zh-Hant.json @@ -1,4 +1,4 @@ -{ +{ "author": "Microsoft", "name": "Solution Filter File", "description": "Create a solution filter file that references a parent solution", From 45cd4d3ddc1c2384e92fbb33a8041a8f7f882bba Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Thu, 12 Feb 2026 10:24:17 -0800 Subject: [PATCH 053/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2902600 --- .../Commands/xlf/CliCommandStrings.cs.xlf | 24 +++++++-------- .../Commands/xlf/CliCommandStrings.de.xlf | 24 +++++++-------- .../Commands/xlf/CliCommandStrings.es.xlf | 26 ++++++++-------- .../Commands/xlf/CliCommandStrings.fr.xlf | 26 ++++++++-------- .../Commands/xlf/CliCommandStrings.it.xlf | 26 ++++++++-------- .../Commands/xlf/CliCommandStrings.ja.xlf | 26 ++++++++-------- .../Commands/xlf/CliCommandStrings.ko.xlf | 26 ++++++++-------- .../Commands/xlf/CliCommandStrings.pl.xlf | 24 +++++++-------- .../Commands/xlf/CliCommandStrings.pt-BR.xlf | 24 +++++++-------- .../Commands/xlf/CliCommandStrings.ru.xlf | 24 +++++++-------- .../Commands/xlf/CliCommandStrings.tr.xlf | 30 +++++++++---------- .../xlf/CliCommandStrings.zh-Hans.xlf | 24 +++++++-------- .../xlf/CliCommandStrings.zh-Hant.xlf | 28 ++++++++--------- 13 files changed, 166 insertions(+), 166 deletions(-) diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf index 96ac26732352..164e7ebfc75b 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf @@ -226,7 +226,7 @@ Prohledané cesty: „{1}“, „{2}“. Build failed with exit code: {0}. - Získání vlastností projektů pomocí nástroje MSBuild nebylo správně spuštěno s ukončovacím kódem: {0}. + Build failed with exit code: {0}. @@ -922,7 +922,7 @@ Nástroj {1} (verze {2}) se úspěšně nainstaloval. Do souboru manifestu {3} s No workloads are installed, nothing to repair. Run `dotnet workload search` to find workloads to install. - Nejsou nainstalované žádné úlohy, nic se nedá opravit. Pokud chcete najít úlohy, které se mají nainstalovat, spusťte vyhledávání úloh dotnet. + Nejsou nainstalované žádné úlohy, nic se nedá opravit. Pokud chcete najít úlohy, které se mají nainstalovat, spusťte vyhledávání úloh dotnet. @@ -1239,7 +1239,7 @@ Nástroj {1} (verze {2}) se úspěšně nainstaloval. Do souboru manifestu {3} s Specify the output directory (press Enter for default: '{0}', directory must not exist): - Zadejte výstupní adresář ({0}): + Zadejte výstupní adresář (stisknutím klávesy Enter použijete výchozí hodnotu: {0}, adresář nesmí existovat): {0} is the default value @@ -1354,7 +1354,7 @@ Nástroj {1} (verze {2}) se úspěšně nainstaloval. Do souboru manifestu {3} s Available target frameworks: - Available target frameworks: + Dostupné cílové architektury: @@ -1374,7 +1374,7 @@ Nástroj {1} (verze {2}) se úspěšně nainstaloval. Do souboru manifestu {3} s Example - Example + Příklad @@ -1411,10 +1411,10 @@ Nástroj {1} (verze {2}) se úspěšně nainstaloval. Do souboru manifestu {3} s Ensure you have a runnable project type. A runnable project should target a runnable TFM (for instance, net{1}) and have OutputType 'Exe'. The current OutputType is '{2}'. - Projekt se nedá spustit. -Ověřte prosím, že máte spustitelný typ projektu, a zajistěte, aby tento projekt podporoval {0}. -Cílem spustitelného projektu by mělo být TFM (například net5.0) a jeho OutputType by měl být Exe. -Aktuální {1} je {2}. + V projektu {0} nelze pokračovat. +Ujistěte se, že máte spustitelný typ projektu. +Spustitelný projekt by měl cílit na spustitelný TFM (například net{1}) a mít OutputType Exe. +Aktuální OutputType je {2}. {0} is project file path. {1} is dotnet framework version. {2} is the project output type.{Locked="OutputType"}{Locked="Exe"} @@ -1436,7 +1436,7 @@ Cílem projektu je více architektur. Pomocí parametru {0} určete, která arch Move up and down to reveal more frameworks - Move up and down to reveal more frameworks + Posunutím nahoru a dolů zobrazíte další architektury. @@ -1451,7 +1451,7 @@ Cílem projektu je více architektur. Pomocí parametru {0} určete, která arch Type to search - Type to search + Zadejte hledaný text @@ -1461,7 +1461,7 @@ Cílem projektu je více architektur. Pomocí parametru {0} určete, která arch Select the target framework to run: - Select the target framework to run: + Vyberte cílovou architekturu, která se má spustit: diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf index eed6dac077de..6b66c0bb312b 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf @@ -226,7 +226,7 @@ Durchsuchte Pfade: "{1}", "{2}". Build failed with exit code: {0}. - Das Abrufen von Projekteigenschaften mit MSBuild wurde nicht ordnungsgemäß ausgeführt. Exitcode: {0}. + Build failed with exit code: {0}. @@ -922,7 +922,7 @@ Das Tool "{1}" (Version {2}) wurde erfolgreich installiert. Der Eintrag wird der No workloads are installed, nothing to repair. Run `dotnet workload search` to find workloads to install. - Es sind keine Workloads installiert, es ist keine Reparatur erforderlich. Führen Sie „dotnet workload search“ aus, um zu installierende Workloads zu finden. + Es sind keine Workloads installiert, es ist keine Reparatur erforderlich. Führen Sie „dotnet workload search“ aus, um zu installierende Workloads zu finden. @@ -1239,7 +1239,7 @@ Das Tool "{1}" (Version {2}) wurde erfolgreich installiert. Der Eintrag wird der Specify the output directory (press Enter for default: '{0}', directory must not exist): - Ausgabeverzeichnis ({0}) angeben: + Geben Sie das Ausgabeverzeichnis an (drücken Sie die EINGABETASTE, um die Standardeinstellung zu verwenden: „{0}“, das Verzeichnis darf nicht vorhanden sein): {0} is the default value @@ -1354,7 +1354,7 @@ Das Tool "{1}" (Version {2}) wurde erfolgreich installiert. Der Eintrag wird der Available target frameworks: - Available target frameworks: + Verfügbare Zielframeworks: @@ -1374,7 +1374,7 @@ Das Tool "{1}" (Version {2}) wurde erfolgreich installiert. Der Eintrag wird der Example - Example + Beispiel @@ -1411,10 +1411,10 @@ Das Tool "{1}" (Version {2}) wurde erfolgreich installiert. Der Eintrag wird der Ensure you have a runnable project type. A runnable project should target a runnable TFM (for instance, net{1}) and have OutputType 'Exe'. The current OutputType is '{2}'. - Ihr Projekt kann nicht ausgeführt werden. -Stellen Sie sicher, dass der Projekttyp ausführbar ist und "{0}" dieses Projekt unterstützt. -Ein ausführbares Projekt muss ein ausführbares TFM (z. B. net5.0) und den OutputType "Exe" verwenden. -{1} lautet aktuell "{2}". + Ihr Projekt „{0}“ kann nicht fortgesetzt werden. +Stellen Sie sicher, dass der Projekttyp ausführbar ist. +Ein ausführbares Projekt muss ein ausführbares TFM (z. B. net{1}) und den OutputType „Exe“ verwenden. +Der aktuelle OutputType lautet „{2}“. {0} is project file path. {1} is dotnet framework version. {2} is the project output type.{Locked="OutputType"}{Locked="Exe"} @@ -1436,7 +1436,7 @@ Ihr Projekt verwendet mehrere Zielframeworks. Geben Sie über "{0}" an, welches Move up and down to reveal more frameworks - Move up and down to reveal more frameworks + Nach oben und unten bewegen, um weitere Frameworks anzuzeigen @@ -1451,7 +1451,7 @@ Ihr Projekt verwendet mehrere Zielframeworks. Geben Sie über "{0}" an, welches Type to search - Type to search + Zum Suchen eingeben @@ -1461,7 +1461,7 @@ Ihr Projekt verwendet mehrere Zielframeworks. Geben Sie über "{0}" an, welches Select the target framework to run: - Select the target framework to run: + Wählen Sie das auszuführende Zielframework aus: diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf index 084706cc6041..862911c5ddd7 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf @@ -226,7 +226,7 @@ Rutas de acceso buscadas: "{1}", "{2}". Build failed with exit code: {0}. - La obtención de propiedades de proyectos con MSBuild no se ejecutó correctamente con el código de salida: {0}. + Build failed with exit code: {0}. @@ -922,7 +922,7 @@ La herramienta "{1}" (versión "{2}") se instaló correctamente. Se ha agregado No workloads are installed, nothing to repair. Run `dotnet workload search` to find workloads to install. - No hay cargas de trabajo instaladas, no hay nada que reparar. Ejecute "dotnet workload search" para buscar las cargas de trabajo que se van a instalar. + No hay cargas de trabajo instaladas, no hay nada que reparar. Ejecute "dotnet workload search" para buscar las cargas de trabajo que se van a instalar. @@ -1239,7 +1239,7 @@ La herramienta "{1}" (versión "{2}") se instaló correctamente. Se ha agregado Specify the output directory (press Enter for default: '{0}', directory must not exist): - Especifique el directorio de salida ({0}): + Especifique el directorio de salida (presione Entrar para el valor predeterminado: ''{0}, el directorio no debe existir): {0} is the default value @@ -1354,7 +1354,7 @@ La herramienta "{1}" (versión "{2}") se instaló correctamente. Se ha agregado Available target frameworks: - Available target frameworks: + Plataformas de destino disponibles: @@ -1374,7 +1374,7 @@ La herramienta "{1}" (versión "{2}") se instaló correctamente. Se ha agregado Example - Example + Ejemplo @@ -1392,7 +1392,7 @@ La herramienta "{1}" (versión "{2}") se instaló correctamente. Se ha agregado Cannot use launch profile '{0}' because the launch settings file could not be located. Locations tried: {1} - No se puede usar el perfil de inicio '{0}' porque no se pudo localizar el archivo de configuración de inicio. Ubicaciones probadas: + No se puede usar el perfil de inicio '{0}' porque no se pudo localizar el archivo de configuración de inicio. Ubicaciones probadas: {1} @@ -1411,10 +1411,10 @@ La herramienta "{1}" (versión "{2}") se instaló correctamente. Se ha agregado Ensure you have a runnable project type. A runnable project should target a runnable TFM (for instance, net{1}) and have OutputType 'Exe'. The current OutputType is '{2}'. - No se puede ejecutar el proyecto. -Asegúrese de tener un tipo de proyecto ejecutable y asegúrese de que "{0}" admita este proyecto. -Un proyecto ejecutable debe tener como destino un TFM ejecutable (por ejemplo, net5.0) y tener como OutputType "Exe". -El valor actual de {1} es "{2}". + No se puede continuar con el proyecto '{0}'. +Asegúrese de que tiene un tipo de proyecto que se puede ejecutar. +Un proyecto ejecutable debe tener como destino un TFM ejecutable (por ejemplo, net{1}) y tener OutputType 'Exe'. +El OutputType actual es '{2}'. {0} is project file path. {1} is dotnet framework version. {2} is the project output type.{Locked="OutputType"}{Locked="Exe"} @@ -1436,7 +1436,7 @@ Su proyecto tiene como destino varias plataformas. Especifique la que quiere usa Move up and down to reveal more frameworks - Move up and down to reveal more frameworks + Subir y bajar para mostrar más marcos @@ -1451,7 +1451,7 @@ Su proyecto tiene como destino varias plataformas. Especifique la que quiere usa Type to search - Type to search + Escriba para buscar @@ -1461,7 +1461,7 @@ Su proyecto tiene como destino varias plataformas. Especifique la que quiere usa Select the target framework to run: - Select the target framework to run: + Seleccione la plataforma de destino que se va a ejecutar: diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf index f00181ccaf44..5f1945f0720b 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf @@ -226,7 +226,7 @@ Les chemins d’accès ont recherché : « {1} », « {2} ». Build failed with exit code: {0}. - L’obtention des propriétés des projets avec MSBuild ne s’est pas exécutée correctement avec le code de sortie : {0}. + Build failed with exit code: {0}. @@ -922,7 +922,7 @@ L'outil '{1}' (version '{2}') a été correctement installé. L'entrée est ajou No workloads are installed, nothing to repair. Run `dotnet workload search` to find workloads to install. - Aucune charge de travail n’est installée, rien à réparer. Exécutez « recherche de charge de travail dotnet » pour trouver les charges de travail à installer. + Aucune charge de travail n’est installée, rien à réparer. Exécutez « recherche de charge de travail dotnet » pour trouver les charges de travail à installer. @@ -1239,7 +1239,7 @@ L'outil '{1}' (version '{2}') a été correctement installé. L'entrée est ajou Specify the output directory (press Enter for default: '{0}', directory must not exist): - Spécifiez le répertoire de sortie ({0}) : + Spécifiez le répertoire de sortie (appuyez sur Entrée pour utiliser la valeur par défaut : « {0} », le répertoire ne doit pas exister) : {0} is the default value @@ -1354,7 +1354,7 @@ L'outil '{1}' (version '{2}') a été correctement installé. L'entrée est ajou Available target frameworks: - Available target frameworks: + Frameworks cibles disponibles : @@ -1374,7 +1374,7 @@ L'outil '{1}' (version '{2}') a été correctement installé. L'entrée est ajou Example - Example + Exemple @@ -1392,7 +1392,7 @@ L'outil '{1}' (version '{2}') a été correctement installé. L'entrée est ajou Cannot use launch profile '{0}' because the launch settings file could not be located. Locations tried: {1} - Impossible d’utiliser le profil de lancement « {0} », car le fichier de paramètres de lancement est introuvable. Emplacements essayés : + Impossible d’utiliser le profil de lancement « {0} », car le fichier de paramètres de lancement est introuvable. Emplacements essayés : {1} @@ -1411,10 +1411,10 @@ L'outil '{1}' (version '{2}') a été correctement installé. L'entrée est ajou Ensure you have a runnable project type. A runnable project should target a runnable TFM (for instance, net{1}) and have OutputType 'Exe'. The current OutputType is '{2}'. - Impossible d'exécuter votre projet. -Vérifiez que vous avez un type de projet exécutable et que '{0}' prend en charge ce projet. -Un projet exécutable doit cibler un TFM exécutable (par exemple, net5.0) et avoir OutputType 'Exe'. -Le {1} actuel est '{2}'. + Impossible de continuer avec le projet « {0} ». +Vérifiez que vous avez un type de projet exécutable. +Un projet exécutable doit cibler un TFM exécutable (par exemple, net{1}) et avoir OutputType « Exe ». +Le type de sortie actuel (OutputType) est « {2} ». {0} is project file path. {1} is dotnet framework version. {2} is the project output type.{Locked="OutputType"}{Locked="Exe"} @@ -1436,7 +1436,7 @@ Votre projet cible plusieurs frameworks. Spécifiez le framework à exécuter à Move up and down to reveal more frameworks - Move up and down to reveal more frameworks + Montez et descendez pour afficher plus de frameworks @@ -1451,7 +1451,7 @@ Votre projet cible plusieurs frameworks. Spécifiez le framework à exécuter à Type to search - Type to search + Entrer le texte à rechercher @@ -1461,7 +1461,7 @@ Votre projet cible plusieurs frameworks. Spécifiez le framework à exécuter à Select the target framework to run: - Select the target framework to run: + Sélectionner le framework cible pour exécuter : diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf index 6b25c7604741..f79d0c8600a4 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf @@ -226,7 +226,7 @@ Percorsi cercati: '{1}', '{2}'. Build failed with exit code: {0}. - Il recupero delle proprietà dei progetti con MSBuild non è stato eseguito correttamente, con il codice di uscita: {0}. + Build failed with exit code: {0}. @@ -922,7 +922,7 @@ Lo strumento '{1}' versione '{2}' è stato installato. La voce è stata aggiunta No workloads are installed, nothing to repair. Run `dotnet workload search` to find workloads to install. - Nessun carico di lavoro installato, nulla da ripristinare. Eseguire 'ricerca del carico di lavoro DotNet' per trovare i carichi di lavoro da installare. + Nessun carico di lavoro installato, nulla da ripristinare. Eseguire 'ricerca del carico di lavoro DotNet' per trovare i carichi di lavoro da installare. @@ -1239,7 +1239,7 @@ Lo strumento '{1}' versione '{2}' è stato installato. La voce è stata aggiunta Specify the output directory (press Enter for default: '{0}', directory must not exist): - Specifica la directory di output ({0}): + Specificare la directory di output (premere INVIO per impostazione predefinita: '{0}', la directory non deve esistere): {0} is the default value @@ -1354,7 +1354,7 @@ Lo strumento '{1}' versione '{2}' è stato installato. La voce è stata aggiunta Available target frameworks: - Available target frameworks: + Framework di destinazione disponibili: @@ -1374,7 +1374,7 @@ Lo strumento '{1}' versione '{2}' è stato installato. La voce è stata aggiunta Example - Example + Esempio @@ -1392,7 +1392,7 @@ Lo strumento '{1}' versione '{2}' è stato installato. La voce è stata aggiunta Cannot use launch profile '{0}' because the launch settings file could not be located. Locations tried: {1} - Non è possibile usare il profilo di avvio "{0}" perché il file delle impostazioni di avvio non è stato trovato. Posizioni tentate: + Non è possibile usare il profilo di avvio "{0}" perché il file delle impostazioni di avvio non è stato trovato. Posizioni tentate: {1} @@ -1411,10 +1411,10 @@ Lo strumento '{1}' versione '{2}' è stato installato. La voce è stata aggiunta Ensure you have a runnable project type. A runnable project should target a runnable TFM (for instance, net{1}) and have OutputType 'Exe'. The current OutputType is '{2}'. - Non è possibile eseguire il progetto. -Assicurarsi che sia presente un tipo di progetto eseguibile e che '{0}' supporti tale progetto. -Un progetto eseguibile deve essere destinato a un TFM eseguibile, ad esempio net5.0, inoltre OutputType deve essere impostato su 'Exe'. -Il valore corrente di {1} è '{2}'. + Non è possibile procedere con il progetto '{0}'. +Assicurarsi che sia presente un tipo di progetto eseguibile. +Un progetto eseguibile deve essere destinato a un TFM eseguibile, ad esempio net{1}, inoltre OutputType deve essere impostato su 'Exe'. +L'OutputType corrente è '{2}'. {0} is project file path. {1} is dotnet framework version. {2} is the project output type.{Locked="OutputType"}{Locked="Exe"} @@ -1436,7 +1436,7 @@ Il progetto è destinato a più framework. Specificare il framework da eseguire Move up and down to reveal more frameworks - Move up and down to reveal more frameworks + Spostarsi verso l'alto o verso il basso per visualizzare altri framework @@ -1451,7 +1451,7 @@ Il progetto è destinato a più framework. Specificare il framework da eseguire Type to search - Type to search + Digita per cercare @@ -1461,7 +1461,7 @@ Il progetto è destinato a più framework. Specificare il framework da eseguire Select the target framework to run: - Select the target framework to run: + Selezionare il framework di destinazione da eseguire: diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf index 97b72f1baca5..d70dd82f9f15 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf @@ -226,7 +226,7 @@ Paths searched: '{1}', '{2}'. Build failed with exit code: {0}. - MSBuild でのプロジェクトプロパティの取得が正しく実行されませんでした。終了コード: {0}。 + Build failed with exit code: {0}. @@ -922,7 +922,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man No workloads are installed, nothing to repair. Run `dotnet workload search` to find workloads to install. - ワークロードがインストールされていないため、修復するものがありません。`dotnet ワークロード検索` を実行してインストールするワークロードを検索します。 + ワークロードがインストールされていないため、修復するものがありません。`dotnet ワークロード検索` を実行してインストールするワークロードを検索します。 @@ -1239,7 +1239,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Specify the output directory (press Enter for default: '{0}', directory must not exist): - 出力ディレクトリ ({0}) を指定します: + 出力ディレクトリを指定します (Enter キーを押すと既定値に設定されます: '{0}'、ディレクトリは存在してはなりません): {0} is the default value @@ -1354,7 +1354,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Available target frameworks: - Available target frameworks: + 使用可能なターゲット フレームワーク: @@ -1374,7 +1374,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Example - Example + @@ -1392,7 +1392,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Cannot use launch profile '{0}' because the launch settings file could not be located. Locations tried: {1} - 起動設定ファイルが見つからないため、起動プロファイル '{0}' を使用できません。試行された場所: + 起動設定ファイルが見つからないため、起動プロファイル '{0}' を使用できません。試行された場所: {1} @@ -1411,10 +1411,10 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Ensure you have a runnable project type. A runnable project should target a runnable TFM (for instance, net{1}) and have OutputType 'Exe'. The current OutputType is '{2}'. - プロジェクトを実行できません。 -プロジェクト タイプが実行可能であること、このプロジェクトが '{0}' でサポートされていることを確認してください。 -実行可能なプロジェクトは実行可能な TFM (たとえば、net5.0) を対象としている必要があり、OutputType 'Exe' が必要です。 -現在の {1} は '{2}' です。 + プロジェクト '{0}' を続行できません。 +実行可能なプロジェクト タイプがあることを確認します。 +実行可能なプロジェクトは実行可能な TFM (たとえば、net{1}) を対象としている必要があり、OutputType 'Exe' が必要です。 +現在の OutputType は '{2}' です。 {0} is project file path. {1} is dotnet framework version. {2} is the project output type.{Locked="OutputType"}{Locked="Exe"} @@ -1436,7 +1436,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Move up and down to reveal more frameworks - Move up and down to reveal more frameworks + 上下に移動して、さらに多くのフレームワークを表示 @@ -1451,7 +1451,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Type to search - Type to search + 入力して検索します @@ -1461,7 +1461,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Select the target framework to run: - Select the target framework to run: + 実行するターゲット フレームワークを選択してください: diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf index 6db3d54f6f5c..b24ae63c811e 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf @@ -226,7 +226,7 @@ Paths searched: '{1}', '{2}'. Build failed with exit code: {0}. - MSBuild를 사용하여 프로젝트 가져오기 속성이 종료 코드에서 제대로 실행되지 않았습니다. {0}. + Build failed with exit code: {0}. @@ -922,7 +922,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man No workloads are installed, nothing to repair. Run `dotnet workload search` to find workloads to install. - 워크로드가 설치되어 있지 않고 복구할 것도 없습니다. ‘dotnet 워크로드 검색’을 실행하여 설치할 워크로드를 찾으세요. + 워크로드가 설치되어 있지 않고 복구할 것도 없습니다. ‘dotnet 워크로드 검색’을 실행하여 설치할 워크로드를 찾으세요. @@ -1239,7 +1239,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Specify the output directory (press Enter for default: '{0}', directory must not exist): - 출력 디렉터리 지정({0}): + 출력 디렉터리를 지정합니다(Enter 키를 누르면 '{0}' 기본값 사용, 기존 디렉터리가 없어야 함). {0} is the default value @@ -1354,7 +1354,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Available target frameworks: - Available target frameworks: + 사용 가능한 대상 프레임워크: @@ -1374,7 +1374,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Example - Example + 예제 @@ -1392,7 +1392,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Cannot use launch profile '{0}' because the launch settings file could not be located. Locations tried: {1} - 시작 설정 파일을 찾을 수 없으므로 시작 프로필 '{0}'을(를) 사용할 수 없습니다. 시도한 위치: + 시작 설정 파일을 찾을 수 없으므로 시작 프로필 '{0}'을(를) 사용할 수 없습니다. 시도한 위치: {1} @@ -1411,10 +1411,10 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Ensure you have a runnable project type. A runnable project should target a runnable TFM (for instance, net{1}) and have OutputType 'Exe'. The current OutputType is '{2}'. - 프로젝트를 실행할 수 없습니다. -실행 가능한 프로젝트 형식이 있고 '{0}'에서 이 프로젝트를 지원하는지 확인하세요. -실행 가능한 프로젝트는 실행 가능한 TFM(예: net5.0)을 대상으로 하고 OutputType 'Exe'가 있어야 합니다. -현재 {1}은(는) '{2}'입니다. + 프로젝트 '{0}'을(를) 진행할 수 없습니다. +실행 가능한 프로젝트 형식이 있는지 확인하세요. +실행 가능한 프로젝트는 실행 가능한 TFM(예: net{1})을(를) 대상으로 하고 OutputType 'Exe'가 있어야 합니다. +현재 OutputType은(는) '{2}'입니다. {0} is project file path. {1} is dotnet framework version. {2} is the project output type.{Locked="OutputType"}{Locked="Exe"} @@ -1436,7 +1436,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Move up and down to reveal more frameworks - Move up and down to reveal more frameworks + 더 많은 프레임워크를 보려면 위아래로 이동하세요. @@ -1451,7 +1451,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Type to search - Type to search + 검색할 형식 @@ -1461,7 +1461,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Select the target framework to run: - Select the target framework to run: + 실행할 대상 프레임워크 선택: diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf index 15978c7d8337..f80dadf8df58 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf @@ -226,7 +226,7 @@ Przeszukane ścieżki: „{1}”, „{2}”. Build failed with exit code: {0}. - Pobieranie właściwości projektów za pomocą programu MSBuild nie zostało poprawnie wykonane z kodem zakończenia: {0}. + Build failed with exit code: {0}. @@ -922,7 +922,7 @@ Narzędzie „{1}” (wersja „{2}”) zostało pomyślnie zainstalowane. Wpis No workloads are installed, nothing to repair. Run `dotnet workload search` to find workloads to install. - Nie zainstalowano żadnych obciążeń i nie ma nic do naprawienia. Uruchom polecenie „dotnet workload search”, aby znaleźć obciążenia do zainstalowania. + Nie zainstalowano żadnych obciążeń i nie ma nic do naprawienia. Uruchom polecenie „dotnet workload search”, aby znaleźć obciążenia do zainstalowania. @@ -1239,7 +1239,7 @@ Narzędzie „{1}” (wersja „{2}”) zostało pomyślnie zainstalowane. Wpis Specify the output directory (press Enter for default: '{0}', directory must not exist): - Określ katalog wyjściowy ({0}): + Określ katalog wyjściowy (naciśnij Enter, aby użyć wartości domyślnej: „{0}”, katalog nie może istnieć): {0} is the default value @@ -1354,7 +1354,7 @@ Narzędzie „{1}” (wersja „{2}”) zostało pomyślnie zainstalowane. Wpis Available target frameworks: - Available target frameworks: + Dostępne docelowe struktury: @@ -1374,7 +1374,7 @@ Narzędzie „{1}” (wersja „{2}”) zostało pomyślnie zainstalowane. Wpis Example - Example + Przykład @@ -1411,10 +1411,10 @@ Narzędzie „{1}” (wersja „{2}”) zostało pomyślnie zainstalowane. Wpis Ensure you have a runnable project type. A runnable project should target a runnable TFM (for instance, net{1}) and have OutputType 'Exe'. The current OutputType is '{2}'. - Nie można uruchomić projektu. -Upewnij się, że używany typ projektu umożliwia uruchamianie oraz że element „{0}” obsługuje ten projekt. -Projekt z możliwością uruchamiania musi mieć moniker TFM z możliwością uruchomienia (np. net5.0) i typ OutputType „Exe”. -Bieżący element {1}: „{2}”. + Nie można kontynuować pracy z projektem „{0}”. +Upewnij się, że masz typ projektu, który można uruchomić. +Projekt, który można uruchomić, powinien być przeznaczony dla możliwego do uruchomienia monikera platformy docelowej (na przykład net{1}) i mieć typ OutputType „Exe”. +Bieżący typ OutputType to „{2}”. {0} is project file path. {1} is dotnet framework version. {2} is the project output type.{Locked="OutputType"}{Locked="Exe"} @@ -1436,7 +1436,7 @@ Projekt ma wiele platform docelowych. Określ platformę do uruchomienia przy u Move up and down to reveal more frameworks - Move up and down to reveal more frameworks + Przesuń w górę lub w dół, aby zobaczyć więcej struktur @@ -1451,7 +1451,7 @@ Projekt ma wiele platform docelowych. Określ platformę do uruchomienia przy u Type to search - Type to search + Wpisz, aby wyszukać @@ -1461,7 +1461,7 @@ Projekt ma wiele platform docelowych. Określ platformę do uruchomienia przy u Select the target framework to run: - Select the target framework to run: + Wybierz docelową strukturę do uruchomienia: diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf index 86b2f578497e..0374bd3f76b5 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf @@ -226,7 +226,7 @@ Caminhos pesquisados: "{1}", "{2}". Build failed with exit code: {0}. - As propriedades de obtenção de projetos com o MSBuild não foram executadas corretamente com o código de saída: {0}. + Build failed with exit code: {0}. @@ -922,7 +922,7 @@ A ferramenta '{1}' (versão '{2}') foi instalada com êxito. A entrada foi adici No workloads are installed, nothing to repair. Run `dotnet workload search` to find workloads to install. - Nenhuma carga de trabalho instalada, nada para reparar. Execute a 'pesquisa de carga de trabalho dotnet' para encontrar cargas de trabalho a serem instaladas. + Nenhuma carga de trabalho instalada, nada para reparar. Execute a 'pesquisa de carga de trabalho dotnet' para encontrar cargas de trabalho a serem instaladas. @@ -1239,7 +1239,7 @@ A ferramenta '{1}' (versão '{2}') foi instalada com êxito. A entrada foi adici Specify the output directory (press Enter for default: '{0}', directory must not exist): - Especificar o diretório de saída ({0}): + Especifique o diretório de saída (pressione Enter para o padrão: '{0}', o diretório não deve existir): {0} is the default value @@ -1354,7 +1354,7 @@ A ferramenta '{1}' (versão '{2}') foi instalada com êxito. A entrada foi adici Available target frameworks: - Available target frameworks: + Estruturas de destino disponíveis: @@ -1374,7 +1374,7 @@ A ferramenta '{1}' (versão '{2}') foi instalada com êxito. A entrada foi adici Example - Example + Exemplo @@ -1411,10 +1411,10 @@ A ferramenta '{1}' (versão '{2}') foi instalada com êxito. A entrada foi adici Ensure you have a runnable project type. A runnable project should target a runnable TFM (for instance, net{1}) and have OutputType 'Exe'. The current OutputType is '{2}'. - Não é possível executar o projeto. -Verifique se você tem um tipo de projeto executável e se '{0}' dá suporte a esse projeto. -Um projeto executável deve ter como destino um TFM executável (por exemplo, o net5.0) e ter o OutputType 'Exe'. -O {1} atual é '{2}'. + Não é possível continuar com o projeto "{0}". +Verifique se você tem um tipo de projeto executável. +Um projeto executável deve ter como destino um TFM executável (por exemplo, net{1}) e ter OutputType "Exe". +O OutputType atual é "{2}". {0} is project file path. {1} is dotnet framework version. {2} is the project output type.{Locked="OutputType"}{Locked="Exe"} @@ -1436,7 +1436,7 @@ Ele tem diversas estruturas como destino. Especifique que estrutura executar usa Move up and down to reveal more frameworks - Move up and down to reveal more frameworks + Mover para cima e para baixo para ver mais estruturas @@ -1451,7 +1451,7 @@ Ele tem diversas estruturas como destino. Especifique que estrutura executar usa Type to search - Type to search + Digite para pesquisar @@ -1461,7 +1461,7 @@ Ele tem diversas estruturas como destino. Especifique que estrutura executar usa Select the target framework to run: - Select the target framework to run: + Selecione a estrutura de destino para executar: diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf index 3837e6b57781..edbd1eec7aca 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf @@ -226,7 +226,7 @@ Paths searched: '{1}', '{2}'. Build failed with exit code: {0}. - Получение свойств проектов с помощью MSBuild сработало не так, как ожидалось, код завершения: {0}. + Build failed with exit code: {0}. @@ -922,7 +922,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man No workloads are installed, nothing to repair. Run `dotnet workload search` to find workloads to install. - Рабочие нагрузки не установлены, не нужно ничего восстанавливать. Запустите "Поиск рабочей нагрузки DotNet", чтобы найти рабочие нагрузки для установки. + Рабочие нагрузки не установлены, не нужно ничего восстанавливать. Запустите "Поиск рабочей нагрузки DotNet", чтобы найти рабочие нагрузки для установки. @@ -1239,7 +1239,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Specify the output directory (press Enter for default: '{0}', directory must not exist): - Укажите выходной каталог ({0}): + Укажите выходной каталог (нажмите клавишу ВВОД для значения по умолчанию: "{0}", каталог не должен существовать): {0} is the default value @@ -1354,7 +1354,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Available target frameworks: - Available target frameworks: + Доступные целевые платформы: @@ -1374,7 +1374,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Example - Example + Пример @@ -1411,10 +1411,10 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Ensure you have a runnable project type. A runnable project should target a runnable TFM (for instance, net{1}) and have OutputType 'Exe'. The current OutputType is '{2}'. - Не удалось запустить проект. -Убедитесь, что тип проекта поддерживает запуск и что "{0}" поддерживает этот проект. -Запускаемый проект должен быть предназначен для TFM с поддержкой запуска (например, net5.0) и иметь тип выходных данных "EXE". -Текущий {1} — "{2}". + Не удается продолжить работу с проектом "{0}". +Убедитесь, что тип проекта поддерживает запуск. +Чтобы поддерживать запуск, проект должен быть предназначен для TFM с поддержкой запуска (например, net{1}) и иметь тип выдаваемого результата (OutputType) "Exe". +Сейчас тип результата(OutputType) — "{2}". {0} is project file path. {1} is dotnet framework version. {2} is the project output type.{Locked="OutputType"}{Locked="Exe"} @@ -1436,7 +1436,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Move up and down to reveal more frameworks - Move up and down to reveal more frameworks + Прокрутите вверх и вниз, чтобы увидеть больше платформ @@ -1451,7 +1451,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Type to search - Type to search + Введите текст для поиска @@ -1461,7 +1461,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Select the target framework to run: - Select the target framework to run: + Выберите целевую платформу для запуска: diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf index 70b2c1973af4..e61c82e25672 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf @@ -226,7 +226,7 @@ Aranan yollar: '{1}', '{2}'. Build failed with exit code: {0}. - MSBuild ile proje özelliklerini al işlemi {0} çıkış koduyla çıkarak düzgün şekilde çalışmadı. + Build failed with exit code: {0}. @@ -922,7 +922,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man No workloads are installed, nothing to repair. Run `dotnet workload search` to find workloads to install. - İş yükü yüklenmediğinden onarılacak iş yükü yok. Yüklenecek iş yüklerini bulmak için `dotnet workload search` çalıştırın. + İş yükü yüklenmediğinden onarılacak iş yükü yok. Yüklenecek iş yüklerini bulmak için `dotnet workload search` çalıştırın. @@ -1239,7 +1239,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Specify the output directory (press Enter for default: '{0}', directory must not exist): - Çıkış dizinini belirtin ({0}): + Çıkış dizinini belirtin (varsayılan için Enter tuşuna basın: '{0}', dizin mevcut olmamalıdır): {0} is the default value @@ -1354,7 +1354,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Available target frameworks: - Available target frameworks: + Mevcut hedef çerçeveler: @@ -1374,7 +1374,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Example - Example + Örnek @@ -1411,10 +1411,10 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Ensure you have a runnable project type. A runnable project should target a runnable TFM (for instance, net{1}) and have OutputType 'Exe'. The current OutputType is '{2}'. - Projeniz çalıştırılamıyor. -Çalıştırılabilir bir proje türüne sahip olduğunuzdan ve bu projenin '{0}' tarafından desteklendiğinden emin olun. -Çalıştırılabilir proje, çalıştırılabilir bir TFM’yi (örneğin, net5.0) hedeflemeli ve OutputType değeri 'Exe' olmalıdır. -Geçerli {1}: '{2}'. + '{0}' projesine devam edilemiyor. +Çalıştırılabilir bir proje türüne sahip olduğunuzdan emin olun. +Çalıştırılabilir bir proje, çalıştırılabilir bir TFM'yi (örneğin, net{1}) hedeflemeli ve OutputType ‘Exe’ değerine sahip olmalıdır. +Geçerli OutputType '{2}'. {0} is project file path. {1} is dotnet framework version. {2} is the project output type.{Locked="OutputType"}{Locked="Exe"} @@ -1436,7 +1436,7 @@ Projeniz birden fazla Framework'ü hedefliyor. '{0}' kullanarak hangi Framework' Move up and down to reveal more frameworks - Move up and down to reveal more frameworks + Yukarı ve aşağı hareket ederek daha fazla çerçeve görüntüleyin @@ -1451,7 +1451,7 @@ Projeniz birden fazla Framework'ü hedefliyor. '{0}' kullanarak hangi Framework' Type to search - Type to search + Aramak için yazın @@ -1461,7 +1461,7 @@ Projeniz birden fazla Framework'ü hedefliyor. '{0}' kullanarak hangi Framework' Select the target framework to run: - Select the target framework to run: + Çalıştırmak için hedef çerçeveyi seçin: @@ -1871,9 +1871,9 @@ and the corresponding package Ids for installed tools using the command 'dotnet tool list'. '{0}' paket kimliğine sahip araç bulunamadı. -Araçlar, aracı çağırırken kullandığınız araç adından farklı olabilen -paket kimlikleri kullanılarak kaldırılır. Yüklü araçların araç adlarını ve -karşılık gelen paket kimliklerini bulmak için +Araçlar, aracı çağırırken kullandığınız araç adından farklı olabilen +paket kimlikleri kullanılarak kaldırılır. Yüklü araçların araç adlarını ve +karşılık gelen paket kimliklerini bulmak için 'dotnet tool list' komutunu kullanabilirsiniz. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf index 8729a011cdf2..5db8b5643ddb 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf @@ -226,7 +226,7 @@ Paths searched: '{1}', '{2}'. Build failed with exit code: {0}. - 使用 MSBuild 获取项目属性未正确执行,退出代码为: {0}。 + Build failed with exit code: {0}. @@ -922,7 +922,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man No workloads are installed, nothing to repair. Run `dotnet workload search` to find workloads to install. - 未安装工作负载,没有要修复的内容。请运行“dotnet workload search”,查找要安装的工作负载。 + 未安装工作负载,没有要修复的内容。请运行“dotnet 工作负载搜索”,查找要安装的工作负载。 @@ -1239,7 +1239,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Specify the output directory (press Enter for default: '{0}', directory must not exist): - 指定输出目录({0}): + 指定输出目录(按 Enter 使用默认值: ‘{0}’,目录不得存在): {0} is the default value @@ -1354,7 +1354,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Available target frameworks: - Available target frameworks: + 可用的目标框架: @@ -1374,7 +1374,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Example - Example + 示例 @@ -1411,10 +1411,10 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Ensure you have a runnable project type. A runnable project should target a runnable TFM (for instance, net{1}) and have OutputType 'Exe'. The current OutputType is '{2}'. - 无法运行项目。 -请确保你具有可运行的项目类型且“{0}”支持此项目。 -可运行的项目应面向可运行的 TFM (例如 net5.0)且其 OutputType 为 "Exe"。 -当前的 {1} 为“{2}”。 + 无法继续进行项目 ‘{0}’。 +确保具有可运行的项目类型。 +可运行的项目应面向可运行的 TFM (例如 net{1})且其 OutputType 为 ‘Exe’。 +当前 OutputType 为 ‘{2}’。 {0} is project file path. {1} is dotnet framework version. {2} is the project output type.{Locked="OutputType"}{Locked="Exe"} @@ -1436,7 +1436,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Move up and down to reveal more frameworks - Move up and down to reveal more frameworks + 上移或下移以显示更多框架 @@ -1451,7 +1451,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Type to search - Type to search + 键入以搜索 @@ -1461,7 +1461,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Select the target framework to run: - Select the target framework to run: + 选择要运行的目标框架: diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf index 51ab387f3631..8917211f210c 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf @@ -226,7 +226,7 @@ Paths searched: '{1}', '{2}'. Build failed with exit code: {0}. - 使用 MSBuild 取得專案屬性時未正確執行,結束代碼為: {0}。 + Build failed with exit code: {0}. @@ -448,7 +448,7 @@ See https://aka.ms/dotnet-test/mtp for more information. The following exception occurred when running the test module with RunCommand '{0}' and RunArguments '{1}': {2} - 使用 RunCommand '{0}' 和 RunArguments '{1}' 執行測試模組時,發生以下例外狀況: + 使用 RunCommand '{0}' 和 RunArguments '{1}' 執行測試模組時,發生以下例外狀況: {2} {Locked="RunCommand"}{Locked="RunArguments"} @@ -922,7 +922,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man No workloads are installed, nothing to repair. Run `dotnet workload search` to find workloads to install. - 未安裝任何工作負載,沒有要修復的項目。請執行 `dotnet workload search` 以尋找要安裝的工作負載。 + 未安裝任何工作負載,沒有要修復的項目。請執行 `dotnet workload search` 以尋找要安裝的工作負載。 @@ -1239,7 +1239,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Specify the output directory (press Enter for default: '{0}', directory must not exist): - 指定輸出目錄 ({0}): + 請指定輸出目錄 (按 Enter 鍵以使用預設值: '{0}',目錄必須不存在): {0} is the default value @@ -1354,7 +1354,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Available target frameworks: - Available target frameworks: + 可用的目標架構: @@ -1374,7 +1374,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Example - Example + 範例 @@ -1392,7 +1392,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Cannot use launch profile '{0}' because the launch settings file could not be located. Locations tried: {1} - 無法使用啟動設定檔 '{0}',因為找不到啟動設定檔檔案。嘗試的位置: + 無法使用啟動設定檔 '{0}',因為找不到啟動設定檔檔案。嘗試的位置: {1} @@ -1411,10 +1411,10 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Ensure you have a runnable project type. A runnable project should target a runnable TFM (for instance, net{1}) and have OutputType 'Exe'. The current OutputType is '{2}'. - 無法執行您的專案。 -請確定您有可執行的專案類型,並確定 '{0}' 支援此專案。 -可執行的專案應以可執行的 TFM (例如 net5.0) 為目標,且 OutputType 應為 'Exe'。 -目前的 {1} 為 '{2}'。 + 無法繼續處理專案 '{0}'。 +請確定您有可執行的專案類型。 +可執行的專案應以可執行的 TFM (例如 net{1}) 為目標,且 OutputType 應為 'Exe'。 +目前的 OutputType 為 '{2}'。 {0} is project file path. {1} is dotnet framework version. {2} is the project output type.{Locked="OutputType"}{Locked="Exe"} @@ -1436,7 +1436,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Move up and down to reveal more frameworks - Move up and down to reveal more frameworks + 上下移動以顯示更多的架構 @@ -1451,7 +1451,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Type to search - Type to search + 要搜尋的類型 @@ -1461,7 +1461,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Select the target framework to run: - Select the target framework to run: + 選取要執行的目標架構: From 1e5431eda7d2cd53f9542716539f5d83c11b5041 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 13 Feb 2026 03:40:49 +0000 Subject: [PATCH 054/179] Update dependencies from build 301638 On relative base path root dotnet-dev-certs,dotnet-user-jwts,dotnet-user-secrets,Microsoft.AspNetCore.Analyzers,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.Components.SdkAnalyzers,Microsoft.AspNetCore.DeveloperCertificates.XPlat,Microsoft.AspNetCore.Mvc.Analyzers,Microsoft.AspNetCore.Mvc.Api.Analyzers,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates,Microsoft.NET.HostModel,Microsoft.NET.Sdk.WindowsDesktop,Microsoft.NETCore.Platforms,Microsoft.WindowsDesktop.App.Internal From Version 10.0.4-servicing.26112.101 -> To Version 10.0.4-servicing.26112.109 (parent: ) Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.Authentication.Facebook,Microsoft.AspNetCore.Authentication.Google,Microsoft.AspNetCore.Authentication.MicrosoftAccount,Microsoft.AspNetCore.Authorization,Microsoft.AspNetCore.Components,Microsoft.AspNetCore.Components.Analyzers,Microsoft.AspNetCore.Components.Forms,Microsoft.AspNetCore.Components.Web,Microsoft.AspNetCore.Components.WebAssembly,Microsoft.AspNetCore.Components.WebAssembly.Server,Microsoft.AspNetCore.Components.WebView,Microsoft.AspNetCore.Metadata,Microsoft.AspNetCore.TestHost,Microsoft.Bcl.AsyncInterfaces,Microsoft.DotNet.Web.ItemTemplates.10.0,Microsoft.DotNet.Web.ProjectTemplates.10.0,Microsoft.Extensions.Configuration.Ini,Microsoft.Extensions.DependencyModel,Microsoft.Extensions.FileProviders.Abstractions,Microsoft.Extensions.FileProviders.Embedded,Microsoft.Extensions.FileSystemGlobbing,Microsoft.Extensions.Logging,Microsoft.Extensions.Logging.Abstractions,Microsoft.Extensions.Logging.Console,Microsoft.Extensions.ObjectPool,Microsoft.JSInterop,Microsoft.NET.ILLink.Tasks,Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64,Microsoft.NETCore.App.Ref,Microsoft.Win32.SystemEvents,Microsoft.WindowsDesktop.App.Ref,System.CodeDom,System.ComponentModel.Composition,System.Composition.AttributedModel,System.Composition.Convention,System.Composition.Hosting,System.Composition.Runtime,System.Composition.TypedParts,System.Configuration.ConfigurationManager,System.Diagnostics.DiagnosticSource,System.Formats.Asn1,System.IO.Hashing,System.Reflection.MetadataLoadContext,System.Resources.Extensions,System.Security.Cryptography.Pkcs,System.Security.Cryptography.ProtectedData,System.Security.Cryptography.Xml,System.Security.Permissions,System.ServiceProcess.ServiceController,System.Text.Encoding.CodePages,System.Text.Json,System.Windows.Extensions From Version 10.0.4 -> To Version 10.0.4 (parent: ) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal,Microsoft.CodeAnalysis.Razor.Tooling.Internal,Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 10.0.0-preview.26112.101 -> To Version 10.0.0-preview.26112.109 (parent: ) Microsoft.Build From Version 18.0.11 -> To Version 18.0.11 (parent: ) Microsoft.Build.Localization From Version 18.0.11-servicing-26112-101 -> To Version 18.0.11-servicing-26112-109 (parent: ) Microsoft.Build.NuGetSdkResolver,NuGet.Build.Tasks,NuGet.Build.Tasks.Console,NuGet.Build.Tasks.Pack,NuGet.CommandLine.XPlat,NuGet.Commands,NuGet.Common,NuGet.Configuration,NuGet.Credentials,NuGet.DependencyResolver.Core,NuGet.Frameworks,NuGet.LibraryModel,NuGet.Localization,NuGet.Packaging,NuGet.ProjectModel,NuGet.Protocol,NuGet.Versioning From Version 7.0.2-rc.11301 -> To Version 7.0.2-rc.11309 (parent: ) Microsoft.Build.Tasks.Git,Microsoft.SourceLink.AzureRepos.Git,Microsoft.SourceLink.Bitbucket.Git,Microsoft.SourceLink.Common,Microsoft.SourceLink.GitHub,Microsoft.SourceLink.GitLab,Microsoft.TemplateEngine.Abstractions,Microsoft.TemplateEngine.Authoring.TemplateVerifier,Microsoft.TemplateEngine.Edge,Microsoft.TemplateEngine.Orchestrator.RunnableProjects,Microsoft.TemplateEngine.Utils,Microsoft.TemplateSearch.Common From Version 10.0.104 -> To Version 10.0.104 (parent: ) Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.BuildClient,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.CSharp.CodeStyle,Microsoft.CodeAnalysis.CSharp.Features,Microsoft.CodeAnalysis.CSharp.Workspaces,Microsoft.CodeAnalysis.PublicApiAnalyzers,Microsoft.CodeAnalysis.Workspaces.Common,Microsoft.CodeAnalysis.Workspaces.MSBuild,Microsoft.Net.Compilers.Toolset,Microsoft.Net.Compilers.Toolset.Framework From Version 5.0.0-2.26112.101 -> To Version 5.0.0-2.26112.109 (parent: ) Microsoft.Deployment.DotNet.Releases From Version 2.0.0-preview.1.26112.101 -> To Version 2.0.0-preview.1.26112.109 (parent: ) Microsoft.DiaSymReader From Version 2.2.4 -> To Version 2.2.4 (parent: ) Microsoft.DotNet.Arcade.Sdk,Microsoft.DotNet.Build.Tasks.Installers,Microsoft.DotNet.Build.Tasks.Templating,Microsoft.DotNet.Build.Tasks.Workloads,Microsoft.DotNet.Helix.Sdk,Microsoft.DotNet.SignTool,Microsoft.DotNet.XliffTasks,Microsoft.DotNet.XUnitExtensions From Version 10.0.0-beta.26112.101 -> To Version 10.0.0-beta.26112.109 (parent: ) Microsoft.FSharp.Compiler From Version 14.0.104-servicing.26112.101 -> To Version 14.0.104-servicing.26112.109 (parent: ) Microsoft.NET.Test.Sdk,Microsoft.TestPlatform.Build,Microsoft.TestPlatform.CLI From Version 18.0.1-release-26112-101 -> To Version 18.0.1-release-26112-109 (parent: ) Microsoft.TemplateEngine.Mocks,Microsoft.TemplateEngine.TestHelper,Microsoft.TemplateSearch.TemplateDiscovery From Version 10.0.104-servicing.26112.101 -> To Version 10.0.104-servicing.26112.109 (parent: ) Microsoft.Web.Xdt From Version 3.2.4 -> To Version 3.2.4 (parent: ) System.CommandLine From Version 2.0.4 -> To Version 2.0.4 (parent: ) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 6 +- 4 files changed, 263 insertions(+), 263 deletions(-) diff --git a/NuGet.config b/NuGet.config index db5163e8d1a7..17976bc43c20 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 16956cda1b90..618657f640b5 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26112.101 - 10.0.4-servicing.26112.101 - 10.0.4-servicing.26112.101 - 10.0.4-servicing.26112.101 + 10.0.4-servicing.26112.109 + 10.0.4-servicing.26112.109 + 10.0.4-servicing.26112.109 + 10.0.4-servicing.26112.109 10.0.4 - 10.0.4-servicing.26112.101 + 10.0.4-servicing.26112.109 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26112.101 + 10.0.4-servicing.26112.109 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26112.101 + 10.0.4-servicing.26112.109 10.0.4 - 10.0.4-servicing.26112.101 - 10.0.4-servicing.26112.101 - 10.0.0-preview.26112.101 + 10.0.4-servicing.26112.109 + 10.0.4-servicing.26112.109 + 10.0.0-preview.26112.109 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26112-101 - 7.0.2-rc.11301 + 18.0.11-servicing-26112-109 + 7.0.2-rc.11309 10.0.104 - 5.0.0-2.26112.101 - 5.0.0-2.26112.101 - 5.0.0-2.26112.101 - 5.0.0-2.26112.101 - 5.0.0-2.26112.101 - 5.0.0-2.26112.101 - 5.0.0-2.26112.101 - 10.0.0-preview.26112.101 - 5.0.0-2.26112.101 - 5.0.0-2.26112.101 - 2.0.0-preview.1.26112.101 + 5.0.0-2.26112.109 + 5.0.0-2.26112.109 + 5.0.0-2.26112.109 + 5.0.0-2.26112.109 + 5.0.0-2.26112.109 + 5.0.0-2.26112.109 + 5.0.0-2.26112.109 + 10.0.0-preview.26112.109 + 5.0.0-2.26112.109 + 5.0.0-2.26112.109 + 2.0.0-preview.1.26112.109 2.2.4 - 10.0.0-beta.26112.101 - 10.0.0-beta.26112.101 - 10.0.0-beta.26112.101 - 10.0.0-beta.26112.101 - 10.0.0-beta.26112.101 - 10.0.0-beta.26112.101 + 10.0.0-beta.26112.109 + 10.0.0-beta.26112.109 + 10.0.0-beta.26112.109 + 10.0.0-beta.26112.109 + 10.0.0-beta.26112.109 + 10.0.0-beta.26112.109 10.0.4 10.0.4 - 10.0.4-servicing.26112.101 - 10.0.4-servicing.26112.101 - 10.0.0-beta.26112.101 - 10.0.0-beta.26112.101 + 10.0.4-servicing.26112.109 + 10.0.4-servicing.26112.109 + 10.0.0-beta.26112.109 + 10.0.0-beta.26112.109 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26112.101 + 14.0.104-servicing.26112.109 10.0.4 - 5.0.0-2.26112.101 - 5.0.0-2.26112.101 - 10.0.4-servicing.26112.101 + 5.0.0-2.26112.109 + 5.0.0-2.26112.109 + 10.0.4-servicing.26112.109 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26112.101 - 10.0.4-servicing.26112.101 - 18.0.1-release-26112-101 + 10.0.0-preview.26112.109 + 10.0.4-servicing.26112.109 + 18.0.1-release-26112-109 10.0.4 - 10.0.4-servicing.26112.101 + 10.0.4-servicing.26112.109 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26112.101 + 10.0.104-servicing.26112.109 10.0.104 - 10.0.104-servicing.26112.101 + 10.0.104-servicing.26112.109 10.0.104 10.0.104 - 10.0.104-servicing.26112.101 - 18.0.1-release-26112-101 - 18.0.1-release-26112-101 + 10.0.104-servicing.26112.109 + 18.0.1-release-26112-109 + 18.0.1-release-26112-109 3.2.4 10.0.4 - 10.0.4-servicing.26112.101 + 10.0.4-servicing.26112.109 10.0.4 - 7.0.2-rc.11301 - 7.0.2-rc.11301 - 7.0.2-rc.11301 - 7.0.2-rc.11301 - 7.0.2-rc.11301 - 7.0.2-rc.11301 - 7.0.2-rc.11301 - 7.0.2-rc.11301 - 7.0.2-rc.11301 - 7.0.2-rc.11301 - 7.0.2-rc.11301 - 7.0.2-rc.11301 - 7.0.2-rc.11301 - 7.0.2-rc.11301 - 7.0.2-rc.11301 - 7.0.2-rc.11301 + 7.0.2-rc.11309 + 7.0.2-rc.11309 + 7.0.2-rc.11309 + 7.0.2-rc.11309 + 7.0.2-rc.11309 + 7.0.2-rc.11309 + 7.0.2-rc.11309 + 7.0.2-rc.11309 + 7.0.2-rc.11309 + 7.0.2-rc.11309 + 7.0.2-rc.11309 + 7.0.2-rc.11309 + 7.0.2-rc.11309 + 7.0.2-rc.11309 + 7.0.2-rc.11309 + 7.0.2-rc.11309 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d699d5ecaf18..5552ed39773f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - fed627baa5ecd147271ada875bbd183f0d2a01d7 + 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 diff --git a/global.json b/global.json index ee2184a5a0d7..4f1027e111d0 100644 --- a/global.json +++ b/global.json @@ -7,7 +7,7 @@ "errorMessage": "The .NET SDK is not installed or is not configured correctly. Please run ./build to install the correct SDK version locally." }, "tools": { - "dotnet": "10.0.102", + "dotnet": "10.0.103", "runtimes": { "dotnet": [ "$(MicrosoftNETCorePlatformsPackageVersion)" @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26112.101", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26112.101", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26112.109", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26112.109", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From bdf55bf6dfc937f6884e53f2f2a979d4065c5825 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 13 Feb 2026 17:34:54 +0000 Subject: [PATCH 055/179] Update dependencies from build 301759 On relative base path root dotnet-dev-certs,dotnet-user-jwts,dotnet-user-secrets,Microsoft.AspNetCore.Analyzers,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.Components.SdkAnalyzers,Microsoft.AspNetCore.DeveloperCertificates.XPlat,Microsoft.AspNetCore.Mvc.Analyzers,Microsoft.AspNetCore.Mvc.Api.Analyzers,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates,Microsoft.NET.HostModel,Microsoft.NET.Sdk.WindowsDesktop,Microsoft.NETCore.Platforms,Microsoft.WindowsDesktop.App.Internal From Version 10.0.4-servicing.26112.109 -> To Version 10.0.4-servicing.26113.103 (parent: ) Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.Authentication.Facebook,Microsoft.AspNetCore.Authentication.Google,Microsoft.AspNetCore.Authentication.MicrosoftAccount,Microsoft.AspNetCore.Authorization,Microsoft.AspNetCore.Components,Microsoft.AspNetCore.Components.Analyzers,Microsoft.AspNetCore.Components.Forms,Microsoft.AspNetCore.Components.Web,Microsoft.AspNetCore.Components.WebAssembly,Microsoft.AspNetCore.Components.WebAssembly.Server,Microsoft.AspNetCore.Components.WebView,Microsoft.AspNetCore.Metadata,Microsoft.AspNetCore.TestHost,Microsoft.Bcl.AsyncInterfaces,Microsoft.DotNet.Web.ItemTemplates.10.0,Microsoft.DotNet.Web.ProjectTemplates.10.0,Microsoft.Extensions.Configuration.Ini,Microsoft.Extensions.DependencyModel,Microsoft.Extensions.FileProviders.Abstractions,Microsoft.Extensions.FileProviders.Embedded,Microsoft.Extensions.FileSystemGlobbing,Microsoft.Extensions.Logging,Microsoft.Extensions.Logging.Abstractions,Microsoft.Extensions.Logging.Console,Microsoft.Extensions.ObjectPool,Microsoft.JSInterop,Microsoft.NET.ILLink.Tasks,Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64,Microsoft.NETCore.App.Ref,Microsoft.Win32.SystemEvents,Microsoft.WindowsDesktop.App.Ref,System.CodeDom,System.ComponentModel.Composition,System.Composition.AttributedModel,System.Composition.Convention,System.Composition.Hosting,System.Composition.Runtime,System.Composition.TypedParts,System.Configuration.ConfigurationManager,System.Diagnostics.DiagnosticSource,System.Formats.Asn1,System.IO.Hashing,System.Reflection.MetadataLoadContext,System.Resources.Extensions,System.Security.Cryptography.Pkcs,System.Security.Cryptography.ProtectedData,System.Security.Cryptography.Xml,System.Security.Permissions,System.ServiceProcess.ServiceController,System.Text.Encoding.CodePages,System.Text.Json,System.Windows.Extensions From Version 10.0.4 -> To Version 10.0.4 (parent: ) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal,Microsoft.CodeAnalysis.Razor.Tooling.Internal,Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 10.0.0-preview.26112.109 -> To Version 10.0.0-preview.26113.103 (parent: ) Microsoft.Build From Version 18.0.11 -> To Version 18.0.11 (parent: ) Microsoft.Build.Localization From Version 18.0.11-servicing-26112-109 -> To Version 18.0.11-servicing-26113-103 (parent: ) Microsoft.Build.NuGetSdkResolver,NuGet.Build.Tasks,NuGet.Build.Tasks.Console,NuGet.Build.Tasks.Pack,NuGet.CommandLine.XPlat,NuGet.Commands,NuGet.Common,NuGet.Configuration,NuGet.Credentials,NuGet.DependencyResolver.Core,NuGet.Frameworks,NuGet.LibraryModel,NuGet.Localization,NuGet.Packaging,NuGet.ProjectModel,NuGet.Protocol,NuGet.Versioning From Version 7.0.2-rc.11309 -> To Version 7.0.2-rc.11403 (parent: ) Microsoft.Build.Tasks.Git,Microsoft.SourceLink.AzureRepos.Git,Microsoft.SourceLink.Bitbucket.Git,Microsoft.SourceLink.Common,Microsoft.SourceLink.GitHub,Microsoft.SourceLink.GitLab,Microsoft.TemplateEngine.Abstractions,Microsoft.TemplateEngine.Authoring.TemplateVerifier,Microsoft.TemplateEngine.Edge,Microsoft.TemplateEngine.Orchestrator.RunnableProjects,Microsoft.TemplateEngine.Utils,Microsoft.TemplateSearch.Common From Version 10.0.104 -> To Version 10.0.104 (parent: ) Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.BuildClient,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.CSharp.CodeStyle,Microsoft.CodeAnalysis.CSharp.Features,Microsoft.CodeAnalysis.CSharp.Workspaces,Microsoft.CodeAnalysis.PublicApiAnalyzers,Microsoft.CodeAnalysis.Workspaces.Common,Microsoft.CodeAnalysis.Workspaces.MSBuild,Microsoft.Net.Compilers.Toolset,Microsoft.Net.Compilers.Toolset.Framework From Version 5.0.0-2.26112.109 -> To Version 5.0.0-2.26113.103 (parent: ) Microsoft.Deployment.DotNet.Releases From Version 2.0.0-preview.1.26112.109 -> To Version 2.0.0-preview.1.26113.103 (parent: ) Microsoft.DiaSymReader From Version 2.2.4 -> To Version 2.2.4 (parent: ) Microsoft.DotNet.Arcade.Sdk,Microsoft.DotNet.Build.Tasks.Installers,Microsoft.DotNet.Build.Tasks.Templating,Microsoft.DotNet.Build.Tasks.Workloads,Microsoft.DotNet.Helix.Sdk,Microsoft.DotNet.SignTool,Microsoft.DotNet.XliffTasks,Microsoft.DotNet.XUnitExtensions From Version 10.0.0-beta.26112.109 -> To Version 10.0.0-beta.26113.103 (parent: ) Microsoft.FSharp.Compiler From Version 14.0.104-servicing.26112.109 -> To Version 14.0.104-servicing.26113.103 (parent: ) Microsoft.NET.Test.Sdk,Microsoft.TestPlatform.Build,Microsoft.TestPlatform.CLI From Version 18.0.1-release-26112-109 -> To Version 18.0.1-release-26113-103 (parent: ) Microsoft.TemplateEngine.Mocks,Microsoft.TemplateEngine.TestHelper,Microsoft.TemplateSearch.TemplateDiscovery From Version 10.0.104-servicing.26112.109 -> To Version 10.0.104-servicing.26113.103 (parent: ) Microsoft.Web.Xdt From Version 3.2.4 -> To Version 3.2.4 (parent: ) System.CommandLine From Version 2.0.4 -> To Version 2.0.4 (parent: ) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index 17976bc43c20..dd7c60e3f1c6 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 05020e1a3fe6..08a64b3b88e0 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26112.109 - 10.0.4-servicing.26112.109 - 10.0.4-servicing.26112.109 - 10.0.4-servicing.26112.109 + 10.0.4-servicing.26113.103 + 10.0.4-servicing.26113.103 + 10.0.4-servicing.26113.103 + 10.0.4-servicing.26113.103 10.0.4 - 10.0.4-servicing.26112.109 + 10.0.4-servicing.26113.103 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26112.109 + 10.0.4-servicing.26113.103 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26112.109 + 10.0.4-servicing.26113.103 10.0.4 - 10.0.4-servicing.26112.109 - 10.0.4-servicing.26112.109 - 10.0.0-preview.26112.109 + 10.0.4-servicing.26113.103 + 10.0.4-servicing.26113.103 + 10.0.0-preview.26113.103 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26112-109 - 7.0.2-rc.11309 + 18.0.11-servicing-26113-103 + 7.0.2-rc.11403 10.0.104 - 5.0.0-2.26112.109 - 5.0.0-2.26112.109 - 5.0.0-2.26112.109 - 5.0.0-2.26112.109 - 5.0.0-2.26112.109 - 5.0.0-2.26112.109 - 5.0.0-2.26112.109 - 10.0.0-preview.26112.109 - 5.0.0-2.26112.109 - 5.0.0-2.26112.109 - 2.0.0-preview.1.26112.109 + 5.0.0-2.26113.103 + 5.0.0-2.26113.103 + 5.0.0-2.26113.103 + 5.0.0-2.26113.103 + 5.0.0-2.26113.103 + 5.0.0-2.26113.103 + 5.0.0-2.26113.103 + 10.0.0-preview.26113.103 + 5.0.0-2.26113.103 + 5.0.0-2.26113.103 + 2.0.0-preview.1.26113.103 2.2.4 - 10.0.0-beta.26112.109 - 10.0.0-beta.26112.109 - 10.0.0-beta.26112.109 - 10.0.0-beta.26112.109 - 10.0.0-beta.26112.109 - 10.0.0-beta.26112.109 + 10.0.0-beta.26113.103 + 10.0.0-beta.26113.103 + 10.0.0-beta.26113.103 + 10.0.0-beta.26113.103 + 10.0.0-beta.26113.103 + 10.0.0-beta.26113.103 10.0.4 10.0.4 - 10.0.4-servicing.26112.109 - 10.0.4-servicing.26112.109 - 10.0.0-beta.26112.109 - 10.0.0-beta.26112.109 + 10.0.4-servicing.26113.103 + 10.0.4-servicing.26113.103 + 10.0.0-beta.26113.103 + 10.0.0-beta.26113.103 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26112.109 + 14.0.104-servicing.26113.103 10.0.4 - 5.0.0-2.26112.109 - 5.0.0-2.26112.109 - 10.0.4-servicing.26112.109 + 5.0.0-2.26113.103 + 5.0.0-2.26113.103 + 10.0.4-servicing.26113.103 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26112.109 - 10.0.4-servicing.26112.109 - 18.0.1-release-26112-109 + 10.0.0-preview.26113.103 + 10.0.4-servicing.26113.103 + 18.0.1-release-26113-103 10.0.4 - 10.0.4-servicing.26112.109 + 10.0.4-servicing.26113.103 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26112.109 + 10.0.104-servicing.26113.103 10.0.104 - 10.0.104-servicing.26112.109 + 10.0.104-servicing.26113.103 10.0.104 10.0.104 - 10.0.104-servicing.26112.109 - 18.0.1-release-26112-109 - 18.0.1-release-26112-109 + 10.0.104-servicing.26113.103 + 18.0.1-release-26113-103 + 18.0.1-release-26113-103 3.2.4 10.0.4 - 10.0.4-servicing.26112.109 + 10.0.4-servicing.26113.103 10.0.4 - 7.0.2-rc.11309 - 7.0.2-rc.11309 - 7.0.2-rc.11309 - 7.0.2-rc.11309 - 7.0.2-rc.11309 - 7.0.2-rc.11309 - 7.0.2-rc.11309 - 7.0.2-rc.11309 - 7.0.2-rc.11309 - 7.0.2-rc.11309 - 7.0.2-rc.11309 - 7.0.2-rc.11309 - 7.0.2-rc.11309 - 7.0.2-rc.11309 - 7.0.2-rc.11309 - 7.0.2-rc.11309 + 7.0.2-rc.11403 + 7.0.2-rc.11403 + 7.0.2-rc.11403 + 7.0.2-rc.11403 + 7.0.2-rc.11403 + 7.0.2-rc.11403 + 7.0.2-rc.11403 + 7.0.2-rc.11403 + 7.0.2-rc.11403 + 7.0.2-rc.11403 + 7.0.2-rc.11403 + 7.0.2-rc.11403 + 7.0.2-rc.11403 + 7.0.2-rc.11403 + 7.0.2-rc.11403 + 7.0.2-rc.11403 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index abd12c91ecf6..10e7c089714f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 - + https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 + f3552817bc7e3f170237f43254ee2b70da88e7f6 diff --git a/global.json b/global.json index 4f1027e111d0..75dad3c492b8 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26112.109", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26112.109", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26113.103", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26113.103", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 285eea968519a97cda73e8f8d1a818f171bcdd8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Matou=C5=A1ek?= Date: Fri, 13 Feb 2026 10:01:03 -0800 Subject: [PATCH 056/179] Cleans up test package references and global usings (#53019) --- .../ArgumentsReflector.csproj | 13 ------------- test/Directory.Build.props | 17 ----------------- test/Directory.Build.targets | 11 +++++++++++ test/HelixTasks/HelixTasks.csproj | 13 ------------- .../AssertEx.cs | 1 + .../AwaitableProcess.cs | 2 ++ .../DebugTestOutputLogger.cs | 1 + .../TestAssetExtensions.cs | 2 ++ .../TestLogger.cs | 1 + .../ToolPackageDownloaderMock.cs | 1 + .../Microsoft.NET.TestFramework.csproj | 12 +++++++++++- test/SDDLTests/Program.cs | 17 +++++++++++++---- test/SDDLTests/SDDLTests.csproj | 15 --------------- .../TelemetryStdOutLogger.csproj | 13 ------------- .../dotnet-watch-test-browser.csproj | 3 --- 15 files changed, 43 insertions(+), 79 deletions(-) diff --git a/test/ArgumentsReflector/ArgumentsReflector.csproj b/test/ArgumentsReflector/ArgumentsReflector.csproj index fd37e0c4667b..d34fdf938aa6 100644 --- a/test/ArgumentsReflector/ArgumentsReflector.csproj +++ b/test/ArgumentsReflector/ArgumentsReflector.csproj @@ -5,17 +5,4 @@ Exe - - - - - - - - - - - - - diff --git a/test/Directory.Build.props b/test/Directory.Build.props index d6f7e65e3f82..cff60a43a07d 100644 --- a/test/Directory.Build.props +++ b/test/Directory.Build.props @@ -24,21 +24,4 @@ false - - - - - - - - - - - - - - - - - diff --git a/test/Directory.Build.targets b/test/Directory.Build.targets index 7574c07a19fc..82215afcdf96 100644 --- a/test/Directory.Build.targets +++ b/test/Directory.Build.targets @@ -20,6 +20,17 @@ true + + + + + + + + + + + diff --git a/test/HelixTasks/HelixTasks.csproj b/test/HelixTasks/HelixTasks.csproj index 7855dce38682..d4f12fdf83a8 100644 --- a/test/HelixTasks/HelixTasks.csproj +++ b/test/HelixTasks/HelixTasks.csproj @@ -20,17 +20,4 @@ - - - - - - - - - - - - - diff --git a/test/Microsoft.DotNet.HotReload.Test.Utilities/AssertEx.cs b/test/Microsoft.DotNet.HotReload.Test.Utilities/AssertEx.cs index c80299e56b73..66f6ba0db901 100644 --- a/test/Microsoft.DotNet.HotReload.Test.Utilities/AssertEx.cs +++ b/test/Microsoft.DotNet.HotReload.Test.Utilities/AssertEx.cs @@ -7,6 +7,7 @@ using System.Collections; using System.Diagnostics; using System.Text.RegularExpressions; +using Xunit; using Xunit.Sdk; namespace Microsoft.DotNet.Watch.UnitTests diff --git a/test/Microsoft.DotNet.HotReload.Test.Utilities/AwaitableProcess.cs b/test/Microsoft.DotNet.HotReload.Test.Utilities/AwaitableProcess.cs index d15b7ba6284c..4ecca0d7bef7 100644 --- a/test/Microsoft.DotNet.HotReload.Test.Utilities/AwaitableProcess.cs +++ b/test/Microsoft.DotNet.HotReload.Test.Utilities/AwaitableProcess.cs @@ -5,6 +5,8 @@ using System.Diagnostics; using System.Threading.Tasks.Dataflow; +using Microsoft.NET.TestFramework.Utilities; +using Xunit.Abstractions; namespace Microsoft.DotNet.Watch.UnitTests { diff --git a/test/Microsoft.DotNet.HotReload.Test.Utilities/DebugTestOutputLogger.cs b/test/Microsoft.DotNet.HotReload.Test.Utilities/DebugTestOutputLogger.cs index 25a9f3cc18b3..a6f51843881f 100644 --- a/test/Microsoft.DotNet.HotReload.Test.Utilities/DebugTestOutputLogger.cs +++ b/test/Microsoft.DotNet.HotReload.Test.Utilities/DebugTestOutputLogger.cs @@ -3,6 +3,7 @@ using System.Diagnostics; using System.Runtime.CompilerServices; +using Xunit.Abstractions; namespace Microsoft.DotNet.Watch.UnitTests; diff --git a/test/Microsoft.DotNet.HotReload.Test.Utilities/TestAssetExtensions.cs b/test/Microsoft.DotNet.HotReload.Test.Utilities/TestAssetExtensions.cs index bba89f12618b..17862d3f46c6 100644 --- a/test/Microsoft.DotNet.HotReload.Test.Utilities/TestAssetExtensions.cs +++ b/test/Microsoft.DotNet.HotReload.Test.Utilities/TestAssetExtensions.cs @@ -1,6 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using Microsoft.NET.TestFramework; + namespace Microsoft.DotNet.Watch.UnitTests; internal static class TestAssetExtensions diff --git a/test/Microsoft.DotNet.HotReload.Test.Utilities/TestLogger.cs b/test/Microsoft.DotNet.HotReload.Test.Utilities/TestLogger.cs index 377919334a22..e388919a4672 100644 --- a/test/Microsoft.DotNet.HotReload.Test.Utilities/TestLogger.cs +++ b/test/Microsoft.DotNet.HotReload.Test.Utilities/TestLogger.cs @@ -3,6 +3,7 @@ using System.Collections.Immutable; using Microsoft.Extensions.Logging; +using Xunit.Abstractions; namespace Microsoft.DotNet.Watch.UnitTests; diff --git a/test/Microsoft.DotNet.Tools.Tests.ComponentMocks/ToolPackageDownloaderMock.cs b/test/Microsoft.DotNet.Tools.Tests.ComponentMocks/ToolPackageDownloaderMock.cs index 71e567182d1f..063ccb4beec1 100644 --- a/test/Microsoft.DotNet.Tools.Tests.ComponentMocks/ToolPackageDownloaderMock.cs +++ b/test/Microsoft.DotNet.Tools.Tests.ComponentMocks/ToolPackageDownloaderMock.cs @@ -10,6 +10,7 @@ using Microsoft.DotNet.Cli.Utils; using Microsoft.DotNet.InternalAbstractions; using Microsoft.Extensions.EnvironmentAbstractions; +using Microsoft.NET.TestFramework.Utilities; using NuGet.Configuration; using NuGet.Frameworks; using NuGet.Versioning; diff --git a/test/Microsoft.NET.TestFramework/Microsoft.NET.TestFramework.csproj b/test/Microsoft.NET.TestFramework/Microsoft.NET.TestFramework.csproj index 37c4ddacf2dc..ba14c1483ba4 100644 --- a/test/Microsoft.NET.TestFramework/Microsoft.NET.TestFramework.csproj +++ b/test/Microsoft.NET.TestFramework/Microsoft.NET.TestFramework.csproj @@ -51,7 +51,17 @@ - + + + + + + + + + + + diff --git a/test/SDDLTests/Program.cs b/test/SDDLTests/Program.cs index c973a92c338a..79ecc121dbe8 100644 --- a/test/SDDLTests/Program.cs +++ b/test/SDDLTests/Program.cs @@ -96,6 +96,15 @@ private static void WriteError(string message) Console.ResetColor(); } + private static void Assert(bool condition, string message) + { + if (!condition) + { + WriteError(message); + Environment.Exit(-1); + } + } + /// /// Extracts the owner, group and DACL (individual ACES) of the security descriptor. /// @@ -185,13 +194,13 @@ private static void VerifySecurityDescriptor(string sddlDescriptor, string expec Console.WriteLine($"Verifying descriptor: {sddlDescriptor}"); (string owner, string group, IEnumerable ACEs) d = GetDescriptorParts(sddlDescriptor); - Assert.True(expectedOwnerSID == d.owner, $"Expected owner SID to be {expectedOwnerSID}. Actual value: {d.owner}"); - Assert.True(expectedGroupSID == d.group, $"Expected group SID to be {expectedGroupSID}. Actual value: {d.group}"); - Assert.True(d.ACEs.Count() == expectedNumberOfACEsInDACL, $"Expected {expectedNumberOfACEsInDACL}. Actual: {d.ACEs.Count()}"); + Assert(expectedOwnerSID == d.owner, $"Expected owner SID to be {expectedOwnerSID}. Actual value: {d.owner}"); + Assert(expectedGroupSID == d.group, $"Expected group SID to be {expectedGroupSID}. Actual value: {d.group}"); + Assert(d.ACEs.Count() == expectedNumberOfACEsInDACL, $"Expected {expectedNumberOfACEsInDACL}. Actual: {d.ACEs.Count()}"); foreach (string ace in expectedACEs) { - Assert.True(d.ACEs.Contains(ace), $"Expected DACL to contain {ace}, but it did not."); + Assert(d.ACEs.Contains(ace), $"Expected DACL to contain {ace}, but it did not."); } } diff --git a/test/SDDLTests/SDDLTests.csproj b/test/SDDLTests/SDDLTests.csproj index acd39a468ec9..81c0964f7425 100644 --- a/test/SDDLTests/SDDLTests.csproj +++ b/test/SDDLTests/SDDLTests.csproj @@ -16,19 +16,4 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/test/TelemetryStdOutLogger/TelemetryStdOutLogger.csproj b/test/TelemetryStdOutLogger/TelemetryStdOutLogger.csproj index f26561159cfd..dd491ec5a893 100644 --- a/test/TelemetryStdOutLogger/TelemetryStdOutLogger.csproj +++ b/test/TelemetryStdOutLogger/TelemetryStdOutLogger.csproj @@ -14,19 +14,6 @@ - - - - - - - - - - - - - diff --git a/test/dotnet-watch-test-browser/dotnet-watch-test-browser.csproj b/test/dotnet-watch-test-browser/dotnet-watch-test-browser.csproj index 408cb9159c99..9ca93ac72ae2 100644 --- a/test/dotnet-watch-test-browser/dotnet-watch-test-browser.csproj +++ b/test/dotnet-watch-test-browser/dotnet-watch-test-browser.csproj @@ -8,7 +8,4 @@ - - - From 07d7aa4a0ab99eb09b605142597344fc626356b3 Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Fri, 13 Feb 2026 12:46:37 -0600 Subject: [PATCH 057/179] [dotnet run] `$(Device)` global property missing during `DeployToDevice` target (#53018) When the `DeployToDevice` target runs, and you selected a device from the `dotnet run` device selection prompt, `$(Device)` is blank! This was because evaluation already occurred, so we have to invalidate the project, so it will occur in subsequent steps. I could reproduce this in a test, so this verifies it will remain fixed for the future. --- src/Cli/dotnet/Commands/Run/RunCommand.cs | 3 +++ .../Run/GivenDotnetRunSelectsDevice.cs | 24 +++++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/Cli/dotnet/Commands/Run/RunCommand.cs b/src/Cli/dotnet/Commands/Run/RunCommand.cs index 92ce418923a1..71c142ae9e0d 100644 --- a/src/Cli/dotnet/Commands/Run/RunCommand.cs +++ b/src/Cli/dotnet/Commands/Run/RunCommand.cs @@ -259,6 +259,7 @@ private bool TrySelectTargetFrameworkAndDeviceIfNeeded(RunCommandSelector select { globalProperties["Device"] = Device; var properties = new Dictionary { { "Device", Device } }; + selector.InvalidateGlobalProperties(properties); var additionalProperties = new ReadOnlyDictionary(properties); MSBuildArgs = MSBuildArgs.CloneWithAdditionalProperties(additionalProperties); } @@ -319,6 +320,8 @@ private bool TrySelectTargetFrameworkAndDeviceIfNeeded(RunCommandSelector select _restoreDoneForDeviceSelection = false; } + // Update the selector's global properties so DeployToDevice and other targets see the Device + selector.InvalidateGlobalProperties(properties); var additionalProperties = new ReadOnlyDictionary(properties); MSBuildArgs = MSBuildArgs.CloneWithAdditionalProperties(additionalProperties); } diff --git a/test/dotnet.Tests/CommandTests/Run/GivenDotnetRunSelectsDevice.cs b/test/dotnet.Tests/CommandTests/Run/GivenDotnetRunSelectsDevice.cs index 68ac24240d3e..e195eccc2cd4 100644 --- a/test/dotnet.Tests/CommandTests/Run/GivenDotnetRunSelectsDevice.cs +++ b/test/dotnet.Tests/CommandTests/Run/GivenDotnetRunSelectsDevice.cs @@ -296,10 +296,17 @@ public void ItCallsDeployToDeviceTargetWhenDeviceIsSpecified() result.Should().Pass() .And.HaveStdOutContaining($"Device: {deviceId}"); - // Verify the binlog file was created and the DeployToDevice target ran + // Verify the binlog file was created and the DeployToDevice target ran with the correct Device property File.Exists(binlogPath).Should().BeTrue("the binlog file should be created"); AssertTargetInBinlog(binlogPath, "DeployToDevice", - targets => targets.Should().NotBeEmpty("DeployToDevice target should have been executed")); + targets => + { + targets.Should().NotBeEmpty("DeployToDevice target should have been executed"); + var messages = targets.First().FindChildrenRecursive(); + var deployMessage = messages.FirstOrDefault(m => m.Text.Contains("DeployToDevice: Deployed to device")); + deployMessage.Should().NotBeNull("the DeployToDevice target should have logged the device"); + deployMessage.Text.Should().Contain(deviceId, "the Device property should be passed to DeployToDevice"); + }); } [Fact] @@ -353,9 +360,18 @@ public void ItCallsDeployToDeviceTargetWhenDeviceIsAutoSelected() // Verify the binlog file was created File.Exists(binlogPath).Should().BeTrue("the binlog file should be created"); - // DeployToDevice target should have been called since a device was selected + // DeployToDevice target should have been called with the correct Device and RuntimeIdentifier AssertTargetInBinlog(binlogPath, "DeployToDevice", - targets => targets.Should().NotBeEmpty("DeployToDevice target should have been executed when a device is selected")); + targets => + { + targets.Should().NotBeEmpty("DeployToDevice target should have been executed when a device is selected"); + var messages = targets.First().FindChildrenRecursive(); + var deployMessage = messages.FirstOrDefault(m => m.Text.Contains("DeployToDevice: Deployed to device")); + deployMessage.Should().NotBeNull("the DeployToDevice target should have logged the device"); + deployMessage.Text.Should().Contain("single-device", "the auto-selected Device should be passed to DeployToDevice"); + // The single-device has RuntimeIdentifier="$(NETCoreSdkRuntimeIdentifier)" which resolves to the current SDK RID + deployMessage.Text.Should().Contain(RuntimeInformation.RuntimeIdentifier, "the RuntimeIdentifier from the device should be passed to DeployToDevice"); + }); } [Fact] From df978416d54ac21a8ab7bbd8792c8c955bd2e2d5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 13 Feb 2026 20:37:41 +0000 Subject: [PATCH 058/179] Update dependencies from build 301795 On relative base path root Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal,Microsoft.CodeAnalysis.Razor.Tooling.Internal,Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 10.0.0-preview.26110.110 -> To Version 10.0.0-preview.26113.107 (parent: ) Microsoft.Build,Microsoft.Build.Localization,Microsoft.NET.Test.Sdk,Microsoft.TestPlatform.Build,Microsoft.TestPlatform.CLI From Version 18.3.0-release-26110-110 -> To Version 18.3.0-release-26113-107 (parent: ) Microsoft.Build.NuGetSdkResolver,NuGet.Build.Tasks,NuGet.Build.Tasks.Console,NuGet.Build.Tasks.Pack,NuGet.CommandLine.XPlat,NuGet.Commands,NuGet.Common,NuGet.Configuration,NuGet.Credentials,NuGet.DependencyResolver.Core,NuGet.Frameworks,NuGet.LibraryModel,NuGet.Localization,NuGet.Packaging,NuGet.ProjectModel,NuGet.Protocol,NuGet.Versioning From Version 7.3.0-preview.1.11110 -> To Version 7.3.0-preview.1.11407 (parent: ) Microsoft.Build.Tasks.Git,Microsoft.SourceLink.AzureRepos.Git,Microsoft.SourceLink.Bitbucket.Git,Microsoft.SourceLink.Common,Microsoft.SourceLink.GitHub,Microsoft.SourceLink.GitLab From Version 10.0.200-alpha.26110.110 -> To Version 10.0.200-alpha.26113.107 (parent: ) Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.BuildClient,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.CSharp.CodeStyle,Microsoft.CodeAnalysis.CSharp.Features,Microsoft.CodeAnalysis.CSharp.Workspaces,Microsoft.CodeAnalysis.ExternalAccess.HotReload,Microsoft.CodeAnalysis.PublicApiAnalyzers,Microsoft.CodeAnalysis.Workspaces.Common,Microsoft.CodeAnalysis.Workspaces.MSBuild,Microsoft.Net.Compilers.Toolset,Microsoft.Net.Compilers.Toolset.Framework From Version 5.3.0-2.26110.110 -> To Version 5.3.0-2.26113.107 (parent: ) Microsoft.DotNet.Arcade.Sdk,Microsoft.DotNet.Build.Tasks.Installers,Microsoft.DotNet.Build.Tasks.Templating,Microsoft.DotNet.Build.Tasks.Workloads,Microsoft.DotNet.Helix.Sdk,Microsoft.DotNet.SignTool,Microsoft.DotNet.XliffTasks,Microsoft.DotNet.XUnitExtensions From Version 10.0.0-beta.26110.110 -> To Version 10.0.0-beta.26113.107 (parent: ) Microsoft.FSharp.Compiler From Version 15.2.200-servicing.26110.110 -> To Version 15.2.100-preview2.26113.107 (parent: ) Microsoft.TemplateEngine.Abstractions,Microsoft.TemplateEngine.Authoring.TemplateVerifier,Microsoft.TemplateEngine.Edge,Microsoft.TemplateEngine.Mocks,Microsoft.TemplateEngine.Orchestrator.RunnableProjects,Microsoft.TemplateEngine.TestHelper,Microsoft.TemplateEngine.Utils,Microsoft.TemplateSearch.Common,Microsoft.TemplateSearch.TemplateDiscovery From Version 10.0.200-preview.26110.110 -> To Version 10.0.200-preview.26113.107 (parent: ) [[ commit created by automation ]] --- eng/Version.Details.props | 122 ++++----- eng/Version.Details.xml | 246 +++++++++--------- .../job/publish-build-assets.yml | 2 +- .../core-templates/job/source-build.yml | 8 +- .../core-templates/post-build/post-build.yml | 4 +- .../templates/variables/pool-providers.yml | 2 +- eng/common/tools.ps1 | 13 +- global.json | 4 +- 8 files changed, 204 insertions(+), 197 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index aa6835c00e50..9697c73f82f5 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,68 +6,68 @@ This file should be imported by eng/Versions.props - 10.0.0-preview.26110.110 - 18.3.0-release-26110-110 - 18.3.0-release-26110-110 - 7.3.0-preview.1.11110 - 10.0.200-alpha.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 - 10.0.0-preview.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 - 10.0.0-beta.26110.110 - 10.0.0-beta.26110.110 - 10.0.0-beta.26110.110 - 10.0.0-beta.26110.110 - 10.0.0-beta.26110.110 - 10.0.0-beta.26110.110 - 10.0.0-beta.26110.110 - 10.0.0-beta.26110.110 - 15.2.200-servicing.26110.110 - 5.3.0-2.26110.110 - 5.3.0-2.26110.110 + 10.0.0-preview.26113.107 + 18.3.0-release-26113-107 + 18.3.0-release-26113-107 + 7.3.0-preview.1.11407 + 10.0.200-alpha.26113.107 + 5.3.0-2.26113.107 + 5.3.0-2.26113.107 + 5.3.0-2.26113.107 + 5.3.0-2.26113.107 + 5.3.0-2.26113.107 + 5.3.0-2.26113.107 + 5.3.0-2.26113.107 + 5.3.0-2.26113.107 + 10.0.0-preview.26113.107 + 5.3.0-2.26113.107 + 5.3.0-2.26113.107 + 10.0.0-beta.26113.107 + 10.0.0-beta.26113.107 + 10.0.0-beta.26113.107 + 10.0.0-beta.26113.107 + 10.0.0-beta.26113.107 + 10.0.0-beta.26113.107 + 10.0.0-beta.26113.107 + 10.0.0-beta.26113.107 + 15.2.100-preview2.26113.107 + 5.3.0-2.26113.107 + 5.3.0-2.26113.107 10.0.0-preview.7.25377.103 - 10.0.0-preview.26110.110 - 18.3.0-release-26110-110 - 10.0.200-alpha.26110.110 - 10.0.200-alpha.26110.110 - 10.0.200-alpha.26110.110 - 10.0.200-alpha.26110.110 - 10.0.200-alpha.26110.110 - 10.0.200-preview.26110.110 - 10.0.200-preview.26110.110 - 10.0.200-preview.26110.110 - 10.0.200-preview.26110.110 - 10.0.200-preview.26110.110 - 10.0.200-preview.26110.110 - 10.0.200-preview.26110.110 - 10.0.200-preview.26110.110 - 10.0.200-preview.26110.110 - 18.3.0-release-26110-110 - 18.3.0-release-26110-110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 - 7.3.0-preview.1.11110 + 10.0.0-preview.26113.107 + 18.3.0-release-26113-107 + 10.0.200-alpha.26113.107 + 10.0.200-alpha.26113.107 + 10.0.200-alpha.26113.107 + 10.0.200-alpha.26113.107 + 10.0.200-alpha.26113.107 + 10.0.200-preview.26113.107 + 10.0.200-preview.26113.107 + 10.0.200-preview.26113.107 + 10.0.200-preview.26113.107 + 10.0.200-preview.26113.107 + 10.0.200-preview.26113.107 + 10.0.200-preview.26113.107 + 10.0.200-preview.26113.107 + 10.0.200-preview.26113.107 + 18.3.0-release-26113-107 + 18.3.0-release-26113-107 + 7.3.0-preview.1.11407 + 7.3.0-preview.1.11407 + 7.3.0-preview.1.11407 + 7.3.0-preview.1.11407 + 7.3.0-preview.1.11407 + 7.3.0-preview.1.11407 + 7.3.0-preview.1.11407 + 7.3.0-preview.1.11407 + 7.3.0-preview.1.11407 + 7.3.0-preview.1.11407 + 7.3.0-preview.1.11407 + 7.3.0-preview.1.11407 + 7.3.0-preview.1.11407 + 7.3.0-preview.1.11407 + 7.3.0-preview.1.11407 + 7.3.0-preview.1.11407 10.0.2-servicing.25612.105 10.0.2-servicing.25612.105 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c619dfaf94e0..a120d4c57cbd 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,42 +1,42 @@ - + - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -72,138 +72,138 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -370,25 +370,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -405,29 +405,29 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 @@ -514,9 +514,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -528,37 +528,37 @@ - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 - + https://github.com/dotnet/dotnet - 24f66fec875855c1e7bcddebf0703b2fcab1ee3e + 71fe3334b4efb66e16bbde83a81de53a4ce26db5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet diff --git a/eng/common/core-templates/job/publish-build-assets.yml b/eng/common/core-templates/job/publish-build-assets.yml index 3437087c80fc..b955fac6e13f 100644 --- a/eng/common/core-templates/job/publish-build-assets.yml +++ b/eng/common/core-templates/job/publish-build-assets.yml @@ -80,7 +80,7 @@ jobs: # If it's not devdiv, it's dnceng ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: name: NetCore1ESPool-Publishing-Internal - image: windows.vs2019.amd64 + image: windows.vs2022.amd64 os: windows steps: - ${{ if eq(parameters.is1ESPipeline, '') }}: diff --git a/eng/common/core-templates/job/source-build.yml b/eng/common/core-templates/job/source-build.yml index d805d5faeb94..1997c2ae00d7 100644 --- a/eng/common/core-templates/job/source-build.yml +++ b/eng/common/core-templates/job/source-build.yml @@ -60,19 +60,19 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] - demands: ImageOverride -equals build.ubuntu.2004.amd64 + demands: ImageOverride -equals build.azurelinux.3.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] - image: 1es-mariner-2 + image: build.azurelinux.3.amd64 os: linux ${{ else }}: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] - demands: ImageOverride -equals Build.Ubuntu.2204.Amd64.Open + demands: ImageOverride -equals build.azurelinux.3.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] - demands: ImageOverride -equals Build.Ubuntu.2204.Amd64 + demands: ImageOverride -equals build.azurelinux.3.amd64 ${{ if ne(parameters.platform.pool, '') }}: pool: ${{ parameters.platform.pool }} diff --git a/eng/common/core-templates/post-build/post-build.yml b/eng/common/core-templates/post-build/post-build.yml index 9423d71ca3a2..b942a79ef02d 100644 --- a/eng/common/core-templates/post-build/post-build.yml +++ b/eng/common/core-templates/post-build/post-build.yml @@ -293,11 +293,11 @@ stages: ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: NetCore1ESPool-Publishing-Internal - image: windows.vs2019.amd64 + image: windows.vs2022.amd64 os: windows ${{ else }}: name: NetCore1ESPool-Publishing-Internal - demands: ImageOverride -equals windows.vs2019.amd64 + demands: ImageOverride -equals windows.vs2022.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: diff --git a/eng/common/templates/variables/pool-providers.yml b/eng/common/templates/variables/pool-providers.yml index e0b19c14a073..18693ea120d5 100644 --- a/eng/common/templates/variables/pool-providers.yml +++ b/eng/common/templates/variables/pool-providers.yml @@ -23,7 +23,7 @@ # # pool: # name: $(DncEngInternalBuildPool) -# demands: ImageOverride -equals windows.vs2019.amd64 +# demands: ImageOverride -equals windows.vs2022.amd64 variables: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - template: /eng/common/templates-official/variables/pool-providers.yml diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index bef4affa4a41..049fe6db994e 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -560,19 +560,26 @@ function LocateVisualStudio([object]$vsRequirements = $null){ }) } - if (!$vsRequirements) { $vsRequirements = $GlobalJson.tools.vs } + if (!$vsRequirements) { + if (Get-Member -InputObject $GlobalJson.tools -Name 'vs' -ErrorAction SilentlyContinue) { + $vsRequirements = $GlobalJson.tools.vs + } else { + $vsRequirements = $null + } + } + $args = @('-latest', '-format', 'json', '-requires', 'Microsoft.Component.MSBuild', '-products', '*') if (!$excludePrereleaseVS) { $args += '-prerelease' } - if (Get-Member -InputObject $vsRequirements -Name 'version') { + if ($vsRequirements -and (Get-Member -InputObject $vsRequirements -Name 'version' -ErrorAction SilentlyContinue)) { $args += '-version' $args += $vsRequirements.version } - if (Get-Member -InputObject $vsRequirements -Name 'components') { + if ($vsRequirements -and (Get-Member -InputObject $vsRequirements -Name 'components' -ErrorAction SilentlyContinue)) { foreach ($component in $vsRequirements.components) { $args += '-requires' $args += $component diff --git a/global.json b/global.json index e12862d61aad..38e5c2f3f0b4 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26110.110", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26110.110", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26113.107", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26113.107", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From fd8454b05a33be2141de6c7cf9befc618e5bc7a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Matou=C5=A1ek?= Date: Fri, 13 Feb 2026 14:48:19 -0800 Subject: [PATCH 059/179] Workaround for NuGet restore bug (#53020) --- Directory.Build.props | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Directory.Build.props b/Directory.Build.props index 64fcb52110f6..7816170a7988 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -25,6 +25,9 @@ $(PortableTargetRid.Substring(0, $(PortableTargetRid.LastIndexOf('-')))) $(TargetRid.Substring(0, $(TargetRid.LastIndexOf('-')))) $(HostOSName) + + + 10.0.200 From eb732b27d6a41344cdcae4ae04d4b40d314dc184 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 14 Feb 2026 00:20:09 +0000 Subject: [PATCH 060/179] Update dependencies from build 301816 On relative base path root Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal,Microsoft.CodeAnalysis.Razor.Tooling.Internal,Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 10.0.0-preview.26113.107 -> To Version 10.0.0-preview.26113.113 (parent: ) Microsoft.Build,Microsoft.Build.Localization,Microsoft.NET.Test.Sdk,Microsoft.TestPlatform.Build,Microsoft.TestPlatform.CLI From Version 18.3.0-release-26113-107 -> To Version 18.3.0-release-26113-113 (parent: ) Microsoft.Build.NuGetSdkResolver,NuGet.Build.Tasks,NuGet.Build.Tasks.Console,NuGet.Build.Tasks.Pack,NuGet.CommandLine.XPlat,NuGet.Commands,NuGet.Common,NuGet.Configuration,NuGet.Credentials,NuGet.DependencyResolver.Core,NuGet.Frameworks,NuGet.LibraryModel,NuGet.Localization,NuGet.Packaging,NuGet.ProjectModel,NuGet.Protocol,NuGet.Versioning From Version 7.3.0-preview.1.11407 -> To Version 7.3.0-preview.1.11413 (parent: ) Microsoft.Build.Tasks.Git,Microsoft.SourceLink.AzureRepos.Git,Microsoft.SourceLink.Bitbucket.Git,Microsoft.SourceLink.Common,Microsoft.SourceLink.GitHub,Microsoft.SourceLink.GitLab From Version 10.0.200-alpha.26113.107 -> To Version 10.0.200-alpha.26113.113 (parent: ) Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.BuildClient,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.CSharp.CodeStyle,Microsoft.CodeAnalysis.CSharp.Features,Microsoft.CodeAnalysis.CSharp.Workspaces,Microsoft.CodeAnalysis.ExternalAccess.HotReload,Microsoft.CodeAnalysis.PublicApiAnalyzers,Microsoft.CodeAnalysis.Workspaces.Common,Microsoft.CodeAnalysis.Workspaces.MSBuild,Microsoft.Net.Compilers.Toolset,Microsoft.Net.Compilers.Toolset.Framework From Version 5.3.0-2.26113.107 -> To Version 5.3.0-2.26113.113 (parent: ) Microsoft.DotNet.Arcade.Sdk,Microsoft.DotNet.Build.Tasks.Installers,Microsoft.DotNet.Build.Tasks.Templating,Microsoft.DotNet.Build.Tasks.Workloads,Microsoft.DotNet.Helix.Sdk,Microsoft.DotNet.SignTool,Microsoft.DotNet.XliffTasks,Microsoft.DotNet.XUnitExtensions From Version 10.0.0-beta.26113.107 -> To Version 10.0.0-beta.26113.113 (parent: ) Microsoft.FSharp.Compiler From Version 15.2.100-preview2.26113.107 -> To Version 15.2.100-preview2.26113.113 (parent: ) Microsoft.TemplateEngine.Abstractions,Microsoft.TemplateEngine.Authoring.TemplateVerifier,Microsoft.TemplateEngine.Edge,Microsoft.TemplateEngine.Mocks,Microsoft.TemplateEngine.Orchestrator.RunnableProjects,Microsoft.TemplateEngine.TestHelper,Microsoft.TemplateEngine.Utils,Microsoft.TemplateSearch.Common,Microsoft.TemplateSearch.TemplateDiscovery From Version 10.0.200-preview.26113.107 -> To Version 10.0.200-preview.26113.113 (parent: ) [[ commit created by automation ]] --- eng/Version.Details.props | 122 +++++++++---------- eng/Version.Details.xml | 246 +++++++++++++++++++------------------- global.json | 4 +- 3 files changed, 186 insertions(+), 186 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 9697c73f82f5..5f9a23814e37 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,68 +6,68 @@ This file should be imported by eng/Versions.props - 10.0.0-preview.26113.107 - 18.3.0-release-26113-107 - 18.3.0-release-26113-107 - 7.3.0-preview.1.11407 - 10.0.200-alpha.26113.107 - 5.3.0-2.26113.107 - 5.3.0-2.26113.107 - 5.3.0-2.26113.107 - 5.3.0-2.26113.107 - 5.3.0-2.26113.107 - 5.3.0-2.26113.107 - 5.3.0-2.26113.107 - 5.3.0-2.26113.107 - 10.0.0-preview.26113.107 - 5.3.0-2.26113.107 - 5.3.0-2.26113.107 - 10.0.0-beta.26113.107 - 10.0.0-beta.26113.107 - 10.0.0-beta.26113.107 - 10.0.0-beta.26113.107 - 10.0.0-beta.26113.107 - 10.0.0-beta.26113.107 - 10.0.0-beta.26113.107 - 10.0.0-beta.26113.107 - 15.2.100-preview2.26113.107 - 5.3.0-2.26113.107 - 5.3.0-2.26113.107 + 10.0.0-preview.26113.113 + 18.3.0-release-26113-113 + 18.3.0-release-26113-113 + 7.3.0-preview.1.11413 + 10.0.200-alpha.26113.113 + 5.3.0-2.26113.113 + 5.3.0-2.26113.113 + 5.3.0-2.26113.113 + 5.3.0-2.26113.113 + 5.3.0-2.26113.113 + 5.3.0-2.26113.113 + 5.3.0-2.26113.113 + 5.3.0-2.26113.113 + 10.0.0-preview.26113.113 + 5.3.0-2.26113.113 + 5.3.0-2.26113.113 + 10.0.0-beta.26113.113 + 10.0.0-beta.26113.113 + 10.0.0-beta.26113.113 + 10.0.0-beta.26113.113 + 10.0.0-beta.26113.113 + 10.0.0-beta.26113.113 + 10.0.0-beta.26113.113 + 10.0.0-beta.26113.113 + 15.2.100-preview2.26113.113 + 5.3.0-2.26113.113 + 5.3.0-2.26113.113 10.0.0-preview.7.25377.103 - 10.0.0-preview.26113.107 - 18.3.0-release-26113-107 - 10.0.200-alpha.26113.107 - 10.0.200-alpha.26113.107 - 10.0.200-alpha.26113.107 - 10.0.200-alpha.26113.107 - 10.0.200-alpha.26113.107 - 10.0.200-preview.26113.107 - 10.0.200-preview.26113.107 - 10.0.200-preview.26113.107 - 10.0.200-preview.26113.107 - 10.0.200-preview.26113.107 - 10.0.200-preview.26113.107 - 10.0.200-preview.26113.107 - 10.0.200-preview.26113.107 - 10.0.200-preview.26113.107 - 18.3.0-release-26113-107 - 18.3.0-release-26113-107 - 7.3.0-preview.1.11407 - 7.3.0-preview.1.11407 - 7.3.0-preview.1.11407 - 7.3.0-preview.1.11407 - 7.3.0-preview.1.11407 - 7.3.0-preview.1.11407 - 7.3.0-preview.1.11407 - 7.3.0-preview.1.11407 - 7.3.0-preview.1.11407 - 7.3.0-preview.1.11407 - 7.3.0-preview.1.11407 - 7.3.0-preview.1.11407 - 7.3.0-preview.1.11407 - 7.3.0-preview.1.11407 - 7.3.0-preview.1.11407 - 7.3.0-preview.1.11407 + 10.0.0-preview.26113.113 + 18.3.0-release-26113-113 + 10.0.200-alpha.26113.113 + 10.0.200-alpha.26113.113 + 10.0.200-alpha.26113.113 + 10.0.200-alpha.26113.113 + 10.0.200-alpha.26113.113 + 10.0.200-preview.26113.113 + 10.0.200-preview.26113.113 + 10.0.200-preview.26113.113 + 10.0.200-preview.26113.113 + 10.0.200-preview.26113.113 + 10.0.200-preview.26113.113 + 10.0.200-preview.26113.113 + 10.0.200-preview.26113.113 + 10.0.200-preview.26113.113 + 18.3.0-release-26113-113 + 18.3.0-release-26113-113 + 7.3.0-preview.1.11413 + 7.3.0-preview.1.11413 + 7.3.0-preview.1.11413 + 7.3.0-preview.1.11413 + 7.3.0-preview.1.11413 + 7.3.0-preview.1.11413 + 7.3.0-preview.1.11413 + 7.3.0-preview.1.11413 + 7.3.0-preview.1.11413 + 7.3.0-preview.1.11413 + 7.3.0-preview.1.11413 + 7.3.0-preview.1.11413 + 7.3.0-preview.1.11413 + 7.3.0-preview.1.11413 + 7.3.0-preview.1.11413 + 7.3.0-preview.1.11413 10.0.2-servicing.25612.105 10.0.2-servicing.25612.105 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a120d4c57cbd..b9f328cd397c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,42 +1,42 @@ - + - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -72,138 +72,138 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -370,25 +370,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -405,29 +405,29 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee @@ -514,9 +514,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -528,37 +528,37 @@ - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee - + https://github.com/dotnet/dotnet - 71fe3334b4efb66e16bbde83a81de53a4ce26db5 + 05d9490471fb4b10d7ef4faa32c423e1b5adcaee https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet diff --git a/global.json b/global.json index 38e5c2f3f0b4..7979cffaeec4 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26113.107", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26113.107", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26113.113", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26113.113", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 77db8bee678771e613effee94d1057a2589b8f37 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 14 Feb 2026 00:45:44 +0000 Subject: [PATCH 061/179] Update dependencies from build 301818 On relative base path root dotnet-dev-certs,dotnet-user-jwts,dotnet-user-secrets,Microsoft.AspNetCore.Analyzers,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.Components.SdkAnalyzers,Microsoft.AspNetCore.DeveloperCertificates.XPlat,Microsoft.AspNetCore.Mvc.Analyzers,Microsoft.AspNetCore.Mvc.Api.Analyzers,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates,Microsoft.NET.HostModel,Microsoft.NET.Sdk.WindowsDesktop,Microsoft.NETCore.Platforms,Microsoft.WindowsDesktop.App.Internal From Version 10.0.4-servicing.26113.103 -> To Version 10.0.4-servicing.26113.109 (parent: ) Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.Authentication.Facebook,Microsoft.AspNetCore.Authentication.Google,Microsoft.AspNetCore.Authentication.MicrosoftAccount,Microsoft.AspNetCore.Authorization,Microsoft.AspNetCore.Components,Microsoft.AspNetCore.Components.Analyzers,Microsoft.AspNetCore.Components.Forms,Microsoft.AspNetCore.Components.Web,Microsoft.AspNetCore.Components.WebAssembly,Microsoft.AspNetCore.Components.WebAssembly.Server,Microsoft.AspNetCore.Components.WebView,Microsoft.AspNetCore.Metadata,Microsoft.AspNetCore.TestHost,Microsoft.Bcl.AsyncInterfaces,Microsoft.DotNet.Web.ItemTemplates.10.0,Microsoft.DotNet.Web.ProjectTemplates.10.0,Microsoft.Extensions.Configuration.Ini,Microsoft.Extensions.DependencyModel,Microsoft.Extensions.FileProviders.Abstractions,Microsoft.Extensions.FileProviders.Embedded,Microsoft.Extensions.FileSystemGlobbing,Microsoft.Extensions.Logging,Microsoft.Extensions.Logging.Abstractions,Microsoft.Extensions.Logging.Console,Microsoft.Extensions.ObjectPool,Microsoft.JSInterop,Microsoft.NET.ILLink.Tasks,Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64,Microsoft.NETCore.App.Ref,Microsoft.Win32.SystemEvents,Microsoft.WindowsDesktop.App.Ref,System.CodeDom,System.ComponentModel.Composition,System.Composition.AttributedModel,System.Composition.Convention,System.Composition.Hosting,System.Composition.Runtime,System.Composition.TypedParts,System.Configuration.ConfigurationManager,System.Diagnostics.DiagnosticSource,System.Formats.Asn1,System.IO.Hashing,System.Reflection.MetadataLoadContext,System.Resources.Extensions,System.Security.Cryptography.Pkcs,System.Security.Cryptography.ProtectedData,System.Security.Cryptography.Xml,System.Security.Permissions,System.ServiceProcess.ServiceController,System.Text.Encoding.CodePages,System.Text.Json,System.Windows.Extensions From Version 10.0.4 -> To Version 10.0.4 (parent: ) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal,Microsoft.CodeAnalysis.Razor.Tooling.Internal,Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 10.0.0-preview.26113.103 -> To Version 10.0.0-preview.26113.109 (parent: ) Microsoft.Build From Version 18.0.11 -> To Version 18.0.11 (parent: ) Microsoft.Build.Localization From Version 18.0.11-servicing-26113-103 -> To Version 18.0.11-servicing-26113-109 (parent: ) Microsoft.Build.NuGetSdkResolver,NuGet.Build.Tasks,NuGet.Build.Tasks.Console,NuGet.Build.Tasks.Pack,NuGet.CommandLine.XPlat,NuGet.Commands,NuGet.Common,NuGet.Configuration,NuGet.Credentials,NuGet.DependencyResolver.Core,NuGet.Frameworks,NuGet.LibraryModel,NuGet.Localization,NuGet.Packaging,NuGet.ProjectModel,NuGet.Protocol,NuGet.Versioning From Version 7.0.2-rc.11403 -> To Version 7.0.2-rc.11409 (parent: ) Microsoft.Build.Tasks.Git,Microsoft.SourceLink.AzureRepos.Git,Microsoft.SourceLink.Bitbucket.Git,Microsoft.SourceLink.Common,Microsoft.SourceLink.GitHub,Microsoft.SourceLink.GitLab,Microsoft.TemplateEngine.Abstractions,Microsoft.TemplateEngine.Authoring.TemplateVerifier,Microsoft.TemplateEngine.Edge,Microsoft.TemplateEngine.Orchestrator.RunnableProjects,Microsoft.TemplateEngine.Utils,Microsoft.TemplateSearch.Common From Version 10.0.104 -> To Version 10.0.104 (parent: ) Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.BuildClient,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.CSharp.CodeStyle,Microsoft.CodeAnalysis.CSharp.Features,Microsoft.CodeAnalysis.CSharp.Workspaces,Microsoft.CodeAnalysis.PublicApiAnalyzers,Microsoft.CodeAnalysis.Workspaces.Common,Microsoft.CodeAnalysis.Workspaces.MSBuild,Microsoft.Net.Compilers.Toolset,Microsoft.Net.Compilers.Toolset.Framework From Version 5.0.0-2.26113.103 -> To Version 5.0.0-2.26113.109 (parent: ) Microsoft.Deployment.DotNet.Releases From Version 2.0.0-preview.1.26113.103 -> To Version 2.0.0-preview.1.26113.109 (parent: ) Microsoft.DiaSymReader From Version 2.2.4 -> To Version 2.2.4 (parent: ) Microsoft.DotNet.Arcade.Sdk,Microsoft.DotNet.Build.Tasks.Installers,Microsoft.DotNet.Build.Tasks.Templating,Microsoft.DotNet.Build.Tasks.Workloads,Microsoft.DotNet.Helix.Sdk,Microsoft.DotNet.SignTool,Microsoft.DotNet.XliffTasks,Microsoft.DotNet.XUnitExtensions From Version 10.0.0-beta.26113.103 -> To Version 10.0.0-beta.26113.109 (parent: ) Microsoft.FSharp.Compiler From Version 14.0.104-servicing.26113.103 -> To Version 14.0.104-servicing.26113.109 (parent: ) Microsoft.NET.Test.Sdk,Microsoft.TestPlatform.Build,Microsoft.TestPlatform.CLI From Version 18.0.1-release-26113-103 -> To Version 18.0.1-release-26113-109 (parent: ) Microsoft.TemplateEngine.Mocks,Microsoft.TemplateEngine.TestHelper,Microsoft.TemplateSearch.TemplateDiscovery From Version 10.0.104-servicing.26113.103 -> To Version 10.0.104-servicing.26113.109 (parent: ) Microsoft.Web.Xdt From Version 3.2.4 -> To Version 3.2.4 (parent: ) System.CommandLine From Version 2.0.4 -> To Version 2.0.4 (parent: ) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index dd7c60e3f1c6..b0ff951bebca 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 08a64b3b88e0..9f280a1d84a8 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26113.103 - 10.0.4-servicing.26113.103 - 10.0.4-servicing.26113.103 - 10.0.4-servicing.26113.103 + 10.0.4-servicing.26113.109 + 10.0.4-servicing.26113.109 + 10.0.4-servicing.26113.109 + 10.0.4-servicing.26113.109 10.0.4 - 10.0.4-servicing.26113.103 + 10.0.4-servicing.26113.109 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26113.103 + 10.0.4-servicing.26113.109 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26113.103 + 10.0.4-servicing.26113.109 10.0.4 - 10.0.4-servicing.26113.103 - 10.0.4-servicing.26113.103 - 10.0.0-preview.26113.103 + 10.0.4-servicing.26113.109 + 10.0.4-servicing.26113.109 + 10.0.0-preview.26113.109 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26113-103 - 7.0.2-rc.11403 + 18.0.11-servicing-26113-109 + 7.0.2-rc.11409 10.0.104 - 5.0.0-2.26113.103 - 5.0.0-2.26113.103 - 5.0.0-2.26113.103 - 5.0.0-2.26113.103 - 5.0.0-2.26113.103 - 5.0.0-2.26113.103 - 5.0.0-2.26113.103 - 10.0.0-preview.26113.103 - 5.0.0-2.26113.103 - 5.0.0-2.26113.103 - 2.0.0-preview.1.26113.103 + 5.0.0-2.26113.109 + 5.0.0-2.26113.109 + 5.0.0-2.26113.109 + 5.0.0-2.26113.109 + 5.0.0-2.26113.109 + 5.0.0-2.26113.109 + 5.0.0-2.26113.109 + 10.0.0-preview.26113.109 + 5.0.0-2.26113.109 + 5.0.0-2.26113.109 + 2.0.0-preview.1.26113.109 2.2.4 - 10.0.0-beta.26113.103 - 10.0.0-beta.26113.103 - 10.0.0-beta.26113.103 - 10.0.0-beta.26113.103 - 10.0.0-beta.26113.103 - 10.0.0-beta.26113.103 + 10.0.0-beta.26113.109 + 10.0.0-beta.26113.109 + 10.0.0-beta.26113.109 + 10.0.0-beta.26113.109 + 10.0.0-beta.26113.109 + 10.0.0-beta.26113.109 10.0.4 10.0.4 - 10.0.4-servicing.26113.103 - 10.0.4-servicing.26113.103 - 10.0.0-beta.26113.103 - 10.0.0-beta.26113.103 + 10.0.4-servicing.26113.109 + 10.0.4-servicing.26113.109 + 10.0.0-beta.26113.109 + 10.0.0-beta.26113.109 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26113.103 + 14.0.104-servicing.26113.109 10.0.4 - 5.0.0-2.26113.103 - 5.0.0-2.26113.103 - 10.0.4-servicing.26113.103 + 5.0.0-2.26113.109 + 5.0.0-2.26113.109 + 10.0.4-servicing.26113.109 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26113.103 - 10.0.4-servicing.26113.103 - 18.0.1-release-26113-103 + 10.0.0-preview.26113.109 + 10.0.4-servicing.26113.109 + 18.0.1-release-26113-109 10.0.4 - 10.0.4-servicing.26113.103 + 10.0.4-servicing.26113.109 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26113.103 + 10.0.104-servicing.26113.109 10.0.104 - 10.0.104-servicing.26113.103 + 10.0.104-servicing.26113.109 10.0.104 10.0.104 - 10.0.104-servicing.26113.103 - 18.0.1-release-26113-103 - 18.0.1-release-26113-103 + 10.0.104-servicing.26113.109 + 18.0.1-release-26113-109 + 18.0.1-release-26113-109 3.2.4 10.0.4 - 10.0.4-servicing.26113.103 + 10.0.4-servicing.26113.109 10.0.4 - 7.0.2-rc.11403 - 7.0.2-rc.11403 - 7.0.2-rc.11403 - 7.0.2-rc.11403 - 7.0.2-rc.11403 - 7.0.2-rc.11403 - 7.0.2-rc.11403 - 7.0.2-rc.11403 - 7.0.2-rc.11403 - 7.0.2-rc.11403 - 7.0.2-rc.11403 - 7.0.2-rc.11403 - 7.0.2-rc.11403 - 7.0.2-rc.11403 - 7.0.2-rc.11403 - 7.0.2-rc.11403 + 7.0.2-rc.11409 + 7.0.2-rc.11409 + 7.0.2-rc.11409 + 7.0.2-rc.11409 + 7.0.2-rc.11409 + 7.0.2-rc.11409 + 7.0.2-rc.11409 + 7.0.2-rc.11409 + 7.0.2-rc.11409 + 7.0.2-rc.11409 + 7.0.2-rc.11409 + 7.0.2-rc.11409 + 7.0.2-rc.11409 + 7.0.2-rc.11409 + 7.0.2-rc.11409 + 7.0.2-rc.11409 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 10e7c089714f..833f9c94fdc8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - f3552817bc7e3f170237f43254ee2b70da88e7f6 + 8b73f5aab30c102060a87842741d15b005161478 diff --git a/global.json b/global.json index 75dad3c492b8..466b21ee63c5 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26113.103", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26113.103", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26113.109", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26113.109", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 60bf298666ad8736f8f88097910cb0baaf6da50c Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 14 Feb 2026 02:02:38 +0000 Subject: [PATCH 062/179] Update dependencies from https://github.com/microsoft/testfx build 20260213.4 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26112.1 -> To Version 2.2.0-preview.26113.4 MSTest From Version 4.2.0-preview.26112.1 -> To Version 4.2.0-preview.26113.4 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 05020e1a3fe6..cd3aebd27633 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26112.1 - 4.2.0-preview.26112.1 + 2.2.0-preview.26113.4 + 4.2.0-preview.26113.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index abd12c91ecf6..b0cf23017a3c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 3d399a0d8cfa0077f46ab2da18b9f08bff475a98 - + https://github.com/microsoft/testfx - 65588671e1dcddd4d1f2229d2d74d2cf2f2d99cc + ccf96ba4397538159d356f5c82530c2ff6f8f352 - + https://github.com/microsoft/testfx - 65588671e1dcddd4d1f2229d2d74d2cf2f2d99cc + ccf96ba4397538159d356f5c82530c2ff6f8f352 https://github.com/dotnet/dotnet From 999a5e9a338794a7665c268e6d19d07de80888a5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 14 Feb 2026 02:03:14 +0000 Subject: [PATCH 063/179] Update dependencies from https://github.com/microsoft/testfx build 20260213.4 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26112.1 -> To Version 2.2.0-preview.26113.4 MSTest From Version 4.2.0-preview.26112.1 -> To Version 4.2.0-preview.26113.4 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index aa6835c00e50..909bf2240798 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -144,8 +144,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26112.1 - 4.2.0-preview.26112.1 + 2.2.0-preview.26113.4 + 4.2.0-preview.26113.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c619dfaf94e0..220d21d3aabe 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -564,13 +564,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - 65588671e1dcddd4d1f2229d2d74d2cf2f2d99cc + ccf96ba4397538159d356f5c82530c2ff6f8f352 - + https://github.com/microsoft/testfx - 65588671e1dcddd4d1f2229d2d74d2cf2f2d99cc + ccf96ba4397538159d356f5c82530c2ff6f8f352 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet From 49148ff779709365a93594b15822af494deee8c4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 15 Feb 2026 02:01:44 +0000 Subject: [PATCH 064/179] Update dependencies from https://github.com/microsoft/testfx build 20260214.4 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26113.4 -> To Version 2.2.0-preview.26114.4 MSTest From Version 4.2.0-preview.26113.4 -> To Version 4.2.0-preview.26114.4 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 5ea85741c857..92dac0e3856d 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -144,8 +144,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26113.4 - 4.2.0-preview.26113.4 + 2.2.0-preview.26114.4 + 4.2.0-preview.26114.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bfad80fdc2fd..2c63035ac384 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -564,13 +564,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - ccf96ba4397538159d356f5c82530c2ff6f8f352 + 405d5788d76c48fbc58db9be1b01a0c73396dd5a - + https://github.com/microsoft/testfx - ccf96ba4397538159d356f5c82530c2ff6f8f352 + 405d5788d76c48fbc58db9be1b01a0c73396dd5a https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet From 4810f76da94db65f9c5bf41eb04ffe3b1861f96d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 15 Feb 2026 02:01:45 +0000 Subject: [PATCH 065/179] Update dependencies from https://github.com/microsoft/testfx build 20260214.4 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26113.4 -> To Version 2.2.0-preview.26114.4 MSTest From Version 4.2.0-preview.26113.4 -> To Version 4.2.0-preview.26114.4 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index cc1592f602cf..393082af9aed 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26113.4 - 4.2.0-preview.26113.4 + 2.2.0-preview.26114.4 + 4.2.0-preview.26114.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 45db9dc8a577..3944390ae18c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/microsoft/testfx - ccf96ba4397538159d356f5c82530c2ff6f8f352 + 405d5788d76c48fbc58db9be1b01a0c73396dd5a - + https://github.com/microsoft/testfx - ccf96ba4397538159d356f5c82530c2ff6f8f352 + 405d5788d76c48fbc58db9be1b01a0c73396dd5a https://github.com/dotnet/dotnet From 302b01c082e1a648dc7e1471651ab6d546909d48 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 17 Feb 2026 02:02:10 +0000 Subject: [PATCH 066/179] Update dependencies from https://github.com/microsoft/testfx build 20260216.3 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26113.4 -> To Version 2.2.0-preview.26116.3 MSTest From Version 4.2.0-preview.26113.4 -> To Version 4.2.0-preview.26116.3 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 393082af9aed..0b396165fc2c 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26114.4 - 4.2.0-preview.26114.4 + 2.2.0-preview.26116.3 + 4.2.0-preview.26116.3 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3944390ae18c..6c746ed248de 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/microsoft/testfx - 405d5788d76c48fbc58db9be1b01a0c73396dd5a + de7a4040998aa64dfe586bead12190e973c3a0f7 - + https://github.com/microsoft/testfx - 405d5788d76c48fbc58db9be1b01a0c73396dd5a + de7a4040998aa64dfe586bead12190e973c3a0f7 https://github.com/dotnet/dotnet From d8ab12fff322af37bdcff6a0228041db03fa6275 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 17 Feb 2026 02:02:29 +0000 Subject: [PATCH 067/179] Update dependencies from https://github.com/microsoft/testfx build 20260216.3 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26113.4 -> To Version 2.2.0-preview.26116.3 MSTest From Version 4.2.0-preview.26113.4 -> To Version 4.2.0-preview.26116.3 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 92dac0e3856d..88d2fe712bdd 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -144,8 +144,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26114.4 - 4.2.0-preview.26114.4 + 2.2.0-preview.26116.3 + 4.2.0-preview.26116.3 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2c63035ac384..6c27a753095f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -564,13 +564,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - 405d5788d76c48fbc58db9be1b01a0c73396dd5a + de7a4040998aa64dfe586bead12190e973c3a0f7 - + https://github.com/microsoft/testfx - 405d5788d76c48fbc58db9be1b01a0c73396dd5a + de7a4040998aa64dfe586bead12190e973c3a0f7 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet From 69503e9af3e4143ba975b7d118814ce8b46536d4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 18 Feb 2026 02:02:51 +0000 Subject: [PATCH 068/179] Update dependencies from https://github.com/microsoft/testfx build 20260217.1 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26113.4 -> To Version 2.2.0-preview.26117.1 MSTest From Version 4.2.0-preview.26113.4 -> To Version 4.2.0-preview.26117.1 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 0b396165fc2c..9a2d5b52b508 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26116.3 - 4.2.0-preview.26116.3 + 2.2.0-preview.26117.1 + 4.2.0-preview.26117.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6c746ed248de..633d06b0a9bd 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 8b73f5aab30c102060a87842741d15b005161478 - + https://github.com/microsoft/testfx - de7a4040998aa64dfe586bead12190e973c3a0f7 + 5a4bebd2dd4e415c71d061cf18ca61ee4fb57403 - + https://github.com/microsoft/testfx - de7a4040998aa64dfe586bead12190e973c3a0f7 + 5a4bebd2dd4e415c71d061cf18ca61ee4fb57403 https://github.com/dotnet/dotnet From 04241c600782b55a3fb5b30cb107a05612a0260c Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 18 Feb 2026 02:03:16 +0000 Subject: [PATCH 069/179] Update dependencies from https://github.com/microsoft/testfx build 20260217.1 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26113.4 -> To Version 2.2.0-preview.26117.1 MSTest From Version 4.2.0-preview.26113.4 -> To Version 4.2.0-preview.26117.1 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 88d2fe712bdd..aa99f94f2c25 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -144,8 +144,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26116.3 - 4.2.0-preview.26116.3 + 2.2.0-preview.26117.1 + 4.2.0-preview.26117.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6c27a753095f..1c041c1ab5c0 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -564,13 +564,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - de7a4040998aa64dfe586bead12190e973c3a0f7 + 5a4bebd2dd4e415c71d061cf18ca61ee4fb57403 - + https://github.com/microsoft/testfx - de7a4040998aa64dfe586bead12190e973c3a0f7 + 5a4bebd2dd4e415c71d061cf18ca61ee4fb57403 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet From a8ad58559ae0c9beb4ec3cecbf9ce08de0ad08f0 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 21:56:32 +0000 Subject: [PATCH 070/179] [release/10.0.1xx] Source code updates from dotnet/dotnet (#53041) [release/10.0.1xx] Source code updates from dotnet/dotnet --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index b0ff951bebca..3b403d177cfd 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index cc1592f602cf..60343a85e399 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26113.109 - 10.0.4-servicing.26113.109 - 10.0.4-servicing.26113.109 - 10.0.4-servicing.26113.109 + 10.0.4-servicing.26116.102 + 10.0.4-servicing.26116.102 + 10.0.4-servicing.26116.102 + 10.0.4-servicing.26116.102 10.0.4 - 10.0.4-servicing.26113.109 + 10.0.4-servicing.26116.102 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26113.109 + 10.0.4-servicing.26116.102 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26113.109 + 10.0.4-servicing.26116.102 10.0.4 - 10.0.4-servicing.26113.109 - 10.0.4-servicing.26113.109 - 10.0.0-preview.26113.109 + 10.0.4-servicing.26116.102 + 10.0.4-servicing.26116.102 + 10.0.0-preview.26116.102 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26113-109 - 7.0.2-rc.11409 + 18.0.11-servicing-26116-102 + 7.0.2-rc.11702 10.0.104 - 5.0.0-2.26113.109 - 5.0.0-2.26113.109 - 5.0.0-2.26113.109 - 5.0.0-2.26113.109 - 5.0.0-2.26113.109 - 5.0.0-2.26113.109 - 5.0.0-2.26113.109 - 10.0.0-preview.26113.109 - 5.0.0-2.26113.109 - 5.0.0-2.26113.109 - 2.0.0-preview.1.26113.109 + 5.0.0-2.26116.102 + 5.0.0-2.26116.102 + 5.0.0-2.26116.102 + 5.0.0-2.26116.102 + 5.0.0-2.26116.102 + 5.0.0-2.26116.102 + 5.0.0-2.26116.102 + 10.0.0-preview.26116.102 + 5.0.0-2.26116.102 + 5.0.0-2.26116.102 + 2.0.0-preview.1.26116.102 2.2.4 - 10.0.0-beta.26113.109 - 10.0.0-beta.26113.109 - 10.0.0-beta.26113.109 - 10.0.0-beta.26113.109 - 10.0.0-beta.26113.109 - 10.0.0-beta.26113.109 + 10.0.0-beta.26116.102 + 10.0.0-beta.26116.102 + 10.0.0-beta.26116.102 + 10.0.0-beta.26116.102 + 10.0.0-beta.26116.102 + 10.0.0-beta.26116.102 10.0.4 10.0.4 - 10.0.4-servicing.26113.109 - 10.0.4-servicing.26113.109 - 10.0.0-beta.26113.109 - 10.0.0-beta.26113.109 + 10.0.4-servicing.26116.102 + 10.0.4-servicing.26116.102 + 10.0.0-beta.26116.102 + 10.0.0-beta.26116.102 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26113.109 + 14.0.104-servicing.26116.102 10.0.4 - 5.0.0-2.26113.109 - 5.0.0-2.26113.109 - 10.0.4-servicing.26113.109 + 5.0.0-2.26116.102 + 5.0.0-2.26116.102 + 10.0.4-servicing.26116.102 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26113.109 - 10.0.4-servicing.26113.109 - 18.0.1-release-26113-109 + 10.0.0-preview.26116.102 + 10.0.4-servicing.26116.102 + 18.0.1-release-26116-102 10.0.4 - 10.0.4-servicing.26113.109 + 10.0.4-servicing.26116.102 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26113.109 + 10.0.104-servicing.26116.102 10.0.104 - 10.0.104-servicing.26113.109 + 10.0.104-servicing.26116.102 10.0.104 10.0.104 - 10.0.104-servicing.26113.109 - 18.0.1-release-26113-109 - 18.0.1-release-26113-109 + 10.0.104-servicing.26116.102 + 18.0.1-release-26116-102 + 18.0.1-release-26116-102 3.2.4 10.0.4 - 10.0.4-servicing.26113.109 + 10.0.4-servicing.26116.102 10.0.4 - 7.0.2-rc.11409 - 7.0.2-rc.11409 - 7.0.2-rc.11409 - 7.0.2-rc.11409 - 7.0.2-rc.11409 - 7.0.2-rc.11409 - 7.0.2-rc.11409 - 7.0.2-rc.11409 - 7.0.2-rc.11409 - 7.0.2-rc.11409 - 7.0.2-rc.11409 - 7.0.2-rc.11409 - 7.0.2-rc.11409 - 7.0.2-rc.11409 - 7.0.2-rc.11409 - 7.0.2-rc.11409 + 7.0.2-rc.11702 + 7.0.2-rc.11702 + 7.0.2-rc.11702 + 7.0.2-rc.11702 + 7.0.2-rc.11702 + 7.0.2-rc.11702 + 7.0.2-rc.11702 + 7.0.2-rc.11702 + 7.0.2-rc.11702 + 7.0.2-rc.11702 + 7.0.2-rc.11702 + 7.0.2-rc.11702 + 7.0.2-rc.11702 + 7.0.2-rc.11702 + 7.0.2-rc.11702 + 7.0.2-rc.11702 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 45db9dc8a577..b716d8e9ad73 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 8b73f5aab30c102060a87842741d15b005161478 + e5afbc9f42eb468631c8a5880b359ee28f6bf70f diff --git a/global.json b/global.json index 466b21ee63c5..b388d4a65d1c 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26113.109", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26113.109", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26116.102", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26116.102", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 5a9be96aeff9ad09e286b98352ed4420581ed8ce Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 22:01:15 +0000 Subject: [PATCH 071/179] [release/10.0.2xx] Source code updates from dotnet/dotnet (#53069) [release/10.0.2xx] Source code updates from dotnet/dotnet --- eng/Version.Details.props | 122 +++++++++---------- eng/Version.Details.xml | 246 +++++++++++++++++++------------------- global.json | 4 +- 3 files changed, 186 insertions(+), 186 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index aa99f94f2c25..221abd4ebda7 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,68 +6,68 @@ This file should be imported by eng/Versions.props - 10.0.0-preview.26113.113 - 18.3.0-release-26113-113 - 18.3.0-release-26113-113 - 7.3.0-preview.1.11413 - 10.0.200-alpha.26113.113 - 5.3.0-2.26113.113 - 5.3.0-2.26113.113 - 5.3.0-2.26113.113 - 5.3.0-2.26113.113 - 5.3.0-2.26113.113 - 5.3.0-2.26113.113 - 5.3.0-2.26113.113 - 5.3.0-2.26113.113 - 10.0.0-preview.26113.113 - 5.3.0-2.26113.113 - 5.3.0-2.26113.113 - 10.0.0-beta.26113.113 - 10.0.0-beta.26113.113 - 10.0.0-beta.26113.113 - 10.0.0-beta.26113.113 - 10.0.0-beta.26113.113 - 10.0.0-beta.26113.113 - 10.0.0-beta.26113.113 - 10.0.0-beta.26113.113 - 15.2.100-preview2.26113.113 - 5.3.0-2.26113.113 - 5.3.0-2.26113.113 + 10.0.0-preview.26118.103 + 18.3.0-release-26118-103 + 18.3.0-release-26118-103 + 7.3.0-preview.1.11903 + 10.0.200-alpha.26118.103 + 5.3.0-2.26118.103 + 5.3.0-2.26118.103 + 5.3.0-2.26118.103 + 5.3.0-2.26118.103 + 5.3.0-2.26118.103 + 5.3.0-2.26118.103 + 5.3.0-2.26118.103 + 5.3.0-2.26118.103 + 10.0.0-preview.26118.103 + 5.3.0-2.26118.103 + 5.3.0-2.26118.103 + 10.0.0-beta.26118.103 + 10.0.0-beta.26118.103 + 10.0.0-beta.26118.103 + 10.0.0-beta.26118.103 + 10.0.0-beta.26118.103 + 10.0.0-beta.26118.103 + 10.0.0-beta.26118.103 + 10.0.0-beta.26118.103 + 15.2.100-preview2.26118.103 + 5.3.0-2.26118.103 + 5.3.0-2.26118.103 10.0.0-preview.7.25377.103 - 10.0.0-preview.26113.113 - 18.3.0-release-26113-113 - 10.0.200-alpha.26113.113 - 10.0.200-alpha.26113.113 - 10.0.200-alpha.26113.113 - 10.0.200-alpha.26113.113 - 10.0.200-alpha.26113.113 - 10.0.200-preview.26113.113 - 10.0.200-preview.26113.113 - 10.0.200-preview.26113.113 - 10.0.200-preview.26113.113 - 10.0.200-preview.26113.113 - 10.0.200-preview.26113.113 - 10.0.200-preview.26113.113 - 10.0.200-preview.26113.113 - 10.0.200-preview.26113.113 - 18.3.0-release-26113-113 - 18.3.0-release-26113-113 - 7.3.0-preview.1.11413 - 7.3.0-preview.1.11413 - 7.3.0-preview.1.11413 - 7.3.0-preview.1.11413 - 7.3.0-preview.1.11413 - 7.3.0-preview.1.11413 - 7.3.0-preview.1.11413 - 7.3.0-preview.1.11413 - 7.3.0-preview.1.11413 - 7.3.0-preview.1.11413 - 7.3.0-preview.1.11413 - 7.3.0-preview.1.11413 - 7.3.0-preview.1.11413 - 7.3.0-preview.1.11413 - 7.3.0-preview.1.11413 - 7.3.0-preview.1.11413 + 10.0.0-preview.26118.103 + 18.3.0-release-26118-103 + 10.0.200-alpha.26118.103 + 10.0.200-alpha.26118.103 + 10.0.200-alpha.26118.103 + 10.0.200-alpha.26118.103 + 10.0.200-alpha.26118.103 + 10.0.200-preview.26118.103 + 10.0.200-preview.26118.103 + 10.0.200-preview.26118.103 + 10.0.200-preview.26118.103 + 10.0.200-preview.26118.103 + 10.0.200-preview.26118.103 + 10.0.200-preview.26118.103 + 10.0.200-preview.26118.103 + 10.0.200-preview.26118.103 + 18.3.0-release-26118-103 + 18.3.0-release-26118-103 + 7.3.0-preview.1.11903 + 7.3.0-preview.1.11903 + 7.3.0-preview.1.11903 + 7.3.0-preview.1.11903 + 7.3.0-preview.1.11903 + 7.3.0-preview.1.11903 + 7.3.0-preview.1.11903 + 7.3.0-preview.1.11903 + 7.3.0-preview.1.11903 + 7.3.0-preview.1.11903 + 7.3.0-preview.1.11903 + 7.3.0-preview.1.11903 + 7.3.0-preview.1.11903 + 7.3.0-preview.1.11903 + 7.3.0-preview.1.11903 + 7.3.0-preview.1.11903 10.0.2-servicing.25612.105 10.0.2-servicing.25612.105 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1c041c1ab5c0..ca8e3a2eb601 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,42 +1,42 @@ - + - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -72,138 +72,138 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -370,25 +370,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -405,29 +405,29 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d @@ -514,9 +514,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -528,37 +528,37 @@ - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d - + https://github.com/dotnet/dotnet - 05d9490471fb4b10d7ef4faa32c423e1b5adcaee + e9113012bbe92427b4c9620f55eb194cee85bf2d https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet diff --git a/global.json b/global.json index 7979cffaeec4..d4c6b80c551b 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26113.113", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26113.113", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26118.103", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26118.103", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From a62da22670f359109237915824745dc9d7040ee9 Mon Sep 17 00:00:00 2001 From: "Matt Mitchell (.NET)" Date: Fri, 13 Feb 2026 07:16:51 -0800 Subject: [PATCH 072/179] Backflow VMR 301743 --- eng/Version.Details.props | 124 ++++----- eng/Version.Details.xml | 246 +++++++++--------- eng/Versions.props | 12 +- .../job/publish-build-assets.yml | 2 +- .../core-templates/job/source-build.yml | 8 +- .../core-templates/post-build/post-build.yml | 4 +- .../templates/variables/pool-providers.yml | 2 +- eng/common/tools.ps1 | 13 +- global.json | 4 +- src/Workloads/Manifests/Directory.Build.props | 4 +- 10 files changed, 210 insertions(+), 209 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index a056dd5cfce8..a606d2b900c7 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,68 +6,68 @@ This file should be imported by eng/Versions.props - 10.0.0-preview.26103.116 - 18.3.0-preview-26103-116 - 18.3.0-preview-26103-116 - 7.4.0-rc.10416 - 10.0.300-alpha.26103.116 - 5.5.0-2.26103.116 - 5.5.0-2.26103.116 - 5.5.0-2.26103.116 - 5.5.0-2.26103.116 - 5.5.0-2.26103.116 - 5.5.0-2.26103.116 - 5.5.0-2.26103.116 - 5.5.0-2.26103.116 - 10.0.0-preview.26103.116 - 5.5.0-2.26103.116 - 5.5.0-2.26103.116 - 10.0.0-beta.26103.116 - 10.0.0-beta.26103.116 - 10.0.0-beta.26103.116 - 10.0.0-beta.26103.116 - 10.0.0-beta.26103.116 - 10.0.0-beta.26103.116 - 10.0.0-beta.26103.116 - 10.0.0-beta.26103.116 - 15.2.300-servicing.26103.116 - 5.5.0-2.26103.116 - 5.5.0-2.26103.116 + 10.0.0-preview.26113.102 + 18.3.0-preview-26113-102 + 18.3.0-preview-26113-102 + 7.5.0-rc.11402 + 10.0.300-alpha.26113.102 + 5.5.0-2.26113.102 + 5.5.0-2.26113.102 + 5.5.0-2.26113.102 + 5.5.0-2.26113.102 + 5.5.0-2.26113.102 + 5.5.0-2.26113.102 + 5.5.0-2.26113.102 + 5.5.0-2.26113.102 + 10.0.0-preview.26113.102 + 5.5.0-2.26113.102 + 5.5.0-2.26113.102 + 10.0.0-beta.26113.102 + 10.0.0-beta.26113.102 + 10.0.0-beta.26113.102 + 10.0.0-beta.26113.102 + 10.0.0-beta.26113.102 + 10.0.0-beta.26113.102 + 10.0.0-beta.26113.102 + 10.0.0-beta.26113.102 + 15.2.300-servicing.26113.102 + 5.5.0-2.26113.102 + 5.5.0-2.26113.102 10.0.0-preview.7.25377.103 - 10.0.0-preview.26103.116 - 18.3.0-release-26103-116 - 10.0.300-alpha.26103.116 - 10.0.300-alpha.26103.116 - 10.0.300-alpha.26103.116 - 10.0.300-alpha.26103.116 - 10.0.300-alpha.26103.116 - 10.0.200-preview.26103.116 - 10.0.200-preview.26103.116 - 10.0.200-preview.26103.116 - 10.0.200-preview.26103.116 - 10.0.200-preview.26103.116 - 10.0.200-preview.26103.116 - 10.0.200-preview.26103.116 - 10.0.200-preview.26103.116 - 10.0.200-preview.26103.116 - 18.3.0-release-26103-116 - 18.3.0-release-26103-116 - 7.4.0-rc.10416 - 7.4.0-rc.10416 - 7.4.0-rc.10416 - 7.4.0-rc.10416 - 7.4.0-rc.10416 - 7.4.0-rc.10416 - 7.4.0-rc.10416 - 7.4.0-rc.10416 - 7.4.0-rc.10416 - 7.4.0-rc.10416 - 7.4.0-rc.10416 - 7.4.0-rc.10416 - 7.4.0-rc.10416 - 7.4.0-rc.10416 - 7.4.0-rc.10416 - 7.4.0-rc.10416 + 10.0.0-preview.26113.102 + 18.3.0-release-26113-102 + 10.0.300-alpha.26113.102 + 10.0.300-alpha.26113.102 + 10.0.300-alpha.26113.102 + 10.0.300-alpha.26113.102 + 10.0.300-alpha.26113.102 + 10.0.300-preview.26113.102 + 10.0.300-preview.26113.102 + 10.0.300-preview.26113.102 + 10.0.300-preview.26113.102 + 10.0.300-preview.26113.102 + 10.0.300-preview.26113.102 + 10.0.300-preview.26113.102 + 10.0.300-preview.26113.102 + 10.0.300-preview.26113.102 + 18.3.0-release-26113-102 + 18.3.0-release-26113-102 + 7.5.0-rc.11402 + 7.5.0-rc.11402 + 7.5.0-rc.11402 + 7.5.0-rc.11402 + 7.5.0-rc.11402 + 7.5.0-rc.11402 + 7.5.0-rc.11402 + 7.5.0-rc.11402 + 7.5.0-rc.11402 + 7.5.0-rc.11402 + 7.5.0-rc.11402 + 7.5.0-rc.11402 + 7.5.0-rc.11402 + 7.5.0-rc.11402 + 7.5.0-rc.11402 + 7.5.0-rc.11402 10.0.2-servicing.25612.105 10.0.2-servicing.25612.105 @@ -99,7 +99,7 @@ This file should be imported by eng/Versions.props 10.0.2 10.0.2-servicing.25612.105 10.0.2 - 10.0.2 + 10.0.1 10.0.2 10.0.2 10.0.2 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c85ec7c9ebaa..44cfa4c8bf6e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,42 +1,42 @@ - + - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -72,138 +72,138 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -370,25 +370,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -405,29 +405,29 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f @@ -519,9 +519,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -529,37 +529,37 @@ - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f - + https://github.com/dotnet/dotnet - 9477b510bb25fc69515d2ab188af3b72799929ac + 262dff34a707ed423ac562a418fd84cb79d5f13f https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet diff --git a/eng/Versions.props b/eng/Versions.props index 093ff5b6a0b7..f6f97d4b41d9 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -19,11 +19,8 @@ false release - - preview - rtm - servicing - 0 + preview + @@ -46,11 +43,6 @@ $(VersionFeature80) $(VersionFeature90) - - - https://ci.dot.net/public/ - https://dotnetclimsrc.blob.core.windows.net/dotnet/ - 1.0.0-20230414.1 2.23.0 diff --git a/eng/common/core-templates/job/publish-build-assets.yml b/eng/common/core-templates/job/publish-build-assets.yml index 3437087c80fc..b955fac6e13f 100644 --- a/eng/common/core-templates/job/publish-build-assets.yml +++ b/eng/common/core-templates/job/publish-build-assets.yml @@ -80,7 +80,7 @@ jobs: # If it's not devdiv, it's dnceng ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: name: NetCore1ESPool-Publishing-Internal - image: windows.vs2019.amd64 + image: windows.vs2022.amd64 os: windows steps: - ${{ if eq(parameters.is1ESPipeline, '') }}: diff --git a/eng/common/core-templates/job/source-build.yml b/eng/common/core-templates/job/source-build.yml index d805d5faeb94..1997c2ae00d7 100644 --- a/eng/common/core-templates/job/source-build.yml +++ b/eng/common/core-templates/job/source-build.yml @@ -60,19 +60,19 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] - demands: ImageOverride -equals build.ubuntu.2004.amd64 + demands: ImageOverride -equals build.azurelinux.3.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] - image: 1es-mariner-2 + image: build.azurelinux.3.amd64 os: linux ${{ else }}: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] - demands: ImageOverride -equals Build.Ubuntu.2204.Amd64.Open + demands: ImageOverride -equals build.azurelinux.3.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] - demands: ImageOverride -equals Build.Ubuntu.2204.Amd64 + demands: ImageOverride -equals build.azurelinux.3.amd64 ${{ if ne(parameters.platform.pool, '') }}: pool: ${{ parameters.platform.pool }} diff --git a/eng/common/core-templates/post-build/post-build.yml b/eng/common/core-templates/post-build/post-build.yml index 9423d71ca3a2..b942a79ef02d 100644 --- a/eng/common/core-templates/post-build/post-build.yml +++ b/eng/common/core-templates/post-build/post-build.yml @@ -293,11 +293,11 @@ stages: ${{ else }}: ${{ if eq(parameters.is1ESPipeline, true) }}: name: NetCore1ESPool-Publishing-Internal - image: windows.vs2019.amd64 + image: windows.vs2022.amd64 os: windows ${{ else }}: name: NetCore1ESPool-Publishing-Internal - demands: ImageOverride -equals windows.vs2019.amd64 + demands: ImageOverride -equals windows.vs2022.amd64 steps: - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml parameters: diff --git a/eng/common/templates/variables/pool-providers.yml b/eng/common/templates/variables/pool-providers.yml index e0b19c14a073..18693ea120d5 100644 --- a/eng/common/templates/variables/pool-providers.yml +++ b/eng/common/templates/variables/pool-providers.yml @@ -23,7 +23,7 @@ # # pool: # name: $(DncEngInternalBuildPool) -# demands: ImageOverride -equals windows.vs2019.amd64 +# demands: ImageOverride -equals windows.vs2022.amd64 variables: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - template: /eng/common/templates-official/variables/pool-providers.yml diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index bef4affa4a41..049fe6db994e 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -560,19 +560,26 @@ function LocateVisualStudio([object]$vsRequirements = $null){ }) } - if (!$vsRequirements) { $vsRequirements = $GlobalJson.tools.vs } + if (!$vsRequirements) { + if (Get-Member -InputObject $GlobalJson.tools -Name 'vs' -ErrorAction SilentlyContinue) { + $vsRequirements = $GlobalJson.tools.vs + } else { + $vsRequirements = $null + } + } + $args = @('-latest', '-format', 'json', '-requires', 'Microsoft.Component.MSBuild', '-products', '*') if (!$excludePrereleaseVS) { $args += '-prerelease' } - if (Get-Member -InputObject $vsRequirements -Name 'version') { + if ($vsRequirements -and (Get-Member -InputObject $vsRequirements -Name 'version' -ErrorAction SilentlyContinue)) { $args += '-version' $args += $vsRequirements.version } - if (Get-Member -InputObject $vsRequirements -Name 'components') { + if ($vsRequirements -and (Get-Member -InputObject $vsRequirements -Name 'components' -ErrorAction SilentlyContinue)) { foreach ($component in $vsRequirements.components) { $args += '-requires' $args += $component diff --git a/global.json b/global.json index ecba0c109058..e0837b5f987d 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26103.116", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26103.116", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26113.102", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26113.102", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" diff --git a/src/Workloads/Manifests/Directory.Build.props b/src/Workloads/Manifests/Directory.Build.props index ecaa525cfa5a..a1a6841eb410 100644 --- a/src/Workloads/Manifests/Directory.Build.props +++ b/src/Workloads/Manifests/Directory.Build.props @@ -18,7 +18,9 @@ <_workloadVersionSuffix Condition="'$(DotNetFinalVersionKind)' != 'release' and '$(PrereleaseVersionLabel)' != 'rtm' and - '$(PrereleaseVersionLabel)' != 'servicing'">-$(PreReleaseVersionLabel).$(PreReleaseVersionIteration) + '$(PrereleaseVersionLabel)' != 'servicing'">-$(PreReleaseVersionLabel) + + <_workloadVersionSuffix Condition="'$(_workloadVersionSuffix)' != '' and '$(PrereleaseVersionIteration)' != ''">$(_workloadVersionSuffix).$(PrereleaseVersionIteration) $(MSBuildProjectName)-$(BuiltinWorkloadFeatureBand)$(_workloadVersionSuffix) Microsoft.NET.Workload.Emscripten.Current.Manifest-$(BuiltinWorkloadFeatureBand).Transport From b847c3d38a3220c3e45e972c55fd59d0ce33aec3 Mon Sep 17 00:00:00 2001 From: Tomas Matousek Date: Tue, 17 Feb 2026 09:45:32 -0800 Subject: [PATCH 073/179] Fix version --- eng/Version.Details.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index a606d2b900c7..490480a5f416 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -99,7 +99,7 @@ This file should be imported by eng/Versions.props 10.0.2 10.0.2-servicing.25612.105 10.0.2 - 10.0.1 + 10.0.2 10.0.2 10.0.2 10.0.2 From 27a78968611d2f829fdc45ab49e4b362fe3cb329 Mon Sep 17 00:00:00 2001 From: Tomas Matousek Date: Tue, 17 Feb 2026 09:52:34 -0800 Subject: [PATCH 074/179] Update version.details.xml --- eng/Version.Details.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 44cfa4c8bf6e..8c47c11bdf60 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -440,7 +440,7 @@ 44525024595742ebe09023abe709df51de65009b - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet fad253f51b461736dfd3cd9c15977bb7493becef From 1392e4f7bb409c01f1905d46484a9d7da178c7bc Mon Sep 17 00:00:00 2001 From: Noah Gilson Date: Thu, 12 Feb 2026 16:58:32 -0800 Subject: [PATCH 075/179] pin lockfile for dotnet tools to v3, reject v4 NuGet 7.5.0-rc.11209 defaults to writing version 4 lock files, but its own reader can't parse that version back, v4 uses a target alias instead of a rid inclusive targets key cc @dsplaisted for awareness of code change in codeflow --- src/Cli/dotnet/ToolPackage/ToolPackageDownloader.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Cli/dotnet/ToolPackage/ToolPackageDownloader.cs b/src/Cli/dotnet/ToolPackage/ToolPackageDownloader.cs index 4ed187cc92dc..c64013f02e5a 100644 --- a/src/Cli/dotnet/ToolPackage/ToolPackageDownloader.cs +++ b/src/Cli/dotnet/ToolPackage/ToolPackageDownloader.cs @@ -187,7 +187,9 @@ protected override void CreateAssetFile( AddToolsAssets(conventions, lockFileLib, collection, managedCriteria); } - var lockFile = new LockFile(); + // Use legacy lock file format (v3) because this synthetic assets file uses framework-based target keys, + // not the alias-based keys required by the v4 format (https://github.com/NuGet/NuGet.Client/pull/6972). + var lockFile = new LockFile() { Version = 3 }; var lockFileTarget = new LockFileTarget() { TargetFramework = currentTargetFramework, From 469a29d1bb5810fabfb9a29b1db2ca5b5e799e37 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 19 Feb 2026 02:02:28 +0000 Subject: [PATCH 076/179] Update dependencies from https://github.com/microsoft/testfx build 20260218.4 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26117.1 -> To Version 2.2.0-preview.26118.4 MSTest From Version 4.2.0-preview.26117.1 -> To Version 4.2.0-preview.26118.4 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 4928022fc294..d7a247807bc4 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26117.1 - 4.2.0-preview.26117.1 + 2.2.0-preview.26118.4 + 4.2.0-preview.26118.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 50c2974e8ab5..a86217a59571 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet e5afbc9f42eb468631c8a5880b359ee28f6bf70f - + https://github.com/microsoft/testfx - 5a4bebd2dd4e415c71d061cf18ca61ee4fb57403 + 9208585003599ef9cc5d59f1ed9f7a95ea157c97 - + https://github.com/microsoft/testfx - 5a4bebd2dd4e415c71d061cf18ca61ee4fb57403 + 9208585003599ef9cc5d59f1ed9f7a95ea157c97 https://github.com/dotnet/dotnet From 18c1553c8976ee9185cfa33b691c87c8eeba0cb7 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 19 Feb 2026 02:02:40 +0000 Subject: [PATCH 077/179] Update dependencies from https://github.com/microsoft/testfx build 20260218.4 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26117.1 -> To Version 2.2.0-preview.26118.4 MSTest From Version 4.2.0-preview.26117.1 -> To Version 4.2.0-preview.26118.4 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 221abd4ebda7..42b5ec8aa0a0 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -144,8 +144,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26117.1 - 4.2.0-preview.26117.1 + 2.2.0-preview.26118.4 + 4.2.0-preview.26118.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ca8e3a2eb601..9bc4c3a5a537 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -564,13 +564,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - 5a4bebd2dd4e415c71d061cf18ca61ee4fb57403 + 9208585003599ef9cc5d59f1ed9f7a95ea157c97 - + https://github.com/microsoft/testfx - 5a4bebd2dd4e415c71d061cf18ca61ee4fb57403 + 9208585003599ef9cc5d59f1ed9f7a95ea157c97 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet From a03f09fccb5d7e066cdc6bd3b851eed9b4a63e60 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 19 Feb 2026 02:21:17 +0000 Subject: [PATCH 078/179] Update dependencies from build 302411 On relative base path root dotnet-dev-certs,dotnet-user-jwts,dotnet-user-secrets,Microsoft.AspNetCore.Analyzers,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.Components.SdkAnalyzers,Microsoft.AspNetCore.DeveloperCertificates.XPlat,Microsoft.AspNetCore.Mvc.Analyzers,Microsoft.AspNetCore.Mvc.Api.Analyzers,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates,Microsoft.NET.HostModel,Microsoft.NET.Sdk.WindowsDesktop,Microsoft.NETCore.Platforms,Microsoft.WindowsDesktop.App.Internal From Version 10.0.4-servicing.26116.102 -> To Version 10.0.4-servicing.26118.114 (parent: ) Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.Authentication.Facebook,Microsoft.AspNetCore.Authentication.Google,Microsoft.AspNetCore.Authentication.MicrosoftAccount,Microsoft.AspNetCore.Authorization,Microsoft.AspNetCore.Components,Microsoft.AspNetCore.Components.Analyzers,Microsoft.AspNetCore.Components.Forms,Microsoft.AspNetCore.Components.Web,Microsoft.AspNetCore.Components.WebAssembly,Microsoft.AspNetCore.Components.WebAssembly.Server,Microsoft.AspNetCore.Components.WebView,Microsoft.AspNetCore.Metadata,Microsoft.AspNetCore.TestHost,Microsoft.Bcl.AsyncInterfaces,Microsoft.DotNet.Web.ItemTemplates.10.0,Microsoft.DotNet.Web.ProjectTemplates.10.0,Microsoft.Extensions.Configuration.Ini,Microsoft.Extensions.DependencyModel,Microsoft.Extensions.FileProviders.Abstractions,Microsoft.Extensions.FileProviders.Embedded,Microsoft.Extensions.FileSystemGlobbing,Microsoft.Extensions.Logging,Microsoft.Extensions.Logging.Abstractions,Microsoft.Extensions.Logging.Console,Microsoft.Extensions.ObjectPool,Microsoft.JSInterop,Microsoft.NET.ILLink.Tasks,Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64,Microsoft.NETCore.App.Ref,Microsoft.Win32.SystemEvents,Microsoft.WindowsDesktop.App.Ref,System.CodeDom,System.ComponentModel.Composition,System.Composition.AttributedModel,System.Composition.Convention,System.Composition.Hosting,System.Composition.Runtime,System.Composition.TypedParts,System.Configuration.ConfigurationManager,System.Diagnostics.DiagnosticSource,System.Formats.Asn1,System.IO.Hashing,System.Reflection.MetadataLoadContext,System.Resources.Extensions,System.Security.Cryptography.Pkcs,System.Security.Cryptography.ProtectedData,System.Security.Cryptography.Xml,System.Security.Permissions,System.ServiceProcess.ServiceController,System.Text.Encoding.CodePages,System.Text.Json,System.Windows.Extensions From Version 10.0.4 -> To Version 10.0.4 (parent: ) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal,Microsoft.CodeAnalysis.Razor.Tooling.Internal,Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 10.0.0-preview.26116.102 -> To Version 10.0.0-preview.26118.114 (parent: ) Microsoft.Build From Version 18.0.11 -> To Version 18.0.11 (parent: ) Microsoft.Build.Localization From Version 18.0.11-servicing-26116-102 -> To Version 18.0.11-servicing-26118-114 (parent: ) Microsoft.Build.NuGetSdkResolver,NuGet.Build.Tasks,NuGet.Build.Tasks.Console,NuGet.Build.Tasks.Pack,NuGet.CommandLine.XPlat,NuGet.Commands,NuGet.Common,NuGet.Configuration,NuGet.Credentials,NuGet.DependencyResolver.Core,NuGet.Frameworks,NuGet.LibraryModel,NuGet.Localization,NuGet.Packaging,NuGet.ProjectModel,NuGet.Protocol,NuGet.Versioning From Version 7.0.2-rc.11702 -> To Version 7.0.2-rc.11914 (parent: ) Microsoft.Build.Tasks.Git,Microsoft.SourceLink.AzureRepos.Git,Microsoft.SourceLink.Bitbucket.Git,Microsoft.SourceLink.Common,Microsoft.SourceLink.GitHub,Microsoft.SourceLink.GitLab,Microsoft.TemplateEngine.Abstractions,Microsoft.TemplateEngine.Authoring.TemplateVerifier,Microsoft.TemplateEngine.Edge,Microsoft.TemplateEngine.Orchestrator.RunnableProjects,Microsoft.TemplateEngine.Utils,Microsoft.TemplateSearch.Common From Version 10.0.104 -> To Version 10.0.104 (parent: ) Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.BuildClient,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.CSharp.CodeStyle,Microsoft.CodeAnalysis.CSharp.Features,Microsoft.CodeAnalysis.CSharp.Workspaces,Microsoft.CodeAnalysis.PublicApiAnalyzers,Microsoft.CodeAnalysis.Workspaces.Common,Microsoft.CodeAnalysis.Workspaces.MSBuild,Microsoft.Net.Compilers.Toolset,Microsoft.Net.Compilers.Toolset.Framework From Version 5.0.0-2.26116.102 -> To Version 5.0.0-2.26118.114 (parent: ) Microsoft.Deployment.DotNet.Releases From Version 2.0.0-preview.1.26116.102 -> To Version 2.0.0-preview.1.26118.114 (parent: ) Microsoft.DiaSymReader From Version 2.2.4 -> To Version 2.2.4 (parent: ) Microsoft.DotNet.Arcade.Sdk,Microsoft.DotNet.Build.Tasks.Installers,Microsoft.DotNet.Build.Tasks.Templating,Microsoft.DotNet.Build.Tasks.Workloads,Microsoft.DotNet.Helix.Sdk,Microsoft.DotNet.SignTool,Microsoft.DotNet.XliffTasks,Microsoft.DotNet.XUnitExtensions From Version 10.0.0-beta.26116.102 -> To Version 10.0.0-beta.26118.114 (parent: ) Microsoft.FSharp.Compiler From Version 14.0.104-servicing.26116.102 -> To Version 14.0.104-servicing.26118.114 (parent: ) Microsoft.NET.Test.Sdk,Microsoft.TestPlatform.Build,Microsoft.TestPlatform.CLI From Version 18.0.1-release-26116-102 -> To Version 18.0.1-release-26118-114 (parent: ) Microsoft.TemplateEngine.Mocks,Microsoft.TemplateEngine.TestHelper,Microsoft.TemplateSearch.TemplateDiscovery From Version 10.0.104-servicing.26116.102 -> To Version 10.0.104-servicing.26118.114 (parent: ) Microsoft.Web.Xdt From Version 3.2.4 -> To Version 3.2.4 (parent: ) System.CommandLine From Version 2.0.4 -> To Version 2.0.4 (parent: ) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index 3b403d177cfd..e14ca2361617 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 4928022fc294..ff079c5eabdf 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26116.102 - 10.0.4-servicing.26116.102 - 10.0.4-servicing.26116.102 - 10.0.4-servicing.26116.102 + 10.0.4-servicing.26118.114 + 10.0.4-servicing.26118.114 + 10.0.4-servicing.26118.114 + 10.0.4-servicing.26118.114 10.0.4 - 10.0.4-servicing.26116.102 + 10.0.4-servicing.26118.114 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26116.102 + 10.0.4-servicing.26118.114 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26116.102 + 10.0.4-servicing.26118.114 10.0.4 - 10.0.4-servicing.26116.102 - 10.0.4-servicing.26116.102 - 10.0.0-preview.26116.102 + 10.0.4-servicing.26118.114 + 10.0.4-servicing.26118.114 + 10.0.0-preview.26118.114 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26116-102 - 7.0.2-rc.11702 + 18.0.11-servicing-26118-114 + 7.0.2-rc.11914 10.0.104 - 5.0.0-2.26116.102 - 5.0.0-2.26116.102 - 5.0.0-2.26116.102 - 5.0.0-2.26116.102 - 5.0.0-2.26116.102 - 5.0.0-2.26116.102 - 5.0.0-2.26116.102 - 10.0.0-preview.26116.102 - 5.0.0-2.26116.102 - 5.0.0-2.26116.102 - 2.0.0-preview.1.26116.102 + 5.0.0-2.26118.114 + 5.0.0-2.26118.114 + 5.0.0-2.26118.114 + 5.0.0-2.26118.114 + 5.0.0-2.26118.114 + 5.0.0-2.26118.114 + 5.0.0-2.26118.114 + 10.0.0-preview.26118.114 + 5.0.0-2.26118.114 + 5.0.0-2.26118.114 + 2.0.0-preview.1.26118.114 2.2.4 - 10.0.0-beta.26116.102 - 10.0.0-beta.26116.102 - 10.0.0-beta.26116.102 - 10.0.0-beta.26116.102 - 10.0.0-beta.26116.102 - 10.0.0-beta.26116.102 + 10.0.0-beta.26118.114 + 10.0.0-beta.26118.114 + 10.0.0-beta.26118.114 + 10.0.0-beta.26118.114 + 10.0.0-beta.26118.114 + 10.0.0-beta.26118.114 10.0.4 10.0.4 - 10.0.4-servicing.26116.102 - 10.0.4-servicing.26116.102 - 10.0.0-beta.26116.102 - 10.0.0-beta.26116.102 + 10.0.4-servicing.26118.114 + 10.0.4-servicing.26118.114 + 10.0.0-beta.26118.114 + 10.0.0-beta.26118.114 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26116.102 + 14.0.104-servicing.26118.114 10.0.4 - 5.0.0-2.26116.102 - 5.0.0-2.26116.102 - 10.0.4-servicing.26116.102 + 5.0.0-2.26118.114 + 5.0.0-2.26118.114 + 10.0.4-servicing.26118.114 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26116.102 - 10.0.4-servicing.26116.102 - 18.0.1-release-26116-102 + 10.0.0-preview.26118.114 + 10.0.4-servicing.26118.114 + 18.0.1-release-26118-114 10.0.4 - 10.0.4-servicing.26116.102 + 10.0.4-servicing.26118.114 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26116.102 + 10.0.104-servicing.26118.114 10.0.104 - 10.0.104-servicing.26116.102 + 10.0.104-servicing.26118.114 10.0.104 10.0.104 - 10.0.104-servicing.26116.102 - 18.0.1-release-26116-102 - 18.0.1-release-26116-102 + 10.0.104-servicing.26118.114 + 18.0.1-release-26118-114 + 18.0.1-release-26118-114 3.2.4 10.0.4 - 10.0.4-servicing.26116.102 + 10.0.4-servicing.26118.114 10.0.4 - 7.0.2-rc.11702 - 7.0.2-rc.11702 - 7.0.2-rc.11702 - 7.0.2-rc.11702 - 7.0.2-rc.11702 - 7.0.2-rc.11702 - 7.0.2-rc.11702 - 7.0.2-rc.11702 - 7.0.2-rc.11702 - 7.0.2-rc.11702 - 7.0.2-rc.11702 - 7.0.2-rc.11702 - 7.0.2-rc.11702 - 7.0.2-rc.11702 - 7.0.2-rc.11702 - 7.0.2-rc.11702 + 7.0.2-rc.11914 + 7.0.2-rc.11914 + 7.0.2-rc.11914 + 7.0.2-rc.11914 + 7.0.2-rc.11914 + 7.0.2-rc.11914 + 7.0.2-rc.11914 + 7.0.2-rc.11914 + 7.0.2-rc.11914 + 7.0.2-rc.11914 + 7.0.2-rc.11914 + 7.0.2-rc.11914 + 7.0.2-rc.11914 + 7.0.2-rc.11914 + 7.0.2-rc.11914 + 7.0.2-rc.11914 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 50c2974e8ab5..6fa5de0a2451 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 - + https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - e5afbc9f42eb468631c8a5880b359ee28f6bf70f + 559fd01345849ea0a72d56197a94e9186e2ed4b0 diff --git a/global.json b/global.json index b388d4a65d1c..805793bda178 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26116.102", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26116.102", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26118.114", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26118.114", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From b5a4051f44b3246ce27dd11e2e497d06987b35d0 Mon Sep 17 00:00:00 2001 From: YuliiaKovalova <95473390+YuliiaKovalova@users.noreply.github.com> Date: Thu, 19 Feb 2026 10:58:59 +0100 Subject: [PATCH 079/179] Consolidate duplicate VSHostObject implementations (#53028) --- .../VSHostObject.cs | 44 +++++++++---- .../Microsoft.NET.Build.Containers.csproj | 5 +- .../Tasks/CreateNewImage.cs | 1 + .../Tasks/CreateNewImageToolTask.cs | 1 + .../Microsoft.NET.Sdk.Publish.Tasks.csproj | 1 + .../Publish/Tasks/MsDeploy/VSHostObject.cs | 62 ------------------- .../Tasks/Tasks/MsDeploy/VsMsdeploy.cs | 25 ++++++-- .../Tasks/Tasks/OneDeploy/OneDeploy.cs | 16 ++++- .../Tasks/Tasks/ZipDeploy/ZipDeploy.cs | 17 ++++- 9 files changed, 85 insertions(+), 87 deletions(-) rename src/{Containers/Microsoft.NET.Build.Containers => Common}/VSHostObject.cs (75%) delete mode 100644 src/WebSdk/Publish/Tasks/MsDeploy/VSHostObject.cs diff --git a/src/Containers/Microsoft.NET.Build.Containers/VSHostObject.cs b/src/Common/VSHostObject.cs similarity index 75% rename from src/Containers/Microsoft.NET.Build.Containers/VSHostObject.cs rename to src/Common/VSHostObject.cs index 89ea5b16ceae..b7b343690312 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/VSHostObject.cs +++ b/src/Common/VSHostObject.cs @@ -6,8 +6,13 @@ using Microsoft.Build.Framework; using Microsoft.Build.Utilities; -namespace Microsoft.NET.Build.Containers.Tasks; +namespace Microsoft.NET.Sdk.Common; +/// +/// Extracts task items and credentials from a Visual Studio host object. +/// Supports both the JSON-based QueryAllTaskItems protocol and the legacy +/// interface. +/// internal sealed class VSHostObject(ITaskHost? hostObject, TaskLoggingHelper log) { private const string CredentialItemSpecName = "MsDeployCredential"; @@ -51,7 +56,11 @@ internal sealed class VSHostObject(ITaskHost? hostObject, TaskLoggingHelper log) return (username, password); } - private IEnumerable? GetTaskItems() + /// + /// Gets all task items from the host object. + /// + /// The task items if available, null otherwise. + public IEnumerable? GetTaskItems() { try { @@ -62,7 +71,6 @@ internal sealed class VSHostObject(ITaskHost? hostObject, TaskLoggingHelper log) // - Returns a JSON array of objects with the shape: // [{ "ItemSpec": "", "Metadata": { "": "", ... } }, ...] // The JSON is deserialized into TaskItemDto records and converted to ITaskItem instances. - // Only UserName and Password metadata are extracted to avoid conflicts with reserved MSBuild metadata. string? rawTaskItems = (string?)_hostObject!.GetType().InvokeMember( "QueryAllTaskItems", BindingFlags.InvokeMethod, @@ -101,14 +109,16 @@ static TaskItem ConvertToTaskItem(TaskItemDto dto) TaskItem taskItem = new(dto.ItemSpec ?? string.Empty); if (dto.Metadata is not null) { - if (dto.Metadata.TryGetValue(UserMetaDataName, out string? userName)) - { - taskItem.SetMetadata(UserMetaDataName, userName); - } - - if (dto.Metadata.TryGetValue(PasswordMetaDataName, out string? password)) + foreach (KeyValuePair kvp in dto.Metadata) { - taskItem.SetMetadata(PasswordMetaDataName, password); + try + { + taskItem.SetMetadata(kvp.Key, kvp.Value); + } + catch (ArgumentException) + { + // Skip reserved/built-in MSBuild metadata names (e.g. FullPath, Identity). + } } } @@ -116,6 +126,16 @@ static TaskItem ConvertToTaskItem(TaskItemDto dto) } } - private readonly record struct TaskItemDto(string? ItemSpec, Dictionary? Metadata); -} + private readonly struct TaskItemDto + { + public string? ItemSpec { get; } + public Dictionary? Metadata { get; } + [System.Text.Json.Serialization.JsonConstructor] + public TaskItemDto(string? itemSpec, Dictionary? metadata) + { + ItemSpec = itemSpec; + Metadata = metadata; + } + } +} diff --git a/src/Containers/Microsoft.NET.Build.Containers/Microsoft.NET.Build.Containers.csproj b/src/Containers/Microsoft.NET.Build.Containers/Microsoft.NET.Build.Containers.csproj index 4ffaf57f4a43..d635d1fdfb86 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/Microsoft.NET.Build.Containers.csproj +++ b/src/Containers/Microsoft.NET.Build.Containers/Microsoft.NET.Build.Containers.csproj @@ -53,6 +53,10 @@ + + + + @@ -74,7 +78,6 @@ - diff --git a/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImage.cs b/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImage.cs index 124ee9749f45..8dc590094f58 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImage.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImage.cs @@ -5,6 +5,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.MSBuild; using Microsoft.NET.Build.Containers.Resources; +using Microsoft.NET.Sdk.Common; using ILogger = Microsoft.Extensions.Logging.ILogger; namespace Microsoft.NET.Build.Containers.Tasks; diff --git a/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImageToolTask.cs b/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImageToolTask.cs index 8bcec281ff38..49477208b5c8 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImageToolTask.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImageToolTask.cs @@ -5,6 +5,7 @@ using Microsoft.Build.Framework; using Microsoft.Build.Utilities; using Microsoft.NET.Build.Containers.Resources; +using Microsoft.NET.Sdk.Common; namespace Microsoft.NET.Build.Containers.Tasks; diff --git a/src/WebSdk/Publish/Tasks/Microsoft.NET.Sdk.Publish.Tasks.csproj b/src/WebSdk/Publish/Tasks/Microsoft.NET.Sdk.Publish.Tasks.csproj index 28419ff24276..baca625dfd5c 100644 --- a/src/WebSdk/Publish/Tasks/Microsoft.NET.Sdk.Publish.Tasks.csproj +++ b/src/WebSdk/Publish/Tasks/Microsoft.NET.Sdk.Publish.Tasks.csproj @@ -48,6 +48,7 @@ + true diff --git a/src/WebSdk/Publish/Tasks/MsDeploy/VSHostObject.cs b/src/WebSdk/Publish/Tasks/MsDeploy/VSHostObject.cs deleted file mode 100644 index 8b711417390c..000000000000 --- a/src/WebSdk/Publish/Tasks/MsDeploy/VSHostObject.cs +++ /dev/null @@ -1,62 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using Microsoft.Build.Framework; - -namespace Microsoft.NET.Sdk.Publish.Tasks.MsDeploy -{ - internal class VSHostObject - { - IEnumerable? _hostObject; - public VSHostObject(IEnumerable? hostObject) - { - _hostObject = hostObject; - } - - public bool ExtractCredentials(out string username, out string password) - { - bool retVal = false; - username = password = string.Empty; - if (_hostObject != null) - { - ITaskItem? credentialItem = _hostObject.FirstOrDefault(p => p.ItemSpec == VSMsDeployTaskHostObject.CredentialItemSpecName); - if (credentialItem != null) - { - retVal = true; - username = credentialItem.GetMetadata(VSMsDeployTaskHostObject.UserMetaDataName); - if (!string.IsNullOrEmpty(username)) - { - password = credentialItem.GetMetadata(VSMsDeployTaskHostObject.PasswordMetaDataName); - } - } - } - return retVal; - } - - public void GetFileSkips(out ITaskItem[]? srcSkips, out ITaskItem[]? destSkips) - { - srcSkips = null; - destSkips = null; - if (_hostObject != null) - { - IEnumerable items; - - items = from item in _hostObject - where (item.ItemSpec == VSMsDeployTaskHostObject.SkipFileItemSpecName - && (item.GetMetadata(VSMsDeployTaskHostObject.SkipApplyMetadataName) == VSMsDeployTaskHostObject.SourceDeployObject || - string.IsNullOrEmpty(item.GetMetadata(VSMsDeployTaskHostObject.SkipApplyMetadataName))) - ) - select item; - srcSkips = items.ToArray(); - - items = from item in _hostObject - where (item.ItemSpec == VSMsDeployTaskHostObject.SkipFileItemSpecName - && (item.GetMetadata(VSMsDeployTaskHostObject.SkipApplyMetadataName) == VSMsDeployTaskHostObject.DestinationDeployObject || - string.IsNullOrEmpty(item.GetMetadata(VSMsDeployTaskHostObject.SkipApplyMetadataName))) - ) - select item; - destSkips = items.ToArray(); - } - } - } -} diff --git a/src/WebSdk/Publish/Tasks/Tasks/MsDeploy/VsMsdeploy.cs b/src/WebSdk/Publish/Tasks/Tasks/MsDeploy/VsMsdeploy.cs index 27466df4a83e..ede99a2cbe10 100644 --- a/src/WebSdk/Publish/Tasks/Tasks/MsDeploy/VsMsdeploy.cs +++ b/src/WebSdk/Publish/Tasks/Tasks/MsDeploy/VsMsdeploy.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.Build.Framework; +using Microsoft.NET.Sdk.Common; using Microsoft.NET.Sdk.Publish.Tasks.Properties; using Collections = System.Collections; using Diagnostics = System.Diagnostics; @@ -823,9 +824,8 @@ public override bool Execute() else { dest = VSMSDeployObjectFactory.CreateVSMSDeployObject(Destination[0]); - VSHostObject hostObj = new(HostObject as IEnumerable); - string username, password; - if (hostObj.ExtractCredentials(out username, out password)) + VSHostObject hostObj = new(HostObject, Log); + if (hostObj.TryGetCredentials() is (string username, string password)) { dest.UserName = username; dest.Password = password; @@ -937,11 +937,24 @@ void IVSMSDeployHost.UpdateDeploymentBaseOptions(VSMSDeployObject srcVsMsDeployo List enableSkipDirectiveList = MSDeployUtility.ConvertStringIntoList(EnableSkipDirective); List disableSkipDirectiveList = MSDeployUtility.ConvertStringIntoList(DisableSkipDirective); - VSHostObject hostObject = new(HostObject as IEnumerable); - ITaskItem[]? srcSkipItems, destSkipsItems; + VSHostObject hostObject = new(HostObject, Log); + IEnumerable? allItems = hostObject.GetTaskItems(); + ITaskItem[]? srcSkipItems = null; + ITaskItem[]? destSkipsItems = null; // Add FileSkip rules from Host Object - hostObject.GetFileSkips(out srcSkipItems, out destSkipsItems); + if (allItems is not null) + { + srcSkipItems = allItems.Where(item => + item.ItemSpec == VSMsDeployTaskHostObject.SkipFileItemSpecName + && (item.GetMetadata(VSMsDeployTaskHostObject.SkipApplyMetadataName) == VSMsDeployTaskHostObject.SourceDeployObject + || string.IsNullOrEmpty(item.GetMetadata(VSMsDeployTaskHostObject.SkipApplyMetadataName)))).ToArray(); + + destSkipsItems = allItems.Where(item => + item.ItemSpec == VSMsDeployTaskHostObject.SkipFileItemSpecName + && (item.GetMetadata(VSMsDeployTaskHostObject.SkipApplyMetadataName) == VSMsDeployTaskHostObject.DestinationDeployObject + || string.IsNullOrEmpty(item.GetMetadata(VSMsDeployTaskHostObject.SkipApplyMetadataName)))).ToArray(); + } Utility.AddSkipDirectiveToBaseOptions(srcVsMsDeployobject.BaseOptions, srcSkipItems, enableSkipDirectiveList, disableSkipDirectiveList, Log); Utility.AddSkipDirectiveToBaseOptions(destVsMsDeployobject.BaseOptions, destSkipsItems, enableSkipDirectiveList, disableSkipDirectiveList, Log); diff --git a/src/WebSdk/Publish/Tasks/Tasks/OneDeploy/OneDeploy.cs b/src/WebSdk/Publish/Tasks/Tasks/OneDeploy/OneDeploy.cs index cd9002b6c524..1770c478409c 100644 --- a/src/WebSdk/Publish/Tasks/Tasks/OneDeploy/OneDeploy.cs +++ b/src/WebSdk/Publish/Tasks/Tasks/OneDeploy/OneDeploy.cs @@ -2,7 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.Build.Framework; -using Microsoft.NET.Sdk.Publish.Tasks.MsDeploy; +using Microsoft.NET.Sdk.Common; using Microsoft.NET.Sdk.Publish.Tasks.Properties; namespace Microsoft.NET.Sdk.Publish.Tasks.OneDeploy; @@ -161,9 +161,19 @@ internal async Task OneDeployAsync( private bool GetCredentialsFromTask(out string user, out string password) { - VSHostObject hostObj = new(HostObject as IEnumerable); + VSHostObject hostObj = new(HostObject, Log); + if (hostObj.TryGetCredentials() is (string u, string p)) + { + user = u; + password = p; + + return true; + } + + user = string.Empty; + password = string.Empty; - return hostObj.ExtractCredentials(out user, out password); + return false; } private Task DeployAsync( diff --git a/src/WebSdk/Publish/Tasks/Tasks/ZipDeploy/ZipDeploy.cs b/src/WebSdk/Publish/Tasks/Tasks/ZipDeploy/ZipDeploy.cs index 216c34b98a94..e8510953da3c 100644 --- a/src/WebSdk/Publish/Tasks/Tasks/ZipDeploy/ZipDeploy.cs +++ b/src/WebSdk/Publish/Tasks/Tasks/ZipDeploy/ZipDeploy.cs @@ -3,7 +3,7 @@ using System.Net; using Microsoft.Build.Framework; -using Microsoft.NET.Sdk.Publish.Tasks.MsDeploy; +using Microsoft.NET.Sdk.Common; using Microsoft.NET.Sdk.Publish.Tasks.Properties; namespace Microsoft.NET.Sdk.Publish.Tasks.ZipDeploy @@ -136,8 +136,19 @@ public async Task ZipDeployAsync(string? zipToPublishPath, string? userNam private bool GetDestinationCredentials(out string user, out string password) { - VSHostObject hostObj = new(HostObject as IEnumerable); - return hostObj.ExtractCredentials(out user, out password); + VSHostObject hostObj = new(HostObject, Log); + if (hostObj.TryGetCredentials() is (string u, string p)) + { + user = u; + password = p; + + return true; + } + + user = string.Empty; + password = string.Empty; + + return false; } } } From 922979b34a22ed4f39f3f027c98ff2f31dba19f9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 19 Feb 2026 17:07:03 +0000 Subject: [PATCH 080/179] Update dependencies from build 302542 Updated Dependencies: dotnet-dev-certs, dotnet-user-jwts, dotnet-user-secrets, Microsoft.AspNetCore.Analyzers, Microsoft.AspNetCore.App.Ref.Internal, Microsoft.AspNetCore.Components.SdkAnalyzers, Microsoft.AspNetCore.DeveloperCertificates.XPlat, Microsoft.AspNetCore.Mvc.Analyzers, Microsoft.AspNetCore.Mvc.Api.Analyzers, Microsoft.Dotnet.WinForms.ProjectTemplates, Microsoft.DotNet.Wpf.ProjectTemplates, Microsoft.NET.HostModel, Microsoft.NET.Sdk.WindowsDesktop, Microsoft.NETCore.Platforms, Microsoft.WindowsDesktop.App.Internal (Version 10.0.4-servicing.26118.114 -> 10.0.4-servicing.26119.101) Microsoft.AspNetCore.App.Ref, Microsoft.AspNetCore.Authentication.Facebook, Microsoft.AspNetCore.Authentication.Google, Microsoft.AspNetCore.Authentication.MicrosoftAccount, Microsoft.AspNetCore.Authorization, Microsoft.AspNetCore.Components, Microsoft.AspNetCore.Components.Analyzers, Microsoft.AspNetCore.Components.Forms, Microsoft.AspNetCore.Components.Web, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.AspNetCore.Components.WebAssembly.Server, Microsoft.AspNetCore.Components.WebView, Microsoft.AspNetCore.Metadata, Microsoft.AspNetCore.TestHost, Microsoft.Bcl.AsyncInterfaces, Microsoft.DotNet.Web.ItemTemplates.10.0, Microsoft.DotNet.Web.ProjectTemplates.10.0, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Embedded, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.ObjectPool, Microsoft.JSInterop, Microsoft.NET.ILLink.Tasks, Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64, Microsoft.NETCore.App.Ref, Microsoft.Win32.SystemEvents, Microsoft.WindowsDesktop.App.Ref, System.CodeDom, System.ComponentModel.Composition, System.Composition.AttributedModel, System.Composition.Convention, System.Composition.Hosting, System.Composition.Runtime, System.Composition.TypedParts, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Formats.Asn1, System.IO.Hashing, System.Reflection.MetadataLoadContext, System.Resources.Extensions, System.Security.Cryptography.Pkcs, System.Security.Cryptography.ProtectedData, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encoding.CodePages, System.Text.Json, System.Windows.Extensions (Version 10.0.4 -> 10.0.4) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26118.114 -> 10.0.0-preview.26119.101) Microsoft.Build (Version 18.0.11 -> 18.0.11) Microsoft.Build.Localization (Version 18.0.11-servicing-26118-114 -> 18.0.11-servicing-26119-101) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.0.2-rc.11914 -> 7.0.2-rc.12001) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab, Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common (Version 10.0.104 -> 10.0.104) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.0.0-2.26118.114 -> 5.0.0-2.26119.101) Microsoft.Deployment.DotNet.Releases (Version 2.0.0-preview.1.26118.114 -> 2.0.0-preview.1.26119.101) Microsoft.DiaSymReader (Version 2.2.4 -> 2.2.4) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26118.114 -> 10.0.0-beta.26119.101) Microsoft.FSharp.Compiler (Version 14.0.104-servicing.26118.114 -> 14.0.104-servicing.26119.101) Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.0.1-release-26118-114 -> 18.0.1-release-26119-101) Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.104-servicing.26118.114 -> 10.0.104-servicing.26119.101) Microsoft.Web.Xdt (Version 3.2.4 -> 3.2.4) System.CommandLine (Version 2.0.4 -> 2.0.4) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index e14ca2361617..79529e7c80d3 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index ff079c5eabdf..1f5454edd52d 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26118.114 - 10.0.4-servicing.26118.114 - 10.0.4-servicing.26118.114 - 10.0.4-servicing.26118.114 + 10.0.4-servicing.26119.101 + 10.0.4-servicing.26119.101 + 10.0.4-servicing.26119.101 + 10.0.4-servicing.26119.101 10.0.4 - 10.0.4-servicing.26118.114 + 10.0.4-servicing.26119.101 10.0.4 10.0.4 10.0.4 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26118.114 + 10.0.4-servicing.26119.101 10.0.4 10.0.4 10.0.4 10.0.4 - 10.0.4-servicing.26118.114 + 10.0.4-servicing.26119.101 10.0.4 - 10.0.4-servicing.26118.114 - 10.0.4-servicing.26118.114 - 10.0.0-preview.26118.114 + 10.0.4-servicing.26119.101 + 10.0.4-servicing.26119.101 + 10.0.0-preview.26119.101 10.0.4 10.0.4 18.0.11 - 18.0.11-servicing-26118-114 - 7.0.2-rc.11914 + 18.0.11-servicing-26119-101 + 7.0.2-rc.12001 10.0.104 - 5.0.0-2.26118.114 - 5.0.0-2.26118.114 - 5.0.0-2.26118.114 - 5.0.0-2.26118.114 - 5.0.0-2.26118.114 - 5.0.0-2.26118.114 - 5.0.0-2.26118.114 - 10.0.0-preview.26118.114 - 5.0.0-2.26118.114 - 5.0.0-2.26118.114 - 2.0.0-preview.1.26118.114 + 5.0.0-2.26119.101 + 5.0.0-2.26119.101 + 5.0.0-2.26119.101 + 5.0.0-2.26119.101 + 5.0.0-2.26119.101 + 5.0.0-2.26119.101 + 5.0.0-2.26119.101 + 10.0.0-preview.26119.101 + 5.0.0-2.26119.101 + 5.0.0-2.26119.101 + 2.0.0-preview.1.26119.101 2.2.4 - 10.0.0-beta.26118.114 - 10.0.0-beta.26118.114 - 10.0.0-beta.26118.114 - 10.0.0-beta.26118.114 - 10.0.0-beta.26118.114 - 10.0.0-beta.26118.114 + 10.0.0-beta.26119.101 + 10.0.0-beta.26119.101 + 10.0.0-beta.26119.101 + 10.0.0-beta.26119.101 + 10.0.0-beta.26119.101 + 10.0.0-beta.26119.101 10.0.4 10.0.4 - 10.0.4-servicing.26118.114 - 10.0.4-servicing.26118.114 - 10.0.0-beta.26118.114 - 10.0.0-beta.26118.114 + 10.0.4-servicing.26119.101 + 10.0.4-servicing.26119.101 + 10.0.0-beta.26119.101 + 10.0.0-beta.26119.101 10.0.4 10.0.4 10.0.4 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.4 10.0.4 10.0.4 - 14.0.104-servicing.26118.114 + 14.0.104-servicing.26119.101 10.0.4 - 5.0.0-2.26118.114 - 5.0.0-2.26118.114 - 10.0.4-servicing.26118.114 + 5.0.0-2.26119.101 + 5.0.0-2.26119.101 + 10.0.4-servicing.26119.101 10.0.4 10.0.4 10.0.0-preview.7.25377.103 - 10.0.0-preview.26118.114 - 10.0.4-servicing.26118.114 - 18.0.1-release-26118-114 + 10.0.0-preview.26119.101 + 10.0.4-servicing.26119.101 + 18.0.1-release-26119-101 10.0.4 - 10.0.4-servicing.26118.114 + 10.0.4-servicing.26119.101 10.0.104 10.0.104 10.0.104 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.104 10.0.104 10.0.104 - 10.0.104-servicing.26118.114 + 10.0.104-servicing.26119.101 10.0.104 - 10.0.104-servicing.26118.114 + 10.0.104-servicing.26119.101 10.0.104 10.0.104 - 10.0.104-servicing.26118.114 - 18.0.1-release-26118-114 - 18.0.1-release-26118-114 + 10.0.104-servicing.26119.101 + 18.0.1-release-26119-101 + 18.0.1-release-26119-101 3.2.4 10.0.4 - 10.0.4-servicing.26118.114 + 10.0.4-servicing.26119.101 10.0.4 - 7.0.2-rc.11914 - 7.0.2-rc.11914 - 7.0.2-rc.11914 - 7.0.2-rc.11914 - 7.0.2-rc.11914 - 7.0.2-rc.11914 - 7.0.2-rc.11914 - 7.0.2-rc.11914 - 7.0.2-rc.11914 - 7.0.2-rc.11914 - 7.0.2-rc.11914 - 7.0.2-rc.11914 - 7.0.2-rc.11914 - 7.0.2-rc.11914 - 7.0.2-rc.11914 - 7.0.2-rc.11914 + 7.0.2-rc.12001 + 7.0.2-rc.12001 + 7.0.2-rc.12001 + 7.0.2-rc.12001 + 7.0.2-rc.12001 + 7.0.2-rc.12001 + 7.0.2-rc.12001 + 7.0.2-rc.12001 + 7.0.2-rc.12001 + 7.0.2-rc.12001 + 7.0.2-rc.12001 + 7.0.2-rc.12001 + 7.0.2-rc.12001 + 7.0.2-rc.12001 + 7.0.2-rc.12001 + 7.0.2-rc.12001 10.0.4 2.0.4 10.0.4 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6fa5de0a2451..a7dbd5413899 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 559fd01345849ea0a72d56197a94e9186e2ed4b0 + 69600372e5b6e4a27587423ec6997a46079ea3fc diff --git a/global.json b/global.json index 805793bda178..c668f66eab2b 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26118.114", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26118.114", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26119.101", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26119.101", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 6fc33a06ff6b03faa534cb84ab36e78eb3f7d5f1 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 18:07:55 +0000 Subject: [PATCH 081/179] [release/10.0.2xx] Source code updates from dotnet/dotnet (#53080) [release/10.0.2xx] Source code updates from dotnet/dotnet --- eng/Version.Details.props | 122 +++++++++---------- eng/Version.Details.xml | 246 +++++++++++++++++++------------------- eng/Versions.props | 12 +- global.json | 4 +- 4 files changed, 191 insertions(+), 193 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 221abd4ebda7..89878569266a 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,68 +6,68 @@ This file should be imported by eng/Versions.props - 10.0.0-preview.26118.103 - 18.3.0-release-26118-103 - 18.3.0-release-26118-103 - 7.3.0-preview.1.11903 - 10.0.200-alpha.26118.103 - 5.3.0-2.26118.103 - 5.3.0-2.26118.103 - 5.3.0-2.26118.103 - 5.3.0-2.26118.103 - 5.3.0-2.26118.103 - 5.3.0-2.26118.103 - 5.3.0-2.26118.103 - 5.3.0-2.26118.103 - 10.0.0-preview.26118.103 - 5.3.0-2.26118.103 - 5.3.0-2.26118.103 - 10.0.0-beta.26118.103 - 10.0.0-beta.26118.103 - 10.0.0-beta.26118.103 - 10.0.0-beta.26118.103 - 10.0.0-beta.26118.103 - 10.0.0-beta.26118.103 - 10.0.0-beta.26118.103 - 10.0.0-beta.26118.103 - 15.2.100-preview2.26118.103 - 5.3.0-2.26118.103 - 5.3.0-2.26118.103 + 10.0.0-preview.26118.122 + 18.3.0-release-26118-122 + 18.3.0-release-26118-122 + 7.3.0-preview.1.11922 + 10.0.200-alpha.26118.122 + 5.3.0-2.26118.122 + 5.3.0-2.26118.122 + 5.3.0-2.26118.122 + 5.3.0-2.26118.122 + 5.3.0-2.26118.122 + 5.3.0-2.26118.122 + 5.3.0-2.26118.122 + 5.3.0-2.26118.122 + 10.0.0-preview.26118.122 + 5.3.0-2.26118.122 + 5.3.0-2.26118.122 + 10.0.0-beta.26118.122 + 10.0.0-beta.26118.122 + 10.0.0-beta.26118.122 + 10.0.0-beta.26118.122 + 10.0.0-beta.26118.122 + 10.0.0-beta.26118.122 + 10.0.0-beta.26118.122 + 10.0.0-beta.26118.122 + 15.2.100-preview2.26118.122 + 5.3.0-2.26118.122 + 5.3.0-2.26118.122 10.0.0-preview.7.25377.103 - 10.0.0-preview.26118.103 - 18.3.0-release-26118-103 - 10.0.200-alpha.26118.103 - 10.0.200-alpha.26118.103 - 10.0.200-alpha.26118.103 - 10.0.200-alpha.26118.103 - 10.0.200-alpha.26118.103 - 10.0.200-preview.26118.103 - 10.0.200-preview.26118.103 - 10.0.200-preview.26118.103 - 10.0.200-preview.26118.103 - 10.0.200-preview.26118.103 - 10.0.200-preview.26118.103 - 10.0.200-preview.26118.103 - 10.0.200-preview.26118.103 - 10.0.200-preview.26118.103 - 18.3.0-release-26118-103 - 18.3.0-release-26118-103 - 7.3.0-preview.1.11903 - 7.3.0-preview.1.11903 - 7.3.0-preview.1.11903 - 7.3.0-preview.1.11903 - 7.3.0-preview.1.11903 - 7.3.0-preview.1.11903 - 7.3.0-preview.1.11903 - 7.3.0-preview.1.11903 - 7.3.0-preview.1.11903 - 7.3.0-preview.1.11903 - 7.3.0-preview.1.11903 - 7.3.0-preview.1.11903 - 7.3.0-preview.1.11903 - 7.3.0-preview.1.11903 - 7.3.0-preview.1.11903 - 7.3.0-preview.1.11903 + 10.0.0-preview.26118.122 + 18.3.0-release-26118-122 + 10.0.200-alpha.26118.122 + 10.0.200-alpha.26118.122 + 10.0.200-alpha.26118.122 + 10.0.200-alpha.26118.122 + 10.0.200-alpha.26118.122 + 10.0.200-preview.26118.122 + 10.0.200-preview.26118.122 + 10.0.200-preview.26118.122 + 10.0.200-preview.26118.122 + 10.0.200-preview.26118.122 + 10.0.200-preview.26118.122 + 10.0.200-preview.26118.122 + 10.0.200-preview.26118.122 + 10.0.200-preview.26118.122 + 18.3.0-release-26118-122 + 18.3.0-release-26118-122 + 7.3.0-preview.1.11922 + 7.3.0-preview.1.11922 + 7.3.0-preview.1.11922 + 7.3.0-preview.1.11922 + 7.3.0-preview.1.11922 + 7.3.0-preview.1.11922 + 7.3.0-preview.1.11922 + 7.3.0-preview.1.11922 + 7.3.0-preview.1.11922 + 7.3.0-preview.1.11922 + 7.3.0-preview.1.11922 + 7.3.0-preview.1.11922 + 7.3.0-preview.1.11922 + 7.3.0-preview.1.11922 + 7.3.0-preview.1.11922 + 7.3.0-preview.1.11922 10.0.2-servicing.25612.105 10.0.2-servicing.25612.105 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ca8e3a2eb601..499de889a7e9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,42 +1,42 @@ - + - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -72,138 +72,138 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -370,25 +370,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -405,29 +405,29 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 @@ -514,9 +514,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -528,37 +528,37 @@ - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 - + https://github.com/dotnet/dotnet - e9113012bbe92427b4c9620f55eb194cee85bf2d + 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet diff --git a/eng/Versions.props b/eng/Versions.props index b76f834896c8..9a559567dec7 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -7,7 +7,8 @@ 10 0 2 - 00 + 0 + $([System.String]::Copy('$(VersionSDKMinorPatch)').PadLeft(2, '0')) @@ -19,11 +20,8 @@ false release - - preview - rtm - servicing - 0 + servicing + @@ -142,7 +140,7 @@ 10.0.100 - + + <_WasmEnableHotReload>$(WasmEnableHotReload) @@ -22,14 +23,14 @@ Copyright (c) .NET Foundation. All rights reserved. - <_WasmHotReloadTfm Condition="$([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '10.0'))">net10.0 + <_WasmHotReloadTfm Condition="$([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '10.0'))">$(WasmAgentTargetFrameworkV10) <_WasmHotReloadPath Condition="'$(_WasmHotReloadTfm)' != ''">$([MSBuild]::NormalizeDirectory($(MSBuildThisFileDirectory), '..', 'hotreload', $(_WasmHotReloadTfm))) <_WasmHotReloadIntermediatePath>$(IntermediateOutputPath)hotreload\ diff --git a/src/WasmSdk/Sdk/TargetFrameworks.props b/src/WasmSdk/Sdk/TargetFrameworks.props new file mode 100644 index 000000000000..a605a61528ff --- /dev/null +++ b/src/WasmSdk/Sdk/TargetFrameworks.props @@ -0,0 +1,9 @@ + + + + + net10.0 + + diff --git a/src/WasmSdk/Tasks/Microsoft.NET.Sdk.WebAssembly.Tasks.csproj b/src/WasmSdk/Tasks/Microsoft.NET.Sdk.WebAssembly.Tasks.csproj index dd1dbc5142dd..afb60e54d774 100644 --- a/src/WasmSdk/Tasks/Microsoft.NET.Sdk.WebAssembly.Tasks.csproj +++ b/src/WasmSdk/Tasks/Microsoft.NET.Sdk.WebAssembly.Tasks.csproj @@ -7,6 +7,7 @@ + Library @@ -43,6 +44,9 @@ true false TargetFramework;TargetFrameworks + AdditionalContent + hotreload\$(WasmAgentTargetFrameworkV10) + Build;ContentFilesProjectOutputGroup true @@ -52,10 +56,6 @@ true Sdk - - true - hotreload - @@ -67,11 +67,11 @@ - + Outputs="@(LayoutFile->'$(PackageLayoutOutputPath)%(TargetPath)')"> + diff --git a/test/dotnet-watch.Tests/Browser/BrowserTests.cs b/test/dotnet-watch.Tests/Browser/BrowserTests.cs index 18511ab7f734..f3341f5decd7 100644 --- a/test/dotnet-watch.Tests/Browser/BrowserTests.cs +++ b/test/dotnet-watch.Tests/Browser/BrowserTests.cs @@ -25,11 +25,11 @@ public async Task LaunchesBrowserOnStart() App.AssertOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage("https://localhost:5001", "")); } - [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/aspnetcore/issues/63759 + [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.Linux)] // https://github.com/dotnet/sdk/issues/53061 public async Task BrowserDiagnostics() { var testAsset = TestAssets.CopyTestAsset("WatchRazorWithDeps") - .WithSource(); + .WithSource(); App.UseTestBrowser(); diff --git a/test/dotnet-watch.Tests/FileWatcher/FileWatcherTests.cs b/test/dotnet-watch.Tests/FileWatcher/FileWatcherTests.cs index 976f970fdfe9..5d8a7cc13360 100644 --- a/test/dotnet-watch.Tests/FileWatcher/FileWatcherTests.cs +++ b/test/dotnet-watch.Tests/FileWatcher/FileWatcherTests.cs @@ -26,7 +26,17 @@ private async Task TestOperation( using var watcher = DirectoryWatcher.Create(dir, watchedFileNames ?? [], usePolling, includeSubdirectories: watchSubdirectories); if (watcher is EventBasedDirectoryWatcher dotnetWatcher) { - dotnetWatcher.Logger = m => output.WriteLine(m); + dotnetWatcher.Logger = m => + { + try + { + output.WriteLine(m); + } + catch (InvalidOperationException) + { + // the test output might have been closed already + } + }; } var operationCompletionSource = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); diff --git a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs index 75b77ee7d96e..b77e2aa78406 100644 --- a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs +++ b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs @@ -853,10 +853,12 @@ public async Task GracefulTermination_Unix() await App.WaitUntilOutputContains("exited with exit code 0."); } - [PlatformSpecificTheory(TestPlatforms.Windows, Skip = "https://github.com/dotnet/sdk/issues/49928")] // https://github.com/dotnet/aspnetcore/issues/63759 + [Theory] [CombinatorialData] public async Task BlazorWasm(bool projectSpecifiesCapabilities) { + var tfm = ToolsetInfo.CurrentTargetFramework; + var testAsset = TestAssets.CopyTestAsset("WatchBlazorWasm", identifier: projectSpecifiesCapabilities.ToString()) .WithSource(); @@ -875,13 +877,12 @@ public async Task BlazorWasm(bool projectSpecifiesCapabilities) var port = TestOptions.GetTestPort(); App.Start(testAsset, ["--urls", "http://localhost:" + port], testFlags: TestFlags.MockBrowser); - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToUseBrowserRefresh); await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToLaunchBrowser); - // Browser is launched based on blazor-devserver output "Now listening on: ...". - await App.WaitUntilOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage($"http://localhost:{port}", "")); + // env variable passed when launching the server: + await App.WaitUntilOutputContains($"HOTRELOAD_DELTA_CLIENT_LOG_MESSAGES=dotnet watch 🕵️ [blazorwasm ({tfm})]"); + App.Process.ClearOutput(); // Middleware should have been loaded to blazor-devserver before the browser is launched: await App.WaitUntilOutputContains("dbug: Microsoft.AspNetCore.Watch.BrowserRefresh.BlazorWasmHotReloadMiddleware[0]"); @@ -894,26 +895,25 @@ public async Task BlazorWasm(bool projectSpecifiesCapabilities) // shouldn't see any agent messages (agent is not loaded into blazor-devserver): App.AssertOutputDoesNotContain("🕵️"); + // Browser is launched based on blazor-devserver output "Now listening on: ...". + await App.WaitUntilOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage($"http://localhost:{port}", "")); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + App.Process.ClearOutput(); + var newSource = """ @page "/"

Updated

"""; UpdateSourceFile(Path.Combine(testAsset.Path, "Pages", "Index.razor"), newSource); - await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); - // check project specified capapabilities: - if (projectSpecifiesCapabilities) - { - await App.WaitUntilOutputContains("dotnet watch 🔥 Hot reload capabilities: AddExplicitInterfaceImplementation AddMethodToExistingType Baseline."); - } - else - { - await App.WaitUntilOutputContains("dotnet watch 🔥 Hot reload capabilities: AddExplicitInterfaceImplementation AddFieldRva AddInstanceFieldToExistingType AddMethodToExistingType AddStaticFieldToExistingType Baseline ChangeCustomAttributes GenericAddFieldToExistingType GenericAddMethodToExistingType GenericUpdateMethod NewTypeDefinition UpdateParameters."); - } + // WebAssemblyHotReloadCapabilities set by project is overwritten in WASM SDK targets: + await App.WaitUntilOutputContains("dotnet watch 🔥 Hot reload capabilities: AddExplicitInterfaceImplementation AddInstanceFieldToExistingType AddMethodToExistingType AddStaticFieldToExistingType Baseline ChangeCustomAttributes GenericAddFieldToExistingType GenericAddMethodToExistingType GenericUpdateMethod NewTypeDefinition UpdateParameters."); + await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); } - [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/aspnetcore/issues/63759 + [Fact] public async Task BlazorWasm_MSBuildWarning() { var testAsset = TestAssets @@ -935,7 +935,7 @@ public async Task BlazorWasm_MSBuildWarning() await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); } - [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/aspnetcore/issues/63759 + [Fact] public async Task BlazorWasm_Restart() { var testAsset = TestAssets.CopyTestAsset("WatchBlazorWasm") @@ -958,31 +958,21 @@ public async Task BlazorWasm_Restart() await App.WaitUntilOutputContains(MessageDescriptor.ReloadingBrowser); } - [PlatformSpecificFact(TestPlatforms.Windows, Skip = "https://github.com/dotnet/sdk/issues/49928")] // https://github.com/dotnet/aspnetcore/issues/63759 + [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/sdk/issues/53064 public async Task BlazorWasmHosted() { var testAsset = TestAssets.CopyTestAsset("WatchBlazorWasmHosted") .WithSource(); - var tfm = ToolsetInfo.CurrentTargetFramework; - var port = TestOptions.GetTestPort(); App.Start(testAsset, ["--urls", "http://localhost:" + port], "blazorhosted", testFlags: TestFlags.MockBrowser); - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToUseBrowserRefresh); await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToLaunchBrowser); await App.WaitUntilOutputContains(MessageDescriptor.ApplicationKind_BlazorHosted); - - // client capabilities: - await App.WaitUntilOutputContains($"dotnet watch ⌚ [blazorhosted ({tfm})] Project specifies capabilities: Baseline AddMethodToExistingType AddStaticFieldToExistingType NewTypeDefinition ChangeCustomAttributes AddInstanceFieldToExistingType GenericAddMethodToExistingType GenericUpdateMethod UpdateParameters GenericAddFieldToExistingType AddExplicitInterfaceImplementation."); - - // server capabilities: - await App.WaitUntilOutputContains($"dotnet watch ⌚ [blazorhosted ({tfm})] Capabilities: Baseline AddMethodToExistingType AddStaticFieldToExistingType AddInstanceFieldToExistingType NewTypeDefinition ChangeCustomAttributes UpdateParameters GenericUpdateMethod GenericAddMethodToExistingType GenericAddFieldToExistingType AddFieldRva AddExplicitInterfaceImplementation."); } - [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/aspnetcore/issues/63759 + [Fact] public async Task Razor_Component_ScopedCssAndStaticAssets() { var testAsset = TestAssets.CopyTestAsset("WatchRazorWithDeps") @@ -1221,7 +1211,7 @@ public static void PrintDirectoryName([CallerFilePathAttribute] string filePath await App.WaitUntilOutputContains("> NewSubdir"); } - [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/aspnetcore/issues/63759 + [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/sdk/issues/53058 public async Task Aspire_BuildError_ManualRestart() { var tfm = ToolsetInfo.CurrentTargetFramework; @@ -1250,7 +1240,7 @@ public async Task Aspire_BuildError_ManualRestart() // MigrationService terminated: await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Sending 'sessionTerminated'"); - // working directory of the service should be it's project directory: + // working directory of the service should be its project directory: await App.WaitUntilOutputContains($"ApiService working directory: '{Path.GetDirectoryName(serviceProjectPath)}'"); // Service -- valid code change: @@ -1321,7 +1311,7 @@ public async Task Aspire_BuildError_ManualRestart() await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Sending 'sessionTerminated'"); } - [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/aspnetcore/issues/63759 + [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/sdk/issues/53058 public async Task Aspire_NoEffect_AutoRestart() { var tfm = ToolsetInfo.CurrentTargetFramework; From 10359b467ff8c1486ca2703d1a52c94b999abb5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Matou=C5=A1ek?= Date: Thu, 19 Feb 2026 11:32:40 -0800 Subject: [PATCH 083/179] Refactor Hot Reload loop cancellation (#53048) --- .../Watch/Aspire/AspireServiceFactory.cs | 2 - .../Watch/HotReload/CompilationHandler.cs | 4 +- .../Watch/HotReload/HotReloadDotNetWatcher.cs | 120 +++++------- .../Watch/Process/ProcessRunner.cs | 29 +-- .../Watch/Process/ProjectLauncher.cs | 2 - .../Watch/Process/RunningProject.cs | 3 +- src/BuiltInTools/Watch/UI/IReporter.cs | 1 + .../HotReload/ApplyDeltaTests.cs | 8 +- .../HotReload/RuntimeProcessLauncherTests.cs | 181 ++++++++++++++---- .../TestUtilities/TestReporter.cs | 3 - 10 files changed, 195 insertions(+), 158 deletions(-) diff --git a/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs b/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs index b7d669a89216..06fd0a52b127 100644 --- a/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs +++ b/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs @@ -108,14 +108,12 @@ public async ValueTask StartProjectAsync(string dcpId, string se _logger.LogDebug("Starting project: {Path}", projectOptions.ProjectPath); - var processTerminationSource = new CancellationTokenSource(); var outputChannel = Channel.CreateUnbounded(s_outputChannelOptions); RunningProject? runningProject = null; runningProject = await _projectLauncher.TryLaunchProcessAsync( projectOptions, - processTerminationSource, onOutput: line => { var writeResult = outputChannel.Writer.TryWrite(line); diff --git a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs index 360d49ebf8ae..17213ee838e0 100644 --- a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs +++ b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs @@ -105,10 +105,10 @@ public async ValueTask StartSessionAsync(CancellationToken cancellationToken) HotReloadClients clients, ProcessSpec processSpec, RestartOperation restartOperation, - CancellationTokenSource processTerminationSource, CancellationToken cancellationToken) { var processExitedSource = new CancellationTokenSource(); + var processTerminationSource = new CancellationTokenSource(); // Cancel process communication as soon as process termination is requested, shutdown is requested, or the process exits (whichever comes first). // If we only cancel after we process exit event handler is triggered the pipe might have already been closed and may fail unexpectedly. @@ -116,7 +116,7 @@ public async ValueTask StartSessionAsync(CancellationToken cancellationToken) var processCommunicationCancellationToken = processCommunicationCancellationSource.Token; // Dispose these objects on failure: - using var disposables = new Disposables([clients, processExitedSource]); + using var disposables = new Disposables([clients, processExitedSource, processTerminationSource]); // It is important to first create the named pipe connection (Hot Reload client is the named pipe server) // and then start the process (named pipe client). Otherwise, the connection would fail. diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs index 93cde1a44a06..239052b1e165 100644 --- a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs +++ b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs @@ -73,13 +73,10 @@ public async Task WatchAsync(CancellationToken shutdownCancellationToken) { Interlocked.Exchange(ref forceRestartCancellationSource, new CancellationTokenSource())?.Dispose(); - using var rootProcessTerminationSource = new CancellationTokenSource(); - - // This source will signal when the user cancels (either Ctrl+R or Ctrl+C) or when the root process terminates: - using var iterationCancellationSource = CancellationTokenSource.CreateLinkedTokenSource(shutdownCancellationToken, forceRestartCancellationSource.Token, rootProcessTerminationSource.Token); + // This source will signal when the user cancels (either Ctrl+R or Ctrl+C): + using var iterationCancellationSource = CancellationTokenSource.CreateLinkedTokenSource(shutdownCancellationToken, forceRestartCancellationSource.Token); var iterationCancellationToken = iterationCancellationSource.Token; - var waitForFileChangeBeforeRestarting = true; EvaluationResult? evaluationResult = null; RunningProject? rootRunningProject = null; IRuntimeProcessLauncher? runtimeProcessLauncher = null; @@ -131,32 +128,24 @@ public async Task WatchAsync(CancellationToken shutdownCancellationToken) rootRunningProject = await projectLauncher.TryLaunchProcessAsync( rootProjectOptions, - rootProcessTerminationSource, onOutput: null, - onExit: null, + onExit: (_, _) => + { + iterationCancellationSource.Cancel(); + return ValueTask.CompletedTask; + }, restartOperation: new RestartOperation(_ => default), // the process will automatically restart iterationCancellationToken); if (rootRunningProject == null) { - // error has been reported: - waitForFileChangeBeforeRestarting = false; - return; - } - - // Cancel iteration as soon as the root process exits, so that we don't spent time loading solution, etc. when the process is already dead. - rootRunningProject.ProcessExitedCancellationToken.Register(iterationCancellationSource.Cancel); - - if (shutdownCancellationToken.IsCancellationRequested) - { - // Ctrl+C: - return; + // error has been reported + continue; } if (!await rootRunningProject.WaitForProcessRunningAsync(iterationCancellationToken)) { // Process might have exited while we were trying to communicate with it. - // Cancel the iteration, but wait for a file change before starting a new one. iterationCancellationSource.Cancel(); iterationCancellationSource.Token.ThrowIfCancellationRequested(); } @@ -197,63 +186,38 @@ void FileChangedCallback(ChangedPath change) fileWatcher.OnFileChange += fileChangedCallback; _context.Logger.Log(MessageDescriptor.WaitingForChanges); - // Hot Reload loop - exits when the root process needs to be restarted. - bool extendTimeout = false; - while (true) + if (Test_FileChangesCompletedTask != null) { - try - { - if (Test_FileChangesCompletedTask != null) - { - await Test_FileChangesCompletedTask; - } + await Test_FileChangesCompletedTask; + } + // Hot Reload loop + while (!iterationCancellationToken.IsCancellationRequested) + { + ImmutableArray changedFiles; + do + { // Use timeout to batch file changes. If the process doesn't exit within the given timespan we'll check // for accumulated file changes. If there are any we attempt Hot Reload. Otherwise we come back here to wait again. - _ = await rootRunningProject.RunningProcess.WaitAsync(TimeSpan.FromMilliseconds(extendTimeout ? 200 : 50), iterationCancellationToken); + await Task.Delay(50, iterationCancellationToken); - // Process exited: cancel the iteration, but wait for a file change before starting a new one - waitForFileChangeBeforeRestarting = true; - iterationCancellationSource.Cancel(); - break; - } - catch (TimeoutException) - { - // check for changed files - } - catch (OperationCanceledException) - { - // Ctrl+C, forced restart, or process exited. - Debug.Assert(iterationCancellationToken.IsCancellationRequested); - - // Will wait for a file change if process exited. - waitForFileChangeBeforeRestarting = true; - break; - } - - // If the changes include addition/deletion wait a little bit more for possible matching deletion/addition. - // This eliminates reevaluations caused by teared add + delete of a temp file or a move of a file. - if (!extendTimeout && changedFilesAccumulator.Any(change => change.Kind is ChangeKind.Add or ChangeKind.Delete)) - { - extendTimeout = true; - continue; - } - - extendTimeout = false; + // If the changes include addition/deletion wait a little bit more for possible matching deletion/addition. + // This eliminates reevaluations caused by teared add + delete of a temp file or a move of a file. + if (changedFilesAccumulator.Any(change => change.Kind is ChangeKind.Add or ChangeKind.Delete)) + { + await Task.Delay(150, iterationCancellationToken); + } - var changedFiles = await CaptureChangedFilesSnapshot(rebuiltProjects: []); - if (changedFiles is []) - { - continue; + changedFiles = await CaptureChangedFilesSnapshot(rebuiltProjects: []); } + while (changedFiles is []); if (!rootProjectCapabilities.Contains("SupportsHotReload")) { _context.Logger.LogWarning("Project '{Name}' does not support Hot Reload and must be rebuilt.", rootProject.GetDisplayName()); // file change already detected - waitForFileChangeBeforeRestarting = false; - iterationCancellationSource.Cancel(); + rootRunningProject.InitiateRestart(); break; } @@ -313,10 +277,9 @@ void FileChangedCallback(ChangedPath change) HotReloadEventSource.Log.HotReloadEnd(HotReloadEventSource.StartType.Main); // Terminate root process if it had rude edits or is non-reloadable. - if (projectsToRestart.SingleOrDefault(project => project.Options.IsRootProject) is { } rootProjectToRestart) + if (projectsToRestart.Any(project => project.Options.IsRootProject)) { - // Triggers rootRestartCancellationToken. - waitForFileChangeBeforeRestarting = false; + rootRunningProject.InitiateRestart(); break; } @@ -504,11 +467,6 @@ async Task> CaptureChangedFilesSnapshot(ImmutableArr { // start next iteration unless shutdown is requested } - catch (Exception) when ((waitForFileChangeBeforeRestarting = false) == true) - { - // unreachable - throw new InvalidOperationException(); - } finally { // stop watching file changes: @@ -520,6 +478,7 @@ async Task> CaptureChangedFilesSnapshot(ImmutableArr if (runtimeProcessLauncher != null) { // Request cleanup of all processes created by the launcher before we terminate the root process. + // Executed after the main process has terminated if the process exits on its own. // Non-cancellable - can only be aborted by forced Ctrl+C, which immediately kills the dotnet-watch process. await runtimeProcessLauncher.TerminateLaunchedProcessesAsync(CancellationToken.None); } @@ -540,10 +499,19 @@ async Task> CaptureChangedFilesSnapshot(ImmutableArr await runtimeProcessLauncher.DisposeAsync(); } - if (waitForFileChangeBeforeRestarting && - !shutdownCancellationToken.IsCancellationRequested && - !forceRestartCancellationSource.IsCancellationRequested && - rootRunningProject?.IsRestarting != true) + // Wait for file change + // - if the process hasn't launched (e.g. build failed) + // - if the process launched, has been terminated and is not being auto-restarted (rude edit), + // unless Ctrl+R or Ctrl+C were pressed. + if (shutdownCancellationToken.IsCancellationRequested) + { + // no op + } + else if (forceRestartCancellationSource.IsCancellationRequested) + { + _context.Logger.Log(MessageDescriptor.Restarting); + } + else if (rootRunningProject?.IsRestarting != true) { using var shutdownOrForcedRestartSource = CancellationTokenSource.CreateLinkedTokenSource(shutdownCancellationToken, forceRestartCancellationSource.Token); await WaitForFileChangeBeforeRestarting(fileWatcher, evaluationResult, shutdownOrForcedRestartSource.Token); diff --git a/src/BuiltInTools/Watch/Process/ProcessRunner.cs b/src/BuiltInTools/Watch/Process/ProcessRunner.cs index 2cfba7ade091..743db91a8e11 100644 --- a/src/BuiltInTools/Watch/Process/ProcessRunner.cs +++ b/src/BuiltInTools/Watch/Process/ProcessRunner.cs @@ -15,22 +15,16 @@ private sealed class ProcessState(Process process) : IDisposable public int ProcessId; public bool HasExited; - // True if Ctrl+C was sent to the process on Windows. - public bool SentWindowsCtrlC; - - // True if SIGKILL was sent to the process on Unix. - public bool SentUnixSigKill; - public void Dispose() => Process.Dispose(); } - private const int CtlrCExitCode = unchecked((int)0xC000013A); - private const int SigKillExitCode = 137; - // For testing purposes only, lock on access. private static readonly HashSet s_runningApplicationProcesses = []; + // Exit code used by the OS when process is terminated by an external signal. + private static readonly int s_processTerminatedExitCode = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? unchecked((int)0xC000013A) : 137; + public static IReadOnlyCollection GetRunningApplicationProcesses() { lock (s_runningApplicationProcesses) @@ -114,9 +108,7 @@ public async Task RunAsync(ProcessSpec processSpec, ILogger logger, Process if (processSpec.IsUserApplication) { - if (exitCode == 0 || - state.SentWindowsCtrlC && exitCode == CtlrCExitCode || - state.SentUnixSigKill && exitCode == SigKillExitCode) + if (exitCode == 0 || exitCode == s_processTerminatedExitCode) { logger.Log(MessageDescriptor.Exited); } @@ -366,12 +358,9 @@ private static void TerminateWindowsProcess(Process process, ProcessState state, } else { - state.SentWindowsCtrlC = true; - var error = ProcessUtilities.SendWindowsCtrlCEvent(state.ProcessId); if (error != null) { - state.SentWindowsCtrlC = false; logger.Log(MessageDescriptor.FailedToSendSignalToProcess, signalName, state.ProcessId, error); } } @@ -382,19 +371,9 @@ private static void TerminateUnixProcess(ProcessState state, ILogger logger, boo var signalName = force ? "SIGKILL" : "SIGTERM"; logger.Log(MessageDescriptor.TerminatingProcess, state.ProcessId, signalName); - if (force) - { - state.SentUnixSigKill = true; - } - var error = ProcessUtilities.SendPosixSignal(state.ProcessId, signal: force ? ProcessUtilities.SIGKILL : ProcessUtilities.SIGTERM); if (error != null) { - if (force) - { - state.SentUnixSigKill = false; - } - logger.Log(MessageDescriptor.FailedToSendSignalToProcess, signalName, state.ProcessId, error); } } diff --git a/src/BuiltInTools/Watch/Process/ProjectLauncher.cs b/src/BuiltInTools/Watch/Process/ProjectLauncher.cs index fb74333ebdd3..46d12db315a8 100644 --- a/src/BuiltInTools/Watch/Process/ProjectLauncher.cs +++ b/src/BuiltInTools/Watch/Process/ProjectLauncher.cs @@ -28,7 +28,6 @@ public EnvironmentOptions EnvironmentOptions public async ValueTask TryLaunchProcessAsync( ProjectOptions projectOptions, - CancellationTokenSource processTerminationSource, Action? onOutput, ProcessExitAction? onExit, RestartOperation restartOperation, @@ -111,7 +110,6 @@ public EnvironmentOptions EnvironmentOptions clients, processSpec, restartOperation, - processTerminationSource, cancellationToken); } diff --git a/src/BuiltInTools/Watch/Process/RunningProject.cs b/src/BuiltInTools/Watch/Process/RunningProject.cs index c4d63e953a22..74ed1690187a 100644 --- a/src/BuiltInTools/Watch/Process/RunningProject.cs +++ b/src/BuiltInTools/Watch/Process/RunningProject.cs @@ -37,8 +37,7 @@ internal sealed class RunningProject( public CancellationToken ProcessExitedCancellationToken = processExitedSource.Token; /// - /// Set to true when the process termination is being requested so that it can be restarted within - /// the Hot Reload session (i.e. without restarting the root project). + /// Set to true when the process termination is being requested so that it can be auto-restarted. /// public bool IsRestarting => _isRestarting != 0; diff --git a/src/BuiltInTools/Watch/UI/IReporter.cs b/src/BuiltInTools/Watch/UI/IReporter.cs index b2421ef89fa4..19f05aa3dedc 100644 --- a/src/BuiltInTools/Watch/UI/IReporter.cs +++ b/src/BuiltInTools/Watch/UI/IReporter.cs @@ -181,6 +181,7 @@ public MessageDescriptor WithLevelWhen(LogLevel level, bool condition) public static readonly MessageDescriptor WatchingWithHotReload = Create("Watching with Hot Reload.", Emoji.Watch, LogLevel.Debug); public static readonly MessageDescriptor RestartInProgress = Create("Restart in progress.", Emoji.Restart, LogLevel.Information); public static readonly MessageDescriptor RestartRequested = Create("Restart requested.", Emoji.Restart, LogLevel.Information); + public static readonly MessageDescriptor Restarting = Create("Restarting.", Emoji.Restart, LogLevel.Information); public static readonly MessageDescriptor ShutdownRequested = Create("Shutdown requested. Press Ctrl+C again to force exit.", Emoji.Stop, LogLevel.Information); public static readonly MessageDescriptor ApplyUpdate_Error = Create("{0}{1}", Emoji.Error, LogLevel.Error); public static readonly MessageDescriptor ApplyUpdate_Warning = Create("{0}{1}", Emoji.Warning, LogLevel.Warning); diff --git a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs index b77e2aa78406..d458d634c786 100644 --- a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs +++ b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs @@ -406,7 +406,7 @@ void VerifyExpectedLogFiles() [CombinatorialData] public async Task AutoRestartOnRudeEdit(bool nonInteractive) { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: nonInteractive.ToString()) .WithSource(); if (!nonInteractive) @@ -450,7 +450,7 @@ public async Task AutoRestartOnRudeEdit(bool nonInteractive) [CombinatorialData] public async Task AutoRestartOnRuntimeRudeEdit(bool nonInteractive) { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: nonInteractive.ToString()) .WithSource(); var tfm = ToolsetInfo.CurrentTargetFramework; @@ -555,7 +555,7 @@ public async Task AutoRestartOnRudeEditAfterRestartPrompt() [CombinatorialData] public async Task AutoRestartOnNoEffectEdit(bool nonInteractive) { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: nonInteractive.ToString()) .WithSource(); if (!nonInteractive) @@ -1160,7 +1160,7 @@ public async Task RenameDirectory(bool useMove) { Log("RenameSourceFile started"); - var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps") + var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps", identifier: useMove.ToString()) .WithSource(); var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); diff --git a/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs b/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs index 9495719fe794..a70c661c3670 100644 --- a/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs +++ b/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Runtime.CompilerServices; -using System.Text.RegularExpressions; using Microsoft.Extensions.Logging; namespace Microsoft.DotNet.Watch.UnitTests; @@ -17,19 +16,47 @@ public enum TriggerEvent WaitingForChanges, } - private record class RunningWatcher( + private record class TestWatcher( RuntimeProcessLauncherTests Test, HotReloadDotNetWatcher Watcher, - Task Task, + DotNetWatchContext Context, TestReporter Reporter, TestConsole Console, StrongBox ServiceHolder, CancellationTokenSource ShutdownSource) : IAsyncDisposable { public TestRuntimeProcessLauncher? Service => ServiceHolder.Value; + private Task? _lazyTask; + + public void Start() + { + Assert.Null(_lazyTask); + + _lazyTask = Task.Run(async () => + { + Test.Log("Starting watch"); + + try + { + await Watcher.WatchAsync(ShutdownSource.Token); + } + catch (Exception e) when (e is not OperationCanceledException) + { + ShutdownSource.Cancel(); + Test.Logger.WriteLine($"Unexpected exception {e}"); + throw; + } + finally + { + Context.Dispose(); + } + }, ShutdownSource.Token); + } public async ValueTask DisposeAsync() { + Assert.NotNull(_lazyTask); + if (!ShutdownSource.IsCancellationRequested) { Test.Log("Shutting down"); @@ -38,7 +65,7 @@ public async ValueTask DisposeAsync() try { - await Task; + await _lazyTask; } catch (OperationCanceledException) { @@ -77,7 +104,6 @@ private static async Task Launch(string projectPath, TestRuntime { var result = await service.ProjectLauncher.TryLaunchProcessAsync( projectOptions, - new CancellationTokenSource(), onOutput: null, onExit: null, restartOperation: startOp!, @@ -93,7 +119,7 @@ private static async Task Launch(string projectPath, TestRuntime return await startOp(cancellationToken); } - private RunningWatcher StartWatcher(TestAsset testAsset, string[] args, string? workingDirectory = null) + private TestWatcher CreateWatcher(TestAsset testAsset, string[] args, string? workingDirectory = null) { var console = new TestConsole(Logger); var reporter = new TestReporter(Logger); @@ -120,27 +146,9 @@ private RunningWatcher StartWatcher(TestAsset testAsset, string[] args, string? var context = program.CreateContext(processRunner); var watcher = new HotReloadDotNetWatcher(context, console, runtimeProcessLauncherFactory: factory); - var shutdownSource = new CancellationTokenSource(); - var watchTask = Task.Run(async () => - { - try - { - await watcher.WatchAsync(shutdownSource.Token); - } - catch (Exception e) when (e is not OperationCanceledException) - { - shutdownSource.Cancel(); - Logger.WriteLine($"Unexpected exception {e}"); - throw; - } - finally - { - context.Dispose(); - } - }, shutdownSource.Token); - return new RunningWatcher(this, watcher, watchTask, reporter, console, serviceHolder, shutdownSource); + return new TestWatcher(this, watcher, context, reporter, console, serviceHolder, shutdownSource); } [Theory] @@ -164,7 +172,7 @@ public async Task UpdateAndRudeEdit(TriggerEvent trigger) var libProject = Path.Combine(libDir, "Lib.csproj"); var libSource = Path.Combine(libDir, "Lib.cs"); - await using var w = StartWatcher(testAsset, ["--non-interactive", "--project", hostProject], workingDirectory); + await using var w = CreateWatcher(testAsset, ["--non-interactive", "--project", hostProject], workingDirectory); var launchCompletionA = w.CreateCompletionSource(); var launchCompletionB = w.CreateCompletionSource(); @@ -199,6 +207,9 @@ public async Task UpdateAndRudeEdit(TriggerEvent trigger) var projectsRestarted = w.Reporter.RegisterSemaphore(MessageDescriptor.ProjectsRestarted); var sessionStarted = w.Reporter.RegisterSemaphore(MessageDescriptor.HotReloadSessionStarted); var projectBaselinesUpdated = w.Reporter.RegisterSemaphore(MessageDescriptor.ProjectsRebuilt); + + w.Start(); + await launchCompletionA.Task; await launchCompletionB.Task; @@ -254,8 +265,6 @@ async Task MakeValidDependencyChange() } }; - await Task.Delay(TimeSpan.FromSeconds(1)); - UpdateSourceFile(libSource, """ using System; @@ -291,8 +300,6 @@ async Task MakeRudeEditChange() } }; - await Task.Delay(TimeSpan.FromSeconds(1)); - // rude edit in A (changing assembly level attribute): UpdateSourceFile(serviceSourceA2, """ [assembly: System.Reflection.AssemblyMetadata("TestAssemblyMetadata", "2")] @@ -328,7 +335,7 @@ public async Task UpdateAppliedToNewProcesses(bool sharedOutput) var libProject = Path.Combine(libDir, "Lib.csproj"); var libSource = Path.Combine(libDir, "Lib.cs"); - await using var w = StartWatcher(testAsset, ["--non-interactive", "--project", hostProject], workingDirectory); + await using var w = CreateWatcher(testAsset, ["--non-interactive", "--project", hostProject], workingDirectory); var waitingForChanges = w.Reporter.RegisterSemaphore(MessageDescriptor.WaitingForChanges); var changeHandled = w.Reporter.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); @@ -355,6 +362,8 @@ public async Task UpdateAppliedToNewProcesses(bool sharedOutput) } }; + w.Start(); + // let the host process start: Log("Waiting for changes..."); await waitingForChanges.WaitAsync(w.ShutdownSource.Token); @@ -418,7 +427,7 @@ public async Task HostRestart(UpdateLocation updateLocation) var libProject = Path.Combine(testAsset.Path, "Lib2", "Lib2.csproj"); var lib = Path.Combine(testAsset.Path, "Lib2", "Lib2.cs"); - await using var w = StartWatcher(testAsset, args: ["--project", hostProject], workingDirectory); + await using var w = CreateWatcher(testAsset, args: ["--project", hostProject], workingDirectory); var waitingForChanges = w.Reporter.RegisterSemaphore(MessageDescriptor.WaitingForChanges); var changeHandled = w.Reporter.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); @@ -441,9 +450,8 @@ public async Task HostRestart(UpdateLocation updateLocation) } }; - await Task.Delay(TimeSpan.FromSeconds(1)); + w.Start(); - // let the host process start: Log("Waiting for changes..."); await waitingForChanges.WaitAsync(w.ShutdownSource.Token); @@ -507,7 +515,7 @@ public async Task RudeEditInProjectWithoutRunningProcess() var serviceSourceA2 = Path.Combine(serviceDirA, "A2.cs"); var serviceProjectA = Path.Combine(serviceDirA, "A.csproj"); - await using var w = StartWatcher(testAsset, ["--non-interactive", "--project", hostProject], workingDirectory); + await using var w = CreateWatcher(testAsset, ["--non-interactive", "--project", hostProject], workingDirectory); var waitingForChanges = w.Reporter.RegisterSemaphore(MessageDescriptor.WaitingForChanges); @@ -515,6 +523,8 @@ public async Task RudeEditInProjectWithoutRunningProcess() var sessionStarted = w.Reporter.RegisterSemaphore(MessageDescriptor.HotReloadSessionStarted); var applyUpdateVerbose = w.Reporter.RegisterSemaphore(MessageDescriptor.ApplyUpdate_Verbose); + w.Start(); + // let the host process start: Log("Waiting for changes..."); await waitingForChanges.WaitAsync(w.ShutdownSource.Token); @@ -599,7 +609,7 @@ public async Task IgnoredChange(bool isExisting, bool isIncluded, DirectoryKind } } - await using var w = StartWatcher(testAsset, ["--no-exit"], workingDirectory); + await using var w = CreateWatcher(testAsset, ["--no-exit"], workingDirectory); var waitingForChanges = w.Reporter.RegisterSemaphore(MessageDescriptor.WaitingForChanges); var changeHandled = w.Reporter.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); @@ -609,6 +619,8 @@ public async Task IgnoredChange(bool isExisting, bool isIncluded, DirectoryKind var reEvaluationCompleted = w.Reporter.RegisterSemaphore(MessageDescriptor.ReEvaluationCompleted); var noHotReloadChangesToApply = w.Reporter.RegisterSemaphore(MessageDescriptor.NoCSharpChangesToApply); + w.Start(); + Log("Waiting for changes..."); await waitingForChanges.WaitAsync(w.ShutdownSource.Token); @@ -648,6 +660,88 @@ public async Task IgnoredChange(bool isExisting, bool isIncluded, DirectoryKind } } + [Fact] + public async Task CtrlR_RestartsBuild() + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") + .WithSource(); + + await using var w = CreateWatcher(testAsset, []); + + var buildCounter = 0; + + w.Reporter.RegisterAction(MessageDescriptor.Building, () => + { + if (Interlocked.Increment(ref buildCounter) == 1) + { + w.Console.PressKey(new ConsoleKeyInfo('R', ConsoleKey.R, shift: false, alt: false, control: true)); + } + }); + + var restarting = w.Reporter.RegisterSemaphore(MessageDescriptor.Restarting); + + // Iteration #1 build should be canceled, iteration #2 should build and launch the app. + var hasExpectedOutput = w.CreateCompletionSource(); + w.Reporter.OnProcessOutput += line => + { + Assert.DoesNotContain("DOTNET_WATCH_ITERATION = 1", line.Content); + + if (line.Content.Contains("DOTNET_WATCH_ITERATION = 2")) + { + hasExpectedOutput.TrySetResult(); + } + }; + + w.Start(); + + // 🔄 Restarting + await restarting.WaitAsync(w.ShutdownSource.Token); + + // DOTNET_WATCH_ITERATION = 2 + await hasExpectedOutput.Task; + + Assert.Equal(2, buildCounter); + } + + [Fact] + public async Task CtrlR_CancelsWaitForFileChange() + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") + .WithSource(); + + var programFilePath = Path.Combine(testAsset.Path, "Program.cs"); + + File.WriteAllText(programFilePath, """ + System.Console.WriteLine(""); + """); + + await using var w = CreateWatcher(testAsset, []); + + w.Reporter.RegisterAction(MessageDescriptor.WaitingForFileChangeBeforeRestarting, () => + { + w.Console.PressKey(new ConsoleKeyInfo('R', ConsoleKey.R, shift: false, alt: false, control: true)); + }); + + var buildCounter = 0; + w.Reporter.RegisterAction(MessageDescriptor.Building, () => Interlocked.Increment(ref buildCounter)); + + var counter = 0; + var hasExpectedOutput = w.CreateCompletionSource(); + w.Reporter.OnProcessOutput += line => + { + if (line.Content.Contains("") && Interlocked.Increment(ref counter) == 2) + { + hasExpectedOutput.TrySetResult(); + } + }; + + w.Start(); + + await hasExpectedOutput.Task; + + Assert.Equal(2, buildCounter); + } + [Fact] public async Task ProjectAndSourceFileChange() { @@ -657,7 +751,7 @@ public async Task ProjectAndSourceFileChange() var projectPath = Path.Combine(testAsset.Path, "WatchHotReloadApp.csproj"); var programPath = Path.Combine(testAsset.Path, "Program.cs"); - await using var w = StartWatcher(testAsset, [], workingDirectory); + await using var w = CreateWatcher(testAsset, [], workingDirectory); var fileChangesCompleted = w.CreateCompletionSource(); w.Watcher.Test_FileChangesCompletedTask = fileChangesCompleted.Task; @@ -675,7 +769,8 @@ public async Task ProjectAndSourceFileChange() } }; - // start process: + w.Start(); + Log("Waiting for changes..."); await waitingForChanges.WaitAsync(w.ShutdownSource.Token); @@ -713,7 +808,7 @@ public async Task ProjectAndSourceFileChange_AddProjectReference() UpdateSourceFile(appFile, code => code.Replace("Lib.Print();", "// Lib.Print();")); - await using var w = StartWatcher(testAsset, [], appProjDir); + await using var w = CreateWatcher(testAsset, [], appProjDir); var fileChangesCompleted = w.CreateCompletionSource(); w.Watcher.Test_FileChangesCompletedTask = fileChangesCompleted.Task; @@ -733,7 +828,8 @@ public async Task ProjectAndSourceFileChange_AddProjectReference() } }; - // start process: + w.Start(); + Log("Waiting for changes..."); await waitingForChanges.WaitAsync(w.ShutdownSource.Token); @@ -772,7 +868,7 @@ public async Task ProjectAndSourceFileChange_AddPackageReference() var projFilePath = Path.Combine(testAsset.Path, "WatchHotReloadApp.csproj"); var programFilePath = Path.Combine(testAsset.Path, "Program.cs"); - await using var w = StartWatcher(testAsset, []); + await using var w = CreateWatcher(testAsset, []); var fileChangesCompleted = w.CreateCompletionSource(); w.Watcher.Test_FileChangesCompletedTask = fileChangesCompleted.Task; @@ -792,7 +888,8 @@ public async Task ProjectAndSourceFileChange_AddPackageReference() } }; - // start process: + w.Start(); + Log("Waiting for changes..."); await waitingForChanges.WaitAsync(w.ShutdownSource.Token); diff --git a/test/dotnet-watch.Tests/TestUtilities/TestReporter.cs b/test/dotnet-watch.Tests/TestUtilities/TestReporter.cs index 849ca9f6baf8..9637de705eed 100644 --- a/test/dotnet-watch.Tests/TestUtilities/TestReporter.cs +++ b/test/dotnet-watch.Tests/TestUtilities/TestReporter.cs @@ -11,9 +11,6 @@ internal class TestReporter(ITestOutputHelper output) : IReporter, IProcessOutpu public readonly List ProcessOutput = []; public readonly List<(LogLevel level, string text)> Messages = []; - public bool IsVerbose - => true; - bool IProcessOutputReporter.PrefixProcessOutput => true; From d4e4c00e090b49fe1cdd9b5bbdc8650b643f93b9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 20 Feb 2026 00:08:12 +0000 Subject: [PATCH 084/179] Update dependencies from build 302610 Updated Dependencies: Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26118.122 -> 10.0.0-preview.26119.114) Microsoft.Build, Microsoft.Build.Localization, Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.3.0-release-26118-122 -> 18.3.0-release-26119-114) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.3.0-preview.1.11922 -> 7.3.0-preview.1.12014) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab (Version 10.0.200-alpha.26118.122 -> 10.0.200-alpha.26119.114) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.ExternalAccess.HotReload, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.3.0-2.26118.122 -> 5.3.0-2.26119.114) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26118.122 -> 10.0.0-beta.26119.114) Microsoft.FSharp.Compiler (Version 15.2.100-preview2.26118.122 -> 15.2.100-preview2.26119.114) Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.200-preview.26118.122 -> 10.0.200-preview.26119.114) [[ commit created by automation ]] --- eng/Version.Details.props | 122 +++++++++---------- eng/Version.Details.xml | 246 +++++++++++++++++++------------------- global.json | 4 +- 3 files changed, 186 insertions(+), 186 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index ae71fb6f2d02..74861019e8f2 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,68 +6,68 @@ This file should be imported by eng/Versions.props - 10.0.0-preview.26118.122 - 18.3.0-release-26118-122 - 18.3.0-release-26118-122 - 7.3.0-preview.1.11922 - 10.0.200-alpha.26118.122 - 5.3.0-2.26118.122 - 5.3.0-2.26118.122 - 5.3.0-2.26118.122 - 5.3.0-2.26118.122 - 5.3.0-2.26118.122 - 5.3.0-2.26118.122 - 5.3.0-2.26118.122 - 5.3.0-2.26118.122 - 10.0.0-preview.26118.122 - 5.3.0-2.26118.122 - 5.3.0-2.26118.122 - 10.0.0-beta.26118.122 - 10.0.0-beta.26118.122 - 10.0.0-beta.26118.122 - 10.0.0-beta.26118.122 - 10.0.0-beta.26118.122 - 10.0.0-beta.26118.122 - 10.0.0-beta.26118.122 - 10.0.0-beta.26118.122 - 15.2.100-preview2.26118.122 - 5.3.0-2.26118.122 - 5.3.0-2.26118.122 + 10.0.0-preview.26119.114 + 18.3.0-release-26119-114 + 18.3.0-release-26119-114 + 7.3.0-preview.1.12014 + 10.0.200-alpha.26119.114 + 5.3.0-2.26119.114 + 5.3.0-2.26119.114 + 5.3.0-2.26119.114 + 5.3.0-2.26119.114 + 5.3.0-2.26119.114 + 5.3.0-2.26119.114 + 5.3.0-2.26119.114 + 5.3.0-2.26119.114 + 10.0.0-preview.26119.114 + 5.3.0-2.26119.114 + 5.3.0-2.26119.114 + 10.0.0-beta.26119.114 + 10.0.0-beta.26119.114 + 10.0.0-beta.26119.114 + 10.0.0-beta.26119.114 + 10.0.0-beta.26119.114 + 10.0.0-beta.26119.114 + 10.0.0-beta.26119.114 + 10.0.0-beta.26119.114 + 15.2.100-preview2.26119.114 + 5.3.0-2.26119.114 + 5.3.0-2.26119.114 10.0.0-preview.7.25377.103 - 10.0.0-preview.26118.122 - 18.3.0-release-26118-122 - 10.0.200-alpha.26118.122 - 10.0.200-alpha.26118.122 - 10.0.200-alpha.26118.122 - 10.0.200-alpha.26118.122 - 10.0.200-alpha.26118.122 - 10.0.200-preview.26118.122 - 10.0.200-preview.26118.122 - 10.0.200-preview.26118.122 - 10.0.200-preview.26118.122 - 10.0.200-preview.26118.122 - 10.0.200-preview.26118.122 - 10.0.200-preview.26118.122 - 10.0.200-preview.26118.122 - 10.0.200-preview.26118.122 - 18.3.0-release-26118-122 - 18.3.0-release-26118-122 - 7.3.0-preview.1.11922 - 7.3.0-preview.1.11922 - 7.3.0-preview.1.11922 - 7.3.0-preview.1.11922 - 7.3.0-preview.1.11922 - 7.3.0-preview.1.11922 - 7.3.0-preview.1.11922 - 7.3.0-preview.1.11922 - 7.3.0-preview.1.11922 - 7.3.0-preview.1.11922 - 7.3.0-preview.1.11922 - 7.3.0-preview.1.11922 - 7.3.0-preview.1.11922 - 7.3.0-preview.1.11922 - 7.3.0-preview.1.11922 - 7.3.0-preview.1.11922 + 10.0.0-preview.26119.114 + 18.3.0-release-26119-114 + 10.0.200-alpha.26119.114 + 10.0.200-alpha.26119.114 + 10.0.200-alpha.26119.114 + 10.0.200-alpha.26119.114 + 10.0.200-alpha.26119.114 + 10.0.200-preview.26119.114 + 10.0.200-preview.26119.114 + 10.0.200-preview.26119.114 + 10.0.200-preview.26119.114 + 10.0.200-preview.26119.114 + 10.0.200-preview.26119.114 + 10.0.200-preview.26119.114 + 10.0.200-preview.26119.114 + 10.0.200-preview.26119.114 + 18.3.0-release-26119-114 + 18.3.0-release-26119-114 + 7.3.0-preview.1.12014 + 7.3.0-preview.1.12014 + 7.3.0-preview.1.12014 + 7.3.0-preview.1.12014 + 7.3.0-preview.1.12014 + 7.3.0-preview.1.12014 + 7.3.0-preview.1.12014 + 7.3.0-preview.1.12014 + 7.3.0-preview.1.12014 + 7.3.0-preview.1.12014 + 7.3.0-preview.1.12014 + 7.3.0-preview.1.12014 + 7.3.0-preview.1.12014 + 7.3.0-preview.1.12014 + 7.3.0-preview.1.12014 + 7.3.0-preview.1.12014 10.0.2-servicing.25612.105 10.0.2-servicing.25612.105 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c0f2cfac83ee..6bdaaefc4c2a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,42 +1,42 @@ - + - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -72,138 +72,138 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -370,25 +370,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -405,29 +405,29 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf @@ -514,9 +514,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -528,37 +528,37 @@ - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf - + https://github.com/dotnet/dotnet - 1a791e3d0a25d91f7560f4557daa8cabcf22e9f7 + d709a79937df8cc2b50f0ce00ce8fd2f403d26cf https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet diff --git a/global.json b/global.json index c78998c85809..8e39a224d47e 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26118.122", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26118.122", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26119.114", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26119.114", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 7b1c761f5093b5ee5b0207ba33d3e59f202b6ee1 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 20 Feb 2026 00:35:02 +0000 Subject: [PATCH 085/179] Backflow from https://github.com/dotnet/dotnet / 0ca0f25 build 302612 [[ commit created by automation ]] --- eng/Versions.props | 2 +- .../src/Microsoft.CodeAnalysis.NetAnalyzers.sarif | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index 77d0530dabd6..319018b5fc2b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -7,7 +7,7 @@ 10 0 1 - 4 + 5 $([System.String]::Copy('$(VersionSDKMinorPatch)').PadLeft(2, '0')) - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index e1025e27fa01..d65104121519 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,139 +6,139 @@ This file should be imported by eng/Versions.props - 10.0.4-servicing.26119.101 - 10.0.4-servicing.26119.101 - 10.0.4-servicing.26119.101 - 10.0.4-servicing.26119.101 - 10.0.4 - 10.0.4-servicing.26119.101 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4-servicing.26119.101 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4-servicing.26119.101 - 10.0.4 - 10.0.4-servicing.26119.101 - 10.0.4-servicing.26119.101 - 10.0.0-preview.26119.101 - 10.0.4 - 10.0.4 + 10.0.5-servicing.26119.111 + 10.0.5-servicing.26119.111 + 10.0.5-servicing.26119.111 + 10.0.5-servicing.26119.111 + 10.0.5 + 10.0.5-servicing.26119.111 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5-servicing.26119.111 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5-servicing.26119.111 + 10.0.5 + 10.0.5-servicing.26119.111 + 10.0.5-servicing.26119.111 + 10.0.0-preview.26119.111 + 10.0.5 + 10.0.5 18.0.11 - 18.0.11-servicing-26119-101 - 7.0.2-rc.12001 - 10.0.104 - 5.0.0-2.26119.101 - 5.0.0-2.26119.101 - 5.0.0-2.26119.101 - 5.0.0-2.26119.101 - 5.0.0-2.26119.101 - 5.0.0-2.26119.101 - 5.0.0-2.26119.101 - 10.0.0-preview.26119.101 - 5.0.0-2.26119.101 - 5.0.0-2.26119.101 - 2.0.0-preview.1.26119.101 - 2.2.4 - 10.0.0-beta.26119.101 - 10.0.0-beta.26119.101 - 10.0.0-beta.26119.101 - 10.0.0-beta.26119.101 - 10.0.0-beta.26119.101 - 10.0.0-beta.26119.101 - 10.0.4 - 10.0.4 - 10.0.4-servicing.26119.101 - 10.0.4-servicing.26119.101 - 10.0.0-beta.26119.101 - 10.0.0-beta.26119.101 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 14.0.104-servicing.26119.101 - 10.0.4 - 5.0.0-2.26119.101 - 5.0.0-2.26119.101 - 10.0.4-servicing.26119.101 - 10.0.4 - 10.0.4 + 18.0.11-servicing-26119-111 + 7.0.2-rc.12011 + 10.0.105 + 5.0.0-2.26119.111 + 5.0.0-2.26119.111 + 5.0.0-2.26119.111 + 5.0.0-2.26119.111 + 5.0.0-2.26119.111 + 5.0.0-2.26119.111 + 5.0.0-2.26119.111 + 10.0.0-preview.26119.111 + 5.0.0-2.26119.111 + 5.0.0-2.26119.111 + 2.0.0-preview.1.26119.111 + 2.2.5 + 10.0.0-beta.26119.111 + 10.0.0-beta.26119.111 + 10.0.0-beta.26119.111 + 10.0.0-beta.26119.111 + 10.0.0-beta.26119.111 + 10.0.0-beta.26119.111 + 10.0.5 + 10.0.5 + 10.0.5-servicing.26119.111 + 10.0.5-servicing.26119.111 + 10.0.0-beta.26119.111 + 10.0.0-beta.26119.111 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 14.0.105-servicing.26119.111 + 10.0.5 + 5.0.0-2.26119.111 + 5.0.0-2.26119.111 + 10.0.5-servicing.26119.111 + 10.0.5 + 10.0.5 10.0.0-preview.7.25377.103 - 10.0.0-preview.26119.101 - 10.0.4-servicing.26119.101 - 18.0.1-release-26119-101 - 10.0.4 - 10.0.4-servicing.26119.101 - 10.0.104 - 10.0.104 - 10.0.104 - 10.0.104 - 10.0.104 - 10.0.104 - 10.0.104 - 10.0.104 - 10.0.104-servicing.26119.101 - 10.0.104 - 10.0.104-servicing.26119.101 - 10.0.104 - 10.0.104 - 10.0.104-servicing.26119.101 - 18.0.1-release-26119-101 - 18.0.1-release-26119-101 - 3.2.4 - 10.0.4 - 10.0.4-servicing.26119.101 - 10.0.4 - 7.0.2-rc.12001 - 7.0.2-rc.12001 - 7.0.2-rc.12001 - 7.0.2-rc.12001 - 7.0.2-rc.12001 - 7.0.2-rc.12001 - 7.0.2-rc.12001 - 7.0.2-rc.12001 - 7.0.2-rc.12001 - 7.0.2-rc.12001 - 7.0.2-rc.12001 - 7.0.2-rc.12001 - 7.0.2-rc.12001 - 7.0.2-rc.12001 - 7.0.2-rc.12001 - 7.0.2-rc.12001 - 10.0.4 - 2.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 - 10.0.4 + 10.0.0-preview.26119.111 + 10.0.5-servicing.26119.111 + 18.0.1-release-26119-111 + 10.0.5 + 10.0.5-servicing.26119.111 + 10.0.105 + 10.0.105 + 10.0.105 + 10.0.105 + 10.0.105 + 10.0.105 + 10.0.105 + 10.0.105 + 10.0.105-servicing.26119.111 + 10.0.105 + 10.0.105-servicing.26119.111 + 10.0.105 + 10.0.105 + 10.0.105-servicing.26119.111 + 18.0.1-release-26119-111 + 18.0.1-release-26119-111 + 3.2.5 + 10.0.5 + 10.0.5-servicing.26119.111 + 10.0.5 + 7.0.2-rc.12011 + 7.0.2-rc.12011 + 7.0.2-rc.12011 + 7.0.2-rc.12011 + 7.0.2-rc.12011 + 7.0.2-rc.12011 + 7.0.2-rc.12011 + 7.0.2-rc.12011 + 7.0.2-rc.12011 + 7.0.2-rc.12011 + 7.0.2-rc.12011 + 7.0.2-rc.12011 + 7.0.2-rc.12011 + 7.0.2-rc.12011 + 7.0.2-rc.12011 + 7.0.2-rc.12011 + 10.0.5 + 2.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 + 10.0.5 2.1.0 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a473db472226..032b80622dd1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f @@ -68,170 +68,170 @@ https://github.com/dotnet/dotnet 6a953e76162f3f079405f80e28664fa51b136740 - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f https://github.com/microsoft/testfx @@ -569,9 +569,9 @@ https://github.com/microsoft/testfx 9208585003599ef9cc5d59f1ed9f7a95ea157c97 - + https://github.com/dotnet/dotnet - 69600372e5b6e4a27587423ec6997a46079ea3fc + 0ca0f25539f717952d7cb1f6dc18f75fbe22026f diff --git a/global.json b/global.json index c668f66eab2b..0ec40bf17318 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26119.101", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26119.101", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26119.111", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26119.111", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 35a98f725f330fa1be15dab9f58cb1e13fb1554b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 20 Feb 2026 07:45:12 +0000 Subject: [PATCH 087/179] Update dependencies from build 302653 Updated Dependencies: dotnet-dev-certs, dotnet-user-jwts, dotnet-user-secrets, Microsoft.AspNetCore.Analyzers, Microsoft.AspNetCore.App.Ref.Internal, Microsoft.AspNetCore.Components.SdkAnalyzers, Microsoft.AspNetCore.DeveloperCertificates.XPlat, Microsoft.AspNetCore.Mvc.Analyzers, Microsoft.AspNetCore.Mvc.Api.Analyzers, Microsoft.Dotnet.WinForms.ProjectTemplates, Microsoft.DotNet.Wpf.ProjectTemplates, Microsoft.NET.HostModel, Microsoft.NET.Sdk.WindowsDesktop, Microsoft.NETCore.Platforms, Microsoft.WindowsDesktop.App.Internal (Version 10.0.5-servicing.26119.111 -> 10.0.5-servicing.26119.120) Microsoft.AspNetCore.App.Ref, Microsoft.AspNetCore.Authentication.Facebook, Microsoft.AspNetCore.Authentication.Google, Microsoft.AspNetCore.Authentication.MicrosoftAccount, Microsoft.AspNetCore.Authorization, Microsoft.AspNetCore.Components, Microsoft.AspNetCore.Components.Analyzers, Microsoft.AspNetCore.Components.Forms, Microsoft.AspNetCore.Components.Web, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.AspNetCore.Components.WebAssembly.Server, Microsoft.AspNetCore.Components.WebView, Microsoft.AspNetCore.Metadata, Microsoft.AspNetCore.TestHost, Microsoft.Bcl.AsyncInterfaces, Microsoft.DotNet.Web.ItemTemplates.10.0, Microsoft.DotNet.Web.ProjectTemplates.10.0, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Embedded, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.ObjectPool, Microsoft.JSInterop, Microsoft.NET.ILLink.Tasks, Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64, Microsoft.NETCore.App.Ref, Microsoft.Win32.SystemEvents, Microsoft.WindowsDesktop.App.Ref, System.CodeDom, System.ComponentModel.Composition, System.Composition.AttributedModel, System.Composition.Convention, System.Composition.Hosting, System.Composition.Runtime, System.Composition.TypedParts, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Formats.Asn1, System.IO.Hashing, System.Reflection.MetadataLoadContext, System.Resources.Extensions, System.Security.Cryptography.Pkcs, System.Security.Cryptography.ProtectedData, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encoding.CodePages, System.Text.Json, System.Windows.Extensions (Version 10.0.5 -> 10.0.5) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26119.111 -> 10.0.0-preview.26119.120) Microsoft.Build (Version 18.0.11 -> 18.0.11) Microsoft.Build.Localization (Version 18.0.11-servicing-26119-111 -> 18.0.11-servicing-26119-120) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.0.2-rc.12011 -> 7.0.2-rc.12020) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab, Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common (Version 10.0.105 -> 10.0.105) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.0.0-2.26119.111 -> 5.0.0-2.26119.120) Microsoft.Deployment.DotNet.Releases (Version 2.0.0-preview.1.26119.111 -> 2.0.0-preview.1.26119.120) Microsoft.DiaSymReader (Version 2.2.5 -> 2.2.5) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26119.111 -> 10.0.0-beta.26119.120) Microsoft.FSharp.Compiler (Version 14.0.105-servicing.26119.111 -> 14.0.105-servicing.26119.120) Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.0.1-release-26119-111 -> 18.0.1-release-26119-120) Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.105-servicing.26119.111 -> 10.0.105-servicing.26119.120) Microsoft.Web.Xdt (Version 3.2.5 -> 3.2.5) System.CommandLine (Version 2.0.5 -> 2.0.5) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index 34cff4bf051b..e107fc992453 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index d65104121519..e940111acd84 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.5-servicing.26119.111 - 10.0.5-servicing.26119.111 - 10.0.5-servicing.26119.111 - 10.0.5-servicing.26119.111 + 10.0.5-servicing.26119.120 + 10.0.5-servicing.26119.120 + 10.0.5-servicing.26119.120 + 10.0.5-servicing.26119.120 10.0.5 - 10.0.5-servicing.26119.111 + 10.0.5-servicing.26119.120 10.0.5 10.0.5 10.0.5 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26119.111 + 10.0.5-servicing.26119.120 10.0.5 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26119.111 + 10.0.5-servicing.26119.120 10.0.5 - 10.0.5-servicing.26119.111 - 10.0.5-servicing.26119.111 - 10.0.0-preview.26119.111 + 10.0.5-servicing.26119.120 + 10.0.5-servicing.26119.120 + 10.0.0-preview.26119.120 10.0.5 10.0.5 18.0.11 - 18.0.11-servicing-26119-111 - 7.0.2-rc.12011 + 18.0.11-servicing-26119-120 + 7.0.2-rc.12020 10.0.105 - 5.0.0-2.26119.111 - 5.0.0-2.26119.111 - 5.0.0-2.26119.111 - 5.0.0-2.26119.111 - 5.0.0-2.26119.111 - 5.0.0-2.26119.111 - 5.0.0-2.26119.111 - 10.0.0-preview.26119.111 - 5.0.0-2.26119.111 - 5.0.0-2.26119.111 - 2.0.0-preview.1.26119.111 + 5.0.0-2.26119.120 + 5.0.0-2.26119.120 + 5.0.0-2.26119.120 + 5.0.0-2.26119.120 + 5.0.0-2.26119.120 + 5.0.0-2.26119.120 + 5.0.0-2.26119.120 + 10.0.0-preview.26119.120 + 5.0.0-2.26119.120 + 5.0.0-2.26119.120 + 2.0.0-preview.1.26119.120 2.2.5 - 10.0.0-beta.26119.111 - 10.0.0-beta.26119.111 - 10.0.0-beta.26119.111 - 10.0.0-beta.26119.111 - 10.0.0-beta.26119.111 - 10.0.0-beta.26119.111 + 10.0.0-beta.26119.120 + 10.0.0-beta.26119.120 + 10.0.0-beta.26119.120 + 10.0.0-beta.26119.120 + 10.0.0-beta.26119.120 + 10.0.0-beta.26119.120 10.0.5 10.0.5 - 10.0.5-servicing.26119.111 - 10.0.5-servicing.26119.111 - 10.0.0-beta.26119.111 - 10.0.0-beta.26119.111 + 10.0.5-servicing.26119.120 + 10.0.5-servicing.26119.120 + 10.0.0-beta.26119.120 + 10.0.0-beta.26119.120 10.0.5 10.0.5 10.0.5 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 14.0.105-servicing.26119.111 + 14.0.105-servicing.26119.120 10.0.5 - 5.0.0-2.26119.111 - 5.0.0-2.26119.111 - 10.0.5-servicing.26119.111 + 5.0.0-2.26119.120 + 5.0.0-2.26119.120 + 10.0.5-servicing.26119.120 10.0.5 10.0.5 10.0.0-preview.7.25377.103 - 10.0.0-preview.26119.111 - 10.0.5-servicing.26119.111 - 18.0.1-release-26119-111 + 10.0.0-preview.26119.120 + 10.0.5-servicing.26119.120 + 18.0.1-release-26119-120 10.0.5 - 10.0.5-servicing.26119.111 + 10.0.5-servicing.26119.120 10.0.105 10.0.105 10.0.105 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.105 10.0.105 10.0.105 - 10.0.105-servicing.26119.111 + 10.0.105-servicing.26119.120 10.0.105 - 10.0.105-servicing.26119.111 + 10.0.105-servicing.26119.120 10.0.105 10.0.105 - 10.0.105-servicing.26119.111 - 18.0.1-release-26119-111 - 18.0.1-release-26119-111 + 10.0.105-servicing.26119.120 + 18.0.1-release-26119-120 + 18.0.1-release-26119-120 3.2.5 10.0.5 - 10.0.5-servicing.26119.111 + 10.0.5-servicing.26119.120 10.0.5 - 7.0.2-rc.12011 - 7.0.2-rc.12011 - 7.0.2-rc.12011 - 7.0.2-rc.12011 - 7.0.2-rc.12011 - 7.0.2-rc.12011 - 7.0.2-rc.12011 - 7.0.2-rc.12011 - 7.0.2-rc.12011 - 7.0.2-rc.12011 - 7.0.2-rc.12011 - 7.0.2-rc.12011 - 7.0.2-rc.12011 - 7.0.2-rc.12011 - 7.0.2-rc.12011 - 7.0.2-rc.12011 + 7.0.2-rc.12020 + 7.0.2-rc.12020 + 7.0.2-rc.12020 + 7.0.2-rc.12020 + 7.0.2-rc.12020 + 7.0.2-rc.12020 + 7.0.2-rc.12020 + 7.0.2-rc.12020 + 7.0.2-rc.12020 + 7.0.2-rc.12020 + 7.0.2-rc.12020 + 7.0.2-rc.12020 + 7.0.2-rc.12020 + 7.0.2-rc.12020 + 7.0.2-rc.12020 + 7.0.2-rc.12020 10.0.5 2.0.5 10.0.5 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 032b80622dd1..24a6cd4e5908 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 - + https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 0ca0f25539f717952d7cb1f6dc18f75fbe22026f + 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 diff --git a/global.json b/global.json index 0ec40bf17318..f1a8f5d9be93 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26119.111", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26119.111", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26119.120", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26119.120", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 52e4ef1d81672d456c202dde84a026aea38ec5c1 Mon Sep 17 00:00:00 2001 From: Jan Jones Date: Fri, 20 Feb 2026 10:29:11 +0100 Subject: [PATCH 088/179] Remove failing assert from file-level directive parser (#53087) --- .../FileLevelDirectiveHelpers.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs b/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs index 681843c6cbc8..8ee092cf6123 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs @@ -89,8 +89,6 @@ public static void FindLeadingDirectives( ErrorReporter reportError, ImmutableArray.Builder? builder) { - Debug.Assert(triviaList.Span.Start == 0); - var deduplicated = new Dictionary(NamedDirectiveComparer.Instance); TextSpan previousWhiteSpaceSpan = default; From 7e631b110f2226078df460f5ebb04393c2adaaf8 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 20 Feb 2026 13:23:19 +0000 Subject: [PATCH 089/179] Update dependencies from build 302685 Updated Dependencies: Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26119.114 -> 10.0.0-preview.26120.103) Microsoft.Build, Microsoft.Build.Localization, Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.3.0-release-26119-114 -> 18.3.0-release-26120-103) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.3.0-preview.1.12014 -> 7.3.0-preview.1.12103) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab (Version 10.0.200-alpha.26119.114 -> 10.0.200-alpha.26120.103) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.ExternalAccess.HotReload, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.3.0-2.26119.114 -> 5.3.0-2.26120.103) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26119.114 -> 10.0.0-beta.26120.103) Microsoft.FSharp.Compiler (Version 15.2.100-preview2.26119.114 -> 15.2.100-preview2.26120.103) Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.200-preview.26119.114 -> 10.0.200-preview.26120.103) [[ commit created by automation ]] --- eng/Version.Details.props | 122 +++++++++---------- eng/Version.Details.xml | 246 +++++++++++++++++++------------------- global.json | 4 +- 3 files changed, 186 insertions(+), 186 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 74861019e8f2..d7134ae74db1 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,68 +6,68 @@ This file should be imported by eng/Versions.props - 10.0.0-preview.26119.114 - 18.3.0-release-26119-114 - 18.3.0-release-26119-114 - 7.3.0-preview.1.12014 - 10.0.200-alpha.26119.114 - 5.3.0-2.26119.114 - 5.3.0-2.26119.114 - 5.3.0-2.26119.114 - 5.3.0-2.26119.114 - 5.3.0-2.26119.114 - 5.3.0-2.26119.114 - 5.3.0-2.26119.114 - 5.3.0-2.26119.114 - 10.0.0-preview.26119.114 - 5.3.0-2.26119.114 - 5.3.0-2.26119.114 - 10.0.0-beta.26119.114 - 10.0.0-beta.26119.114 - 10.0.0-beta.26119.114 - 10.0.0-beta.26119.114 - 10.0.0-beta.26119.114 - 10.0.0-beta.26119.114 - 10.0.0-beta.26119.114 - 10.0.0-beta.26119.114 - 15.2.100-preview2.26119.114 - 5.3.0-2.26119.114 - 5.3.0-2.26119.114 + 10.0.0-preview.26120.103 + 18.3.0-release-26120-103 + 18.3.0-release-26120-103 + 7.3.0-preview.1.12103 + 10.0.200-alpha.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 10.0.0-preview.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 15.2.100-preview2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 10.0.0-preview.7.25377.103 - 10.0.0-preview.26119.114 - 18.3.0-release-26119-114 - 10.0.200-alpha.26119.114 - 10.0.200-alpha.26119.114 - 10.0.200-alpha.26119.114 - 10.0.200-alpha.26119.114 - 10.0.200-alpha.26119.114 - 10.0.200-preview.26119.114 - 10.0.200-preview.26119.114 - 10.0.200-preview.26119.114 - 10.0.200-preview.26119.114 - 10.0.200-preview.26119.114 - 10.0.200-preview.26119.114 - 10.0.200-preview.26119.114 - 10.0.200-preview.26119.114 - 10.0.200-preview.26119.114 - 18.3.0-release-26119-114 - 18.3.0-release-26119-114 - 7.3.0-preview.1.12014 - 7.3.0-preview.1.12014 - 7.3.0-preview.1.12014 - 7.3.0-preview.1.12014 - 7.3.0-preview.1.12014 - 7.3.0-preview.1.12014 - 7.3.0-preview.1.12014 - 7.3.0-preview.1.12014 - 7.3.0-preview.1.12014 - 7.3.0-preview.1.12014 - 7.3.0-preview.1.12014 - 7.3.0-preview.1.12014 - 7.3.0-preview.1.12014 - 7.3.0-preview.1.12014 - 7.3.0-preview.1.12014 - 7.3.0-preview.1.12014 + 10.0.0-preview.26120.103 + 18.3.0-release-26120-103 + 10.0.200-alpha.26120.103 + 10.0.200-alpha.26120.103 + 10.0.200-alpha.26120.103 + 10.0.200-alpha.26120.103 + 10.0.200-alpha.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 18.3.0-release-26120-103 + 18.3.0-release-26120-103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 10.0.2-servicing.25612.105 10.0.2-servicing.25612.105 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6bdaaefc4c2a..cc0a605c04b1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,42 +1,42 @@ - + - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -72,138 +72,138 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -370,25 +370,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -405,29 +405,29 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 @@ -514,9 +514,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -528,37 +528,37 @@ - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - d709a79937df8cc2b50f0ce00ce8fd2f403d26cf + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet diff --git a/global.json b/global.json index 8e39a224d47e..f710c04c94f9 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26119.114", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26119.114", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26120.103", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26120.103", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From f43e8e589f19eee6a8c4ad054aa698a7289bb480 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 20 Feb 2026 16:47:36 +0000 Subject: [PATCH 090/179] Update dependencies from build 302699 Updated Dependencies: dotnet-dev-certs, dotnet-user-jwts, dotnet-user-secrets, Microsoft.AspNetCore.Analyzers, Microsoft.AspNetCore.App.Ref.Internal, Microsoft.AspNetCore.Components.SdkAnalyzers, Microsoft.AspNetCore.DeveloperCertificates.XPlat, Microsoft.AspNetCore.Mvc.Analyzers, Microsoft.AspNetCore.Mvc.Api.Analyzers, Microsoft.Dotnet.WinForms.ProjectTemplates, Microsoft.DotNet.Wpf.ProjectTemplates, Microsoft.NET.HostModel, Microsoft.NET.Sdk.WindowsDesktop, Microsoft.NETCore.Platforms, Microsoft.WindowsDesktop.App.Internal (Version 10.0.5-servicing.26119.120 -> 10.0.5-servicing.26120.101) Microsoft.AspNetCore.App.Ref, Microsoft.AspNetCore.Authentication.Facebook, Microsoft.AspNetCore.Authentication.Google, Microsoft.AspNetCore.Authentication.MicrosoftAccount, Microsoft.AspNetCore.Authorization, Microsoft.AspNetCore.Components, Microsoft.AspNetCore.Components.Analyzers, Microsoft.AspNetCore.Components.Forms, Microsoft.AspNetCore.Components.Web, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.AspNetCore.Components.WebAssembly.Server, Microsoft.AspNetCore.Components.WebView, Microsoft.AspNetCore.Metadata, Microsoft.AspNetCore.TestHost, Microsoft.Bcl.AsyncInterfaces, Microsoft.DotNet.Web.ItemTemplates.10.0, Microsoft.DotNet.Web.ProjectTemplates.10.0, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Embedded, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.ObjectPool, Microsoft.JSInterop, Microsoft.NET.ILLink.Tasks, Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64, Microsoft.NETCore.App.Ref, Microsoft.Win32.SystemEvents, Microsoft.WindowsDesktop.App.Ref, System.CodeDom, System.ComponentModel.Composition, System.Composition.AttributedModel, System.Composition.Convention, System.Composition.Hosting, System.Composition.Runtime, System.Composition.TypedParts, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Formats.Asn1, System.IO.Hashing, System.Reflection.MetadataLoadContext, System.Resources.Extensions, System.Security.Cryptography.Pkcs, System.Security.Cryptography.ProtectedData, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encoding.CodePages, System.Text.Json, System.Windows.Extensions (Version 10.0.5 -> 10.0.5) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26119.120 -> 10.0.0-preview.26120.101) Microsoft.Build (Version 18.0.11 -> 18.0.11) Microsoft.Build.Localization (Version 18.0.11-servicing-26119-120 -> 18.0.11-servicing-26120-101) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.0.2-rc.12020 -> 7.0.2-rc.12101) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab, Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common (Version 10.0.105 -> 10.0.105) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.0.0-2.26119.120 -> 5.0.0-2.26120.101) Microsoft.Deployment.DotNet.Releases (Version 2.0.0-preview.1.26119.120 -> 2.0.0-preview.1.26120.101) Microsoft.DiaSymReader (Version 2.2.5 -> 2.2.5) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26119.120 -> 10.0.0-beta.26120.101) Microsoft.FSharp.Compiler (Version 14.0.105-servicing.26119.120 -> 14.0.105-servicing.26120.101) Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.0.1-release-26119-120 -> 18.0.1-release-26120-101) Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.105-servicing.26119.120 -> 10.0.105-servicing.26120.101) Microsoft.Web.Xdt (Version 3.2.5 -> 3.2.5) System.CommandLine (Version 2.0.5 -> 2.0.5) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index e107fc992453..ee20f4d2abfe 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index e940111acd84..475d2f1fe8d9 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.5-servicing.26119.120 - 10.0.5-servicing.26119.120 - 10.0.5-servicing.26119.120 - 10.0.5-servicing.26119.120 + 10.0.5-servicing.26120.101 + 10.0.5-servicing.26120.101 + 10.0.5-servicing.26120.101 + 10.0.5-servicing.26120.101 10.0.5 - 10.0.5-servicing.26119.120 + 10.0.5-servicing.26120.101 10.0.5 10.0.5 10.0.5 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26119.120 + 10.0.5-servicing.26120.101 10.0.5 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26119.120 + 10.0.5-servicing.26120.101 10.0.5 - 10.0.5-servicing.26119.120 - 10.0.5-servicing.26119.120 - 10.0.0-preview.26119.120 + 10.0.5-servicing.26120.101 + 10.0.5-servicing.26120.101 + 10.0.0-preview.26120.101 10.0.5 10.0.5 18.0.11 - 18.0.11-servicing-26119-120 - 7.0.2-rc.12020 + 18.0.11-servicing-26120-101 + 7.0.2-rc.12101 10.0.105 - 5.0.0-2.26119.120 - 5.0.0-2.26119.120 - 5.0.0-2.26119.120 - 5.0.0-2.26119.120 - 5.0.0-2.26119.120 - 5.0.0-2.26119.120 - 5.0.0-2.26119.120 - 10.0.0-preview.26119.120 - 5.0.0-2.26119.120 - 5.0.0-2.26119.120 - 2.0.0-preview.1.26119.120 + 5.0.0-2.26120.101 + 5.0.0-2.26120.101 + 5.0.0-2.26120.101 + 5.0.0-2.26120.101 + 5.0.0-2.26120.101 + 5.0.0-2.26120.101 + 5.0.0-2.26120.101 + 10.0.0-preview.26120.101 + 5.0.0-2.26120.101 + 5.0.0-2.26120.101 + 2.0.0-preview.1.26120.101 2.2.5 - 10.0.0-beta.26119.120 - 10.0.0-beta.26119.120 - 10.0.0-beta.26119.120 - 10.0.0-beta.26119.120 - 10.0.0-beta.26119.120 - 10.0.0-beta.26119.120 + 10.0.0-beta.26120.101 + 10.0.0-beta.26120.101 + 10.0.0-beta.26120.101 + 10.0.0-beta.26120.101 + 10.0.0-beta.26120.101 + 10.0.0-beta.26120.101 10.0.5 10.0.5 - 10.0.5-servicing.26119.120 - 10.0.5-servicing.26119.120 - 10.0.0-beta.26119.120 - 10.0.0-beta.26119.120 + 10.0.5-servicing.26120.101 + 10.0.5-servicing.26120.101 + 10.0.0-beta.26120.101 + 10.0.0-beta.26120.101 10.0.5 10.0.5 10.0.5 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 14.0.105-servicing.26119.120 + 14.0.105-servicing.26120.101 10.0.5 - 5.0.0-2.26119.120 - 5.0.0-2.26119.120 - 10.0.5-servicing.26119.120 + 5.0.0-2.26120.101 + 5.0.0-2.26120.101 + 10.0.5-servicing.26120.101 10.0.5 10.0.5 10.0.0-preview.7.25377.103 - 10.0.0-preview.26119.120 - 10.0.5-servicing.26119.120 - 18.0.1-release-26119-120 + 10.0.0-preview.26120.101 + 10.0.5-servicing.26120.101 + 18.0.1-release-26120-101 10.0.5 - 10.0.5-servicing.26119.120 + 10.0.5-servicing.26120.101 10.0.105 10.0.105 10.0.105 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.105 10.0.105 10.0.105 - 10.0.105-servicing.26119.120 + 10.0.105-servicing.26120.101 10.0.105 - 10.0.105-servicing.26119.120 + 10.0.105-servicing.26120.101 10.0.105 10.0.105 - 10.0.105-servicing.26119.120 - 18.0.1-release-26119-120 - 18.0.1-release-26119-120 + 10.0.105-servicing.26120.101 + 18.0.1-release-26120-101 + 18.0.1-release-26120-101 3.2.5 10.0.5 - 10.0.5-servicing.26119.120 + 10.0.5-servicing.26120.101 10.0.5 - 7.0.2-rc.12020 - 7.0.2-rc.12020 - 7.0.2-rc.12020 - 7.0.2-rc.12020 - 7.0.2-rc.12020 - 7.0.2-rc.12020 - 7.0.2-rc.12020 - 7.0.2-rc.12020 - 7.0.2-rc.12020 - 7.0.2-rc.12020 - 7.0.2-rc.12020 - 7.0.2-rc.12020 - 7.0.2-rc.12020 - 7.0.2-rc.12020 - 7.0.2-rc.12020 - 7.0.2-rc.12020 + 7.0.2-rc.12101 + 7.0.2-rc.12101 + 7.0.2-rc.12101 + 7.0.2-rc.12101 + 7.0.2-rc.12101 + 7.0.2-rc.12101 + 7.0.2-rc.12101 + 7.0.2-rc.12101 + 7.0.2-rc.12101 + 7.0.2-rc.12101 + 7.0.2-rc.12101 + 7.0.2-rc.12101 + 7.0.2-rc.12101 + 7.0.2-rc.12101 + 7.0.2-rc.12101 + 7.0.2-rc.12101 10.0.5 2.0.5 10.0.5 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 24a6cd4e5908..0ac5d5ded1a2 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 - + https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 4c8f3d618a1107d5b66f7ab0c95b0ea3d6145df1 + 5f4c062690731fe4bfb9ee62cd50c34173884461 diff --git a/global.json b/global.json index f1a8f5d9be93..d672cd34c2ab 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26119.120", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26119.120", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26120.101", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26120.101", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 888e971521634253fae67c14facf980f824a780d Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Fri, 20 Feb 2026 15:32:36 -0600 Subject: [PATCH 091/179] [dotnet-watch] websocket transport for mobile (#52581) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: https://github.com/dotnet/sdk/issues/52492 # `dotnet watch` for .NET MAUI Scenarios ## Overview This implements `dotnet watch` / Hot Reload for mobile platforms (Android, iOS), which cannot use the standard named pipe transport. Similar to how web applications already use websockets for reloading CSS and JavaScript, we use the same model for mobile applications. ## Transport Selection | Platform | Transport | Reason | |-----------------|------------|-------------------------------------------------------------------------------| | Desktop/Console | Named Pipe | Existing implementation, Fast, local IPC | | Android/iOS | WebSocket | Named pipes don't work over the network; `adb reverse` tunnels the connection | `dotnet-watch` detects WebSocket transport via the `HotReloadWebSockets` capability: ```xml ``` Mobile workloads (Android, iOS) add this capability to their SDK targets. This allows any workload to opt into WebSocket-based hot reload. ## SDK Changes ### Architecture Both named pipe and WebSocket transports now share a common `ClientTransport` abstraction consumed by `DefaultHotReloadClient`: - **`NamedPipeClientTransport`** — existing local IPC path - **`WebSocketClientTransport`** — new path for mobile, composes a sealed `KestrelWebSocketServer` The agent side mirrors this with a `Transport` base class (`NamedPipeTransport` / `WebSocketTransport`). ### WebSocket Details `dotnet-watch` already has a WebSocket server for web apps: `BrowserRefreshServer`. This server: - Hosts via Kestrel on a local HTTP or HTTPS endpoint (e.g., `http://127.0.0.1:` or `https://localhost:`) - Communicates with JavaScript (`aspnetcore-browser-refresh.js`) injected into web pages - Sends commands like "refresh CSS", "reload page", "apply Blazor delta" For mobile, we reuse the Kestrel infrastructure but with a different protocol: | Server | Client | Protocol | |----------------------------|------------------------|--------------------------------------------| | `BrowserRefreshServer` | JavaScript in browser | JSON messages for CSS/page refresh | | `WebSocketClientTransport` | Startup hook on device | Binary delta payloads (same as named pipe) | `WebSocketClientTransport` composes a sealed `KestrelWebSocketServer` (shared with `BrowserRefreshServer`) and speaks the same binary protocol as the named pipe transport, just over WebSocket instead. Static asset updates (CSS) are also supported. ### WebSocket Authentication To prevent unauthorized processes from connecting to the hot reload server, `WebSocketClientTransport` uses RSA-based authentication identical to `BrowserRefreshServer`: 1. **Server generates RSA key pair:** `SharedSecretProvider` creates a 2048-bit RSA key on startup 2. **Public key exported:** The public key (X.509 SubjectPublicKeyInfo, Base64-encoded) is passed to the app via `DOTNET_WATCH_HOTRELOAD_WEBSOCKET_KEY` 3. **Client encrypts secret:** The startup hook generates a random 32-byte secret, encrypts it with RSA-OAEP-SHA256 using the public key 4. **Secret sent as subprotocol:** The encrypted secret is URL-encoded (`WebUtility.UrlEncode`) and sent as the WebSocket subprotocol header — same encoding as `BrowserRefreshServer` 5. **Server validates:** `WebSocketClientTransport.HandleRequestAsync` decodes and decrypts the subprotocol value, accepting the connection only if decryption succeeds ### HTTPS Support `KestrelWebSocketServer` supports binding both HTTP and HTTPS ports simultaneously via the `securePort` parameter. When `AgentWebSocketSecurePort` is configured, the server binds a WSS endpoint alongside the WS endpoint. ### Environment Variables `dotnet-watch` launches the app via: ```dotnetcli dotnet run --no-build \ -e DOTNET_WATCH=1 \ -e DOTNET_MODIFIABLE_ASSEMBLIES=debug \ -e DOTNET_WATCH_HOTRELOAD_WEBSOCKET_ENDPOINT=ws://127.0.0.1: \ -e DOTNET_WATCH_HOTRELOAD_WEBSOCKET_KEY= \ -e DOTNET_STARTUP_HOOKS= ``` The port is dynamically assigned (defaults to 0, meaning the OS picks an available port) to avoid conflicts in CI and parallel test scenarios. The `DOTNET_WATCH_AGENT_WEBSOCKET_PORT` environment variable can override this if a specific port is needed. `DOTNET_WATCH_AGENT_WEBSOCKET_SECURE_PORT` optionally enables WSS. These environment variables are passed as `@(RuntimeEnvironmentVariable)` MSBuild items to the workload. See `dotnet-run-for-maui.md` for details on `dotnet run` and environment variables. ## Android Workload Changes (Example Integration) ### [dotnet/android#10770](https://github.com/dotnet/android/pull/10770) — RuntimeEnvironmentVariable Support Enables the Android workload to receive env vars from `dotnet run -e`: - Adds `` - Adds `` to opt into WebSocket-based hot reload - Configures `@(RuntimeEnvironmentVariable)` items, so they will apply to Android. ### [dotnet/android#10778](https://github.com/dotnet/android/pull/10778) — dotnet-watch Integration 1. **Startup Hook:** Parses `DOTNET_STARTUP_HOOKS`, includes the assembly in the app package, rewrites the path to just the assembly name (since the full path doesn't exist on device) 2. **Port Forwarding:** Runs `adb reverse tcp: tcp:` so the device can reach the host's WebSocket server via `127.0.0.1:` (port is parsed from the endpoint URL) 3. **Prevents Double Connection:** Disables startup hooks in `Microsoft.Android.Run` (the desktop launcher) so only the mobile app connects ## Data Flow 1. **Build:** `dotnet-watch` builds the project, detects `HotReloadWebSockets` capability 2. **Launch:** `dotnet run -e DOTNET_WATCH_HOTRELOAD_WEBSOCKET_ENDPOINT=ws://127.0.0.1: -e DOTNET_WATCH_HOTRELOAD_WEBSOCKET_KEY= -e DOTNET_STARTUP_HOOKS=...` 3. **Workload:** Android build tasks:a - Include the startup hook DLL in the APK - Set up ADB port forwarding for the dynamically assigned port - Rewrite env vars for on-device paths 4. **Device:** App starts → StartupHook loads → `Transport.TryCreate()` reads env vars → `WebSocketTransport` encrypts secret with RSA public key → connects to `ws://127.0.0.1:` with encrypted secret as subprotocol 5. **Server:** `WebSocketClientTransport` validates the encrypted secret, accepts connection 6. **Hot Reload:** File change → delta compiled → sent over WebSocket → applied on device ## iOS Similar changes will be made in the iOS workload to opt into WebSocket-based hot reload: - Add `` - Handle startup hooks and port forwarding similar to Android ## Dependencies - **[runtime#123964](https://github.com/dotnet/runtime/pull/123964):** [mono] read `$DOTNET_STARTUP_HOOKS` — needed for Mono runtime to honor startup hooks (temporary workaround via `RuntimeHostConfigurationOption`) Co-authored-by: Tomas Matousek --- documentation/specs/dotnet-watch-for-maui.md | 119 ++++++++++ .../AgentEnvironmentVariables.cs | 12 + .../{PipeListener.cs => Listener.cs} | 66 ++---- .../HotReloadAgent.Host/NamedPipeTransport.cs | 43 ++++ .../HotReloadAgent.Host/StartupHook.cs | 13 +- .../HotReloadAgent.Host/Transport.cs | 68 ++++++ .../HotReloadAgent.Host/WebSocketTransport.cs | 150 +++++++++++++ .../HotReloadClient/ClientTransport.cs | 48 ++++ .../ClientTransportResponse.cs | 29 +++ .../HotReloadClient/DefaultHotReloadClient.cs | 134 +++++------- .../NamedPipeClientTransport.cs | 116 ++++++++++ .../Web/BrowserRefreshServer.cs | 91 +------- .../Web/KestrelWebSocketServer.cs | 151 +++++++++++++ .../WebSocketClientTransport.cs | 205 ++++++++++++++++++ .../BlazorWebAssemblyHostedAppModel.cs | 2 +- .../Watch/AppModels/DefaultAppModel.cs | 2 +- .../Watch/AppModels/HotReloadAppModel.cs | 6 + .../Watch/AppModels/MobileAppModel.cs | 28 +++ .../Watch/AppModels/WebServerAppModel.cs | 2 +- src/BuiltInTools/Watch/Build/BuildNames.cs | 1 + .../Watch/Context/EnvironmentOptions.cs | 4 + .../Watch/Context/EnvironmentVariables.cs | 15 ++ src/BuiltInTools/Watch/UI/IReporter.cs | 1 + .../HotReloadClientTests.cs | 15 +- .../TestProjects/WatchMobileApp/Program.cs | 39 ++++ .../WatchMobileApp/WatchMobileApp.csproj | 12 + .../HotReload/MobileHotReloadTests.cs | 41 ++++ 27 files changed, 1194 insertions(+), 219 deletions(-) create mode 100644 documentation/specs/dotnet-watch-for-maui.md rename src/BuiltInTools/HotReloadAgent.Host/{PipeListener.cs => Listener.cs} (71%) create mode 100644 src/BuiltInTools/HotReloadAgent.Host/NamedPipeTransport.cs create mode 100644 src/BuiltInTools/HotReloadAgent.Host/Transport.cs create mode 100644 src/BuiltInTools/HotReloadAgent.Host/WebSocketTransport.cs create mode 100644 src/BuiltInTools/HotReloadClient/ClientTransport.cs create mode 100644 src/BuiltInTools/HotReloadClient/ClientTransportResponse.cs create mode 100644 src/BuiltInTools/HotReloadClient/NamedPipeClientTransport.cs create mode 100644 src/BuiltInTools/HotReloadClient/Web/KestrelWebSocketServer.cs create mode 100644 src/BuiltInTools/HotReloadClient/WebSocketClientTransport.cs create mode 100644 src/BuiltInTools/Watch/AppModels/MobileAppModel.cs create mode 100644 test/TestAssets/TestProjects/WatchMobileApp/Program.cs create mode 100644 test/TestAssets/TestProjects/WatchMobileApp/WatchMobileApp.csproj create mode 100644 test/dotnet-watch.Tests/HotReload/MobileHotReloadTests.cs diff --git a/documentation/specs/dotnet-watch-for-maui.md b/documentation/specs/dotnet-watch-for-maui.md new file mode 100644 index 000000000000..b4915d05c09c --- /dev/null +++ b/documentation/specs/dotnet-watch-for-maui.md @@ -0,0 +1,119 @@ +# `dotnet watch` for .NET MAUI Scenarios + +## Overview + +This spec describes how `dotnet watch` provides Hot Reload for mobile platforms (Android, iOS), which cannot use the standard named pipe transport. Similar to how web applications already use websockets for reloading CSS and JavaScript, we will use the same model for mobile applications. + +## Transport Selection + +| Platform | Transport | Reason | +|-----------------|------------|-------------------------------------------------------------------------------| +| Desktop/Console | Named Pipe | Existing implementation, Fast, local IPC | +| Android/iOS | WebSocket | Named pipes don't work over the network; `adb reverse` tunnels the connection | + +`dotnet-watch` detects WebSocket transport via the `HotReloadWebSockets` capability: + +```xml + +``` + +Mobile workloads (Android, iOS) add this capability to their SDK targets. This allows any workload to opt into WebSocket-based hot reload. + +## SDK Changes ([dotnet/sdk#52581](https://github.com/dotnet/sdk/pull/52581)) + +### WebSocket Details + +`dotnet-watch` already has a WebSocket server for web apps: `BrowserRefreshServer`. This server: + +- Hosts via Kestrel on `https://localhost:` +- Communicates with JavaScript (`aspnetcore-browser-refresh.js`) injected into web pages +- Sends commands like "refresh CSS", "reload page", "apply Blazor delta" + +For mobile, we reuse the Kestrel infrastructure but with a different protocol: + +| Server | Client | Protocol | +|----------------------------|------------------------|--------------------------------------------| +| `BrowserRefreshServer` | JavaScript in browser | JSON messages for CSS/page refresh | +| `WebSocketClientTransport` | Startup hook on device | Binary delta payloads (same as named pipe) | + +The mobile transport (`WebSocketClientTransport`) composes a sealed `KestrelWebSocketServer` and speaks the same binary protocol as the named pipe transport, just over WebSocket instead. + +### WebSocket Authentication + +To prevent unauthorized processes from connecting to the hot reload server, `WebSocketClientTransport` uses RSA-based authentication identical to `BrowserRefreshServer`: + +1. **Server generates RSA key pair:** `SharedSecretProvider` creates a 2048-bit RSA key on startup +2. **Public key exported:** The public key (X.509 SubjectPublicKeyInfo, Base64-encoded) is passed to the app via `DOTNET_WATCH_HOTRELOAD_WEBSOCKET_KEY` +3. **Client encrypts secret:** The startup hook generates a random 32-byte secret, encrypts it with RSA-OAEP-SHA256 using the public key +4. **Secret sent as subprotocol:** The encrypted secret is Base64-encoded (URL-safe: `-` for `+`, `_` for `/`, no padding) and sent as the WebSocket subprotocol header +5. **Server validates:** `WebSocketClientTransport.HandleRequestAsync` decrypts the subprotocol value and accepts the connection only if decryption succeeds + +This ensures only processes that received the public key via the environment variable can connect. The URL-safe Base64 encoding is required because WebSocket subprotocol tokens cannot contain `+`, `/`, or `=` characters. + +**Environment variables:** +- `DOTNET_WATCH_HOTRELOAD_WEBSOCKET_ENDPOINT` — WebSocket URL (e.g., `ws://127.0.0.1:5432`) +- `DOTNET_WATCH_HOTRELOAD_WEBSOCKET_KEY` — RSA public key (Base64-encoded) + +### 1. WebSocket Capability Detection + +[ProjectGraphUtilities.cs](../../src/BuiltInTools/Watch/Build/ProjectGraphUtilities.cs) checks for the `HotReloadWebSockets` capability. + +### 2. MobileAppModel + +Creates a `DefaultHotReloadClient` with a `WebSocketClientTransport` instead of the default `NamedPipeClientTransport`. + +### 3. Environment Variables + +`dotnet-watch` launches the app via: + +```dotnetcli +dotnet run --no-build \ + -e DOTNET_WATCH=1 \ + -e DOTNET_MODIFIABLE_ASSEMBLIES=debug \ + -e DOTNET_WATCH_HOTRELOAD_WEBSOCKET_ENDPOINT=ws://127.0.0.1: \ + -e DOTNET_WATCH_HOTRELOAD_WEBSOCKET_KEY= \ + -e DOTNET_STARTUP_HOOKS= +``` + +The port is dynamically assigned (defaults to 0, meaning the OS picks an available port) to avoid conflicts in CI and parallel test scenarios. The `DOTNET_WATCH_AGENT_WEBSOCKET_PORT` environment variable can override this if a specific port is needed. + +These environment variables are passed as `@(RuntimeEnvironmentVariable)` MSBuild items to the workload. See [dotnet-run-for-maui.md](dotnet-run-for-maui.md) for details on `dotnet run` and environment variables. + +## Android Workload Changes (Example Integration) + +### [dotnet/android#10770](https://github.com/dotnet/android/pull/10770) — RuntimeEnvironmentVariable Support + +Enables the Android workload to receive env vars from `dotnet run -e`: + +- Adds `` +- Adds `` to opt into WebSocket-based hot reload +- Configures `@(RuntimeEnvironmentVariable)` items, so they will apply to Android. + +### [dotnet/android#10778](https://github.com/dotnet/android/pull/10778) — dotnet-watch Integration + +1. **Startup Hook:** Parses `DOTNET_STARTUP_HOOKS`, includes the assembly in the app package, rewrites the path to just the assembly name (since the full path doesn't exist on device) +2. **Port Forwarding:** Runs `adb reverse tcp: tcp:` so the device can reach the host's WebSocket server via `127.0.0.1:` (port is parsed from the endpoint URL) +3. **Prevents Double Connection:** Disables startup hooks in `Microsoft.Android.Run` (the desktop launcher) so only the mobile app connects + +## Data Flow + +1. **Build:** `dotnet-watch` builds the project, detects `HotReloadWebSockets` capability +2. **Launch:** `dotnet run -e DOTNET_WATCH_HOTRELOAD_WEBSOCKET_ENDPOINT=ws://127.0.0.1: -e DOTNET_WATCH_HOTRELOAD_WEBSOCKET_KEY= -e DOTNET_STARTUP_HOOKS=...` +3. **Workload:** Android build tasks: + - Include the startup hook DLL in the APK + - Set up ADB port forwarding for the dynamically assigned port + - Rewrite env vars for on-device paths +4. **Device:** App starts → StartupHook loads → `Transport.TryCreate()` reads env vars → `WebSocketTransport` encrypts secret with RSA public key → connects to `ws://127.0.0.1:` with encrypted secret as subprotocol +5. **Server:** `WebSocketClientTransport` validates the encrypted secret, accepts connection +6. **Hot Reload:** File change → delta compiled → sent over WebSocket → applied on device + +## iOS + +Similar changes will be made in the iOS workload to opt into WebSocket-based hot reload: + +- Add `` +- Handle startup hooks and port forwarding similar to Android + +## Dependencies + +- **[runtime#123964](https://github.com/dotnet/runtime/pull/123964):** [mono] read `$DOTNET_STARTUP_HOOKS` — needed for Mono runtime to honor startup hooks (temporary workaround via `RuntimeHostConfigurationOption`) diff --git a/src/BuiltInTools/HotReloadAgent.Data/AgentEnvironmentVariables.cs b/src/BuiltInTools/HotReloadAgent.Data/AgentEnvironmentVariables.cs index 2bcec8b91ff7..97bd230100ea 100644 --- a/src/BuiltInTools/HotReloadAgent.Data/AgentEnvironmentVariables.cs +++ b/src/BuiltInTools/HotReloadAgent.Data/AgentEnvironmentVariables.cs @@ -13,6 +13,18 @@ internal static class AgentEnvironmentVariables ///
public const string DotNetWatchHotReloadNamedPipeName = "DOTNET_WATCH_HOTRELOAD_NAMEDPIPE_NAME"; + /// + /// WebSocket endpoint for hot reload communication. Used for mobile platforms (Android, iOS) + /// where named pipes don't work over the network. + /// + public const string DotNetWatchHotReloadWebSocketEndpoint = "DOTNET_WATCH_HOTRELOAD_WEBSOCKET_ENDPOINT"; + + /// + /// RSA public key (Base64-encoded X.509 SubjectPublicKeyInfo) for WebSocket connection authentication. + /// The client encrypts a random secret with this key and sends it as the WebSocket subprotocol. + /// + public const string DotNetWatchHotReloadWebSocketKey = "DOTNET_WATCH_HOTRELOAD_WEBSOCKET_KEY"; + /// /// Enables logging from the client delta applier agent. /// diff --git a/src/BuiltInTools/HotReloadAgent.Host/PipeListener.cs b/src/BuiltInTools/HotReloadAgent.Host/Listener.cs similarity index 71% rename from src/BuiltInTools/HotReloadAgent.Host/PipeListener.cs rename to src/BuiltInTools/HotReloadAgent.Host/Listener.cs index dfa108189dff..6cf359f55e6a 100644 --- a/src/BuiltInTools/HotReloadAgent.Host/PipeListener.cs +++ b/src/BuiltInTools/HotReloadAgent.Host/Listener.cs @@ -4,16 +4,13 @@ #nullable enable using System; -using System.Diagnostics; -using System.IO.Pipes; -using System.Reflection; -using System.Runtime.Loader; +using System.IO; using System.Threading; using System.Threading.Tasks; namespace Microsoft.DotNet.HotReload; -internal sealed class PipeListener(string pipeName, IHotReloadAgent agent, Action log, int connectionTimeoutMS = 5000) +internal sealed class Listener(Transport transport, IHotReloadAgent agent, Action log) { /// /// Messages to the client sent after the initial is sent @@ -23,9 +20,6 @@ internal sealed class PipeListener(string pipeName, IHotReloadAgent agent, Actio /// private readonly SemaphoreSlim _messageToClientLock = new(initialCount: 1); - // Not-null once initialized: - private NamedPipeClientStream? _pipeClient; - public Task Listen(CancellationToken cancellationToken) { // Connect to the pipe synchronously. @@ -36,20 +30,7 @@ public Task Listen(CancellationToken cancellationToken) // // Updates made before the process is launched need to be applied before loading the affected modules. - log($"Connecting to hot-reload server via pipe {pipeName}"); - - _pipeClient = new NamedPipeClientStream(serverName: ".", pipeName, PipeDirection.InOut, PipeOptions.CurrentUserOnly | PipeOptions.Asynchronous); - try - { - _pipeClient.Connect(connectionTimeoutMS); - log("Connected."); - } - catch (TimeoutException) - { - log($"Failed to connect in {connectionTimeoutMS}ms."); - _pipeClient.Dispose(); - return Task.CompletedTask; - } + log($"Connecting to Hot Reload server via {transport.DisplayName}."); try { @@ -63,7 +44,7 @@ public Task Listen(CancellationToken cancellationToken) log(e.Message); } - _pipeClient.Dispose(); + transport.Dispose(); agent.Dispose(); return Task.CompletedTask; @@ -81,7 +62,7 @@ public Task Listen(CancellationToken cancellationToken) } finally { - _pipeClient.Dispose(); + transport.Dispose(); agent.Dispose(); } }, cancellationToken); @@ -89,12 +70,9 @@ public Task Listen(CancellationToken cancellationToken) private async Task InitializeAsync(CancellationToken cancellationToken) { - Debug.Assert(_pipeClient != null); - agent.Reporter.Report("Writing capabilities: " + agent.Capabilities, AgentMessageSeverity.Verbose); - var initPayload = new ClientInitializationResponse(agent.Capabilities); - await initPayload.WriteAsync(_pipeClient, cancellationToken); + await transport.SendAsync(new ClientInitializationResponse(agent.Capabilities), cancellationToken); // Apply updates made before this process was launched to avoid executing unupdated versions of the affected modules. @@ -106,19 +84,23 @@ private async Task InitializeAsync(CancellationToken cancellationToken) private async Task ReceiveAndApplyUpdatesAsync(bool initialUpdates, CancellationToken cancellationToken) { - Debug.Assert(_pipeClient != null); - - while (_pipeClient.IsConnected) + while (!cancellationToken.IsCancellationRequested) { - var payloadType = (RequestType)await _pipeClient.ReadByteAsync(cancellationToken); + using var request = await transport.ReceiveAsync(cancellationToken); + if (request.Stream == null) + { + break; + } + + var payloadType = (RequestType)await request.Stream.ReadByteAsync(cancellationToken); switch (payloadType) { case RequestType.ManagedCodeUpdate: - await ReadAndApplyManagedCodeUpdateAsync(cancellationToken); + await ReadAndApplyManagedCodeUpdateAsync(request.Stream, cancellationToken); break; case RequestType.StaticAssetUpdate: - await ReadAndApplyStaticAssetUpdateAsync(cancellationToken); + await ReadAndApplyStaticAssetUpdateAsync(request.Stream, cancellationToken); break; case RequestType.InitialUpdatesCompleted when initialUpdates: @@ -131,11 +113,9 @@ private async Task ReceiveAndApplyUpdatesAsync(bool initialUpdates, Cancellation } } - private async ValueTask ReadAndApplyManagedCodeUpdateAsync(CancellationToken cancellationToken) + private async ValueTask ReadAndApplyManagedCodeUpdateAsync(Stream stream, CancellationToken cancellationToken) { - Debug.Assert(_pipeClient != null); - - var request = await ManagedCodeUpdateRequest.ReadAsync(_pipeClient, cancellationToken); + var request = await ManagedCodeUpdateRequest.ReadAsync(stream, cancellationToken); bool success; try @@ -155,11 +135,9 @@ private async ValueTask ReadAndApplyManagedCodeUpdateAsync(CancellationToken can await SendResponseAsync(new UpdateResponse(logEntries, success), cancellationToken); } - private async ValueTask ReadAndApplyStaticAssetUpdateAsync(CancellationToken cancellationToken) + private async ValueTask ReadAndApplyStaticAssetUpdateAsync(Stream stream, CancellationToken cancellationToken) { - Debug.Assert(_pipeClient != null); - - var request = await StaticAssetUpdateRequest.ReadAsync(_pipeClient, cancellationToken); + var request = await StaticAssetUpdateRequest.ReadAsync(stream, cancellationToken); try { @@ -181,12 +159,10 @@ private async ValueTask ReadAndApplyStaticAssetUpdateAsync(CancellationToken can internal async ValueTask SendResponseAsync(T response, CancellationToken cancellationToken) where T : IResponse { - Debug.Assert(_pipeClient != null); try { await _messageToClientLock.WaitAsync(cancellationToken); - await _pipeClient.WriteAsync((byte)response.Type, cancellationToken); - await response.WriteAsync(_pipeClient, cancellationToken); + await transport.SendAsync(response, cancellationToken); } finally { diff --git a/src/BuiltInTools/HotReloadAgent.Host/NamedPipeTransport.cs b/src/BuiltInTools/HotReloadAgent.Host/NamedPipeTransport.cs new file mode 100644 index 000000000000..962c4e85fe60 --- /dev/null +++ b/src/BuiltInTools/HotReloadAgent.Host/NamedPipeTransport.cs @@ -0,0 +1,43 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable enable + +using System; +using System.IO.Pipes; +using System.Threading; +using System.Threading.Tasks; + +namespace Microsoft.DotNet.HotReload; + +internal sealed class NamedPipeTransport(string pipeName, Action log, int timeoutMS) : Transport(log) +{ + private readonly NamedPipeClientStream _pipeClient = new(serverName: ".", pipeName, PipeDirection.InOut, PipeOptions.CurrentUserOnly | PipeOptions.Asynchronous); + + public override void Dispose() + => _pipeClient.Dispose(); + + public override string DisplayName + => $"pipe {pipeName}"; + + public override async ValueTask SendAsync(IResponse response, CancellationToken cancellationToken) + { + if (response.Type == ResponseType.InitializationResponse) + { + try + { + _pipeClient.Connect(timeoutMS); + } + catch (TimeoutException) + { + throw new TimeoutException($"Failed to connect in {timeoutMS}ms."); + } + } + + await _pipeClient.WriteAsync((byte)response.Type, cancellationToken); + await response.WriteAsync(_pipeClient, cancellationToken); + } + + public override ValueTask ReceiveAsync(CancellationToken cancellationToken) + => new(new RequestStream(_pipeClient.IsConnected ? _pipeClient : null, disposeOnCompletion: false)); +} diff --git a/src/BuiltInTools/HotReloadAgent.Host/StartupHook.cs b/src/BuiltInTools/HotReloadAgent.Host/StartupHook.cs index 3ad6762d2d17..c9fe36e20458 100644 --- a/src/BuiltInTools/HotReloadAgent.Host/StartupHook.cs +++ b/src/BuiltInTools/HotReloadAgent.Host/StartupHook.cs @@ -6,9 +6,7 @@ using System; using System.Diagnostics; using System.IO; -using System.IO.Pipes; using System.Linq; -using System.Reflection; using System.Runtime.InteropServices; using System.Runtime.Loader; using System.Threading; @@ -21,7 +19,6 @@ internal sealed class StartupHook { private static readonly string? s_standardOutputLogPrefix = Environment.GetEnvironmentVariable(AgentEnvironmentVariables.HotReloadDeltaClientLogMessages); - private static readonly string? s_namedPipeName = Environment.GetEnvironmentVariable(AgentEnvironmentVariables.DotNetWatchHotReloadNamedPipeName); private static readonly bool s_supportsConsoleColor = !OperatingSystem.IsAndroid() && !OperatingSystem.IsIOS() && !OperatingSystem.IsTvOS() @@ -42,17 +39,19 @@ public static void Initialize() Log($"Loaded into process: {processPath} ({typeof(StartupHook).Assembly.Location})"); + var transport = Transport.TryCreate(Log); + HotReloadAgent.ClearHotReloadEnvironmentVariables(typeof(StartupHook)); - if (string.IsNullOrEmpty(s_namedPipeName)) + if (transport == null) { - Log($"Environment variable {AgentEnvironmentVariables.DotNetWatchHotReloadNamedPipeName} has no value"); + Log($"No hot reload endpoint configured. Set {AgentEnvironmentVariables.DotNetWatchHotReloadNamedPipeName} or {AgentEnvironmentVariables.DotNetWatchHotReloadWebSocketEndpoint}"); return; } RegisterSignalHandlers(); - PipeListener? listener = null; + Listener? listener = null; var agent = new HotReloadAgent( assemblyResolvingHandler: (_, args) => @@ -94,7 +93,7 @@ async Task SendAndForgetAsync() } }); - listener = new PipeListener(s_namedPipeName, agent, Log); + listener = new Listener(transport, agent, Log); // fire and forget: _ = listener.Listen(CancellationToken.None); diff --git a/src/BuiltInTools/HotReloadAgent.Host/Transport.cs b/src/BuiltInTools/HotReloadAgent.Host/Transport.cs new file mode 100644 index 000000000000..d48c33bdda30 --- /dev/null +++ b/src/BuiltInTools/HotReloadAgent.Host/Transport.cs @@ -0,0 +1,68 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable enable + +using System; +using System.IO; +using System.Threading; +using System.Threading.Tasks; + +namespace Microsoft.DotNet.HotReload; + +internal abstract class Transport(Action log) : IDisposable +{ + public readonly struct RequestStream(Stream? stream, bool disposeOnCompletion) : IDisposable + { + public Stream? Stream => stream; + + public void Dispose() + { + if (disposeOnCompletion) + { + stream?.Dispose(); + } + } + } + + public static Transport? TryCreate(Action log, int timeoutMS = 5000) + { + var namedPipeName = Environment.GetEnvironmentVariable(AgentEnvironmentVariables.DotNetWatchHotReloadNamedPipeName); + if (!string.IsNullOrEmpty(namedPipeName)) + { + log($"{AgentEnvironmentVariables.DotNetWatchHotReloadNamedPipeName}={namedPipeName}"); + return new NamedPipeTransport(namedPipeName, log, timeoutMS); + } + + var webSocketEndpoint = Environment.GetEnvironmentVariable(AgentEnvironmentVariables.DotNetWatchHotReloadWebSocketEndpoint); + if (!string.IsNullOrEmpty(webSocketEndpoint)) + { + if (!Uri.TryCreate(webSocketEndpoint, UriKind.Absolute, out var uri) || + uri.Scheme is not ("ws" or "wss")) + { + log($"Invalid WebSocket endpoint (expected ws:// or wss:// URL): '{webSocketEndpoint}'"); + return null; + } + + var serverPublicKey = Environment.GetEnvironmentVariable(AgentEnvironmentVariables.DotNetWatchHotReloadWebSocketKey); + if (string.IsNullOrEmpty(serverPublicKey)) + { + log($"{AgentEnvironmentVariables.DotNetWatchHotReloadWebSocketKey} must be set when using WebSocket endpoint."); + return null; + } + + log($"{AgentEnvironmentVariables.DotNetWatchHotReloadWebSocketEndpoint}={webSocketEndpoint}"); + return new WebSocketTransport(webSocketEndpoint, serverPublicKey, log, timeoutMS); + } + + return null; + } + + protected void Log(string message) + => log(message); + + public abstract void Dispose(); + public abstract string DisplayName { get; } + public abstract ValueTask SendAsync(IResponse response, CancellationToken cancellationToken); + public abstract ValueTask ReceiveAsync(CancellationToken cancellationToken); +} diff --git a/src/BuiltInTools/HotReloadAgent.Host/WebSocketTransport.cs b/src/BuiltInTools/HotReloadAgent.Host/WebSocketTransport.cs new file mode 100644 index 000000000000..899d67cddca5 --- /dev/null +++ b/src/BuiltInTools/HotReloadAgent.Host/WebSocketTransport.cs @@ -0,0 +1,150 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable enable + +using System; +using System.Buffers; +using System.IO; +using System.Net; +using System.Net.WebSockets; +using System.Security.Cryptography; +using System.Threading; +using System.Threading.Tasks; + +namespace Microsoft.DotNet.HotReload; + +/// +/// WebSocket-based client for hot reload communication. +/// Used for projects with the HotReloadWebSockets capability (e.g., Android, iOS). +/// Mobile workloads add this capability since named pipes don't work over the network. +/// Uses RSA-based shared secret for authentication (same as BrowserRefreshServer). +/// +internal sealed class WebSocketTransport(string serverUrl, string? serverPublicKey, Action log, int connectionTimeoutMS) + : Transport(log) +{ + private readonly ClientWebSocket _webSocket = new(); + + // Buffers for WebSocket messages - reused across calls to avoid allocations. + // SendAsync is invoked under a lock after the first message, so _sendBuffer is safe to reuse. + private MemoryStream? _sendBuffer; + private MemoryStream? _receiveBuffer; + + public override void Dispose() + { + _webSocket.Dispose(); + _sendBuffer?.Dispose(); + _receiveBuffer?.Dispose(); + } + + public override string DisplayName + => $"WebSocket {serverUrl}"; + + public override async ValueTask SendAsync(IResponse response, CancellationToken cancellationToken) + { + // Connect on first send (which is InitializationResponse) + if (response.Type == ResponseType.InitializationResponse) + { + using var connectCts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken); + connectCts.CancelAfter(connectionTimeoutMS); + + try + { + // Add encrypted shared secret as subprotocol for authentication + if (serverPublicKey != null) + { + var encryptedSecret = EncryptSharedSecret(serverPublicKey); + _webSocket.Options.AddSubProtocol(encryptedSecret); + } + + Log($"Connecting to {serverUrl}..."); + await _webSocket.ConnectAsync(new Uri(serverUrl), connectCts.Token); + Log("Connected."); + } + catch (OperationCanceledException) when (!cancellationToken.IsCancellationRequested) + { + throw new TimeoutException($"Failed to connect in {connectionTimeoutMS}ms."); + } + } + + // Serialize the response to a reusable buffer + _sendBuffer ??= new MemoryStream(); + _sendBuffer.SetLength(0); + + await _sendBuffer.WriteAsync((byte)response.Type, cancellationToken); + await response.WriteAsync(_sendBuffer, cancellationToken); + + Log($"Sending {response.Type} ({_sendBuffer.Length} bytes)"); + + // Send as binary WebSocket message + await _webSocket.SendAsync( + new ArraySegment(_sendBuffer.GetBuffer(), 0, (int)_sendBuffer.Length), + WebSocketMessageType.Binary, + endOfMessage: true, + cancellationToken); + } + + public override async ValueTask ReceiveAsync(CancellationToken cancellationToken) + { + if (_webSocket.State != WebSocketState.Open) + { + return new RequestStream(stream: null, disposeOnCompletion: false); + } + + // Read the complete WebSocket message into a buffer + _receiveBuffer ??= new MemoryStream(); + _receiveBuffer.SetLength(0); + + var buffer = ArrayPool.Shared.Rent(4096); + try + { + WebSocketReceiveResult result; + do + { + result = await _webSocket.ReceiveAsync(new ArraySegment(buffer), cancellationToken); + + if (result.MessageType == WebSocketMessageType.Close) + { + Log("Server closed connection."); + return new RequestStream(stream: null, disposeOnCompletion: false); + } + + _receiveBuffer.Write(buffer, 0, result.Count); + } + while (!result.EndOfMessage); + } + finally + { + ArrayPool.Shared.Return(buffer); + } + + Log($"Received {_receiveBuffer.Length} bytes"); + _receiveBuffer.Position = 0; + + // Return a stream that doesn't dispose the underlying buffer (we reuse it) + return new RequestStream(_receiveBuffer, disposeOnCompletion: false); + } + + /// + /// Encrypts a random shared secret using the server's RSA public key. + /// Uses the same algorithm as BrowserRefreshServer for consistency. + /// + private static string EncryptSharedSecret(string serverPublicKeyBase64) + { + using var rsa = RSA.Create(); + rsa.ImportSubjectPublicKeyInfo(Convert.FromBase64String(serverPublicKeyBase64), out _); + + // Generate a random 32-byte secret and encrypt with RSA OAEP SHA-256 (same as BrowserRefreshServer) + // RSA.Encrypt(ReadOnlySpan) overload is available in .NET 9+ +#if NET9_0_OR_GREATER + Span secret = stackalloc byte[32]; +#else + var secret = new byte[32]; +#endif + RandomNumberGenerator.Fill(secret); + var encrypted = rsa.Encrypt(secret, RSAEncryptionPadding.OaepSHA256); + + // URL-encode standard Base64 for WebSocket subprotocol header (same encoding as BrowserRefreshServer) + return WebUtility.UrlEncode(Convert.ToBase64String(encrypted)); + } +} diff --git a/src/BuiltInTools/HotReloadClient/ClientTransport.cs b/src/BuiltInTools/HotReloadClient/ClientTransport.cs new file mode 100644 index 000000000000..0422348dc203 --- /dev/null +++ b/src/BuiltInTools/HotReloadClient/ClientTransport.cs @@ -0,0 +1,48 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable enable + +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading; +using System.Threading.Tasks; + +namespace Microsoft.DotNet.HotReload; + +/// +/// Transport abstraction for communication between dotnet-watch (server) and the hot reload agent (client). +/// Similar to the agent-side Transport abstraction, but for the server side. +/// +internal abstract class ClientTransport : IDisposable +{ + /// + /// Configure transport-specific environment variables for the target process. + /// May start the transport server (e.g., Kestrel for WebSocket) to determine the endpoint. + /// + public abstract void ConfigureEnvironment(IDictionary env); + + /// + /// Initiates connection with the agent in the target process. + /// Returns a task that completes when the connection is established. + /// The task is started (hot) immediately so the transport is listening before the process launches. + /// + public abstract Task WaitForConnectionAsync(CancellationToken cancellationToken); + + /// + /// Writes a message to the transport: a request type byte followed by optional payload data. + /// + /// The request type byte. + /// Optional callback to serialize payload data to the stream. Null for notification-only messages. + /// Cancellation token. + public abstract ValueTask WriteAsync(byte type, Func? writePayload, CancellationToken cancellationToken); + + /// + /// Reads the next response from the transport. + /// Returns null if the connection has been lost. + /// + public abstract ValueTask ReadAsync(CancellationToken cancellationToken); + + public abstract void Dispose(); +} diff --git a/src/BuiltInTools/HotReloadClient/ClientTransportResponse.cs b/src/BuiltInTools/HotReloadClient/ClientTransportResponse.cs new file mode 100644 index 000000000000..7d3a5a7a8fe0 --- /dev/null +++ b/src/BuiltInTools/HotReloadClient/ClientTransportResponse.cs @@ -0,0 +1,29 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable enable + +using System; +using System.IO; + +namespace Microsoft.DotNet.HotReload; + +/// +/// A response read from the transport, containing the response type and a stream to read the response data from. +/// +/// The response type. +/// Stream to read response data from. +/// Whether the stream should be disposed after reading. +internal readonly struct ClientTransportResponse(ResponseType type, Stream data, bool disposeStream) : IDisposable +{ + public ResponseType Type => type; + public Stream Data => data; + + public void Dispose() + { + if (disposeStream) + { + data.Dispose(); + } + } +} diff --git a/src/BuiltInTools/HotReloadClient/DefaultHotReloadClient.cs b/src/BuiltInTools/HotReloadClient/DefaultHotReloadClient.cs index 1642f63f8b82..00dfa8f61b14 100644 --- a/src/BuiltInTools/HotReloadClient/DefaultHotReloadClient.cs +++ b/src/BuiltInTools/HotReloadClient/DefaultHotReloadClient.cs @@ -4,15 +4,11 @@ #nullable enable using System; -using System.Buffers; using System.Collections.Generic; using System.Collections.Immutable; -using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.IO; -using System.IO.Pipes; using System.Linq; -using System.Net.Sockets; using System.Runtime.InteropServices; using System.Threading; using System.Threading.Tasks; @@ -20,13 +16,10 @@ namespace Microsoft.DotNet.HotReload { - internal sealed class DefaultHotReloadClient(ILogger logger, ILogger agentLogger, string startupHookPath, bool enableStaticAssetUpdates) + internal sealed class DefaultHotReloadClient(ILogger logger, ILogger agentLogger, string startupHookPath, bool enableStaticAssetUpdates, ClientTransport transport) : HotReloadClient(logger, agentLogger) { - private readonly string _namedPipeName = Guid.NewGuid().ToString("N"); - private Task>? _capabilitiesTask; - private NamedPipeServerStream? _pipe; private bool _managedCodeUpdateFailedOrCancelled; // The status of the last update response. @@ -34,34 +27,16 @@ internal sealed class DefaultHotReloadClient(ILogger logger, ILogger agentLogger public override void Dispose() { - DisposePipe(); + transport.Dispose(); } - private void DisposePipe() - { - if (_pipe != null) - { - Logger.LogDebug("Disposing agent communication pipe"); - - // Dispose the pipe but do not set it to null, so that any in-progress - // operations throw the appropriate exception type. - _pipe.Dispose(); - } - } - - // for testing - internal string NamedPipeName - => _namedPipeName; + /// + /// The transport used for communication with the agent, for testing. + /// + internal ClientTransport Transport => transport; public override void InitiateConnection(CancellationToken cancellationToken) { -#if NET - var options = PipeOptions.Asynchronous | PipeOptions.CurrentUserOnly; -#else - var options = PipeOptions.Asynchronous; -#endif - _pipe = new NamedPipeServerStream(_namedPipeName, PipeDirection.InOut, 1, PipeTransmissionMode.Byte, options); - // It is important to establish the connection (WaitForConnectionAsync) before we return, // otherwise the client wouldn't be able to connect. // However, we don't want to wait for the task to complete, so that we can start the client process. @@ -71,13 +46,28 @@ async Task> ConnectAsync() { try { - Logger.LogDebug("Waiting for application to connect to pipe {NamedPipeName}.", _namedPipeName); + await transport.WaitForConnectionAsync(cancellationToken); + + // Read the initialization response (capabilities) from the agent. + var initResponse = await transport.ReadAsync(cancellationToken); + if (initResponse == null) + { + return []; + } - await _pipe.WaitForConnectionAsync(cancellationToken); + using var r = initResponse.Value; + if (r.Type != ResponseType.InitializationResponse) + { + Logger.LogError("Expected initialization response, got: {ResponseType}", r.Type); + return []; + } - // When the client connects, the first payload it sends is the initialization payload which includes the apply capabilities. + var capabilities = (await ClientInitializationResponse.ReadAsync(r.Data, cancellationToken)).Capabilities; - var capabilities = (await ClientInitializationResponse.ReadAsync(_pipe, cancellationToken)).Capabilities; + if (string.IsNullOrEmpty(capabilities)) + { + return []; + } var result = AddImplicitCapabilities(capabilities.Split(' ')); @@ -90,57 +80,57 @@ async Task> ConnectAsync() } catch (Exception e) when (e is not OperationCanceledException) { - ReportPipeReadException(e, "capabilities", cancellationToken); + // Don't report a warning when cancelled. The process has terminated or the host is shutting down in that case. + // Best effort: There is an inherent race condition due to time between the process exiting and the cancellation token triggering. + if (!cancellationToken.IsCancellationRequested) + { + Logger.LogError("Failed to read capabilities: {Message}", e.Message); + } + return []; } } } - private void ReportPipeReadException(Exception e, string responseType, CancellationToken cancellationToken) - { - // Don't report a warning when cancelled or the pipe has been disposed. The process has terminated or the host is shutting down in that case. - // Best effort: There is an inherent race condition due to time between the process exiting and the cancellation token triggering. - // On Unix named pipes can also throw SocketException with ErrorCode 125 (Operation canceled) when disposed. - if (e is ObjectDisposedException or EndOfStreamException or SocketException { ErrorCode: 125 } || cancellationToken.IsCancellationRequested) - { - return; - } - - Logger.LogError("Failed to read {ResponseType} from the pipe: {Exception}", responseType, e.ToString()); - } - private async Task ListenForResponsesAsync(CancellationToken cancellationToken) { - Debug.Assert(_pipe != null); - try { while (!cancellationToken.IsCancellationRequested) { - var type = (ResponseType)await _pipe.ReadByteAsync(cancellationToken); + var response = await transport.ReadAsync(cancellationToken); + if (response == null) + { + return; + } + + using var r = response.Value; - switch (type) + switch (r.Type) { case ResponseType.UpdateResponse: // update request can't be issued again until the status is read and a new source is created: - _updateStatusSource.SetResult(await ReadUpdateResponseAsync(cancellationToken)); + _updateStatusSource.SetResult(await ReadUpdateResponseAsync(r, cancellationToken)); break; case ResponseType.HotReloadExceptionNotification: - var notification = await HotReloadExceptionCreatedNotification.ReadAsync(_pipe, cancellationToken); + var notification = await HotReloadExceptionCreatedNotification.ReadAsync(r.Data, cancellationToken); RuntimeRudeEditDetected(notification.Code, notification.Message); break; default: - // can't continue, the pipe is in undefined state: - Logger.LogError("Unexpected response received from the agent: {ResponseType}", type); + // can't continue, the stream is in undefined state: + Logger.LogError("Unexpected response received from the agent: {ResponseType}", r.Type); return; } } } - catch (Exception e) + catch (Exception e) when (e is not OperationCanceledException) { - ReportPipeReadException(e, "response", cancellationToken); + if (!cancellationToken.IsCancellationRequested) + { + Logger.LogError("Failed to read response: {Message}", e.Message); + } } } @@ -148,14 +138,11 @@ private async Task ListenForResponsesAsync(CancellationToken cancellationToken) private Task> GetCapabilitiesTask() => _capabilitiesTask ?? throw new InvalidOperationException(); - [MemberNotNull(nameof(_pipe))] [MemberNotNull(nameof(_capabilitiesTask))] private void RequireReadyForUpdates() { // should only be called after connection has been created: _ = GetCapabilitiesTask(); - - Debug.Assert(_pipe != null); } public override void ConfigureLaunchEnvironment(IDictionary environmentBuilder) @@ -165,7 +152,7 @@ public override void ConfigureLaunchEnvironment(IDictionary envi // HotReload startup hook should be loaded before any other startup hooks: environmentBuilder.InsertListItem(AgentEnvironmentVariables.DotNetStartupHooks, startupHookPath, Path.PathSeparator); - environmentBuilder[AgentEnvironmentVariables.DotNetWatchHotReloadNamedPipeName] = _namedPipeName; + transport.ConfigureEnvironment(environmentBuilder); } public override Task WaitForConnectionEstablishedAsync(CancellationToken cancellationToken) @@ -210,7 +197,7 @@ async Task CompleteApplyOperationAsync() Logger.LogWarning("Further changes won't be applied to this process."); _managedCodeUpdateFailedOrCancelled = true; - DisposePipe(); + transport.Dispose(); return false; } @@ -261,15 +248,10 @@ async Task CompleteApplyOperationAsync() private Task QueueUpdateBatchRequest(TRequest request, CancellationToken applyOperationCancellationToken) where TRequest : IUpdateRequest { - // Not initialized: - Debug.Assert(_pipe != null); - return QueueUpdateBatch( sendAndReceive: async batchId => { - await _pipe.WriteAsync((byte)request.Type, applyOperationCancellationToken); - await request.WriteAsync(_pipe, applyOperationCancellationToken); - await _pipe.FlushAsync(applyOperationCancellationToken); + await transport.WriteAsync((byte)request.Type, request.WriteAsync, applyOperationCancellationToken); var success = await ReceiveUpdateResponseAsync(applyOperationCancellationToken); Logger.Log(success ? LogEvents.UpdateBatchCompleted : LogEvents.UpdateBatchFailed, batchId); @@ -285,12 +267,9 @@ private async ValueTask ReceiveUpdateResponseAsync(CancellationToken cance return result; } - private async ValueTask ReadUpdateResponseAsync(CancellationToken cancellationToken) + private async ValueTask ReadUpdateResponseAsync(ClientTransportResponse r, CancellationToken cancellationToken) { - // Should be initialized: - Debug.Assert(_pipe != null); - - var (success, log) = await UpdateResponse.ReadAsync(_pipe, cancellationToken); + var (success, log) = await UpdateResponse.ReadAsync(r.Data, cancellationToken); await foreach (var (message, severity) in log) { @@ -311,12 +290,11 @@ public override async Task InitialUpdatesAppliedAsync(CancellationToken cancella try { - await _pipe.WriteAsync((byte)RequestType.InitialUpdatesCompleted, cancellationToken); - await _pipe.FlushAsync(cancellationToken); + await transport.WriteAsync((byte)RequestType.InitialUpdatesCompleted, writePayload: null, cancellationToken); } catch (Exception e) when (e is not OperationCanceledException) { - // Pipe might throw another exception when forcibly closed on process termination. + // Transport might throw another exception when forcibly closed on process termination. // Don't report an error when cancelled. The process has terminated or the host is shutting down in that case. // Best effort: There is an inherent race condition due to time between the process exiting and the cancellation token triggering. if (!cancellationToken.IsCancellationRequested) diff --git a/src/BuiltInTools/HotReloadClient/NamedPipeClientTransport.cs b/src/BuiltInTools/HotReloadClient/NamedPipeClientTransport.cs new file mode 100644 index 000000000000..2ab6027faf4c --- /dev/null +++ b/src/BuiltInTools/HotReloadClient/NamedPipeClientTransport.cs @@ -0,0 +1,116 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable enable + +using System; +using System.Collections.Generic; +using System.IO; +using System.IO.Pipes; +using System.Net.Sockets; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.HotReload; + +/// +/// Named pipe transport for communication between dotnet-watch and the hot reload agent. +/// Used for local processes where named pipes are available. +/// +internal sealed class NamedPipeClientTransport : ClientTransport +{ + private readonly ILogger _logger; + private readonly string _namedPipeName; + private readonly NamedPipeServerStream _pipe; + + public NamedPipeClientTransport(ILogger logger) + { + _logger = logger; + _namedPipeName = Guid.NewGuid().ToString("N"); + +#if NET + var options = PipeOptions.Asynchronous | PipeOptions.CurrentUserOnly; +#else + var options = PipeOptions.Asynchronous; +#endif + _pipe = new NamedPipeServerStream(_namedPipeName, PipeDirection.InOut, 1, PipeTransmissionMode.Byte, options); + } + + /// + /// The named pipe name, for testing. + /// + internal string NamedPipeName => _namedPipeName; + + public override void ConfigureEnvironment(IDictionary env) + { + env[AgentEnvironmentVariables.DotNetWatchHotReloadNamedPipeName] = _namedPipeName; + } + + public override async Task WaitForConnectionAsync(CancellationToken cancellationToken) + { + _logger.LogDebug("Waiting for application to connect to pipe {NamedPipeName}.", _namedPipeName); + + try + { + await _pipe.WaitForConnectionAsync(cancellationToken); + } + catch (Exception e) when (e is not OperationCanceledException) + { + // The process may die while we're waiting for the connection and the pipe may be disposed. + // Log and let subsequent ReadAsync return null gracefully. + if (IsExpectedPipeException(e, cancellationToken)) + { + _logger.LogDebug("Pipe connection ended: {Message}", e.Message); + return; + } + + throw; + } + } + + /// + /// Returns true if the exception is expected when the pipe is disposed or the process has terminated. + /// On Unix named pipes can also throw SocketException with ErrorCode 125 (Operation canceled) when disposed. + /// + private static bool IsExpectedPipeException(Exception e, CancellationToken cancellationToken) + { + return e is ObjectDisposedException or EndOfStreamException or SocketException { ErrorCode: 125 } + || cancellationToken.IsCancellationRequested; + } + + public override async ValueTask WriteAsync(byte type, Func? writePayload, CancellationToken cancellationToken) + { + await _pipe.WriteAsync(type, cancellationToken); + + if (writePayload != null) + { + await writePayload(_pipe, cancellationToken); + } + + await _pipe.FlushAsync(cancellationToken); + } + + public override async ValueTask ReadAsync(CancellationToken cancellationToken) + { + try + { + var type = (ResponseType)await _pipe.ReadByteAsync(cancellationToken); + return new ClientTransportResponse(type, _pipe, disposeStream: false); + } + catch (Exception e) when (e is not OperationCanceledException && IsExpectedPipeException(e, cancellationToken)) + { + // Pipe has been disposed or the process has terminated. + return null; + } + } + + public override void Dispose() + { + _logger.LogDebug("Disposing agent communication pipe"); + + // Dispose the pipe but do not set it to null, so that any in-progress + // operations throw the appropriate exception type. + _pipe.Dispose(); + } +} diff --git a/src/BuiltInTools/HotReloadClient/Web/BrowserRefreshServer.cs b/src/BuiltInTools/HotReloadClient/Web/BrowserRefreshServer.cs index 241bcbe0d134..8d139846350a 100644 --- a/src/BuiltInTools/HotReloadClient/Web/BrowserRefreshServer.cs +++ b/src/BuiltInTools/HotReloadClient/Web/BrowserRefreshServer.cs @@ -10,22 +10,16 @@ using System.Diagnostics; using System.Linq; using System.Net; -using System.Security.Cryptography; using System.Threading; using System.Threading.Tasks; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Hosting.Server; -using Microsoft.AspNetCore.Hosting.Server.Features; using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace Microsoft.DotNet.HotReload; /// /// Kestrel-based Browser Refesh Server implementation. +/// Delegates Kestrel lifecycle to . /// internal sealed class BrowserRefreshServer( ILogger logger, @@ -37,8 +31,6 @@ internal sealed class BrowserRefreshServer( bool suppressTimeouts) : AbstractBrowserRefreshServer(middlewareAssemblyPath, logger, loggerFactory) { - private static bool? s_lazyTlsSupported; - protected override bool SuppressTimeouts => suppressTimeouts; @@ -46,86 +38,19 @@ protected override async ValueTask CreateAndStartHostAsync(Cancel { var hostName = autoReloadWebSocketHostName ?? "127.0.0.1"; var port = autoReloadWebSocketPort ?? 0; + var supportsTls = await KestrelWebSocketServer.IsTlsSupportedAsync(dotnetPath, suppressTimeouts, cancellationToken); - var supportsTls = await IsTlsSupportedAsync(cancellationToken); - - var host = new HostBuilder() - .ConfigureWebHost(builder => - { - builder.UseKestrel(); - if (supportsTls) - { - builder.UseUrls($"https://{hostName}:{port}", $"http://{hostName}:{port}"); - } - else - { - builder.UseUrls($"http://{hostName}:{port}"); - } - - builder.Configure(app => - { - app.UseWebSockets(); - app.Run(WebSocketRequestAsync); - }); - }) - .Build(); - - await host.StartAsync(cancellationToken); + var server = new KestrelWebSocketServer(Logger, WebSocketRequestAsync); + await server.StartServerAsync(hostName, port, supportsTls ? 0 : null, cancellationToken); // URLs are only available after the server has started. - return new WebServerHost(host, GetServerUrls(host), virtualDirectory: "/"); + return new WebServerHost(server, GetServerUrls(server.ServerUrls), virtualDirectory: "/"); } - private async ValueTask IsTlsSupportedAsync(CancellationToken cancellationToken) + private ImmutableArray GetServerUrls(ImmutableArray serverUrls) { - var result = s_lazyTlsSupported; - if (result.HasValue) - { - return result.Value; - } - - try - { - using var process = Process.Start(dotnetPath, "dev-certs https --check --quiet"); - await process - .WaitForExitAsync(cancellationToken) - .WaitAsync(SuppressTimeouts ? TimeSpan.MaxValue : TimeSpan.FromSeconds(10), cancellationToken); - - result = process.ExitCode == 0; - } - catch - { - result = false; - } - - s_lazyTlsSupported = result; - return result.Value; - } - - private ImmutableArray GetServerUrls(IHost server) - { - var serverUrls = server.Services - .GetRequiredService() - .Features - .Get()? - .Addresses; - - Debug.Assert(serverUrls != null); - - if (autoReloadWebSocketHostName is null) - { - return [.. serverUrls.Select(s => - s.Replace("http://127.0.0.1", "ws://localhost", StringComparison.Ordinal) - .Replace("https://127.0.0.1", "wss://localhost", StringComparison.Ordinal))]; - } - - return - [ - serverUrls - .First() - .Replace("https://", "wss://", StringComparison.Ordinal) - .Replace("http://", "ws://", StringComparison.Ordinal) - ]; + Debug.Assert(serverUrls.Length > 0); + return [.. serverUrls.Select(s => KestrelWebSocketServer.GetWebSocketUrl(s, autoReloadWebSocketHostName))]; } private async Task WebSocketRequestAsync(HttpContext context) diff --git a/src/BuiltInTools/HotReloadClient/Web/KestrelWebSocketServer.cs b/src/BuiltInTools/HotReloadClient/Web/KestrelWebSocketServer.cs new file mode 100644 index 000000000000..41d0522f5715 --- /dev/null +++ b/src/BuiltInTools/HotReloadClient/Web/KestrelWebSocketServer.cs @@ -0,0 +1,151 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#if NET + +#nullable enable + +using System; +using System.Collections.Immutable; +using System.Diagnostics; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Hosting.Server; +using Microsoft.AspNetCore.Hosting.Server.Features; +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.HotReload; + +/// +/// Sealed WebSocket server using Kestrel. +/// Uses a request handler delegate for all WebSocket handling. +/// +internal sealed class KestrelWebSocketServer : IDisposable +{ + private readonly RequestDelegate _requestHandler; + private readonly ILogger _logger; + + private IHost? _host; + public ImmutableArray ServerUrls { get; private set; } = []; + + public KestrelWebSocketServer(ILogger logger, RequestDelegate requestHandler) + { + _logger = logger; + _requestHandler = requestHandler; + } + + public void Dispose() + { + _host?.Dispose(); + } + + private static bool? s_lazyTlsSupported; + + /// + /// Checks whether TLS is supported by running dotnet dev-certs https --check --quiet. + /// + public static async ValueTask IsTlsSupportedAsync(string dotnetPath, bool suppressTimeouts, CancellationToken cancellationToken) + { + var result = s_lazyTlsSupported; + if (result.HasValue) + { + return result.Value; + } + + try + { + using var process = Process.Start(dotnetPath, "dev-certs https --check --quiet"); + await process + .WaitForExitAsync(cancellationToken) + .WaitAsync(suppressTimeouts ? TimeSpan.MaxValue : TimeSpan.FromSeconds(10), cancellationToken); + + result = process.ExitCode == 0; + } + catch + { + result = false; + } + + s_lazyTlsSupported = result; + return result.Value; + } + + /// + /// Starts the Kestrel WebSocket server. + /// + /// Host name to bind to + /// HTTP port to bind to (0 for auto-assign) + /// HTTPS port to bind to in addition to HTTP port. Null to skip HTTPS. + /// Cancellation token + public async ValueTask StartServerAsync(string hostName, int port, int? securePort, CancellationToken cancellationToken) + { + if (_host != null) + { + throw new InvalidOperationException("Server already started"); + } + + _host = new HostBuilder() + .ConfigureWebHost(builder => + { + builder.UseKestrel(); + + if (securePort.HasValue) + { + builder.UseUrls($"http://{hostName}:{port}", $"https://{hostName}:{securePort.Value}"); + } + else + { + builder.UseUrls($"http://{hostName}:{port}"); + } + + builder.Configure(app => + { + app.UseWebSockets(); + app.Run(_requestHandler); + }); + }) + .Build(); + + await _host.StartAsync(cancellationToken); + + // URLs are only available after the server has started. + var addresses = _host.Services + .GetRequiredService() + .Features + .Get()? + .Addresses; + + if (addresses != null) + { + ServerUrls = [.. addresses]; + } + + _logger.LogDebug("WebSocket server started at: {Urls}", string.Join(", ", ServerUrls.Select(url => GetWebSocketUrl(url)))); + } + + /// + /// Converts an HTTP(S) URL to a WebSocket URL. + /// When is not specified, also replaces 127.0.0.1 with localhost. + /// + internal static string GetWebSocketUrl(string httpUrl, string? hostName = null) + { + if (hostName is null) + { + return httpUrl + .Replace("http://127.0.0.1", "ws://localhost", StringComparison.Ordinal) + .Replace("https://127.0.0.1", "wss://localhost", StringComparison.Ordinal); + } + + return httpUrl + .Replace("https://", "wss://", StringComparison.Ordinal) + .Replace("http://", "ws://", StringComparison.Ordinal); + } +} + +#endif diff --git a/src/BuiltInTools/HotReloadClient/WebSocketClientTransport.cs b/src/BuiltInTools/HotReloadClient/WebSocketClientTransport.cs new file mode 100644 index 000000000000..b10f5aa63674 --- /dev/null +++ b/src/BuiltInTools/HotReloadClient/WebSocketClientTransport.cs @@ -0,0 +1,205 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#if NET + +#nullable enable + +using System; +using System.Buffers; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Net.WebSockets; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.HotReload; + +/// +/// WebSocket transport for communication between dotnet-watch and the hot reload agent. +/// Used for projects with the HotReloadWebSockets capability (e.g., Android, iOS) +/// where named pipes don't work over the network. +/// Manages a Kestrel WebSocket server and handles single-client connections with +/// RSA-based shared secret authentication (same as BrowserRefreshServer). +/// +internal sealed class WebSocketClientTransport : ClientTransport +{ + private readonly ILogger _logger; + private readonly KestrelWebSocketServer _server; + private readonly SharedSecretProvider _sharedSecretProvider = new(); + private readonly TaskCompletionSource _clientConnectedSource = new(); + + private WebSocket? _clientSocket; + + // Reused across WriteAsync calls to avoid allocations. + // WriteAsync is invoked under a semaphore in DefaultHotReloadClient. + private MemoryStream? _sendBuffer; + + private WebSocketClientTransport(ILogger logger) + { + _logger = logger; + _server = new KestrelWebSocketServer(logger, HandleRequestAsync); + } + + /// + /// Creates and starts a new instance. + /// + public static async Task CreateAsync(int port, int? securePort, ILogger logger, CancellationToken cancellationToken) + { + var transport = new WebSocketClientTransport(logger); + + // Start Kestrel server with WebSocket support. + // Use 127.0.0.1 instead of "localhost" because Kestrel doesn't support dynamic port binding with "localhost". + // System.InvalidOperationException: Dynamic port binding is not supported when binding to localhost. + // You must either bind to 127.0.0.1:0 or [::1]:0, or both. + await transport._server.StartServerAsync("127.0.0.1", port, securePort: securePort, cancellationToken); + + return transport; + } + + /// + /// The bound port number, for testing. Only valid after server has started. + /// + internal int Port => new Uri(_server.ServerUrls.Select(url => KestrelWebSocketServer.GetWebSocketUrl(url)).First()).Port; + + public override void ConfigureEnvironment(IDictionary env) + { + // Set the WebSocket endpoint for the app to connect to. + // Use the actual bound URL from the server (important when port 0 was requested). + env[AgentEnvironmentVariables.DotNetWatchHotReloadWebSocketEndpoint] = _server.ServerUrls.Select(url => KestrelWebSocketServer.GetWebSocketUrl(url)).First(); + + // Set the RSA public key for the client to encrypt its shared secret. + // This is the same authentication mechanism used by BrowserRefreshServer. + env[AgentEnvironmentVariables.DotNetWatchHotReloadWebSocketKey] = _sharedSecretProvider.GetPublicKey(); + } + + private async Task HandleRequestAsync(HttpContext context) + { + if (!context.WebSockets.IsWebSocketRequest) + { + context.Response.StatusCode = 400; + return; + } + + // Validate the shared secret from the subprotocol + string? subProtocol = context.WebSockets.WebSocketRequestedProtocols is [var sp] ? sp : null; + + if (subProtocol == null) + { + _logger.LogWarning("WebSocket connection rejected: missing subprotocol (shared secret)"); + context.Response.StatusCode = 401; + return; + } + + // Decrypt and validate the secret + try + { + _sharedSecretProvider.DecryptSecret(WebUtility.UrlDecode(subProtocol)); + } + catch (Exception ex) + { + _logger.LogWarning("WebSocket connection rejected: invalid shared secret - {Message}", ex.Message); + context.Response.StatusCode = 401; + return; + } + + var webSocket = await context.WebSockets.AcceptWebSocketAsync(subProtocol); + + _logger.LogDebug("WebSocket client connected"); + + _clientSocket = webSocket; + _clientConnectedSource.TrySetResult(webSocket); + + // Keep the request alive until the connection is closed or aborted + try + { + await Task.Delay(Timeout.InfiniteTimeSpan, context.RequestAborted); + } + catch (OperationCanceledException) when (context.RequestAborted.IsCancellationRequested) + { + // Expected when the client disconnects or the request is aborted + } + + _logger.LogDebug("WebSocket client disconnected"); + } + + public override Task WaitForConnectionAsync(CancellationToken cancellationToken) => + _clientConnectedSource.Task.WaitAsync(cancellationToken); + + public override async ValueTask WriteAsync(byte type, Func? writePayload, CancellationToken cancellationToken) + { + if (_clientSocket == null || _clientSocket.State != WebSocketState.Open) + { + throw new InvalidOperationException("No active WebSocket connection from the client."); + } + + // Serialize the complete message to a reusable buffer, then send as a single WebSocket message + _sendBuffer ??= new MemoryStream(); + _sendBuffer.SetLength(0); + + await _sendBuffer.WriteAsync(type, cancellationToken); + + if (writePayload != null) + { + await writePayload(_sendBuffer, cancellationToken); + } + + await _clientSocket.SendAsync( + new ArraySegment(_sendBuffer.GetBuffer(), 0, (int)_sendBuffer.Length), + WebSocketMessageType.Binary, + endOfMessage: true, + cancellationToken); + } + + public override async ValueTask ReadAsync(CancellationToken cancellationToken) + { + if (_clientSocket == null || _clientSocket.State != WebSocketState.Open) + { + return null; + } + + // Receive a complete WebSocket message + var buffer = ArrayPool.Shared.Rent(4096); + try + { + var stream = new MemoryStream(); + WebSocketReceiveResult result; + do + { + result = await _clientSocket.ReceiveAsync(new ArraySegment(buffer), cancellationToken); + if (result.MessageType == WebSocketMessageType.Close) + { + stream.Dispose(); + return null; + } + stream.Write(buffer, 0, result.Count); + } + while (!result.EndOfMessage); + + stream.Position = 0; + + // Read the response type byte from the message + var type = (ResponseType)await stream.ReadByteAsync(cancellationToken); + return new ClientTransportResponse(type, stream, disposeStream: true); + } + finally + { + ArrayPool.Shared.Return(buffer); + } + } + + public override void Dispose() + { + _logger.LogDebug("Disposing agent websocket transport"); + _sendBuffer?.Dispose(); + _clientSocket?.Dispose(); + _sharedSecretProvider.Dispose(); + _server.Dispose(); + } +} + +#endif diff --git a/src/BuiltInTools/Watch/AppModels/BlazorWebAssemblyHostedAppModel.cs b/src/BuiltInTools/Watch/AppModels/BlazorWebAssemblyHostedAppModel.cs index 12108762305b..d56f69aeccb3 100644 --- a/src/BuiltInTools/Watch/AppModels/BlazorWebAssemblyHostedAppModel.cs +++ b/src/BuiltInTools/Watch/AppModels/BlazorWebAssemblyHostedAppModel.cs @@ -28,7 +28,7 @@ protected override HotReloadClients CreateClients(ILogger clientLogger, ILogger return new( [ (CreateWebAssemblyClient(clientLogger, agentLogger, browserRefreshServer, clientProject), "client"), - (new DefaultHotReloadClient(clientLogger, agentLogger, GetStartupHookPath(serverProject), enableStaticAssetUpdates: false), "host") + (new DefaultHotReloadClient(clientLogger, agentLogger, GetStartupHookPath(serverProject), enableStaticAssetUpdates: false, new NamedPipeClientTransport(clientLogger)), "host") ], browserRefreshServer); } diff --git a/src/BuiltInTools/Watch/AppModels/DefaultAppModel.cs b/src/BuiltInTools/Watch/AppModels/DefaultAppModel.cs index 300236d7250a..ebb8e7d9c4b2 100644 --- a/src/BuiltInTools/Watch/AppModels/DefaultAppModel.cs +++ b/src/BuiltInTools/Watch/AppModels/DefaultAppModel.cs @@ -13,5 +13,5 @@ namespace Microsoft.DotNet.Watch; internal sealed class DefaultAppModel(ProjectGraphNode project) : HotReloadAppModel { public override ValueTask TryCreateClientsAsync(ILogger clientLogger, ILogger agentLogger, CancellationToken cancellationToken) - => new(new HotReloadClients(new DefaultHotReloadClient(clientLogger, agentLogger, GetStartupHookPath(project), enableStaticAssetUpdates: true), browserRefreshServer: null)); + => new(new HotReloadClients(new DefaultHotReloadClient(clientLogger, agentLogger, GetStartupHookPath(project), enableStaticAssetUpdates: true, new NamedPipeClientTransport(clientLogger)), browserRefreshServer: null)); } diff --git a/src/BuiltInTools/Watch/AppModels/HotReloadAppModel.cs b/src/BuiltInTools/Watch/AppModels/HotReloadAppModel.cs index 7a205a8d1fce..16d837d5c180 100644 --- a/src/BuiltInTools/Watch/AppModels/HotReloadAppModel.cs +++ b/src/BuiltInTools/Watch/AppModels/HotReloadAppModel.cs @@ -42,6 +42,12 @@ public static HotReloadAppModel InferFromProject(DotNetWatchContext context, Pro return new WebServerAppModel(context, serverProject: projectNode); } + if (capabilities.Contains(ProjectCapability.HotReloadWebSockets)) + { + context.Logger.Log(MessageDescriptor.ApplicationKind_WebSockets); + return new MobileAppModel(context, projectNode); + } + context.Logger.Log(MessageDescriptor.ApplicationKind_Default); return new DefaultAppModel(projectNode); } diff --git a/src/BuiltInTools/Watch/AppModels/MobileAppModel.cs b/src/BuiltInTools/Watch/AppModels/MobileAppModel.cs new file mode 100644 index 000000000000..503481230596 --- /dev/null +++ b/src/BuiltInTools/Watch/AppModels/MobileAppModel.cs @@ -0,0 +1,28 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Build.Graph; +using Microsoft.DotNet.HotReload; +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch; + +internal sealed class MobileAppModel(DotNetWatchContext context, ProjectGraphNode project) : HotReloadAppModel +{ + // Use WebSocket transport for projects with HotReloadWebSockets capability. + // Mobile workloads (Android, iOS) add this capability since named pipes don't work over the network. + // Pass the startup hook path so it can be included in the environment variables + // passed via `dotnet run -e` as @(RuntimeEnvironmentVariable) items. + public override async ValueTask TryCreateClientsAsync(ILogger clientLogger, ILogger agentLogger, CancellationToken cancellationToken) + { + var transport = await WebSocketClientTransport.CreateAsync( + context.EnvironmentOptions.AgentWebSocketPort, + context.EnvironmentOptions.AgentWebSocketSecurePort, + clientLogger, + cancellationToken); + + return new HotReloadClients( + new DefaultHotReloadClient(clientLogger, agentLogger, GetStartupHookPath(project), enableStaticAssetUpdates: true, transport), + browserRefreshServer: null); + } +} diff --git a/src/BuiltInTools/Watch/AppModels/WebServerAppModel.cs b/src/BuiltInTools/Watch/AppModels/WebServerAppModel.cs index d30703b87530..b1026c5f2d6a 100644 --- a/src/BuiltInTools/Watch/AppModels/WebServerAppModel.cs +++ b/src/BuiltInTools/Watch/AppModels/WebServerAppModel.cs @@ -16,5 +16,5 @@ public override bool RequiresBrowserRefresh => false; protected override HotReloadClients CreateClients(ILogger clientLogger, ILogger agentLogger, BrowserRefreshServer? browserRefreshServer) - => new(new DefaultHotReloadClient(clientLogger, agentLogger, GetStartupHookPath(serverProject), enableStaticAssetUpdates: true), browserRefreshServer); + => new(new DefaultHotReloadClient(clientLogger, agentLogger, GetStartupHookPath(serverProject), enableStaticAssetUpdates: true, new NamedPipeClientTransport(clientLogger)), browserRefreshServer); } diff --git a/src/BuiltInTools/Watch/Build/BuildNames.cs b/src/BuiltInTools/Watch/Build/BuildNames.cs index a2d0b790ce0d..e7919c238252 100644 --- a/src/BuiltInTools/Watch/Build/BuildNames.cs +++ b/src/BuiltInTools/Watch/Build/BuildNames.cs @@ -58,5 +58,6 @@ internal static class ProjectCapability { public const string Aspire = nameof(Aspire); public const string AspNetCore = nameof(AspNetCore); + public const string HotReloadWebSockets = nameof(HotReloadWebSockets); public const string WebAssembly = nameof(WebAssembly); } diff --git a/src/BuiltInTools/Watch/Context/EnvironmentOptions.cs b/src/BuiltInTools/Watch/Context/EnvironmentOptions.cs index 1cb4f6db7bdc..016c774130bf 100644 --- a/src/BuiltInTools/Watch/Context/EnvironmentOptions.cs +++ b/src/BuiltInTools/Watch/Context/EnvironmentOptions.cs @@ -40,6 +40,8 @@ internal sealed record EnvironmentOptions( string? AutoReloadWebSocketHostName = null, int? AutoReloadWebSocketPort = null, string? BrowserPath = null, + int AgentWebSocketPort = 0, + int? AgentWebSocketSecurePort = null, TestFlags TestFlags = TestFlags.None, string TestOutput = "") { @@ -59,6 +61,8 @@ internal sealed record EnvironmentOptions( AutoReloadWebSocketHostName: EnvironmentVariables.AutoReloadWSHostName, AutoReloadWebSocketPort: EnvironmentVariables.AutoReloadWSPort, BrowserPath: EnvironmentVariables.BrowserPath, + AgentWebSocketPort: EnvironmentVariables.AgentWebSocketPort, + AgentWebSocketSecurePort: EnvironmentVariables.AgentWebSocketSecurePort, TestFlags: EnvironmentVariables.TestFlags, TestOutput: EnvironmentVariables.TestOutputDir ); diff --git a/src/BuiltInTools/Watch/Context/EnvironmentVariables.cs b/src/BuiltInTools/Watch/Context/EnvironmentVariables.cs index 6a89a52cdf88..d9dde6c02640 100644 --- a/src/BuiltInTools/Watch/Context/EnvironmentVariables.cs +++ b/src/BuiltInTools/Watch/Context/EnvironmentVariables.cs @@ -16,6 +16,9 @@ public static class Names public const string DotnetHostPath = "DOTNET_HOST_PATH"; public const string DotNetWatchHotReloadNamedPipeName = HotReload.AgentEnvironmentVariables.DotNetWatchHotReloadNamedPipeName; + public const string DotNetWatchHotReloadWebSocketEndpoint = HotReload.AgentEnvironmentVariables.DotNetWatchHotReloadWebSocketEndpoint; + public const string DotNetWatchAgentWebSocketPort = "DOTNET_WATCH_AGENT_WEBSOCKET_PORT"; + public const string DotNetWatchAgentWebSocketSecurePort = "DOTNET_WATCH_AGENT_WEBSOCKET_SECURE_PORT"; public const string DotNetStartupHooks = HotReload.AgentEnvironmentVariables.DotNetStartupHooks; public const string DotNetModifiableAssemblies = HotReload.AgentEnvironmentVariables.DotNetModifiableAssemblies; public const string HotReloadDeltaClientLogMessages = HotReload.AgentEnvironmentVariables.HotReloadDeltaClientLogMessages; @@ -60,6 +63,18 @@ public static LogLevel? CliLogLevel public static int? AutoReloadWSPort => ReadInt("DOTNET_WATCH_AUTO_RELOAD_WS_PORT"); public static string? BrowserPath => Environment.GetEnvironmentVariable("DOTNET_WATCH_BROWSER_PATH"); + /// + /// Port for WebSocket hot reload communication. Used for projects with the HotReloadWebSockets capability. + /// Mobile workloads (Android, iOS) add this capability. Defaults to 0 (auto-assign) if not specified. + /// + public static int AgentWebSocketPort => ReadInt(Names.DotNetWatchAgentWebSocketPort) ?? 0; + + /// + /// Secure (HTTPS/WSS) port for WebSocket hot reload communication. + /// If not specified, HTTPS is not enabled for the agent WebSocket server. + /// + public static int? AgentWebSocketSecurePort => ReadInt(Names.DotNetWatchAgentWebSocketSecurePort); + private static bool ReadBool(string variableName) => ParseBool(Environment.GetEnvironmentVariable(variableName)); diff --git a/src/BuiltInTools/Watch/UI/IReporter.cs b/src/BuiltInTools/Watch/UI/IReporter.cs index 19f05aa3dedc..36897a4284bb 100644 --- a/src/BuiltInTools/Watch/UI/IReporter.cs +++ b/src/BuiltInTools/Watch/UI/IReporter.cs @@ -232,6 +232,7 @@ public MessageDescriptor WithLevelWhen(LogLevel level, bool condition) public static readonly MessageDescriptor ApplicationKind_BlazorWebAssembly = Create("Application kind: BlazorWebAssembly.", Emoji.Default, LogLevel.Debug); public static readonly MessageDescriptor ApplicationKind_WebApplication = Create("Application kind: WebApplication.", Emoji.Default, LogLevel.Debug); public static readonly MessageDescriptor ApplicationKind_Default = Create("Application kind: Default.", Emoji.Default, LogLevel.Debug); + public static readonly MessageDescriptor ApplicationKind_WebSockets = Create("Application kind: WebSockets.", Emoji.Default, LogLevel.Debug); public static readonly MessageDescriptor WatchingFilesForChanges = Create("Watching {0} file(s) for changes", Emoji.Watch, LogLevel.Debug); public static readonly MessageDescriptor WatchingFilesForChanges_FilePath = Create("> {0}", Emoji.Watch, LogLevel.Trace); public static readonly MessageDescriptor Building = Create("Building {0} ...", Emoji.Default, LogLevel.Information); diff --git a/test/Microsoft.Extensions.DotNetDeltaApplier.Tests/HotReloadClientTests.cs b/test/Microsoft.Extensions.DotNetDeltaApplier.Tests/HotReloadClientTests.cs index 7bba809b7657..a66c1410f038 100644 --- a/test/Microsoft.Extensions.DotNetDeltaApplier.Tests/HotReloadClientTests.cs +++ b/test/Microsoft.Extensions.DotNetDeltaApplier.Tests/HotReloadClientTests.cs @@ -19,19 +19,28 @@ public Test(ITestOutputHelper output, TestHotReloadAgent agent) { Logger = new TestLogger(output); AgentLogger = new TestLogger(output); - Client = new DefaultHotReloadClient(Logger, AgentLogger, startupHookPath: "", enableStaticAssetUpdates: true); + var clientTransport = new NamedPipeClientTransport(Logger); + Client = new DefaultHotReloadClient(Logger, AgentLogger, startupHookPath: "", enableStaticAssetUpdates: true, clientTransport); _cancellationSource = new CancellationTokenSource(); Client.InitiateConnection(CancellationToken.None); - var listener = new PipeListener(Client.NamedPipeName, agent, log: _ => { }, connectionTimeoutMS: Timeout.Infinite); + var agentTransport = new NamedPipeTransport(clientTransport.NamedPipeName, log: _ => { }, timeoutMS: Timeout.Infinite); + var listener = new Listener(agentTransport, agent, log: _ => { }); _listenerTaskFactory = Task.Run(() => listener.Listen(_cancellationSource.Token)); } public async ValueTask DisposeAsync() { _cancellationSource.Cancel(); - await await _listenerTaskFactory; + try + { + await await _listenerTaskFactory; + } + catch (OperationCanceledException) + { + // Expected when cancellation is requested during disposal + } Client.Dispose(); } diff --git a/test/TestAssets/TestProjects/WatchMobileApp/Program.cs b/test/TestAssets/TestProjects/WatchMobileApp/Program.cs new file mode 100644 index 000000000000..f1d2a3b77bbd --- /dev/null +++ b/test/TestAssets/TestProjects/WatchMobileApp/Program.cs @@ -0,0 +1,39 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Linq; +using System.Diagnostics; +using System.Reflection; +using System.Runtime.Versioning; +using System.Threading; +using System.Threading.Tasks; + +// + +var assembly = typeof(C).Assembly; + +Console.WriteLine("Started"); + +// Process ID is insufficient because PID's may be reused. +Console.WriteLine($"Process identifier = {Process.GetCurrentProcess().Id}, {Guid.NewGuid()}"); +Console.WriteLine($"DOTNET_WATCH = {Environment.GetEnvironmentVariable("DOTNET_WATCH")}"); +Console.WriteLine($"DOTNET_WATCH_ITERATION = {Environment.GetEnvironmentVariable("DOTNET_WATCH_ITERATION")}"); +Console.WriteLine($"Arguments = {string.Join(",", args)}"); +Console.WriteLine($"Version = {assembly.GetCustomAttributes().FirstOrDefault()?.Version ?? ""}"); +Console.WriteLine($"TFM = {assembly.GetCustomAttributes().FirstOrDefault()?.FrameworkName ?? ""}"); +Console.WriteLine($"Configuration = {assembly.GetCustomAttributes().FirstOrDefault()?.Configuration ?? ""}"); + +while (true) +{ + F(); + await Task.Delay(1000); +} + +void F() +{ + Console.WriteLine("."); +} + +class C { /* member placeholder */ } + diff --git a/test/TestAssets/TestProjects/WatchMobileApp/WatchMobileApp.csproj b/test/TestAssets/TestProjects/WatchMobileApp/WatchMobileApp.csproj new file mode 100644 index 000000000000..40d464d51874 --- /dev/null +++ b/test/TestAssets/TestProjects/WatchMobileApp/WatchMobileApp.csproj @@ -0,0 +1,12 @@ + + + $(CurrentTargetFramework) + Exe + + + + + + + + diff --git a/test/dotnet-watch.Tests/HotReload/MobileHotReloadTests.cs b/test/dotnet-watch.Tests/HotReload/MobileHotReloadTests.cs new file mode 100644 index 000000000000..6a99baab6982 --- /dev/null +++ b/test/dotnet-watch.Tests/HotReload/MobileHotReloadTests.cs @@ -0,0 +1,41 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Text.RegularExpressions; + +namespace Microsoft.DotNet.Watch.UnitTests; + +public class MobileHotReloadTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) +{ + // Matches WebSocket URLs like ws://localhost:12345 where port is non-zero + private static readonly Regex WebSocketServerStartedPattern = new(@"WebSocket server started at: ws://localhost:([1-9]\d*)"); + + /// + /// Tests that hot reload works for projects with the HotReloadWebSockets capability. + /// Mobile workloads (Android, iOS) add this capability to indicate WebSocket transport should be used. + /// + [Fact] + public async Task HotReload_WithWebSocketCapability() + { + var testAsset = TestAssets.CopyTestAsset("WatchMobileApp") + .WithSource(); + + App.Start(testAsset, []); + + await App.WaitForOutputLineContaining("Started"); + await App.WaitForOutputLineContaining(MessageDescriptor.WaitingForChanges); + + // Verify the app is detected as requiring WebSocket transport with a dynamically assigned port + await App.WaitUntilOutputContains(MessageDescriptor.ApplicationKind_WebSockets); + await App.WaitUntilOutputContains(WebSocketServerStartedPattern); + await App.WaitUntilOutputContains("WebSocket client connected"); + + // Apply a hot reload change + var programPath = Path.Combine(testAsset.Path, "Program.cs"); + UpdateSourceFile(programPath, src => src.Replace( + """Console.WriteLine(".");""", + """Console.WriteLine("Changed!");""")); + + await App.AssertOutputLineStartsWith("Changed!"); + } +} From 9fe9dcb78cbcc68e48ce5b61a88da64544f3b689 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 20 Feb 2026 23:45:50 +0000 Subject: [PATCH 092/179] Update dependencies from build 302754 Updated Dependencies: dotnet-dev-certs, dotnet-user-jwts, dotnet-user-secrets, Microsoft.AspNetCore.Analyzers, Microsoft.AspNetCore.App.Ref.Internal, Microsoft.AspNetCore.Components.SdkAnalyzers, Microsoft.AspNetCore.DeveloperCertificates.XPlat, Microsoft.AspNetCore.Mvc.Analyzers, Microsoft.AspNetCore.Mvc.Api.Analyzers, Microsoft.Dotnet.WinForms.ProjectTemplates, Microsoft.DotNet.Wpf.ProjectTemplates, Microsoft.NET.HostModel, Microsoft.NET.Sdk.WindowsDesktop, Microsoft.NETCore.Platforms, Microsoft.WindowsDesktop.App.Internal (Version 10.0.5-servicing.26120.101 -> 10.0.5-servicing.26120.109) Microsoft.AspNetCore.App.Ref, Microsoft.AspNetCore.Authentication.Facebook, Microsoft.AspNetCore.Authentication.Google, Microsoft.AspNetCore.Authentication.MicrosoftAccount, Microsoft.AspNetCore.Authorization, Microsoft.AspNetCore.Components, Microsoft.AspNetCore.Components.Analyzers, Microsoft.AspNetCore.Components.Forms, Microsoft.AspNetCore.Components.Web, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.AspNetCore.Components.WebAssembly.Server, Microsoft.AspNetCore.Components.WebView, Microsoft.AspNetCore.Metadata, Microsoft.AspNetCore.TestHost, Microsoft.Bcl.AsyncInterfaces, Microsoft.DotNet.Web.ItemTemplates.10.0, Microsoft.DotNet.Web.ProjectTemplates.10.0, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Embedded, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.ObjectPool, Microsoft.JSInterop, Microsoft.NET.ILLink.Tasks, Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64, Microsoft.NETCore.App.Ref, Microsoft.Win32.SystemEvents, Microsoft.WindowsDesktop.App.Ref, System.CodeDom, System.ComponentModel.Composition, System.Composition.AttributedModel, System.Composition.Convention, System.Composition.Hosting, System.Composition.Runtime, System.Composition.TypedParts, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Formats.Asn1, System.IO.Hashing, System.Reflection.MetadataLoadContext, System.Resources.Extensions, System.Security.Cryptography.Pkcs, System.Security.Cryptography.ProtectedData, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encoding.CodePages, System.Text.Json, System.Windows.Extensions (Version 10.0.5 -> 10.0.5) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26120.101 -> 10.0.0-preview.26120.109) Microsoft.Build (Version 18.0.11 -> 18.0.11) Microsoft.Build.Localization (Version 18.0.11-servicing-26120-101 -> 18.0.11-servicing-26120-109) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.0.2-rc.12101 -> 7.0.2-rc.12109) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab, Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common (Version 10.0.105 -> 10.0.105) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.0.0-2.26120.101 -> 5.0.0-2.26120.109) Microsoft.Deployment.DotNet.Releases (Version 2.0.0-preview.1.26120.101 -> 2.0.0-preview.1.26120.109) Microsoft.DiaSymReader (Version 2.2.5 -> 2.2.5) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26120.101 -> 10.0.0-beta.26120.109) Microsoft.FSharp.Compiler (Version 14.0.105-servicing.26120.101 -> 14.0.105-servicing.26120.109) Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.0.1-release-26120-101 -> 18.0.1-release-26120-109) Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.105-servicing.26120.101 -> 10.0.105-servicing.26120.109) Microsoft.Web.Xdt (Version 3.2.5 -> 3.2.5) System.CommandLine (Version 2.0.5 -> 2.0.5) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index ee20f4d2abfe..08983bf52a13 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 475d2f1fe8d9..001fd00b3d21 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.5-servicing.26120.101 - 10.0.5-servicing.26120.101 - 10.0.5-servicing.26120.101 - 10.0.5-servicing.26120.101 + 10.0.5-servicing.26120.109 + 10.0.5-servicing.26120.109 + 10.0.5-servicing.26120.109 + 10.0.5-servicing.26120.109 10.0.5 - 10.0.5-servicing.26120.101 + 10.0.5-servicing.26120.109 10.0.5 10.0.5 10.0.5 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26120.101 + 10.0.5-servicing.26120.109 10.0.5 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26120.101 + 10.0.5-servicing.26120.109 10.0.5 - 10.0.5-servicing.26120.101 - 10.0.5-servicing.26120.101 - 10.0.0-preview.26120.101 + 10.0.5-servicing.26120.109 + 10.0.5-servicing.26120.109 + 10.0.0-preview.26120.109 10.0.5 10.0.5 18.0.11 - 18.0.11-servicing-26120-101 - 7.0.2-rc.12101 + 18.0.11-servicing-26120-109 + 7.0.2-rc.12109 10.0.105 - 5.0.0-2.26120.101 - 5.0.0-2.26120.101 - 5.0.0-2.26120.101 - 5.0.0-2.26120.101 - 5.0.0-2.26120.101 - 5.0.0-2.26120.101 - 5.0.0-2.26120.101 - 10.0.0-preview.26120.101 - 5.0.0-2.26120.101 - 5.0.0-2.26120.101 - 2.0.0-preview.1.26120.101 + 5.0.0-2.26120.109 + 5.0.0-2.26120.109 + 5.0.0-2.26120.109 + 5.0.0-2.26120.109 + 5.0.0-2.26120.109 + 5.0.0-2.26120.109 + 5.0.0-2.26120.109 + 10.0.0-preview.26120.109 + 5.0.0-2.26120.109 + 5.0.0-2.26120.109 + 2.0.0-preview.1.26120.109 2.2.5 - 10.0.0-beta.26120.101 - 10.0.0-beta.26120.101 - 10.0.0-beta.26120.101 - 10.0.0-beta.26120.101 - 10.0.0-beta.26120.101 - 10.0.0-beta.26120.101 + 10.0.0-beta.26120.109 + 10.0.0-beta.26120.109 + 10.0.0-beta.26120.109 + 10.0.0-beta.26120.109 + 10.0.0-beta.26120.109 + 10.0.0-beta.26120.109 10.0.5 10.0.5 - 10.0.5-servicing.26120.101 - 10.0.5-servicing.26120.101 - 10.0.0-beta.26120.101 - 10.0.0-beta.26120.101 + 10.0.5-servicing.26120.109 + 10.0.5-servicing.26120.109 + 10.0.0-beta.26120.109 + 10.0.0-beta.26120.109 10.0.5 10.0.5 10.0.5 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 14.0.105-servicing.26120.101 + 14.0.105-servicing.26120.109 10.0.5 - 5.0.0-2.26120.101 - 5.0.0-2.26120.101 - 10.0.5-servicing.26120.101 + 5.0.0-2.26120.109 + 5.0.0-2.26120.109 + 10.0.5-servicing.26120.109 10.0.5 10.0.5 10.0.0-preview.7.25377.103 - 10.0.0-preview.26120.101 - 10.0.5-servicing.26120.101 - 18.0.1-release-26120-101 + 10.0.0-preview.26120.109 + 10.0.5-servicing.26120.109 + 18.0.1-release-26120-109 10.0.5 - 10.0.5-servicing.26120.101 + 10.0.5-servicing.26120.109 10.0.105 10.0.105 10.0.105 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.105 10.0.105 10.0.105 - 10.0.105-servicing.26120.101 + 10.0.105-servicing.26120.109 10.0.105 - 10.0.105-servicing.26120.101 + 10.0.105-servicing.26120.109 10.0.105 10.0.105 - 10.0.105-servicing.26120.101 - 18.0.1-release-26120-101 - 18.0.1-release-26120-101 + 10.0.105-servicing.26120.109 + 18.0.1-release-26120-109 + 18.0.1-release-26120-109 3.2.5 10.0.5 - 10.0.5-servicing.26120.101 + 10.0.5-servicing.26120.109 10.0.5 - 7.0.2-rc.12101 - 7.0.2-rc.12101 - 7.0.2-rc.12101 - 7.0.2-rc.12101 - 7.0.2-rc.12101 - 7.0.2-rc.12101 - 7.0.2-rc.12101 - 7.0.2-rc.12101 - 7.0.2-rc.12101 - 7.0.2-rc.12101 - 7.0.2-rc.12101 - 7.0.2-rc.12101 - 7.0.2-rc.12101 - 7.0.2-rc.12101 - 7.0.2-rc.12101 - 7.0.2-rc.12101 + 7.0.2-rc.12109 + 7.0.2-rc.12109 + 7.0.2-rc.12109 + 7.0.2-rc.12109 + 7.0.2-rc.12109 + 7.0.2-rc.12109 + 7.0.2-rc.12109 + 7.0.2-rc.12109 + 7.0.2-rc.12109 + 7.0.2-rc.12109 + 7.0.2-rc.12109 + 7.0.2-rc.12109 + 7.0.2-rc.12109 + 7.0.2-rc.12109 + 7.0.2-rc.12109 + 7.0.2-rc.12109 10.0.5 2.0.5 10.0.5 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0ac5d5ded1a2..4e2c60eb5d84 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 - + https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 5f4c062690731fe4bfb9ee62cd50c34173884461 + a3bb35c958f2209a7ac00098bfd48889457a0303 diff --git a/global.json b/global.json index d672cd34c2ab..5ca3c144248f 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26120.101", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26120.101", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26120.109", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26120.109", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From a33a17f0e5a3a5205df2630f32b459629f72e9a5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 21 Feb 2026 02:01:52 +0000 Subject: [PATCH 093/179] Update dependencies from https://github.com/microsoft/testfx build 20260220.7 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26118.4 -> To Version 2.2.0-preview.26120.7 MSTest From Version 4.2.0-preview.26118.4 -> To Version 4.2.0-preview.26120.7 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index e1025e27fa01..5452f5ec95cc 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26118.4 - 4.2.0-preview.26118.4 + 2.2.0-preview.26120.7 + 4.2.0-preview.26120.7 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a473db472226..2682e03a1485 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 69600372e5b6e4a27587423ec6997a46079ea3fc
- + https://github.com/microsoft/testfx - 9208585003599ef9cc5d59f1ed9f7a95ea157c97 + 04218c75a29b36cb0542058985a8663296b6c5bd - + https://github.com/microsoft/testfx - 9208585003599ef9cc5d59f1ed9f7a95ea157c97 + 04218c75a29b36cb0542058985a8663296b6c5bd https://github.com/dotnet/dotnet From def85b42ccc0572e36b62f66ce6cbaa29cde565a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 21 Feb 2026 02:02:23 +0000 Subject: [PATCH 094/179] Update dependencies from https://github.com/microsoft/testfx build 20260220.7 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26118.4 -> To Version 2.2.0-preview.26120.7 MSTest From Version 4.2.0-preview.26118.4 -> To Version 4.2.0-preview.26120.7 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index ae71fb6f2d02..0bffe558e459 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -144,8 +144,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26118.4 - 4.2.0-preview.26118.4 + 2.2.0-preview.26120.7 + 4.2.0-preview.26120.7
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c0f2cfac83ee..13aa060bfffc 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -564,13 +564,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - 9208585003599ef9cc5d59f1ed9f7a95ea157c97 + 04218c75a29b36cb0542058985a8663296b6c5bd - + https://github.com/microsoft/testfx - 9208585003599ef9cc5d59f1ed9f7a95ea157c97 + 04218c75a29b36cb0542058985a8663296b6c5bd https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet From 7b53db5e83d3fc3bf1f3cb0341f49dba2cf09711 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 21 Feb 2026 07:24:12 +0000 Subject: [PATCH 095/179] Update dependencies from build 302799 Updated Dependencies: dotnet-dev-certs, dotnet-user-jwts, dotnet-user-secrets, Microsoft.AspNetCore.Analyzers, Microsoft.AspNetCore.App.Ref.Internal, Microsoft.AspNetCore.Components.SdkAnalyzers, Microsoft.AspNetCore.DeveloperCertificates.XPlat, Microsoft.AspNetCore.Mvc.Analyzers, Microsoft.AspNetCore.Mvc.Api.Analyzers, Microsoft.Dotnet.WinForms.ProjectTemplates, Microsoft.DotNet.Wpf.ProjectTemplates, Microsoft.NET.HostModel, Microsoft.NET.Sdk.WindowsDesktop, Microsoft.NETCore.Platforms, Microsoft.WindowsDesktop.App.Internal (Version 10.0.5-servicing.26120.109 -> 10.0.5-servicing.26120.115) Microsoft.AspNetCore.App.Ref, Microsoft.AspNetCore.Authentication.Facebook, Microsoft.AspNetCore.Authentication.Google, Microsoft.AspNetCore.Authentication.MicrosoftAccount, Microsoft.AspNetCore.Authorization, Microsoft.AspNetCore.Components, Microsoft.AspNetCore.Components.Analyzers, Microsoft.AspNetCore.Components.Forms, Microsoft.AspNetCore.Components.Web, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.AspNetCore.Components.WebAssembly.Server, Microsoft.AspNetCore.Components.WebView, Microsoft.AspNetCore.Metadata, Microsoft.AspNetCore.TestHost, Microsoft.Bcl.AsyncInterfaces, Microsoft.DotNet.Web.ItemTemplates.10.0, Microsoft.DotNet.Web.ProjectTemplates.10.0, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Embedded, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.ObjectPool, Microsoft.JSInterop, Microsoft.NET.ILLink.Tasks, Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64, Microsoft.NETCore.App.Ref, Microsoft.Win32.SystemEvents, Microsoft.WindowsDesktop.App.Ref, System.CodeDom, System.ComponentModel.Composition, System.Composition.AttributedModel, System.Composition.Convention, System.Composition.Hosting, System.Composition.Runtime, System.Composition.TypedParts, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Formats.Asn1, System.IO.Hashing, System.Reflection.MetadataLoadContext, System.Resources.Extensions, System.Security.Cryptography.Pkcs, System.Security.Cryptography.ProtectedData, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encoding.CodePages, System.Text.Json, System.Windows.Extensions (Version 10.0.5 -> 10.0.5) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26120.109 -> 10.0.0-preview.26120.115) Microsoft.Build (Version 18.0.11 -> 18.0.11) Microsoft.Build.Localization (Version 18.0.11-servicing-26120-109 -> 18.0.11-servicing-26120-115) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.0.2-rc.12109 -> 7.0.2-rc.12115) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab, Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common (Version 10.0.105 -> 10.0.105) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.0.0-2.26120.109 -> 5.0.0-2.26120.115) Microsoft.Deployment.DotNet.Releases (Version 2.0.0-preview.1.26120.109 -> 2.0.0-preview.1.26120.115) Microsoft.DiaSymReader (Version 2.2.5 -> 2.2.5) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26120.109 -> 10.0.0-beta.26120.115) Microsoft.FSharp.Compiler (Version 14.0.105-servicing.26120.109 -> 14.0.105-servicing.26120.115) Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.0.1-release-26120-109 -> 18.0.1-release-26120-115) Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.105-servicing.26120.109 -> 10.0.105-servicing.26120.115) Microsoft.Web.Xdt (Version 3.2.5 -> 3.2.5) System.CommandLine (Version 2.0.5 -> 2.0.5) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index 08983bf52a13..d94d9e1b52f2 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 001fd00b3d21..1df4938c28a7 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.5-servicing.26120.109 - 10.0.5-servicing.26120.109 - 10.0.5-servicing.26120.109 - 10.0.5-servicing.26120.109 + 10.0.5-servicing.26120.115 + 10.0.5-servicing.26120.115 + 10.0.5-servicing.26120.115 + 10.0.5-servicing.26120.115 10.0.5 - 10.0.5-servicing.26120.109 + 10.0.5-servicing.26120.115 10.0.5 10.0.5 10.0.5 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26120.109 + 10.0.5-servicing.26120.115 10.0.5 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26120.109 + 10.0.5-servicing.26120.115 10.0.5 - 10.0.5-servicing.26120.109 - 10.0.5-servicing.26120.109 - 10.0.0-preview.26120.109 + 10.0.5-servicing.26120.115 + 10.0.5-servicing.26120.115 + 10.0.0-preview.26120.115 10.0.5 10.0.5 18.0.11 - 18.0.11-servicing-26120-109 - 7.0.2-rc.12109 + 18.0.11-servicing-26120-115 + 7.0.2-rc.12115 10.0.105 - 5.0.0-2.26120.109 - 5.0.0-2.26120.109 - 5.0.0-2.26120.109 - 5.0.0-2.26120.109 - 5.0.0-2.26120.109 - 5.0.0-2.26120.109 - 5.0.0-2.26120.109 - 10.0.0-preview.26120.109 - 5.0.0-2.26120.109 - 5.0.0-2.26120.109 - 2.0.0-preview.1.26120.109 + 5.0.0-2.26120.115 + 5.0.0-2.26120.115 + 5.0.0-2.26120.115 + 5.0.0-2.26120.115 + 5.0.0-2.26120.115 + 5.0.0-2.26120.115 + 5.0.0-2.26120.115 + 10.0.0-preview.26120.115 + 5.0.0-2.26120.115 + 5.0.0-2.26120.115 + 2.0.0-preview.1.26120.115 2.2.5 - 10.0.0-beta.26120.109 - 10.0.0-beta.26120.109 - 10.0.0-beta.26120.109 - 10.0.0-beta.26120.109 - 10.0.0-beta.26120.109 - 10.0.0-beta.26120.109 + 10.0.0-beta.26120.115 + 10.0.0-beta.26120.115 + 10.0.0-beta.26120.115 + 10.0.0-beta.26120.115 + 10.0.0-beta.26120.115 + 10.0.0-beta.26120.115 10.0.5 10.0.5 - 10.0.5-servicing.26120.109 - 10.0.5-servicing.26120.109 - 10.0.0-beta.26120.109 - 10.0.0-beta.26120.109 + 10.0.5-servicing.26120.115 + 10.0.5-servicing.26120.115 + 10.0.0-beta.26120.115 + 10.0.0-beta.26120.115 10.0.5 10.0.5 10.0.5 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 14.0.105-servicing.26120.109 + 14.0.105-servicing.26120.115 10.0.5 - 5.0.0-2.26120.109 - 5.0.0-2.26120.109 - 10.0.5-servicing.26120.109 + 5.0.0-2.26120.115 + 5.0.0-2.26120.115 + 10.0.5-servicing.26120.115 10.0.5 10.0.5 10.0.0-preview.7.25377.103 - 10.0.0-preview.26120.109 - 10.0.5-servicing.26120.109 - 18.0.1-release-26120-109 + 10.0.0-preview.26120.115 + 10.0.5-servicing.26120.115 + 18.0.1-release-26120-115 10.0.5 - 10.0.5-servicing.26120.109 + 10.0.5-servicing.26120.115 10.0.105 10.0.105 10.0.105 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.105 10.0.105 10.0.105 - 10.0.105-servicing.26120.109 + 10.0.105-servicing.26120.115 10.0.105 - 10.0.105-servicing.26120.109 + 10.0.105-servicing.26120.115 10.0.105 10.0.105 - 10.0.105-servicing.26120.109 - 18.0.1-release-26120-109 - 18.0.1-release-26120-109 + 10.0.105-servicing.26120.115 + 18.0.1-release-26120-115 + 18.0.1-release-26120-115 3.2.5 10.0.5 - 10.0.5-servicing.26120.109 + 10.0.5-servicing.26120.115 10.0.5 - 7.0.2-rc.12109 - 7.0.2-rc.12109 - 7.0.2-rc.12109 - 7.0.2-rc.12109 - 7.0.2-rc.12109 - 7.0.2-rc.12109 - 7.0.2-rc.12109 - 7.0.2-rc.12109 - 7.0.2-rc.12109 - 7.0.2-rc.12109 - 7.0.2-rc.12109 - 7.0.2-rc.12109 - 7.0.2-rc.12109 - 7.0.2-rc.12109 - 7.0.2-rc.12109 - 7.0.2-rc.12109 + 7.0.2-rc.12115 + 7.0.2-rc.12115 + 7.0.2-rc.12115 + 7.0.2-rc.12115 + 7.0.2-rc.12115 + 7.0.2-rc.12115 + 7.0.2-rc.12115 + 7.0.2-rc.12115 + 7.0.2-rc.12115 + 7.0.2-rc.12115 + 7.0.2-rc.12115 + 7.0.2-rc.12115 + 7.0.2-rc.12115 + 7.0.2-rc.12115 + 7.0.2-rc.12115 + 7.0.2-rc.12115 10.0.5 2.0.5 10.0.5 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4e2c60eb5d84..7bab20a2c5a7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 - + https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - a3bb35c958f2209a7ac00098bfd48889457a0303 + 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 diff --git a/global.json b/global.json index 5ca3c144248f..c11996af1dc3 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26120.109", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26120.109", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26120.115", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26120.115", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 2e6d33b0d55c1858b5f7c2ce20f1f4951120914c Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 21 Feb 2026 23:41:27 +0000 Subject: [PATCH 096/179] Update dependencies from build 302824 Updated Dependencies: dotnet-dev-certs, dotnet-user-jwts, dotnet-user-secrets, Microsoft.AspNetCore.Analyzers, Microsoft.AspNetCore.App.Ref.Internal, Microsoft.AspNetCore.Components.SdkAnalyzers, Microsoft.AspNetCore.DeveloperCertificates.XPlat, Microsoft.AspNetCore.Mvc.Analyzers, Microsoft.AspNetCore.Mvc.Api.Analyzers, Microsoft.Dotnet.WinForms.ProjectTemplates, Microsoft.DotNet.Wpf.ProjectTemplates, Microsoft.NET.HostModel, Microsoft.NET.Sdk.WindowsDesktop, Microsoft.NETCore.Platforms, Microsoft.WindowsDesktop.App.Internal (Version 10.0.5-servicing.26120.115 -> 10.0.5-servicing.26121.102) Microsoft.AspNetCore.App.Ref, Microsoft.AspNetCore.Authentication.Facebook, Microsoft.AspNetCore.Authentication.Google, Microsoft.AspNetCore.Authentication.MicrosoftAccount, Microsoft.AspNetCore.Authorization, Microsoft.AspNetCore.Components, Microsoft.AspNetCore.Components.Analyzers, Microsoft.AspNetCore.Components.Forms, Microsoft.AspNetCore.Components.Web, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.AspNetCore.Components.WebAssembly.Server, Microsoft.AspNetCore.Components.WebView, Microsoft.AspNetCore.Metadata, Microsoft.AspNetCore.TestHost, Microsoft.Bcl.AsyncInterfaces, Microsoft.DotNet.Web.ItemTemplates.10.0, Microsoft.DotNet.Web.ProjectTemplates.10.0, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Embedded, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.ObjectPool, Microsoft.JSInterop, Microsoft.NET.ILLink.Tasks, Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64, Microsoft.NETCore.App.Ref, Microsoft.Win32.SystemEvents, Microsoft.WindowsDesktop.App.Ref, System.CodeDom, System.ComponentModel.Composition, System.Composition.AttributedModel, System.Composition.Convention, System.Composition.Hosting, System.Composition.Runtime, System.Composition.TypedParts, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Formats.Asn1, System.IO.Hashing, System.Reflection.MetadataLoadContext, System.Resources.Extensions, System.Security.Cryptography.Pkcs, System.Security.Cryptography.ProtectedData, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encoding.CodePages, System.Text.Json, System.Windows.Extensions (Version 10.0.5 -> 10.0.5) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26120.115 -> 10.0.0-preview.26121.102) Microsoft.Build (Version 18.0.11 -> 18.0.11) Microsoft.Build.Localization (Version 18.0.11-servicing-26120-115 -> 18.0.11-servicing-26121-102) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.0.2-rc.12115 -> 7.0.2-rc.12202) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab, Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common (Version 10.0.105 -> 10.0.105) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.0.0-2.26120.115 -> 5.0.0-2.26121.102) Microsoft.Deployment.DotNet.Releases (Version 2.0.0-preview.1.26120.115 -> 2.0.0-preview.1.26121.102) Microsoft.DiaSymReader (Version 2.2.5 -> 2.2.5) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26120.115 -> 10.0.0-beta.26121.102) Microsoft.FSharp.Compiler (Version 14.0.105-servicing.26120.115 -> 14.0.105-servicing.26121.102) Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.0.1-release-26120-115 -> 18.0.1-release-26121-102) Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.105-servicing.26120.115 -> 10.0.105-servicing.26121.102) Microsoft.Web.Xdt (Version 3.2.5 -> 3.2.5) System.CommandLine (Version 2.0.5 -> 2.0.5) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index d94d9e1b52f2..f0facc9384ef 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 1df4938c28a7..55a83ab06c2f 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.5-servicing.26120.115 - 10.0.5-servicing.26120.115 - 10.0.5-servicing.26120.115 - 10.0.5-servicing.26120.115 + 10.0.5-servicing.26121.102 + 10.0.5-servicing.26121.102 + 10.0.5-servicing.26121.102 + 10.0.5-servicing.26121.102 10.0.5 - 10.0.5-servicing.26120.115 + 10.0.5-servicing.26121.102 10.0.5 10.0.5 10.0.5 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26120.115 + 10.0.5-servicing.26121.102 10.0.5 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26120.115 + 10.0.5-servicing.26121.102 10.0.5 - 10.0.5-servicing.26120.115 - 10.0.5-servicing.26120.115 - 10.0.0-preview.26120.115 + 10.0.5-servicing.26121.102 + 10.0.5-servicing.26121.102 + 10.0.0-preview.26121.102 10.0.5 10.0.5 18.0.11 - 18.0.11-servicing-26120-115 - 7.0.2-rc.12115 + 18.0.11-servicing-26121-102 + 7.0.2-rc.12202 10.0.105 - 5.0.0-2.26120.115 - 5.0.0-2.26120.115 - 5.0.0-2.26120.115 - 5.0.0-2.26120.115 - 5.0.0-2.26120.115 - 5.0.0-2.26120.115 - 5.0.0-2.26120.115 - 10.0.0-preview.26120.115 - 5.0.0-2.26120.115 - 5.0.0-2.26120.115 - 2.0.0-preview.1.26120.115 + 5.0.0-2.26121.102 + 5.0.0-2.26121.102 + 5.0.0-2.26121.102 + 5.0.0-2.26121.102 + 5.0.0-2.26121.102 + 5.0.0-2.26121.102 + 5.0.0-2.26121.102 + 10.0.0-preview.26121.102 + 5.0.0-2.26121.102 + 5.0.0-2.26121.102 + 2.0.0-preview.1.26121.102 2.2.5 - 10.0.0-beta.26120.115 - 10.0.0-beta.26120.115 - 10.0.0-beta.26120.115 - 10.0.0-beta.26120.115 - 10.0.0-beta.26120.115 - 10.0.0-beta.26120.115 + 10.0.0-beta.26121.102 + 10.0.0-beta.26121.102 + 10.0.0-beta.26121.102 + 10.0.0-beta.26121.102 + 10.0.0-beta.26121.102 + 10.0.0-beta.26121.102 10.0.5 10.0.5 - 10.0.5-servicing.26120.115 - 10.0.5-servicing.26120.115 - 10.0.0-beta.26120.115 - 10.0.0-beta.26120.115 + 10.0.5-servicing.26121.102 + 10.0.5-servicing.26121.102 + 10.0.0-beta.26121.102 + 10.0.0-beta.26121.102 10.0.5 10.0.5 10.0.5 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 14.0.105-servicing.26120.115 + 14.0.105-servicing.26121.102 10.0.5 - 5.0.0-2.26120.115 - 5.0.0-2.26120.115 - 10.0.5-servicing.26120.115 + 5.0.0-2.26121.102 + 5.0.0-2.26121.102 + 10.0.5-servicing.26121.102 10.0.5 10.0.5 10.0.0-preview.7.25377.103 - 10.0.0-preview.26120.115 - 10.0.5-servicing.26120.115 - 18.0.1-release-26120-115 + 10.0.0-preview.26121.102 + 10.0.5-servicing.26121.102 + 18.0.1-release-26121-102 10.0.5 - 10.0.5-servicing.26120.115 + 10.0.5-servicing.26121.102 10.0.105 10.0.105 10.0.105 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.105 10.0.105 10.0.105 - 10.0.105-servicing.26120.115 + 10.0.105-servicing.26121.102 10.0.105 - 10.0.105-servicing.26120.115 + 10.0.105-servicing.26121.102 10.0.105 10.0.105 - 10.0.105-servicing.26120.115 - 18.0.1-release-26120-115 - 18.0.1-release-26120-115 + 10.0.105-servicing.26121.102 + 18.0.1-release-26121-102 + 18.0.1-release-26121-102 3.2.5 10.0.5 - 10.0.5-servicing.26120.115 + 10.0.5-servicing.26121.102 10.0.5 - 7.0.2-rc.12115 - 7.0.2-rc.12115 - 7.0.2-rc.12115 - 7.0.2-rc.12115 - 7.0.2-rc.12115 - 7.0.2-rc.12115 - 7.0.2-rc.12115 - 7.0.2-rc.12115 - 7.0.2-rc.12115 - 7.0.2-rc.12115 - 7.0.2-rc.12115 - 7.0.2-rc.12115 - 7.0.2-rc.12115 - 7.0.2-rc.12115 - 7.0.2-rc.12115 - 7.0.2-rc.12115 + 7.0.2-rc.12202 + 7.0.2-rc.12202 + 7.0.2-rc.12202 + 7.0.2-rc.12202 + 7.0.2-rc.12202 + 7.0.2-rc.12202 + 7.0.2-rc.12202 + 7.0.2-rc.12202 + 7.0.2-rc.12202 + 7.0.2-rc.12202 + 7.0.2-rc.12202 + 7.0.2-rc.12202 + 7.0.2-rc.12202 + 7.0.2-rc.12202 + 7.0.2-rc.12202 + 7.0.2-rc.12202 10.0.5 2.0.5 10.0.5 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7bab20a2c5a7..5f971a58ce77 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad - + https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 7e96f65a0d5cb18b31b55d6e47fbf626f9eed307 + 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad diff --git a/global.json b/global.json index c11996af1dc3..baec212e9b48 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26120.115", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26120.115", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26121.102", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26121.102", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From dc8c39e80d1ec6aa24e968890fc6e15e89988711 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 22 Feb 2026 02:02:02 +0000 Subject: [PATCH 097/179] Update dependencies from https://github.com/microsoft/testfx build 20260221.1 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26118.4 -> To Version 2.2.0-preview.26121.1 MSTest From Version 4.2.0-preview.26118.4 -> To Version 4.2.0-preview.26121.1 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 0bffe558e459..9fbf61846054 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -144,8 +144,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26120.7 - 4.2.0-preview.26120.7 + 2.2.0-preview.26121.1 + 4.2.0-preview.26121.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 13aa060bfffc..492658ac33c0 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -564,13 +564,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - 04218c75a29b36cb0542058985a8663296b6c5bd + abbd85a373b4bdbd82cc879b4ac67f451b8d3484 - + https://github.com/microsoft/testfx - 04218c75a29b36cb0542058985a8663296b6c5bd + abbd85a373b4bdbd82cc879b4ac67f451b8d3484 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet From 55d418cf88025c2b9f042c655b1dcc00f07a5154 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 22 Feb 2026 02:02:03 +0000 Subject: [PATCH 098/179] Update dependencies from https://github.com/microsoft/testfx build 20260221.1 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26118.4 -> To Version 2.2.0-preview.26121.1 MSTest From Version 4.2.0-preview.26118.4 -> To Version 4.2.0-preview.26121.1 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 5452f5ec95cc..efc743f2f312 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26120.7 - 4.2.0-preview.26120.7 + 2.2.0-preview.26121.1 + 4.2.0-preview.26121.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2682e03a1485..73cf7121f3f3 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 69600372e5b6e4a27587423ec6997a46079ea3fc - + https://github.com/microsoft/testfx - 04218c75a29b36cb0542058985a8663296b6c5bd + abbd85a373b4bdbd82cc879b4ac67f451b8d3484 - + https://github.com/microsoft/testfx - 04218c75a29b36cb0542058985a8663296b6c5bd + abbd85a373b4bdbd82cc879b4ac67f451b8d3484 https://github.com/dotnet/dotnet From 560552fae9db9eb3e20a8221a95024e4ba21f9ce Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 22 Feb 2026 17:31:31 +0000 Subject: [PATCH 099/179] Update dependencies from build 302854 Updated Dependencies: dotnet-dev-certs, dotnet-user-jwts, dotnet-user-secrets, Microsoft.AspNetCore.Analyzers, Microsoft.AspNetCore.App.Ref.Internal, Microsoft.AspNetCore.Components.SdkAnalyzers, Microsoft.AspNetCore.DeveloperCertificates.XPlat, Microsoft.AspNetCore.Mvc.Analyzers, Microsoft.AspNetCore.Mvc.Api.Analyzers, Microsoft.Dotnet.WinForms.ProjectTemplates, Microsoft.DotNet.Wpf.ProjectTemplates, Microsoft.NET.HostModel, Microsoft.NET.Sdk.WindowsDesktop, Microsoft.NETCore.Platforms, Microsoft.WindowsDesktop.App.Internal (Version 10.0.5-servicing.26121.102 -> 10.0.5-servicing.26122.102) Microsoft.AspNetCore.App.Ref, Microsoft.AspNetCore.Authentication.Facebook, Microsoft.AspNetCore.Authentication.Google, Microsoft.AspNetCore.Authentication.MicrosoftAccount, Microsoft.AspNetCore.Authorization, Microsoft.AspNetCore.Components, Microsoft.AspNetCore.Components.Analyzers, Microsoft.AspNetCore.Components.Forms, Microsoft.AspNetCore.Components.Web, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.AspNetCore.Components.WebAssembly.Server, Microsoft.AspNetCore.Components.WebView, Microsoft.AspNetCore.Metadata, Microsoft.AspNetCore.TestHost, Microsoft.Bcl.AsyncInterfaces, Microsoft.DotNet.Web.ItemTemplates.10.0, Microsoft.DotNet.Web.ProjectTemplates.10.0, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Embedded, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.ObjectPool, Microsoft.JSInterop, Microsoft.NET.ILLink.Tasks, Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64, Microsoft.NETCore.App.Ref, Microsoft.Win32.SystemEvents, Microsoft.WindowsDesktop.App.Ref, System.CodeDom, System.ComponentModel.Composition, System.Composition.AttributedModel, System.Composition.Convention, System.Composition.Hosting, System.Composition.Runtime, System.Composition.TypedParts, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Formats.Asn1, System.IO.Hashing, System.Reflection.MetadataLoadContext, System.Resources.Extensions, System.Security.Cryptography.Pkcs, System.Security.Cryptography.ProtectedData, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encoding.CodePages, System.Text.Json, System.Windows.Extensions (Version 10.0.5 -> 10.0.5) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26121.102 -> 10.0.0-preview.26122.102) Microsoft.Build (Version 18.0.11 -> 18.0.11) Microsoft.Build.Localization (Version 18.0.11-servicing-26121-102 -> 18.0.11-servicing-26122-102) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.0.2-rc.12202 -> 7.0.2-rc.12302) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab, Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common (Version 10.0.105 -> 10.0.105) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.0.0-2.26121.102 -> 5.0.0-2.26122.102) Microsoft.Deployment.DotNet.Releases (Version 2.0.0-preview.1.26121.102 -> 2.0.0-preview.1.26122.102) Microsoft.DiaSymReader (Version 2.2.5 -> 2.2.5) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26121.102 -> 10.0.0-beta.26122.102) Microsoft.FSharp.Compiler (Version 14.0.105-servicing.26121.102 -> 14.0.105-servicing.26122.102) Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.0.1-release-26121-102 -> 18.0.1-release-26122-102) Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.105-servicing.26121.102 -> 10.0.105-servicing.26122.102) Microsoft.Web.Xdt (Version 3.2.5 -> 3.2.5) System.CommandLine (Version 2.0.5 -> 2.0.5) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index f0facc9384ef..621bd8d19f49 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 55a83ab06c2f..6f6e361d8001 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.5-servicing.26121.102 - 10.0.5-servicing.26121.102 - 10.0.5-servicing.26121.102 - 10.0.5-servicing.26121.102 + 10.0.5-servicing.26122.102 + 10.0.5-servicing.26122.102 + 10.0.5-servicing.26122.102 + 10.0.5-servicing.26122.102 10.0.5 - 10.0.5-servicing.26121.102 + 10.0.5-servicing.26122.102 10.0.5 10.0.5 10.0.5 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26121.102 + 10.0.5-servicing.26122.102 10.0.5 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26121.102 + 10.0.5-servicing.26122.102 10.0.5 - 10.0.5-servicing.26121.102 - 10.0.5-servicing.26121.102 - 10.0.0-preview.26121.102 + 10.0.5-servicing.26122.102 + 10.0.5-servicing.26122.102 + 10.0.0-preview.26122.102 10.0.5 10.0.5 18.0.11 - 18.0.11-servicing-26121-102 - 7.0.2-rc.12202 + 18.0.11-servicing-26122-102 + 7.0.2-rc.12302 10.0.105 - 5.0.0-2.26121.102 - 5.0.0-2.26121.102 - 5.0.0-2.26121.102 - 5.0.0-2.26121.102 - 5.0.0-2.26121.102 - 5.0.0-2.26121.102 - 5.0.0-2.26121.102 - 10.0.0-preview.26121.102 - 5.0.0-2.26121.102 - 5.0.0-2.26121.102 - 2.0.0-preview.1.26121.102 + 5.0.0-2.26122.102 + 5.0.0-2.26122.102 + 5.0.0-2.26122.102 + 5.0.0-2.26122.102 + 5.0.0-2.26122.102 + 5.0.0-2.26122.102 + 5.0.0-2.26122.102 + 10.0.0-preview.26122.102 + 5.0.0-2.26122.102 + 5.0.0-2.26122.102 + 2.0.0-preview.1.26122.102 2.2.5 - 10.0.0-beta.26121.102 - 10.0.0-beta.26121.102 - 10.0.0-beta.26121.102 - 10.0.0-beta.26121.102 - 10.0.0-beta.26121.102 - 10.0.0-beta.26121.102 + 10.0.0-beta.26122.102 + 10.0.0-beta.26122.102 + 10.0.0-beta.26122.102 + 10.0.0-beta.26122.102 + 10.0.0-beta.26122.102 + 10.0.0-beta.26122.102 10.0.5 10.0.5 - 10.0.5-servicing.26121.102 - 10.0.5-servicing.26121.102 - 10.0.0-beta.26121.102 - 10.0.0-beta.26121.102 + 10.0.5-servicing.26122.102 + 10.0.5-servicing.26122.102 + 10.0.0-beta.26122.102 + 10.0.0-beta.26122.102 10.0.5 10.0.5 10.0.5 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 14.0.105-servicing.26121.102 + 14.0.105-servicing.26122.102 10.0.5 - 5.0.0-2.26121.102 - 5.0.0-2.26121.102 - 10.0.5-servicing.26121.102 + 5.0.0-2.26122.102 + 5.0.0-2.26122.102 + 10.0.5-servicing.26122.102 10.0.5 10.0.5 10.0.0-preview.7.25377.103 - 10.0.0-preview.26121.102 - 10.0.5-servicing.26121.102 - 18.0.1-release-26121-102 + 10.0.0-preview.26122.102 + 10.0.5-servicing.26122.102 + 18.0.1-release-26122-102 10.0.5 - 10.0.5-servicing.26121.102 + 10.0.5-servicing.26122.102 10.0.105 10.0.105 10.0.105 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.105 10.0.105 10.0.105 - 10.0.105-servicing.26121.102 + 10.0.105-servicing.26122.102 10.0.105 - 10.0.105-servicing.26121.102 + 10.0.105-servicing.26122.102 10.0.105 10.0.105 - 10.0.105-servicing.26121.102 - 18.0.1-release-26121-102 - 18.0.1-release-26121-102 + 10.0.105-servicing.26122.102 + 18.0.1-release-26122-102 + 18.0.1-release-26122-102 3.2.5 10.0.5 - 10.0.5-servicing.26121.102 + 10.0.5-servicing.26122.102 10.0.5 - 7.0.2-rc.12202 - 7.0.2-rc.12202 - 7.0.2-rc.12202 - 7.0.2-rc.12202 - 7.0.2-rc.12202 - 7.0.2-rc.12202 - 7.0.2-rc.12202 - 7.0.2-rc.12202 - 7.0.2-rc.12202 - 7.0.2-rc.12202 - 7.0.2-rc.12202 - 7.0.2-rc.12202 - 7.0.2-rc.12202 - 7.0.2-rc.12202 - 7.0.2-rc.12202 - 7.0.2-rc.12202 + 7.0.2-rc.12302 + 7.0.2-rc.12302 + 7.0.2-rc.12302 + 7.0.2-rc.12302 + 7.0.2-rc.12302 + 7.0.2-rc.12302 + 7.0.2-rc.12302 + 7.0.2-rc.12302 + 7.0.2-rc.12302 + 7.0.2-rc.12302 + 7.0.2-rc.12302 + 7.0.2-rc.12302 + 7.0.2-rc.12302 + 7.0.2-rc.12302 + 7.0.2-rc.12302 + 7.0.2-rc.12302 10.0.5 2.0.5 10.0.5 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 5f971a58ce77..96eb3b2c48b8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 156ff45774adb003ed6fce76aa3ddbbe93b6e3ad + e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 diff --git a/global.json b/global.json index baec212e9b48..09ef6b3ea225 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26121.102", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26121.102", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26122.102", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26122.102", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 6e514f6189902a6422a6ab91324804c37035315b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Matou=C5=A1ek?= Date: Mon, 23 Feb 2026 00:26:34 -0800 Subject: [PATCH 100/179] Disable WASM tests on Linux (#53105) --- .../HotReload/ApplyDeltaTests.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs index d458d634c786..e9ebba6c5ea8 100644 --- a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs +++ b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs @@ -853,7 +853,7 @@ public async Task GracefulTermination_Unix() await App.WaitUntilOutputContains("exited with exit code 0."); } - [Theory] + [PlatformSpecificTheory(TestPlatforms.Windows | TestPlatforms.OSX)] // https://github.com/dotnet/sdk/issues/53114 [CombinatorialData] public async Task BlazorWasm(bool projectSpecifiesCapabilities) { @@ -913,7 +913,7 @@ public async Task BlazorWasm(bool projectSpecifiesCapabilities) await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); } - [Fact] + [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.OSX)] // https://github.com/dotnet/sdk/issues/53114 public async Task BlazorWasm_MSBuildWarning() { var testAsset = TestAssets @@ -935,7 +935,7 @@ public async Task BlazorWasm_MSBuildWarning() await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); } - [Fact] + [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.OSX)] // https://github.com/dotnet/sdk/issues/53114 public async Task BlazorWasm_Restart() { var testAsset = TestAssets.CopyTestAsset("WatchBlazorWasm") @@ -958,7 +958,7 @@ public async Task BlazorWasm_Restart() await App.WaitUntilOutputContains(MessageDescriptor.ReloadingBrowser); } - [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/sdk/issues/53064 + [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.OSX)] // https://github.com/dotnet/sdk/issues/53114 public async Task BlazorWasmHosted() { var testAsset = TestAssets.CopyTestAsset("WatchBlazorWasmHosted") @@ -972,7 +972,7 @@ public async Task BlazorWasmHosted() await App.WaitUntilOutputContains(MessageDescriptor.ApplicationKind_BlazorHosted); } - [Fact] + [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.OSX)] // https://github.com/dotnet/sdk/issues/53114 public async Task Razor_Component_ScopedCssAndStaticAssets() { var testAsset = TestAssets.CopyTestAsset("WatchRazorWithDeps") @@ -1211,7 +1211,7 @@ public static void PrintDirectoryName([CallerFilePathAttribute] string filePath await App.WaitUntilOutputContains("> NewSubdir"); } - [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/sdk/issues/53058 + [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/sdk/issues/53058, https://github.com/dotnet/sdk/issues/53061, https://github.com/dotnet/sdk/issues/53114 public async Task Aspire_BuildError_ManualRestart() { var tfm = ToolsetInfo.CurrentTargetFramework; @@ -1311,7 +1311,7 @@ public async Task Aspire_BuildError_ManualRestart() await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Sending 'sessionTerminated'"); } - [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/sdk/issues/53058 + [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/sdk/issues/53058, https://github.com/dotnet/sdk/issues/53061, https://github.com/dotnet/sdk/issues/53114 public async Task Aspire_NoEffect_AutoRestart() { var tfm = ToolsetInfo.CurrentTargetFramework; From 282fb4b5c6fb4d5444a9b5a84283ccb2848b8b26 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Mon, 23 Feb 2026 00:56:36 -0800 Subject: [PATCH 101/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2910435 --- .../.template.config/localize/templatestrings.cs.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.cs.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.cs.json index 55a5f276b71a..6534fc8d7a6f 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.cs.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.cs.json @@ -1,7 +1,7 @@ { "author": "Microsoft", - "name": "Solution Filter File", - "description": "Create a solution filter file that references a parent solution", - "symbols/ParentSolution/displayName": "Parent solution file", - "symbols/ParentSolution/description": "The parent solution file (sln or slnx) that this filter references (default: same name with .slnx extension)." + "name": "Soubor filtru řešení", + "description": "Vytvořit soubor filtru řešení, který odkazuje na nadřazené řešení", + "symbols/ParentSolution/displayName": "Nadřazený soubor řešení", + "symbols/ParentSolution/description": "Nadřazený soubor řešení (sln nebo slnx), na který tento filtr odkazuje (výchozí: stejný název s příponou .slnx)." } \ No newline at end of file From 59b2ff336713607e04277f44cbe955431ecbab75 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Mon, 23 Feb 2026 00:57:52 -0800 Subject: [PATCH 102/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2910435 --- .../.template.config/localize/templatestrings.de.json | 8 ++++---- .../.template.config/localize/templatestrings.es.json | 8 ++++---- .../.template.config/localize/templatestrings.fr.json | 8 ++++---- .../.template.config/localize/templatestrings.it.json | 8 ++++---- .../.template.config/localize/templatestrings.ja.json | 8 ++++---- .../.template.config/localize/templatestrings.ko.json | 8 ++++---- .../.template.config/localize/templatestrings.pl.json | 8 ++++---- .../localize/templatestrings.pt-BR.json | 8 ++++---- .../.template.config/localize/templatestrings.ru.json | 10 +++++----- .../.template.config/localize/templatestrings.tr.json | 8 ++++---- .../localize/templatestrings.zh-Hans.json | 8 ++++---- .../localize/templatestrings.zh-Hant.json | 8 ++++---- 12 files changed, 49 insertions(+), 49 deletions(-) diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.de.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.de.json index 55a5f276b71a..8ff812c5304c 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.de.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.de.json @@ -1,7 +1,7 @@ { "author": "Microsoft", - "name": "Solution Filter File", - "description": "Create a solution filter file that references a parent solution", - "symbols/ParentSolution/displayName": "Parent solution file", - "symbols/ParentSolution/description": "The parent solution file (sln or slnx) that this filter references (default: same name with .slnx extension)." + "name": "Projektmappenfilterdatei", + "description": "Eine Projektmappenfilterdatei erstellen, die auf eine übergeordnete Projektmappe verweist.", + "symbols/ParentSolution/displayName": "Übergeordnete Projektmappendatei", + "symbols/ParentSolution/description": "Die übergeordnete Projektmappendatei (sln oder slnx), auf die dieser Filter verweist (Standard: derselbe Name mit der .slnx-Erweiterung)." } \ No newline at end of file diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.es.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.es.json index 55a5f276b71a..670429aac31d 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.es.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.es.json @@ -1,7 +1,7 @@ { "author": "Microsoft", - "name": "Solution Filter File", - "description": "Create a solution filter file that references a parent solution", - "symbols/ParentSolution/displayName": "Parent solution file", - "symbols/ParentSolution/description": "The parent solution file (sln or slnx) that this filter references (default: same name with .slnx extension)." + "name": "Archivo de filtro de solución", + "description": "Crear un archivo de filtro de solución que haga referencia a una solución primaria", + "symbols/ParentSolution/displayName": "Archivo de solución principal", + "symbols/ParentSolution/description": "El archivo de solución primario (sln o slnx) al que hace referencia este filtro (valor predeterminado: el mismo nombre con la extensión .slnx)." } \ No newline at end of file diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.fr.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.fr.json index 55a5f276b71a..954b9a3ced96 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.fr.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.fr.json @@ -1,7 +1,7 @@ { "author": "Microsoft", - "name": "Solution Filter File", - "description": "Create a solution filter file that references a parent solution", - "symbols/ParentSolution/displayName": "Parent solution file", - "symbols/ParentSolution/description": "The parent solution file (sln or slnx) that this filter references (default: same name with .slnx extension)." + "name": "Filtre le fichier de solutions", + "description": "Créer un fichier de filtre de solution qui référence une solution parente", + "symbols/ParentSolution/displayName": "Fichier de solution parent", + "symbols/ParentSolution/description": "Le fichier solution parent (sln ou slnx) auquel ce filtre fait référence (par défaut : même nom avec l’extension .slnx)." } \ No newline at end of file diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.it.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.it.json index 55a5f276b71a..f8612ddd5f3a 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.it.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.it.json @@ -1,7 +1,7 @@ { "author": "Microsoft", - "name": "Solution Filter File", - "description": "Create a solution filter file that references a parent solution", - "symbols/ParentSolution/displayName": "Parent solution file", - "symbols/ParentSolution/description": "The parent solution file (sln or slnx) that this filter references (default: same name with .slnx extension)." + "name": "File di filtro della soluzione", + "description": "Creare un file di filtro della soluzione che fa riferimento a una soluzione padre", + "symbols/ParentSolution/displayName": "File della soluzione padre", + "symbols/ParentSolution/description": "File della soluzione padre (sln o slnx) a cui fa riferimento questo filtro (impostazione predefinita: stesso nome con estensione slnx)." } \ No newline at end of file diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ja.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ja.json index 55a5f276b71a..516cb59e1bc7 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ja.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ja.json @@ -1,7 +1,7 @@ { "author": "Microsoft", - "name": "Solution Filter File", - "description": "Create a solution filter file that references a parent solution", - "symbols/ParentSolution/displayName": "Parent solution file", - "symbols/ParentSolution/description": "The parent solution file (sln or slnx) that this filter references (default: same name with .slnx extension)." + "name": "ソリューション フィルター ファイル", + "description": "親ソリューションを参照するソリューション フィルター ファイルを作成する", + "symbols/ParentSolution/displayName": "親ソリューション ファイル", + "symbols/ParentSolution/description": "このフィルターが参照する親ソリューション ファイル (sln または slnx) (既定値: .slnx 拡張子を持つ同じ名前)。" } \ No newline at end of file diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ko.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ko.json index 55a5f276b71a..6bf5474aa5f7 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ko.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ko.json @@ -1,7 +1,7 @@ { "author": "Microsoft", - "name": "Solution Filter File", - "description": "Create a solution filter file that references a parent solution", - "symbols/ParentSolution/displayName": "Parent solution file", - "symbols/ParentSolution/description": "The parent solution file (sln or slnx) that this filter references (default: same name with .slnx extension)." + "name": "솔루션 필터 파일", + "description": "부모 솔루션을 참조하는 솔루션 필터 파일 만들기", + "symbols/ParentSolution/displayName": "부모 솔루션 파일", + "symbols/ParentSolution/description": "이 필터가 참조하는 부모 솔루션 파일(sln 또는 slnx)입니다(기본값: 확장자가 .slnx인 같은 이름의 파일)." } \ No newline at end of file diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.pl.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.pl.json index 55a5f276b71a..c53d47b4cd64 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.pl.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.pl.json @@ -1,7 +1,7 @@ { "author": "Microsoft", - "name": "Solution Filter File", - "description": "Create a solution filter file that references a parent solution", - "symbols/ParentSolution/displayName": "Parent solution file", - "symbols/ParentSolution/description": "The parent solution file (sln or slnx) that this filter references (default: same name with .slnx extension)." + "name": "Plik filtru rozwiązania", + "description": "Tworzenie pliku filtru rozwiązania odwołującego się do rozwiązania nadrzędnego", + "symbols/ParentSolution/displayName": "Nadrzędny plik rozwiązania", + "symbols/ParentSolution/description": "Nadrzędny plik rozwiązania (sln lub slnx), do którego odwołuje się ten filtr (domyślnie: ta sama nazwa z rozszerzeniem .slnx)." } \ No newline at end of file diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.pt-BR.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.pt-BR.json index 55a5f276b71a..82e5881f85d0 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.pt-BR.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.pt-BR.json @@ -1,7 +1,7 @@ { "author": "Microsoft", - "name": "Solution Filter File", - "description": "Create a solution filter file that references a parent solution", - "symbols/ParentSolution/displayName": "Parent solution file", - "symbols/ParentSolution/description": "The parent solution file (sln or slnx) that this filter references (default: same name with .slnx extension)." + "name": "Arquivo de Filtro de Solução", + "description": "Criar um arquivo de filtro de solução que se refere a uma solução pai", + "symbols/ParentSolution/displayName": "Arquivo de solução pai", + "symbols/ParentSolution/description": "O arquivo de solução pai (sln ou slnx) ao qual este filtro se refere (padrão: mesmo nome com a extensão .slnx)." } \ No newline at end of file diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ru.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ru.json index 55a5f276b71a..3732106b7839 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ru.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.ru.json @@ -1,7 +1,7 @@ { - "author": "Microsoft", - "name": "Solution Filter File", - "description": "Create a solution filter file that references a parent solution", - "symbols/ParentSolution/displayName": "Parent solution file", - "symbols/ParentSolution/description": "The parent solution file (sln or slnx) that this filter references (default: same name with .slnx extension)." + "author": "Майкрософт", + "name": "Файл фильтра решения", + "description": "Создание файла фильтра решения, ссылающегося на родительское решение", + "symbols/ParentSolution/displayName": "Файл родительского решения", + "symbols/ParentSolution/description": "Файл родительского решения (SLN или SLNX), на который ссылается этот фильтр (по умолчанию — файл с тем же именем и расширением SLNX)." } \ No newline at end of file diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.tr.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.tr.json index 55a5f276b71a..612e8f6df1be 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.tr.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.tr.json @@ -1,7 +1,7 @@ { "author": "Microsoft", - "name": "Solution Filter File", - "description": "Create a solution filter file that references a parent solution", - "symbols/ParentSolution/displayName": "Parent solution file", - "symbols/ParentSolution/description": "The parent solution file (sln or slnx) that this filter references (default: same name with .slnx extension)." + "name": "Çözüm Filtresi Dosyası", + "description": "Üst çözüme başvuran bir çözüm filtresi dosyası oluşturun", + "symbols/ParentSolution/displayName": "Üst çözüm dosyası", + "symbols/ParentSolution/description": "Bu filtrenin başvurduğu üst çözüm dosyası (sln veya slnx) (varsayılan: .slnx uzantısına sahip aynı ad)." } \ No newline at end of file diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.zh-Hans.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.zh-Hans.json index 55a5f276b71a..4b0936b8c014 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.zh-Hans.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.zh-Hans.json @@ -1,7 +1,7 @@ { "author": "Microsoft", - "name": "Solution Filter File", - "description": "Create a solution filter file that references a parent solution", - "symbols/ParentSolution/displayName": "Parent solution file", - "symbols/ParentSolution/description": "The parent solution file (sln or slnx) that this filter references (default: same name with .slnx extension)." + "name": "解决方案筛选器文件", + "description": "创建一个引用父解决方案的解决方案筛选器文件", + "symbols/ParentSolution/displayName": "父解决方案文件", + "symbols/ParentSolution/description": "此筛选器引用的父解决方案文件(sln 或 slnx) (默认: 同名且扩展名为 .slnx)。" } \ No newline at end of file diff --git a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.zh-Hant.json b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.zh-Hant.json index 55a5f276b71a..7725f89f0e18 100644 --- a/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.zh-Hant.json +++ b/template_feed/Microsoft.DotNet.Common.ItemTemplates/content/SolutionFilter/.template.config/localize/templatestrings.zh-Hant.json @@ -1,7 +1,7 @@ { "author": "Microsoft", - "name": "Solution Filter File", - "description": "Create a solution filter file that references a parent solution", - "symbols/ParentSolution/displayName": "Parent solution file", - "symbols/ParentSolution/description": "The parent solution file (sln or slnx) that this filter references (default: same name with .slnx extension)." + "name": "解決方案篩選檔案", + "description": "建立一個參考上層解決方案的解決方案篩選檔案", + "symbols/ParentSolution/displayName": "上層解決方案檔案", + "symbols/ParentSolution/description": "此篩選器所參考的上層解決方案檔案 (sln 或 slnx,預設為同名且副檔名為 .slnx)。" } \ No newline at end of file From 9e829556ee99f87ca75e046e509a46aa0d67ae6f Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Mon, 23 Feb 2026 01:05:54 -0800 Subject: [PATCH 103/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2910435 --- .../Commands/xlf/CliCommandStrings.cs.xlf | 24 +++++++++---------- .../Commands/xlf/CliCommandStrings.de.xlf | 24 +++++++++---------- .../Commands/xlf/CliCommandStrings.es.xlf | 24 +++++++++---------- .../Commands/xlf/CliCommandStrings.fr.xlf | 24 +++++++++---------- .../Commands/xlf/CliCommandStrings.it.xlf | 24 +++++++++---------- .../Commands/xlf/CliCommandStrings.ja.xlf | 24 +++++++++---------- .../Commands/xlf/CliCommandStrings.ko.xlf | 24 +++++++++---------- .../Commands/xlf/CliCommandStrings.pl.xlf | 24 +++++++++---------- .../Commands/xlf/CliCommandStrings.pt-BR.xlf | 24 +++++++++---------- .../Commands/xlf/CliCommandStrings.ru.xlf | 24 +++++++++---------- .../Commands/xlf/CliCommandStrings.tr.xlf | 24 +++++++++---------- .../xlf/CliCommandStrings.zh-Hans.xlf | 24 +++++++++---------- .../xlf/CliCommandStrings.zh-Hant.xlf | 24 +++++++++---------- src/Cli/dotnet/xlf/CliStrings.cs.xlf | 2 +- src/Cli/dotnet/xlf/CliStrings.de.xlf | 2 +- src/Cli/dotnet/xlf/CliStrings.es.xlf | 2 +- src/Cli/dotnet/xlf/CliStrings.fr.xlf | 2 +- src/Cli/dotnet/xlf/CliStrings.it.xlf | 2 +- src/Cli/dotnet/xlf/CliStrings.ja.xlf | 2 +- src/Cli/dotnet/xlf/CliStrings.ko.xlf | 2 +- src/Cli/dotnet/xlf/CliStrings.pl.xlf | 2 +- src/Cli/dotnet/xlf/CliStrings.pt-BR.xlf | 2 +- src/Cli/dotnet/xlf/CliStrings.ru.xlf | 2 +- src/Cli/dotnet/xlf/CliStrings.tr.xlf | 2 +- src/Cli/dotnet/xlf/CliStrings.zh-Hans.xlf | 2 +- src/Cli/dotnet/xlf/CliStrings.zh-Hant.xlf | 2 +- 26 files changed, 169 insertions(+), 169 deletions(-) diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf index 164e7ebfc75b..87039c7a22b0 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf @@ -59,22 +59,22 @@ No test projects were found. - No test projects were found. + Nenašly se žádné testovací projekty. The device identifier to use for running the application. - The device identifier to use for running the application. + Identifikátor zařízení, který se má použít ke spuštění aplikace DEVICE - DEVICE + ZAŘÍZENÍ List available devices for running the application. - List available devices for running the application. + Vypíše dostupná zařízení pro spuštění aplikace. @@ -226,7 +226,7 @@ Prohledané cesty: „{1}“, „{2}“. Build failed with exit code: {0}. - Build failed with exit code: {0}. + Sestavení se nezdařilo s ukončovacím kódem: {0}. @@ -1349,7 +1349,7 @@ Nástroj {1} (verze {2}) se úspěšně nainstaloval. Do souboru manifestu {3} s Available devices: - Available devices: + Dostupná zařízení: @@ -1364,7 +1364,7 @@ Nástroj {1} (verze {2}) se úspěšně nainstaloval. Do souboru manifestu {3} s Deployment to device failed. Fix any deployment errors and run again. - Deployment to device failed. Fix any deployment errors and run again. + Nasazení do zařízení se nezdařilo. Opravte všechny chyby nasazení a spusťte příkaz znovu. @@ -1419,7 +1419,7 @@ Aktuální OutputType je {2}. Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: - Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: + Tento projekt nelze spustit, protože je k dispozici více zařízení. Zadejte prosím zařízení, které se má použít, předáním argumentu {0} s jednou z následujících hodnot: @@ -1431,7 +1431,7 @@ Cílem projektu je více architektur. Pomocí parametru {0} určete, která arch Move up and down to reveal more devices - Move up and down to reveal more devices + Posunutím nahoru a dolů zobrazíte další zařízení. @@ -1441,7 +1441,7 @@ Cílem projektu je více architektur. Pomocí parametru {0} určete, která arch No devices are available for this project. - No devices are available for this project. + Pro tento projekt nejsou k dispozici žádná zařízení. @@ -1456,7 +1456,7 @@ Cílem projektu je více architektur. Pomocí parametru {0} určete, která arch Select a device to run on: - Select a device to run on: + Vyberte zařízení pro spuštění: @@ -1638,7 +1638,7 @@ Cílem projektu je více architektur. Pomocí parametru {0} určete, která arch Solution filter files (.slnf) do not support the --in-root or --solution-folder options. - Solution filter files (.slnf) do not support the --in-root or --solution-folder options. + Soubory filtru řešení (.slnf) nepodporují možnosti --in-root nebo --solution-folder. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf index 6b66c0bb312b..6495eb8cbb7f 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf @@ -59,22 +59,22 @@ No test projects were found. - No test projects were found. + Es wurden keine Testprojekte gefunden. The device identifier to use for running the application. - The device identifier to use for running the application. + Der Gerätebezeichner, der zum Ausführen der Anwendung verwendet werden soll. DEVICE - DEVICE + GERÄT List available devices for running the application. - List available devices for running the application. + Listet die verfügbaren Geräte zum Ausführen der Anwendung auf. @@ -226,7 +226,7 @@ Durchsuchte Pfade: "{1}", "{2}". Build failed with exit code: {0}. - Build failed with exit code: {0}. + Fehler bei dem Build mit Exitcode: {0}. @@ -1349,7 +1349,7 @@ Das Tool "{1}" (Version {2}) wurde erfolgreich installiert. Der Eintrag wird der Available devices: - Available devices: + Verfügbare Geräte: @@ -1364,7 +1364,7 @@ Das Tool "{1}" (Version {2}) wurde erfolgreich installiert. Der Eintrag wird der Deployment to device failed. Fix any deployment errors and run again. - Deployment to device failed. Fix any deployment errors and run again. + Fehler bei der Bereitstellung auf dem Gerät. Beheben Sie alle Bereitstellungsfehler und führen Sie den Vorgang erneut aus. @@ -1419,7 +1419,7 @@ Der aktuelle OutputType lautet „{2}“. Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: - Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: + Dieses Projekt kann nicht ausgeführt werden, da mehrere Geräte verfügbar sind. Geben Sie an, welches Gerät verwendet werden soll, indem Sie das {0}-Argument mit einem der folgenden Werte übergeben: @@ -1431,7 +1431,7 @@ Ihr Projekt verwendet mehrere Zielframeworks. Geben Sie über "{0}" an, welches Move up and down to reveal more devices - Move up and down to reveal more devices + Nach oben und unten bewegen, um weitere Geräte anzuzeigen @@ -1441,7 +1441,7 @@ Ihr Projekt verwendet mehrere Zielframeworks. Geben Sie über "{0}" an, welches No devices are available for this project. - No devices are available for this project. + Für dieses Projekt sind keine Geräte verfügbar. @@ -1456,7 +1456,7 @@ Ihr Projekt verwendet mehrere Zielframeworks. Geben Sie über "{0}" an, welches Select a device to run on: - Select a device to run on: + Wählen Sie ein Gerät aus, auf dem ausgeführt werden soll: @@ -1638,7 +1638,7 @@ Ihr Projekt verwendet mehrere Zielframeworks. Geben Sie über "{0}" an, welches Solution filter files (.slnf) do not support the --in-root or --solution-folder options. - Solution filter files (.slnf) do not support the --in-root or --solution-folder options. + Projektmappenfilterdateien (.slnf) unterstützen die Optionen --in-root oder --solution-folder nicht. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf index 862911c5ddd7..1fda3c644d0d 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf @@ -59,22 +59,22 @@ No test projects were found. - No test projects were found. + No se encontraron proyectos de prueba. The device identifier to use for running the application. - The device identifier to use for running the application. + Identificador de dispositivo que se va a usar para ejecutar la aplicación. DEVICE - DEVICE + DISPOSITIVO List available devices for running the application. - List available devices for running the application. + Enumere los dispositivos disponibles para ejecutar la aplicación. @@ -226,7 +226,7 @@ Rutas de acceso buscadas: "{1}", "{2}". Build failed with exit code: {0}. - Build failed with exit code: {0}. + La compilación falló con el código de salida {0}. @@ -1349,7 +1349,7 @@ La herramienta "{1}" (versión "{2}") se instaló correctamente. Se ha agregado Available devices: - Available devices: + Dispositivos disponibles: @@ -1364,7 +1364,7 @@ La herramienta "{1}" (versión "{2}") se instaló correctamente. Se ha agregado Deployment to device failed. Fix any deployment errors and run again. - Deployment to device failed. Fix any deployment errors and run again. + Error en la implementación en el dispositivo. Corrija los errores de implementación y vuelva a ejecutarlo. @@ -1419,7 +1419,7 @@ El OutputType actual es '{2}'. Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: - Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: + No se puede ejecutar este proyecto porque hay varios dispositivos disponibles. Especifique qué dispositivo usar pasando el argumento {0} con uno de los siguientes valores: @@ -1431,7 +1431,7 @@ Su proyecto tiene como destino varias plataformas. Especifique la que quiere usa Move up and down to reveal more devices - Move up and down to reveal more devices + Subir y bajar para mostrar más dispositivos @@ -1441,7 +1441,7 @@ Su proyecto tiene como destino varias plataformas. Especifique la que quiere usa No devices are available for this project. - No devices are available for this project. + No hay dispositivos disponibles para este proyecto. @@ -1456,7 +1456,7 @@ Su proyecto tiene como destino varias plataformas. Especifique la que quiere usa Select a device to run on: - Select a device to run on: + Seleccione un dispositivo en el que se ejecutará: @@ -1638,7 +1638,7 @@ Su proyecto tiene como destino varias plataformas. Especifique la que quiere usa Solution filter files (.slnf) do not support the --in-root or --solution-folder options. - Solution filter files (.slnf) do not support the --in-root or --solution-folder options. + Los archivos de filtro de solución (.slnf) no admiten las opciones --in-root o --solution-folder. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf index 5f1945f0720b..a0c4864e27b7 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf @@ -59,22 +59,22 @@ No test projects were found. - No test projects were found. + Désolé, aucun projet de test n’a été trouvé. The device identifier to use for running the application. - The device identifier to use for running the application. + L’identifiant de l’appareil à utiliser pour exécuter l’application. DEVICE - DEVICE + APPAREIL List available devices for running the application. - List available devices for running the application. + Lister les appareils disponibles pour exécuter l’application. @@ -226,7 +226,7 @@ Les chemins d’accès ont recherché : « {1} », « {2} ». Build failed with exit code: {0}. - Build failed with exit code: {0}. + Échec de la build avec le code de sortie : {0}. @@ -1349,7 +1349,7 @@ L'outil '{1}' (version '{2}') a été correctement installé. L'entrée est ajou Available devices: - Available devices: + Appareils disponibles : @@ -1364,7 +1364,7 @@ L'outil '{1}' (version '{2}') a été correctement installé. L'entrée est ajou Deployment to device failed. Fix any deployment errors and run again. - Deployment to device failed. Fix any deployment errors and run again. + Désolé... Nous n’avons pas pu procéder au déploiement de l’appareil. Corrigez les erreurs de déploiement et relancez l’exécution. @@ -1419,7 +1419,7 @@ Le type de sortie actuel (OutputType) est « {2} ». Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: - Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: + Impossible d’exécuter ce projet, car plusieurs appareils sont disponibles. Veuillez spécifier l’appareil à utiliser en passant l’argument {0} avec l’une des valeurs suivantes : @@ -1431,7 +1431,7 @@ Votre projet cible plusieurs frameworks. Spécifiez le framework à exécuter à Move up and down to reveal more devices - Move up and down to reveal more devices + Montez et descendez pour afficher plus d’appareils @@ -1441,7 +1441,7 @@ Votre projet cible plusieurs frameworks. Spécifiez le framework à exécuter à No devices are available for this project. - No devices are available for this project. + Désolé, aucun appareil n’est disponible pour ce projet. @@ -1456,7 +1456,7 @@ Votre projet cible plusieurs frameworks. Spécifiez le framework à exécuter à Select a device to run on: - Select a device to run on: + Sélectionnez un appareil sur lequel exécuter : @@ -1638,7 +1638,7 @@ Votre projet cible plusieurs frameworks. Spécifiez le framework à exécuter à Solution filter files (.slnf) do not support the --in-root or --solution-folder options. - Solution filter files (.slnf) do not support the --in-root or --solution-folder options. + Les fichiers de filtre de solution (.slnf) ne prennent pas en charge les options --in-root ou --solution-folder. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf index f79d0c8600a4..93b0d141502e 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf @@ -59,22 +59,22 @@ No test projects were found. - No test projects were found. + Non sono stati trovati progetti di test. The device identifier to use for running the application. - The device identifier to use for running the application. + Identificatore del dispositivo da usare per l'esecuzione dell'applicazione. DEVICE - DEVICE + DISPOSITIVO List available devices for running the application. - List available devices for running the application. + Elencare i dispositivi disponibili per l'esecuzione dell'applicazione. @@ -226,7 +226,7 @@ Percorsi cercati: '{1}', '{2}'. Build failed with exit code: {0}. - Build failed with exit code: {0}. + Compilazione non riuscita con codice di uscita: {0}. @@ -1349,7 +1349,7 @@ Lo strumento '{1}' versione '{2}' è stato installato. La voce è stata aggiunta Available devices: - Available devices: + Dispositivi disponibili: @@ -1364,7 +1364,7 @@ Lo strumento '{1}' versione '{2}' è stato installato. La voce è stata aggiunta Deployment to device failed. Fix any deployment errors and run again. - Deployment to device failed. Fix any deployment errors and run again. + Distribuzione sul dispositivo non riuscita. Correggere eventuali errori di distribuzione ed eseguire di nuovo. @@ -1419,7 +1419,7 @@ L'OutputType corrente è '{2}'. Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: - Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: + Non è possibile eseguire questo progetto perché sono disponibili più dispositivi. Specificare il dispositivo da usare passando l'argomento {0} con uno dei valori seguenti: @@ -1431,7 +1431,7 @@ Il progetto è destinato a più framework. Specificare il framework da eseguire Move up and down to reveal more devices - Move up and down to reveal more devices + Scorri verso l'alto o verso il basso per visualizzare altri dispositivi @@ -1441,7 +1441,7 @@ Il progetto è destinato a più framework. Specificare il framework da eseguire No devices are available for this project. - No devices are available for this project. + Nessun dispositivo disponibile per questo progetto. @@ -1456,7 +1456,7 @@ Il progetto è destinato a più framework. Specificare il framework da eseguire Select a device to run on: - Select a device to run on: + Selezionare un dispositivo in cui eseguire: @@ -1638,7 +1638,7 @@ Il progetto è destinato a più framework. Specificare il framework da eseguire Solution filter files (.slnf) do not support the --in-root or --solution-folder options. - Solution filter files (.slnf) do not support the --in-root or --solution-folder options. + I file di filtro della soluzione (.slnf) non supportano le opzioni --in-root o --solution-folder. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf index d70dd82f9f15..6f381e8dc374 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf @@ -59,22 +59,22 @@ No test projects were found. - No test projects were found. + テスト プロジェクトが見つかりませんでした。 The device identifier to use for running the application. - The device identifier to use for running the application. + アプリケーション実行のために使用するデバイスの識別子です。 DEVICE - DEVICE + デバイス List available devices for running the application. - List available devices for running the application. + アプリケーションの実行について使用可能なデバイスを一覧表示します。 @@ -226,7 +226,7 @@ Paths searched: '{1}', '{2}'. Build failed with exit code: {0}. - Build failed with exit code: {0}. + ビルドが次の終了コードで失敗しました: {0}。 @@ -1349,7 +1349,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Available devices: - Available devices: + 使用可能なデバイス: @@ -1364,7 +1364,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Deployment to device failed. Fix any deployment errors and run again. - Deployment to device failed. Fix any deployment errors and run again. + デバイスへの展開に失敗しました。展開のエラーをすべて修正し、もう一度実行してください。 @@ -1419,7 +1419,7 @@ The current OutputType is '{2}'. Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: - Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: + 複数のデバイスが使用可能になっているため、このプロジェクトを実行できません。次のいずれかの値を {0} 引数で渡して、どのデバイスを使用するか指定してください。 @@ -1431,7 +1431,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Move up and down to reveal more devices - Move up and down to reveal more devices + 上下に移動すると、さらに多くのデバイスを表示できます @@ -1441,7 +1441,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' No devices are available for this project. - No devices are available for this project. + このプロジェクトで使用可能なデバイスはありません。 @@ -1456,7 +1456,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Select a device to run on: - Select a device to run on: + 実行するデバイスを選択します。 @@ -1638,7 +1638,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Solution filter files (.slnf) do not support the --in-root or --solution-folder options. - Solution filter files (.slnf) do not support the --in-root or --solution-folder options. + ソリューション フィルター ファイル (.slnf) では、--in-root または --solution-folder オプションはサポートされていません。 diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf index b24ae63c811e..3c166af15408 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf @@ -59,22 +59,22 @@ No test projects were found. - No test projects were found. + 테스트 프로젝트를 찾을 수 없습니다. The device identifier to use for running the application. - The device identifier to use for running the application. + 애플리케이션 실행에 사용할 장치 식별자입니다. DEVICE - DEVICE + 장치 List available devices for running the application. - List available devices for running the application. + 애플리케이션을 실행하는 데 사용할 수 있는 장치를 나열합니다. @@ -226,7 +226,7 @@ Paths searched: '{1}', '{2}'. Build failed with exit code: {0}. - Build failed with exit code: {0}. + 종료 코드 {0}(으)로 인해 빌드하지 못했습니다. @@ -1349,7 +1349,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Available devices: - Available devices: + 사용 가능한 장치: @@ -1364,7 +1364,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Deployment to device failed. Fix any deployment errors and run again. - Deployment to device failed. Fix any deployment errors and run again. + 장치에 배포하지 못했습니다. 배포 오류를 수정하고 다시 실행하세요. @@ -1419,7 +1419,7 @@ The current OutputType is '{2}'. Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: - Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: + 여러 장치를 사용할 수 있어 이 프로젝트를 실행할 수 없습니다. 다음 값 중 하나를 사용해 {0} 인수를 전달하여 사용할 장치를 지정하세요. @@ -1431,7 +1431,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Move up and down to reveal more devices - Move up and down to reveal more devices + 위아래로 이동하여 더 많은 장치 보기 @@ -1441,7 +1441,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' No devices are available for this project. - No devices are available for this project. + 이 프로젝트에 사용할 수 있는 장치가 없습니다. @@ -1456,7 +1456,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Select a device to run on: - Select a device to run on: + 실행할 장치 선택: @@ -1638,7 +1638,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Solution filter files (.slnf) do not support the --in-root or --solution-folder options. - Solution filter files (.slnf) do not support the --in-root or --solution-folder options. + 솔루션 필터 파일(.slnf)은 --in-root 또는 --solution-folder 옵션을 지원하지 않습니다. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf index f80dadf8df58..fa5e1b2e9879 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf @@ -59,22 +59,22 @@ No test projects were found. - No test projects were found. + Nie znaleziono żadnych projektów testowych. The device identifier to use for running the application. - The device identifier to use for running the application. + Identyfikator urządzenia, który ma być używany do uruchamiania aplikacji. DEVICE - DEVICE + URZĄDZENIE List available devices for running the application. - List available devices for running the application. + Wyświetl listę dostępnych urządzeń do uruchamiania aplikacji. @@ -226,7 +226,7 @@ Przeszukane ścieżki: „{1}”, „{2}”. Build failed with exit code: {0}. - Build failed with exit code: {0}. + Kompilacja nie powiodła się z kodem zakończenia {0}. @@ -1349,7 +1349,7 @@ Narzędzie „{1}” (wersja „{2}”) zostało pomyślnie zainstalowane. Wpis Available devices: - Available devices: + Dostępne urządzenia: @@ -1364,7 +1364,7 @@ Narzędzie „{1}” (wersja „{2}”) zostało pomyślnie zainstalowane. Wpis Deployment to device failed. Fix any deployment errors and run again. - Deployment to device failed. Fix any deployment errors and run again. + Wdrażanie na urządzeniu nie powiodło się. Usuń ewentualne błędy wdrażania i uruchom ponownie. @@ -1419,7 +1419,7 @@ Bieżący typ OutputType to „{2}”. Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: - Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: + Nie można uruchomić tego projektu, ponieważ dostępnych jest wiele urządzeń. Określ, które urządzenie ma być używane, przekazując argument {0} z jedną z następujących wartości: @@ -1431,7 +1431,7 @@ Projekt ma wiele platform docelowych. Określ platformę do uruchomienia przy u Move up and down to reveal more devices - Move up and down to reveal more devices + Przesuń w górę i w dół, aby odkryć więcej urządzeń @@ -1441,7 +1441,7 @@ Projekt ma wiele platform docelowych. Określ platformę do uruchomienia przy u No devices are available for this project. - No devices are available for this project. + Brak dostępnych urządzeń dla tego projektu. @@ -1456,7 +1456,7 @@ Projekt ma wiele platform docelowych. Określ platformę do uruchomienia przy u Select a device to run on: - Select a device to run on: + Wybierz urządzenie do uruchomienia: @@ -1638,7 +1638,7 @@ Projekt ma wiele platform docelowych. Określ platformę do uruchomienia przy u Solution filter files (.slnf) do not support the --in-root or --solution-folder options. - Solution filter files (.slnf) do not support the --in-root or --solution-folder options. + Pliki filtru rozwiązania (slnf) nie obsługują opcji --in-root ani --solution-folder. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf index 0374bd3f76b5..cc2960778369 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf @@ -59,22 +59,22 @@ No test projects were found. - No test projects were found. + Nenhum projeto de teste foi encontrado. The device identifier to use for running the application. - The device identifier to use for running the application. + O identificador de dispositivo a ser usado para executar o aplicativo. DEVICE - DEVICE + DISPOSITIVO List available devices for running the application. - List available devices for running the application. + Listar os dispositivos disponíveis para executar o aplicativo. @@ -226,7 +226,7 @@ Caminhos pesquisados: "{1}", "{2}". Build failed with exit code: {0}. - Build failed with exit code: {0}. + Falha na compilação com o código de saída: {0}. @@ -1349,7 +1349,7 @@ A ferramenta '{1}' (versão '{2}') foi instalada com êxito. A entrada foi adici Available devices: - Available devices: + Dispositivos disponíveis: @@ -1364,7 +1364,7 @@ A ferramenta '{1}' (versão '{2}') foi instalada com êxito. A entrada foi adici Deployment to device failed. Fix any deployment errors and run again. - Deployment to device failed. Fix any deployment errors and run again. + Falha na implantação no dispositivo. Corrija os erros de implantação e execute novamente. @@ -1419,7 +1419,7 @@ O OutputType atual é "{2}". Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: - Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: + Não é possível executar este projeto porque vários dispositivos estão disponíveis. Especifique qual dispositivo usar passando o argumento {0} com um dos seguintes valores: @@ -1431,7 +1431,7 @@ Ele tem diversas estruturas como destino. Especifique que estrutura executar usa Move up and down to reveal more devices - Move up and down to reveal more devices + Mover para cima e para baixo para revelar mais dispositivos @@ -1441,7 +1441,7 @@ Ele tem diversas estruturas como destino. Especifique que estrutura executar usa No devices are available for this project. - No devices are available for this project. + Nenhum dispositivo está disponível para este projeto. @@ -1456,7 +1456,7 @@ Ele tem diversas estruturas como destino. Especifique que estrutura executar usa Select a device to run on: - Select a device to run on: + Selecione um dispositivo no qual executar: @@ -1638,7 +1638,7 @@ Ele tem diversas estruturas como destino. Especifique que estrutura executar usa Solution filter files (.slnf) do not support the --in-root or --solution-folder options. - Solution filter files (.slnf) do not support the --in-root or --solution-folder options. + Os arquivos de filtro de solução (.slnf) não dão suporte às opções --in-root ou --solution-folder. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf index edbd1eec7aca..145ca1df82e2 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf @@ -59,22 +59,22 @@ No test projects were found. - No test projects were found. + Тестовые проекты не найдены. The device identifier to use for running the application. - The device identifier to use for running the application. + Идентификатор устройства, на котором следует запустить приложение. DEVICE - DEVICE + УСТРОЙСТВО List available devices for running the application. - List available devices for running the application. + Вывести список доступных устройств для запуска приложения. @@ -226,7 +226,7 @@ Paths searched: '{1}', '{2}'. Build failed with exit code: {0}. - Build failed with exit code: {0}. + Не удалось выполнить сборку, код завершения: {0}. @@ -1349,7 +1349,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Available devices: - Available devices: + Доступные устройства: @@ -1364,7 +1364,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Deployment to device failed. Fix any deployment errors and run again. - Deployment to device failed. Fix any deployment errors and run again. + Не удалось выполнить развертывание на устройстве. Исправьте ошибки развертывания и повторите попытку. @@ -1419,7 +1419,7 @@ The current OutputType is '{2}'. Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: - Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: + Невозможно запустить этот проект, так как доступно несколько устройств. Укажите, какое устройство следует использовать, передав аргумент {0} со значением из следующего списка: @@ -1431,7 +1431,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Move up and down to reveal more devices - Move up and down to reveal more devices + Прокрутите вверх и вниз, чтобы увидеть большее количество устройств @@ -1441,7 +1441,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' No devices are available for this project. - No devices are available for this project. + Для этого проекта нет доступных устройств. @@ -1456,7 +1456,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Select a device to run on: - Select a device to run on: + Выберите устройство, на котором следует произвести запуск: @@ -1638,7 +1638,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Solution filter files (.slnf) do not support the --in-root or --solution-folder options. - Solution filter files (.slnf) do not support the --in-root or --solution-folder options. + Файлы фильтров решений (.slnf) не поддерживают опции --in-root и --solution-folder. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf index e61c82e25672..43069343d2b7 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf @@ -59,22 +59,22 @@ No test projects were found. - No test projects were found. + Hiçbir test projesi bulunamadı. The device identifier to use for running the application. - The device identifier to use for running the application. + Uygulamayı çalıştırmak için kullanılacak cihaz kimliği. DEVICE - DEVICE + CİHAZ List available devices for running the application. - List available devices for running the application. + Uygulamayı çalıştırmak için kullanılabilir cihazları listeleyin. @@ -226,7 +226,7 @@ Aranan yollar: '{1}', '{2}'. Build failed with exit code: {0}. - Build failed with exit code: {0}. + Derleme şu çıkış koduyla başarısız oldu:{0}. @@ -1349,7 +1349,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Available devices: - Available devices: + Kullanılabilir cihazlar: @@ -1364,7 +1364,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Deployment to device failed. Fix any deployment errors and run again. - Deployment to device failed. Fix any deployment errors and run again. + Cihaza dağıtım başarısız oldu. Dağıtım hatalarını düzeltin ve tekrar çalıştırın. @@ -1419,7 +1419,7 @@ Geçerli OutputType '{2}'. Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: - Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: + Birden çok cihaz kullanılabilir olduğundan bu proje çalıştırılamıyor. Aşağıdaki değerlerden birini {0} bağımsız değişkenine aktararak hangi cihazın kullanılacağını belirtin: @@ -1431,7 +1431,7 @@ Projeniz birden fazla Framework'ü hedefliyor. '{0}' kullanarak hangi Framework' Move up and down to reveal more devices - Move up and down to reveal more devices + Yukarı ve aşağı hareket ederek daha fazla cihaz görüntüleyin @@ -1441,7 +1441,7 @@ Projeniz birden fazla Framework'ü hedefliyor. '{0}' kullanarak hangi Framework' No devices are available for this project. - No devices are available for this project. + Bu proje için kullanılabilir cihaz bulunmamaktadır. @@ -1456,7 +1456,7 @@ Projeniz birden fazla Framework'ü hedefliyor. '{0}' kullanarak hangi Framework' Select a device to run on: - Select a device to run on: + Çalıştırılacak cihazı seçin: @@ -1638,7 +1638,7 @@ Projeniz birden fazla Framework'ü hedefliyor. '{0}' kullanarak hangi Framework' Solution filter files (.slnf) do not support the --in-root or --solution-folder options. - Solution filter files (.slnf) do not support the --in-root or --solution-folder options. + Çözüm filtresi dosyaları (.slnf) --in-root veya --solution-folder seçeneklerini desteklemez. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf index 5db8b5643ddb..6f8eff789795 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf @@ -59,22 +59,22 @@ No test projects were found. - No test projects were found. + 未找到任何测试项目。 The device identifier to use for running the application. - The device identifier to use for running the application. + 用于运行该应用程序的设备的标识符。 DEVICE - DEVICE + 设备 List available devices for running the application. - List available devices for running the application. + 列出可用于运行该应用程序的设备。 @@ -226,7 +226,7 @@ Paths searched: '{1}', '{2}'. Build failed with exit code: {0}. - Build failed with exit code: {0}. + 生成失败,退出代码: {0}。 @@ -1349,7 +1349,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Available devices: - Available devices: + 可用的设备: @@ -1364,7 +1364,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Deployment to device failed. Fix any deployment errors and run again. - Deployment to device failed. Fix any deployment errors and run again. + 部署到设备失败。请修复部署错误后重试。 @@ -1419,7 +1419,7 @@ The current OutputType is '{2}'. Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: - Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: + 无法运行此项目,因为有多个设备可用。请通过传递 {0} 参数并为其指定以下值之一来选择要使用的设备: @@ -1431,7 +1431,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Move up and down to reveal more devices - Move up and down to reveal more devices + 上下移动以显示更多设备 @@ -1441,7 +1441,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' No devices are available for this project. - No devices are available for this project. + 此项目没有可用设备。 @@ -1456,7 +1456,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Select a device to run on: - Select a device to run on: + 选择运行设备: @@ -1638,7 +1638,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Solution filter files (.slnf) do not support the --in-root or --solution-folder options. - Solution filter files (.slnf) do not support the --in-root or --solution-folder options. + 解决方案筛选器文件(.slnf)不支持 --in-root 或 --solution-folder 选项。 diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf index 8917211f210c..0083657b8e1e 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf @@ -59,22 +59,22 @@ No test projects were found. - No test projects were found. + 未找到任何測試專案。 The device identifier to use for running the application. - The device identifier to use for running the application. + 用於執行應用程式的裝置識別碼。 DEVICE - DEVICE + 裝置 List available devices for running the application. - List available devices for running the application. + 列出可用來執行應用程式的裝置。 @@ -226,7 +226,7 @@ Paths searched: '{1}', '{2}'. Build failed with exit code: {0}. - Build failed with exit code: {0}. + 建置失敗,結束代碼為: {0}。 @@ -1349,7 +1349,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Available devices: - Available devices: + 可用的裝置: @@ -1364,7 +1364,7 @@ Tool '{1}' (version '{2}') was successfully installed. Entry is added to the man Deployment to device failed. Fix any deployment errors and run again. - Deployment to device failed. Fix any deployment errors and run again. + 無法部署至裝置。請修正所有部署錯誤後再重新執行。 @@ -1419,7 +1419,7 @@ The current OutputType is '{2}'. Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: - Unable to run this project because multiple devices are available. Please specify which device to use by passing the {0} argument with one of the following values: + 因為有多台裝置可用,因此無法執行此專案。請透過傳遞 {0} 引數並指定以下其中一個值,以指定要使用的裝置: @@ -1431,7 +1431,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Move up and down to reveal more devices - Move up and down to reveal more devices + 上下移動以顯示更多的裝置 @@ -1441,7 +1441,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' No devices are available for this project. - No devices are available for this project. + 沒有可供此專案使用的裝置。 @@ -1456,7 +1456,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Select a device to run on: - Select a device to run on: + 選取要在下列位置執行的裝置: @@ -1638,7 +1638,7 @@ Your project targets multiple frameworks. Specify which framework to run using ' Solution filter files (.slnf) do not support the --in-root or --solution-folder options. - Solution filter files (.slnf) do not support the --in-root or --solution-folder options. + 解決方案篩選檔案 (.slnf) 不支援 --in-root 或 --solution-folder 選項。 diff --git a/src/Cli/dotnet/xlf/CliStrings.cs.xlf b/src/Cli/dotnet/xlf/CliStrings.cs.xlf index db5371f22682..7e229cd5d29f 100644 --- a/src/Cli/dotnet/xlf/CliStrings.cs.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.cs.xlf @@ -61,7 +61,7 @@ The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + Možnost --add-source nelze kombinovat s mapováním zdroje balíčku. Pokud chcete použít další zdroj, aktualizujte nastavení mapování zdroje konfiguračního souboru NuGet. Další informace: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.de.xlf b/src/Cli/dotnet/xlf/CliStrings.de.xlf index ddea45d9cfb0..abd1ae0d8eb0 100644 --- a/src/Cli/dotnet/xlf/CliStrings.de.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.de.xlf @@ -61,7 +61,7 @@ The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + Die Option „--add-source“ kann nicht mit der Paketquellzuordnung kombiniert werden. Um eine zusätzliche Quelle zu verwenden, aktualisieren Sie die Quellzuordnungseinstellungen in Ihrer NuGet-Konfigurationsdatei. Weitere Informationen: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.es.xlf b/src/Cli/dotnet/xlf/CliStrings.es.xlf index 2e66a832a734..ac18b98253a3 100644 --- a/src/Cli/dotnet/xlf/CliStrings.es.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.es.xlf @@ -61,7 +61,7 @@ The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + La opción --add-source no se puede combinar con la asignación de origen del paquete. Para usar un origen adicional, actualice la configuración de asignación de origen del archivo de configuración de NuGet. Más información: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.fr.xlf b/src/Cli/dotnet/xlf/CliStrings.fr.xlf index b3cd285e60fc..8744dfbcffa6 100644 --- a/src/Cli/dotnet/xlf/CliStrings.fr.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.fr.xlf @@ -61,7 +61,7 @@ The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + L’option --add-source ne peut pas être combinée avec le mappage des sources de package. Pour utiliser une source supplémentaire, mettez à jour les paramètres de mappage des sources dans votre fichier de configuration NuGet. En savoir plus : https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.it.xlf b/src/Cli/dotnet/xlf/CliStrings.it.xlf index 6b4798b5e654..1416bd50deb7 100644 --- a/src/Cli/dotnet/xlf/CliStrings.it.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.it.xlf @@ -61,7 +61,7 @@ The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + L'opzione --add-source non può essere combinata con il mapping dell'origine pacchetto. Per usare una sorgente aggiuntiva, aggiornare le impostazioni di mapping dell'origine nel file di configurazione di NuGet. Altre informazioni: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.ja.xlf b/src/Cli/dotnet/xlf/CliStrings.ja.xlf index de6ce5eb5e0d..ad929a552fe8 100644 --- a/src/Cli/dotnet/xlf/CliStrings.ja.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.ja.xlf @@ -61,7 +61,7 @@ The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + --add-source オプションはパッケージ ソース マッピングと併用できません。追加のソースを使用するには、NuGet 構成ファイルのソース マッピング設定を更新してください。詳細情報: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.ko.xlf b/src/Cli/dotnet/xlf/CliStrings.ko.xlf index 8e2a8fd5cbe0..2c46389ddd75 100644 --- a/src/Cli/dotnet/xlf/CliStrings.ko.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.ko.xlf @@ -61,7 +61,7 @@ The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + --add-source 옵션은 패키지 원본 매핑과 결합할 수 없습니다. 추가 원본을 사용하려면 NuGet 구성 파일의 원본 매핑 설정을 업데이트합니다. 자세한 정보: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.pl.xlf b/src/Cli/dotnet/xlf/CliStrings.pl.xlf index ecdf18a4ef35..769bcc9b1521 100644 --- a/src/Cli/dotnet/xlf/CliStrings.pl.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.pl.xlf @@ -61,7 +61,7 @@ The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + Opcji --add-source nie można łączyć z mapowaniem źródła pakietu. Aby użyć dodatkowego źródła, zaktualizuj ustawienia mapowania źródła pliku konfiguracji NuGet. Dowiedz się więcej: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.pt-BR.xlf b/src/Cli/dotnet/xlf/CliStrings.pt-BR.xlf index 953da0a993eb..eaadc3289293 100644 --- a/src/Cli/dotnet/xlf/CliStrings.pt-BR.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.pt-BR.xlf @@ -61,7 +61,7 @@ The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + A opção --add-source não pode ser combinada com o mapeamento de origem do pacote. Para usar uma fonte adicional, atualize as configurações de mapeamento de origem do arquivo de configuração do NuGet. Saiba mais: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.ru.xlf b/src/Cli/dotnet/xlf/CliStrings.ru.xlf index a0d9c87fb26a..4a5ae59051e7 100644 --- a/src/Cli/dotnet/xlf/CliStrings.ru.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.ru.xlf @@ -61,7 +61,7 @@ The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + Параметр --add-source нельзя использовать вместе с сопоставлением источников пакетов. Чтобы добавить дополнительный источник, обновите параметры сопоставления источников в файле конфигурации NuGet. Подробнее: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.tr.xlf b/src/Cli/dotnet/xlf/CliStrings.tr.xlf index b69a06287572..7b8bf9b3bd87 100644 --- a/src/Cli/dotnet/xlf/CliStrings.tr.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.tr.xlf @@ -61,7 +61,7 @@ The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + --add-source seçeneği paket kaynağı eşlemesiyle birleştirilemez. Ek kaynak kullanmak için NuGet yapılandırma dosyanızdaki kaynak eşleme ayarlarını güncelleştirin. Daha fazla bilgi edinin: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.zh-Hans.xlf b/src/Cli/dotnet/xlf/CliStrings.zh-Hans.xlf index bb50e59dfae7..83e3c0dc9572 100644 --- a/src/Cli/dotnet/xlf/CliStrings.zh-Hans.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.zh-Hans.xlf @@ -61,7 +61,7 @@ The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + --add-source 选项不能与包源映射结合使用。若要使用其他源,请更新 NuGet 配置文件的源映射设置。了解详细信息: https://aka.ms/nuget-package-source-mapping diff --git a/src/Cli/dotnet/xlf/CliStrings.zh-Hant.xlf b/src/Cli/dotnet/xlf/CliStrings.zh-Hant.xlf index f8f638292eac..8db59649d4aa 100644 --- a/src/Cli/dotnet/xlf/CliStrings.zh-Hant.xlf +++ b/src/Cli/dotnet/xlf/CliStrings.zh-Hant.xlf @@ -61,7 +61,7 @@ The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping - The --add-source option cannot be combined with package source mapping. To use an additional source, update your NuGet configuration file's source mapping settings. Learn more: https://aka.ms/nuget-package-source-mapping + --add-source 選項無法與套件來源對應同時使用。若要使用額外的來源,請更新您的 NuGet 組態檔中的來源對應設定。深入了解: https://aka.ms/nuget-package-source-mapping From 0c7b6d74c648263eb3feb837f3e282be5770cff4 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Mon, 23 Feb 2026 01:07:22 -0800 Subject: [PATCH 104/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2910435 --- .../xlf/CliStrings.cs.xlf | 482 ++++----- .../xlf/CliStrings.de.xlf | 476 ++++----- .../xlf/CliStrings.es.xlf | 470 ++++----- .../xlf/CliStrings.fr.xlf | 476 ++++----- .../xlf/CliStrings.it.xlf | 476 ++++----- .../xlf/CliStrings.ja.xlf | 468 ++++----- .../xlf/CliStrings.ko.xlf | 462 ++++----- .../xlf/CliStrings.pl.xlf | 484 ++++----- .../xlf/CliStrings.pt-BR.xlf | 476 ++++----- .../xlf/CliStrings.ru.xlf | 476 ++++----- .../xlf/CliStrings.tr.xlf | 484 ++++----- .../xlf/CliStrings.zh-Hans.xlf | 474 ++++----- .../xlf/CliStrings.zh-Hant.xlf | 474 ++++----- .../xlf/CommandDefinitionStrings.cs.xlf | 956 ++++++++--------- .../xlf/CommandDefinitionStrings.de.xlf | 954 ++++++++--------- .../xlf/CommandDefinitionStrings.es.xlf | 954 ++++++++--------- .../xlf/CommandDefinitionStrings.fr.xlf | 952 ++++++++--------- .../xlf/CommandDefinitionStrings.it.xlf | 952 ++++++++--------- .../xlf/CommandDefinitionStrings.ja.xlf | 946 ++++++++--------- .../xlf/CommandDefinitionStrings.ko.xlf | 946 ++++++++--------- .../xlf/CommandDefinitionStrings.pl.xlf | 958 ++++++++--------- .../xlf/CommandDefinitionStrings.pt-BR.xlf | 958 ++++++++--------- .../xlf/CommandDefinitionStrings.ru.xlf | 954 ++++++++--------- .../xlf/CommandDefinitionStrings.tr.xlf | 962 +++++++++--------- .../xlf/CommandDefinitionStrings.zh-Hans.xlf | 946 ++++++++--------- .../xlf/CommandDefinitionStrings.zh-Hant.xlf | 950 ++++++++--------- .../xlf/DefinitionStrings.cs.xlf | 482 ++++----- .../xlf/DefinitionStrings.de.xlf | 476 ++++----- .../xlf/DefinitionStrings.es.xlf | 470 ++++----- .../xlf/DefinitionStrings.fr.xlf | 476 ++++----- .../xlf/DefinitionStrings.it.xlf | 482 ++++----- .../xlf/DefinitionStrings.ja.xlf | 468 ++++----- .../xlf/DefinitionStrings.ko.xlf | 462 ++++----- .../xlf/DefinitionStrings.pl.xlf | 484 ++++----- .../xlf/DefinitionStrings.pt-BR.xlf | 476 ++++----- .../xlf/DefinitionStrings.ru.xlf | 476 ++++----- .../xlf/DefinitionStrings.tr.xlf | 484 ++++----- .../xlf/DefinitionStrings.zh-Hans.xlf | 474 ++++----- .../xlf/DefinitionStrings.zh-Hant.xlf | 474 ++++----- 39 files changed, 12375 insertions(+), 12375 deletions(-) diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.cs.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.cs.xlf index 390740978705..dea604287830 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.cs.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.cs.xlf @@ -4,89 +4,89 @@ Add - Add + Přidat Ambiguous command name: {0} - Ambiguous command name: {0} + Nejednoznačný název příkazu {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + Cílová architektura ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Cesta k artefaktům. Veškerý výstup z projektu, včetně výstupu sestavení, publikování a balíčku, se přesune do podsložek v zadané cestě. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: Pokus o vytvoření specifikace příkazu commandspec {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: Pokus o nalezení příkazu {1} v {2} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: Pokus o vyřešení {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: Pokus o vyřešení specifikace příkazu nástroje {1} outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} neexistuje Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + Pro prázdnou cestu ke spustitelnému souboru nelze vytvořit překrytí prostředí. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + Nejde najít soubor manifestu. Seznam prohledaných cest: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + V souboru manifestu se nepovedlo najít balíček s ID {0}. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Nepovedlo se vyřešit aktuální identifikátor modulu runtime. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Zadání možností -r|--runtime a -a|--arch zároveň se nepodporuje. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Zadání možností -r|--runtime a -os zároveň se nepodporuje. @@ -100,21 +100,21 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Nastavuje hodnotu proměnné prostředí. +Pokud proměnná neexistuje, vytvoří ji, a pokud existuje, přepíše ji. +Tento argument je možné zadat vícekrát a určit tak více proměnných. Examples: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="hodnota s mezerami" +-e VARIABLE="hodnota;oddělená;pomocí;středníků" -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NÁZEV="HODNOTA" @@ -129,117 +129,117 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Nastaví hodnotu proměnné prostředí. +Pokud proměnná neexistuje, vytvoří ji, a pokud existuje, přepíše ji. +Tímto se vynutí spuštění testů v izolovaném procesu. +Tento argument je možné zadat vícekrát a určit tak více proměnných. -Examples: --e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" --e VAR1=abc -e VAR2=def -e VAR3=ghi +Příklady: +-e PROMĚNNÁ=abc +-e PROMĚNNÁ="hodnota s mezerami" +-e PROMĚNNÁ="hodnota;oddělená;pomocí;středníků" +-e PROM1=abc -e PROM2=def -e PROM3=ghi Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Nastavuje hodnotu vlastnosti $(VersionSuffix), která se má použít při sestavování projektu. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + Maximální šířka sloupce musí být větší než nula. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + Spustitelný soubor příkazu {0} se nenašel. Projekt se nepodařilo obnovit nebo jeho obnovení nebylo úspěšné. Spusťte příkaz dotnet restore. Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Umožňuje, aby se příkaz zastavil a počkal na vstup nebo akci uživatele (například na dokončení ověření). Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Umožňuje instalaci předběžných verzí balíčků. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: Specifikace příkazu commandSpec je null. FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + Soubor {0} se nenašel. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Zadaný soubor řešení {0} neexistuje nebo v adresáři není soubor řešení. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + Nenašlo se řešení ani adresář {0}. {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: Soubor runtimeconfig.json nástroje {1} se nenašel. Delete - Delete + Odstranit Unable to find deps.json generator project. - Unable to find deps.json generator project. + Projekt generátoru deps.json se nenašel. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: Nepodařilo se najít shodný projekt {1}. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: Objekt pro vytváření projektů ProjectFactory nenašel projekt. Did you mean the following command? - Did you mean the following command? + Měli jste na mysli následující příkaz? Directory - Directory + Adresář Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Vynuťte, aby příkaz ignoroval všechny trvalé buildovací servery. {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} neexistuje. @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Adresář nástrojů {0} se aktuálně nenachází v proměnné prostředí PATH. +Pokud používáte bash, můžete ho přidat do profilu tak, že spustíte následující příkaz: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Přidejte nástroje .NET Core SDK export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Pokud ho chcete přidat do aktuální relace, slouží k tomuto tento příkaz: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + Právě jste nainstalovali sadu .NET SDK, před spuštěním nainstalovaného nástroje proto bude nutné se odhlásit nebo restartovat relaci. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Adresář nástrojů {0} se aktuálně nenachází v proměnné prostředí PATH. +Pokud používáte bash, můžete ho přidat do profilu tak, že spustíte následující příkaz: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Přidejte nástroje .NET Core SDK export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Pokud ho chcete přidat do aktuální relace, slouží k tomuto tento příkaz: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + Právě jste nainstalovali sadu .NET SDK, před spuštěním nainstalovaného nástroje proto bude nutné znovu otevřít terminál. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + Adresář nástrojů {0} se aktuálně nenachází v proměnné prostředí PATH. +Pokud používáte zsh, můžete si ho přidat do profilu tak, že spustíte následující příkaz: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# Přidejte nástroje .NET Core SDK export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +Pak ho spuštěním příkazu `zsh -l` zpřístupněte pro aktuální relaci. -You can only add it to the current session by running the following command: +Pokud ho chcete přidat do aktuální relace, slouží k tomuto tento příkaz: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + Adresář nástrojů {0} není momentálně v proměnné prostředí PATH. -You can add the directory to the PATH by running the following command: +Tento adresář přidáte do proměnné PATH spuštěním následujícího příkazu: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + Právě jste nainstalovali sadu .NET SDK, před spuštěním nainstalovaného nástroje proto bude nutné znovu otevřít okno příkazového řádku. Error - Error + Chyba You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + Spouštíte operaci instalace nástroje se zdrojem HTTP: {0}. NuGet vyžaduje zdroje HTTPS. Pokud chcete použít zdroj HTTP, musíte v souboru NuGet.Config explicitně nastavit možnost allowInsecureConnections na true. Další informace najdete na https://aka.ms/nuget-https-everywhere. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: Soubor deps.json se očekává v: {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + Pro překrytí prostředí se nepodařilo nastavit oprávnění uživatele ke spouštění: {0}. Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + Pro příkaz {0} se nepodařilo vytvořit překrytí nástroje: {1}. {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: Nepodařilo se najít commandPath {1} Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + Nepovedlo se najít knihovnu v souboru prostředků NuGet pro balíček nástroje {0}: {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Mapování zdroje balíčku je povoleno, ale pod zadaným ID balíčku nebyl nalezen žádný zdroj: {0}. Další podrobnosti najdete v dokumentaci k mapování zdrojů balíčků na https://aka.ms/nuget-package-source-mapping. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + Nepodařilo se najít připravený balíček nástroje {0}. {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: Nepodařilo se najít toolAssembly pro {1} Failed to load NuGet source {0} - Failed to load NuGet source {0} + Nepovedlo se načíst zdroj NuGet {0}. Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Mapování zdroje balíčku je povoleno, ale pod zadaným ID balíčku není namapován žádný zdroj: {0}. Další podrobnosti najdete v dokumentaci k mapování zdrojů balíčků na https://aka.ms/nuget-package-source-mapping. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + Nepovedlo se přečíst soubor prostředků NuGet pro balíček nástroje {0}: {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + Nepodařilo se přečíst soubor s identifikátorem PID {0}: {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + Pro příkaz {0} se nepodařilo odebrat překrytí nástroje: {1}. {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: Specifikaci příkazu commandspec z knihovny se nepodařilo vyřešit. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Nepodařilo se načíst konfiguraci nástroje: {0}. Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + Nepovedlo se přidat adresář {0} do proměnné prostředí PATH. Přidejte tento adresář do proměnné PATH, abyste mohli používat nástroje nainstalované pomocí dotnet tool install. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + Nepodařilo se odinstalovat balíček nástroje {0}: {1}. Failed to validate package signing. {0} - Failed to validate package signing. + Nepodařilo se ověřit podepisování balíčku. {0} Missing 'commands' entry. - Missing 'commands' entry. + Chybí položka commands. File - File + Soubor The file-based app to operate on. - The file-based app to operate on. + Souborová aplikace, se kterou se má pracovat. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + Verze formátu je vyšší, než se podporuje. Tento nástroj se možná v této verzi SDK nepodporuje. Aktualizujte sadu SDK. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + Verze formátu je chybně vytvořená. Tento nástroj se možná v této verzi SDK nepodporuje. Obraťte se na autora nástroje. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + Verze formátu chybí. Tento nástroj se možná v této verzi SDK nepodporuje. Obraťte se na autora nástroje. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + Projekt {0} se našel, ale není platný. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: Zjištěný lockfile nástroje na: {1} FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Publikujte svoji aplikaci jako aplikaci závislou na architektuře. Aby bylo možné vaši aplikaci spustit, musí být na cílovém počítači nainstalovaný kompatibilní modul runtime .NET. Generating deps.json at: {0} - Generating deps.json at: {0} + Generování souboru deps.json do: {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: Soubor prefercliruntime se ignoruje, protože cílová architektura nástroje ({1}) má jinou hlavní verzi než aktuální modul runtime rozhraní příkazového řádku ({2}). In package {0}: {1} - In package {0}: + V balíčku {0}: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Nesprávně formátované proměnné prostředí: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: Neplatné hodnoty commandResolverArguments {0} should be an integer - {0} should be an integer + {0} by mělo být celé číslo. Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Neplatný soubor manifestu. Cesta {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + Projekt {0} není platný. Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + Neplatný projekt {0}. {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + Identifikátor modulu runtime {0} je neplatný. Platné identifikátory modulu runtime jsou: {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + Neplatné řešení {0}. {1}. Invalid version string: {0} - Invalid version string: {0} + Neplatný řetězec verze: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + Balíček {0} se nenašel v informačních kanálech NuGet {1}. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + Chyba parsování JSON v souboru {0}: {1} LEVEL - LEVEL + LEVEL Library - Library + Knihovna {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: Knihovna nebyla v souboru lock nalezena. List - List + Seznam {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: Hledání souboru prefercliruntime v {1} .NET Cli Options: - .NET Cli Options: + Možnosti rozhraní příkazového řádku .NET: MSBuild arguments: {0} - MSBuild arguments: {0} + Argumenty MSBuild: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: Cesta k projektu MSBuildu = {1} MSBuild server - MSBuild server + Server MSBuild File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + Soubor {0} pochází z jiného počítače a je možné, že se zablokoval, aby se ochránil tento počítač. Další informace včetně toho, jak soubor odblokovat, najdete na adrese https://aka.ms/motw. Missing 'isRoot' entry. - Missing 'isRoot' entry. + Chybí položka isRoot. Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + Balíček se nedá přidat. Soubor manifestu už obsahuje verzi {0} balíčku {1}. Pokud chcete zadat novou verzi {3}, odinstalujte, nainstalujte nebo upravte soubor manifestu {2}. Manifest version 0 is not supported. - Manifest version 0 is not supported. + Verze manifestu 0 se nepodporuje. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + Verze manifestu je {0}. Je možné, že se tento manifest nebude podporovat v této verzi sady SDK, která podporuje verzi manifestu až {1}. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + Soubor vstupního bodu {0} pro příkaz {1} nebyl v balíčku nalezen. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + Soubor s nastavením DotnetToolSettings.xml nebyl v balíčku nalezen. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Je k dispozici více než jedno zabalené překrytí: {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + V {0} se našlo několik souborů řešení. Vyberte, který z nich chcete použít. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Zadejte, jaký soubor projektu se použije, protože {0} obsahuje více souborů projektů. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Existuje více než jedno zadání pro balíčky: {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + Pokud chcete zpřístupnit příkaz {0}, spusťte dotnet tool restore. New - New + Nový Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Nezobrazovat úvodní nápis ani zprávu o autorských právech No projects found in the solution. - No projects found in the solution. + V řešení se nenašly žádné projekty. There are no {0} references in project {1}. - There are no {0} references in project {1}. + V projektu {1} nejsou žádné odkazy na {0}. Do not restore the project before building. - Do not restore the project before building. + Neobnoví projekt před sestavením. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + Hledání nebylo úspěšné. Podrobnosti odpovědi rozhraní API hledání NuGet: + RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2} Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + Přeskakuje se ověření podpisu pro balíček NuGet {0}, protože pochází ze zdroje, který nevyžaduje ověření podpisu. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + Přeskakuje se ověření podpisu balíčku NuGet. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: Kořen balíčků NuGet: {1} OS - OS + Operační systém Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + Pomocí možnosti -p je možné v jednu chvíli zadat pouze jeden projekt. {Locked="-p"} The target operating system. - The target operating system. + Cílový operační systém Project to Project - Project to Project + Z projektu na projekt Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + Lze zabalit pouze jeden .nuspec soubor najednou. Package - Package + Balíček Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Odkaz na balíček ve formě identifikátoru balíčku, jako je „{0}“, nebo identifikátor balíčku a verze oddělené znakem @, například „{0}@{1}“. Package reference id and version must not be null. - Package reference id and version must not be null. + ID a verze odkazu na balíček nesmí být prázdné. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Nejde zadat --version, pokud argument balíčku již obsahuje verzi. {Locked="--version"} Package reference - Package reference + Odkaz na balíček A version of {0} of package {1} - A version of {0} of package {1} + Verze {0} balíčku {1} Version {0} of package {1} - Version {0} of package {1} + Verze {0} balíčku {1} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + Verze mezi {0} a {1} balíčku {2} A version higher than {0} of package {1} - A version higher than {0} of package {1} + Verze vyšší než {0} balíčku {1} A version less than {0} of package {1} - A version less than {0} of package {1} + Verze menší než {0} balíčku {1} Project - Project + Projekt Project `{0}` added to the solution. - Project `{0}` added to the solution. + Projekt {0} byl přidán do řešení. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + Projekt už obsahuje odkaz na {0}. The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Soubor projektu, s kterým se má pracovat. Pokud soubor není zadaný, příkaz ho bude hledat v aktuálním adresáři. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + Projekt {0} se nepodařilo vyhodnotit. Vyhodnocení selhalo s následující chybou: {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + Projekt {0} neexistuje. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + Projekt {0} není určený pro cílovou architekturu {1}. Project `{0}` is invalid. - Project `{0}` is invalid. + Projekt {0} není platný. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + Projekt {0} není možné přidat, protože cílové platformy obou projektů nejsou kompatibilní. Zkontrolujte projekt, který se pokoušíte přidat, a ověřte jeho kompatibilitu s následujícími cíli: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + Projekt {0} se v řešení nenašel. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Soubor projektu nebo souborová aplikace v jazyce C#, se kterou se má pracovat. Pokud soubor není zadaný, příkaz vyhledá soubor projektu v aktuálním adresáři. PROJECT | FILE - PROJECT | FILE + PROJEKT | SOUBOR Project reference - Project reference + Odkaz na projekt Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + Nenašel se odkaz na projekt {0}. Project reference(s) - Project reference(s) + Odkaz(y) na projekt Project reference `{0}` removed. - Project reference `{0}` removed. + Odkaz na projekt {0} byl odebrán. Project `{0}` removed from solution. - Project `{0}` removed from solution. + Projekt {0} byl z řešení odebrán. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + Projekt {0} byl z řešení odebrán. Razor build server - Razor build server + Buildovací server Razor Reference - Reference + Odkaz Reference `{0}` added to the project. - Reference `{0}` added to the project. + Odkaz na {0} byl přidán do projektu. Remove - Remove + Odebrat Required command was not provided. - Required command was not provided. + Požadovaný příkaz nebyl zadán. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: Řeší se specifikace příkazu commandspec z knihoven nástroje {1}. Response file '{0}' does not exist. - Response file '{0}' does not exist. + Soubor odpovědí {0} neexistuje. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + Hledání nebylo úspěšné. Později už možná k problému nedojde. Podrobnosti odpovědi rozhraní API hledání NuGet: + RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2} RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Povolí diagnostický výstup. Display the command schema as JSON. - Display the command schema as JSON. + Zobrazí schéma příkazu jako JSON. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Možnosti --self-contained a --no-self-contained nelze použít společně. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Publikujte se svou aplikací modul runtime pro .NET, aby ho nebylo nutné instalovat na cílovém počítači. +Výchozí hodnota je false. Pokud však cílíte na .NET 7 nebo nižší a je zadán identifikátor modulu runtime, výchozí hodnota je true. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + Příkaz {0} koliduje s existujícím příkazem jiného nástroje. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Vyhledejte dostupné verze úlohy nebo zjistěte, z čeho se skládá verze úlohy. Další informace získáte pomocí „dotnet workload search version --help“. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Zobrazí nápovědu příkazového řádku. The shutdown command failed: {0} - The shutdown command failed: {0} + Příkaz pro vypnutí selhal: {0} Solution - Solution + Řešení Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + Řešení {0} už obsahuje projekt {1}. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + Argument řešení „{0}“ je chybně umístěný. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Zadaný soubor řešení {0} neexistuje nebo v adresáři není soubor řešení. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Soubor projektu nebo řešení, se kterým se má operace provést. Pokud soubor není zadaný, příkaz ho bude hledat v aktuálním adresáři. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Projekt nebo řešení nebo soubor C# (souborový program), se kterým se má pracovat. Pokud soubor není zadaný, příkaz bude hledat projekt nebo řešení v aktuálním adresáři. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJEKT | ŘEŠENÍ | SOUBOR Specify at least one {0}. - Specify at least one {0}. + Zadejte aspoň jednu položku {0}. You must specify at least one project to add. - You must specify at least one project to add. + Musíte zadat aspoň jeden projekt, který chcete přidat. You must specify at least one project to remove. - You must specify at least one project to remove. + Musíte zadat aspoň jeden projekt, který chcete odebrat. You must specify at least one reference to remove. - You must specify at least one reference to remove. + Musíte zadat aspoň jeden odkaz, který chcete odebrat. {0}: tool library found {1} - {0}: tool library found {1} + {0}: Nalezena knihovna nástrojů {1} Missing 'version' entry. - Missing 'version' entry. + Chybí položka version. Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + Nástroj {0} (verze {1}) je už nainstalovaný. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + Balíček {0} není nástroj .NET. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + Příkaz {0} obsahuje minimálně jeden neplatný znak: {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + Název příkazu {0} nemůže začínat úvodní tečkou (.). Invalid XML: {0} - Invalid XML: {0} + Neplatné XML: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + Nástroj definuje příkaz s chybějícím nastavením názvu. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + V příkazu {0} chybí nastavení vstupního bodu. More than one command is defined for the tool. - More than one command is defined for the tool. + Pro nástroj je definovaných více příkazů. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + Nástroj {0} používá nepodporovaný spouštěč {1}. The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + Nástroj nepodporuje aktuální architekturu nebo operační systém ({0}). Podporované moduly runtime: {1} Type - Type + Typ The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + Požadované zásady řetězu certifikátů nebylo možné zkontrolovat: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + nepodařilo se odstranit dočasný soubor deps.json: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + Nepovedlo se vygenerovat soubor deps.json, je možné, že se už vygeneroval. Pokud chcete získat výstup pro diagnostiku, můžete zadat možnost „-d“ za „dotnet“ (například dotnet -d <toolname>): {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + Nepodařilo se najít multiplexor dotnetu. Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + Očekává se {0} pro vlastnost {1}. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Nerozpoznaný příkaz nebo argument: {0} Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + Projekt {0} má neznámý typ projektu a nelze ho přidat do souboru řešení. O podporu požádejte poskytovatele sady SDK. Update - Update + Aktualizovat VB/C# compiler server - VB/C# compiler server + Server kompilátoru VB/C# Value - Value + Hodnota Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Nastavuje úroveň podrobností MSBuild. Povolené hodnoty jsou q [tichý], m [minimální], n [normální], d [podrobný] a diag [diagnostický]. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + Ověřilo se, že balíček NuGet {0} má platný podpis. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + Verzi balíčku {0} se nepodařilo vyřešit. Version {0} is invalid. - Version {0} is invalid. + Verze {0} není platná. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + Při ověřování úloh došlo k problému. Další informace získáte spuštěním příkazu „dotnet workload update“. {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Přijměte všechny výzvy k potvrzení kliknutím „ano“. diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.de.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.de.xlf index 7ec7d356a410..97201cdc52c6 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.de.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.de.xlf @@ -4,89 +4,89 @@ Add - Add + Hinzufügen Ambiguous command name: {0} - Ambiguous command name: {0} + Nicht eindeutiger Befehlsname: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + Die Zielarchitektur. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Der Artefaktpfad. Die gesamte Ausgabe des Projekts, einschließlich Build-, Veröffentlichungs- und Paketausgabe, wird in Unterordnern unter dem angegebenen Pfad angezeigt. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: Es wird versucht, commandspec zu erstellen {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: Nach Befehl {1} wird in {2} gesucht {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: Es wird versucht, {1} aufzulösen {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: Es wird versucht, commandspec aus Tool {1} aufzulösen. outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} nicht vorhanden Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + Für einen leeren Pfad einer ausführbaren Datei kann kein Shell-Shim erstellt werden. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + Eine Manifestdatei wurde nicht gefunden. Die Liste der durchsuchten Pfade: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + In der Manifestdatei wurde kein Paket mit der Paket-ID {0} gefunden. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Fehler beim Auflösen des aktuellen Runtimebezeichners. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Das gleichzeitige Angeben der Optionen „-r|--runtime“ und „-a|--arch“ wird nicht unterstützt. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Das gleichzeitige Angeben der Optionen „-r|--runtime“ und „-os“ wird nicht unterstützt. @@ -100,21 +100,21 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Legt den Wert einer Umgebungsvariablen fest. +Erstellt die Variable, wenn Sie nicht vorhanden ist, und setzt sie andernfalls außer Kraft. +Dieses Argument kann mehrmals angegeben werden, um mehrere Variablen bereitzustellen. -Examples: +Beispiele: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="wert mit leerzeichen" +-e VARIABLE="wert;getrennt durch;semikolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NAME="WERT" @@ -129,117 +129,117 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Legt den Wert einer Umgebungsvariablen fest. +Erstellt die Variable, wenn Sie nicht vorhanden ist, und setzt sie andernfalls außer Kraft. +Dadurch wird die Ausführung der Tests in einem isolierten Prozess erzwungen. +Dieses Argument kann mehrmals angegeben werden, um mehrere Variablen bereitzustellen. -Examples: +Beispiele: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="wert mit leerzeichen" +-e VARIABLE="wert;getrennt durch;semikolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Hiermit wird der Wert der $(VersionSuffix)-Eigenschaft festgelegt, die beim Erstellen des Projekts verwendet werden soll. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + Die maximale Spaltenbreite muss größer als 0 sein. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + Der für "{0}" auszuführende Befehl wurde nicht gefunden. Das Projekt wurde möglicherweise nicht wiederhergestellt, oder bei der Wiederherstellung ist ein Fehler aufgetreten. Führen Sie "dotnet restore" aus. Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Hiermit wird zugelassen, dass der Befehl anhält und auf eine Benutzereingabe oder Aktion wartet (beispielsweise auf den Abschluss der Authentifizierung). Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Ermöglicht die Installation von Paketen mit Vorabversionen. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandspec ist NULL. FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + Die Datei "{0}" wurde nicht gefunden. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Die angegebene Projektmappendatei "{0}" ist nicht vorhanden, oder das Verzeichnis enthält keine Projektmappendatei. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + Die Projektmappe oder das Verzeichnis "{0}" wurde nicht gefunden. {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: Die Datei "runtimeconfig.json" wurde für das Tool {1} nicht gefunden. Delete - Delete + löschen Unable to find deps.json generator project. - Unable to find deps.json generator project. + Das deps.json-Generatorprojekt wurde nicht gefunden. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: Kein passendes Projekt {1} gefunden. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: ProjectFactory hat das Projekt nicht gefunden. Did you mean the following command? - Did you mean the following command? + Meinten Sie den folgenden Befehl? Directory - Directory + Verzeichnis Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Erzwingen Sie, dass der Befehl alle persistenten Buildserver ignoriert. {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} nicht vorhanden @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Das Toolverzeichnis "{0}" ist aktuell nicht in der PATH-Umgebungsvariable enthalten. +Wenn Sie Bash verwenden, können Sie es Ihrem Profil durch Ausführen des folgenden Befehls hinzufügen: -cat << \EOF >> ~/.bash_profile +cat << \EOF >> ~007E;/.bash_profile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Sie können es der aktuellen Sitzung hinzufügen, indem Sie den folgenden Befehl ausführen: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + Da Sie gerade das .NET SDK installiert haben, müssen Sie sich abmelden oder Ihre Sitzung neu starten, bevor Sie das installierte Tool ausführen. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Das Toolverzeichnis "{0}" ist aktuell nicht in der PATH-Umgebungsvariable enthalten. +Wenn Sie Bash verwenden, können Sie es Ihrem Profil durch Ausführen des folgenden Befehls hinzufügen: -cat << \EOF >> ~/.bash_profile +cat << \EOF >> ~007E;/.bash_profile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Sie können es der aktuellen Sitzung hinzufügen, indem Sie den folgenden Befehl ausführen: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + Da Sie gerade das .NET SDK installiert haben, müssen Sie das Terminal neu öffnen, bevor Sie das installierte Tool ausführen. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + Das Toolverzeichnis "{0}" ist aktuell nicht in der PATH-Umgebungsvariable enthalten. +Wenn Sie zsh verwenden, können Sie es Ihrem Profil hinzufügen, indem Sie folgenden Befehl ausführen: -cat << \EOF >> ~/.zprofile +cat << \EOF >> ~007E;/.zprofile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +Führen Sie anschließend `zsh -l` aus, um das Tool für die aktuelle Sitzung verfügbar zu machen. -You can only add it to the current session by running the following command: +Um es nur der aktuellen Sitzung hinzuzufügen, führen Sie den folgenden Befehl aus: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + Das Toolverzeichnis "{0}" ist aktuell nicht in der PATH-Umgebungsvariable angegeben. -You can add the directory to the PATH by running the following command: +Um das Verzeichnis zu PATH hinzuzufügen, können Sie den folgenden Befehl ausführen: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + Da Sie gerade das .NET SDK installiert haben, müssen Sie das Eingabeaufforderungsfenster neu öffnen, bevor Sie das installierte Tool ausführen. Error - Error + Fehler You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + Sie führen den Toolinstallationsvorgang mit einer HTTP-Quelle aus: {0}. NuGet erfordert HTTPS-Quellen. Um eine HTTP-Quelle zu verwenden, müssen Sie „allowInsecureConnections“ in Ihrer NuGet.Config-Datei explizit auf TRUE festlegen. Weitere Informationen finden Sie unter https://aka.ms/nuget-https-everywhere. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: "deps.json" vermutet unter: {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + Fehler beim Festlegen der Benutzerberechtigungen der ausführbaren Datei für den Shell-Shim: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + Fehler beim Erstellen des Tool-Shims für den Befehl "{0}": {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: commandPath für {1} nicht gefunden Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + Fehler beim Suchen der Bibliothek in der NuGet-Ressourcendatei für das Toolpaket "{0}": {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Die Paketquellzuordnung ist aktiviert, aber unter der angegebenen Paket-ID wurde keine Quelle gefunden: {0}. Weitere Informationen finden Sie in der Dokumentation zur Paketquellzuordnung unter https://aka.ms/nuget-package-source-mapping. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + Das gestagete Toolpaket "{0}" wurde nicht gefunden. {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: toolAssembly für {1} nicht gefunden Failed to load NuGet source {0} - Failed to load NuGet source {0} + Fehler beim Laden der NuGet-Quelle {0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Die Paketquellzuordnung ist aktiviert, aber unter der angegebenen Paket-ID ist keine Quelle zugeordnet: {0}. Weitere Informationen finden Sie in der Dokumentation zur Paketquellzuordnung unter https://aka.ms/nuget-package-source-mapping. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + Fehler beim Lesen der NuGet-Ressourcendatei für Toolpaket "{0}": {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + Fehler beim Lesen der PID-Datei "{0}": {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + Fehler beim Entfernen des Tool-Shims für den Befehl "{0}": {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: commandspec aus Bibliothek konnte nicht aufgelöst werden. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Fehler beim Abrufen der Toolkonfiguration: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + Fehler beim Hinzufügen von "{0}" zur PATH-Umgebungsvariable. Fügen Sie dieses Verzeichnis Ihrem PATH hinzu, um mit "dotnet tool install" installierte Tools zu verwenden. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + Fehler beim Deinstallieren des Toolpakets "{0}": {1} Failed to validate package signing. {0} - Failed to validate package signing. + Fehler bei der Überprüfung der Paketsignierung. {0} Missing 'commands' entry. - Missing 'commands' entry. + Eintrag "commands" fehlt. File - File + Datei The file-based app to operate on. - The file-based app to operate on. + Die dateibasierte App, die verwendet werden soll. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + Die Formatversion ist höher als unterstützt. Dieses Tool wird in dieser SDK-Version möglicherweise nicht unterstützt. Aktualisieren Sie Ihr SDK. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + Die Formatversion ist fehlerhaft. Dieses Tool wird in dieser SDK-Version möglicherweise nicht unterstützt. Wenden Sie sich an den Autor des Tools. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + Die Formatversion fehlt. Dieses Tool wird in dieser SDK-Version möglicherweise nicht unterstützt. Wenden Sie sich an den Autor des Tools. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + Ein Projekt "{0}" wurde gefunden, ist aber ungültig. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: Toolsperrdatei gefunden unter: {1} FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Veröffentlichen Sie Ihre Anwendung als eine von einem Framework abhängige Anwendung. Eine kompatible .NET-Runtime muss auf dem Zielcomputer installiert sein, um Ihre Anwendung ausführen zu können. Generating deps.json at: {0} - Generating deps.json at: {0} + "deps.json" wird erzeugt unter: {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: Die Datei "prefercliruntime" wird ignoriert, da das Tool-Ziellaufwerk ({1}) eine andere Hauptversion aufweist als die aktuelle CLI-Runtime ({2}). In package {0}: {1} - In package {0}: + Im Paket "{0}": {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Falsch formatierte Umgebungsvariablen: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: ungültige commandResolverArguments {0} should be an integer - {0} should be an integer + {0} muss eine ganze Zahl sein. Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Ungültige Manifestdatei. Pfad "{0}": {1} Invalid project `{0}`. - Invalid project `{0}`. + Ungültiges Projekt "{0}". Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + Ungültiges Projekt "{0}". {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + Der Runtimebezeichner {0} ist ungültig. Gültige Runtimebezeichner sind: {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + Ungültige Projektmappe "{0}". {1} Invalid version string: {0} - Invalid version string: {0} + Ungültige Versionszeichenfolge: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + "{0}" wurde in NuGet-Feeds "{1}" nicht gefunden. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + JSON-Analysefehler in der Datei "{0}": {1} LEVEL - LEVEL + LEVEL Library - Library + Bibliothek {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: Bibliothek nicht in Sperrdatei gefunden. List - List + Liste {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: Suche nach prefercliruntime-Datei unter {1} .NET Cli Options: - .NET Cli Options: + .NET-Cli-Optionen: MSBuild arguments: {0} - MSBuild arguments: {0} + MSBuild-Argumente: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: MSBuild-Projektpfad = {1} MSBuild server - MSBuild server + MSBuild-Server File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + Die Datei "{0}" stammt von einem anderen Computer und wurde möglicherweise zum Schutz dieses Computers blockiert. Weitere Informationen zum Aufheben der Sperre und zu anderen Aktionen finden Sie unter https://aka.ms/motw. Missing 'isRoot' entry. - Missing 'isRoot' entry. + Eintrag "isRoot" fehlt. Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + Das Paket kann nicht hinzugefügt werden. Die Manifestdatei enthält bereits Version {0} des Pakets "{1}". Deinstallieren/installieren oder bearbeiten Sie die Manifestdatei "{2}", um die neue Version {3} anzugeben. Manifest version 0 is not supported. - Manifest version 0 is not supported. + Die Manifestversion 0 wird nicht unterstützt. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + Die Manifestversion lautet {0}. Dieses Manifest wird in dieser SDK-Version möglicherweise nicht unterstützt. Das SDK unterstützt Manifestversionen bis Version {1}. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + Die Einstiegspunktdatei "{0}" für den Befehl "{1}" wurde nicht im Paket gefunden. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + Die Einstellungsdatei "DotnetToolSettings.xml" wurde nicht im Paket gefunden. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Mehr als ein paketierter Shim verfügbar: {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + In "{0}" wurden mehrere Projektmappendateien gefunden. Geben Sie an, welche davon verwendet werden soll. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Geben Sie an, welche Projektdatei verwendet werden soll, weil "{0}" mehrere Projektdateien enthält. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Für diese Pakete ist mehr als ein Eintrag vorhanden: {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + Führen Sie "dotnet tool restore" aus, um den Befehl "{0}" verfügbar zu machen. New - New + Neu Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Zeigt kein Startbanner und keine Copyrightmeldung an. No projects found in the solution. - No projects found in the solution. + In der Projektmappe wurden keine Projekte gefunden. There are no {0} references in project {1}. - There are no {0} references in project {1}. + Im Projekt "{1}" liegen keine {0}-Verweise vor. Do not restore the project before building. - Do not restore the project before building. + Hiermit wird das Projekt nicht vor der Erstellung wiederhergestellt. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: + Fehler bei der Suche. Ausführliche Informationen zur Antwort der NuGet-Such-API: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + Die Signaturüberprüfung für das NuGet-Paket „{0}“ wird übersprungen, da sie aus einer Quelle stammt, für die keine Signaturüberprüfung erforderlich ist. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + Die Überprüfung der NuGet-Paketsignatur wird übersprungen. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: NuGet-Paketstamm: {1} OS - OS + Betriebssystem Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + Nur jeweils ein Projekt kann mithilfe der Option „-p“ angegeben werden. {Locked="-p"} The target operating system. - The target operating system. + Das Zielbetriebssystem. Project to Project - Project to Project + Projekt zu Projekt Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + Es kann immer nur eine .nuspec-Datei gepackt werden. Package - Package + Paket Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Paketverweis in Form eines Paketbezeichners wie {0} oder Paketbezeichner und -version getrennt durch „@“ wie „{0}@{1}“. Package reference id and version must not be null. - Package reference id and version must not be null. + Die Paketverweis-ID und die -version dürfen nicht null sein. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + --version kann nicht angegeben werden, wenn das Paketargument bereits eine Version enthält. {Locked="--version"} Package reference - Package reference + Paketverweis A version of {0} of package {1} - A version of {0} of package {1} + Eine Version von "{0}" des Pakets "{1}" Version {0} of package {1} - Version {0} of package {1} + Version "{0}" des Pakets "{1}" A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + Eine Version zwischen "{0}" und "{1}" des Pakets "{2}" A version higher than {0} of package {1} - A version higher than {0} of package {1} + Eine Version, die höher als "{0}" des Pakets "{1}" ist. A version less than {0} of package {1} - A version less than {0} of package {1} + Eine Version, die niedriger als "{0}" des Pakets "{1}" ist. Project - Project + Projekt Project `{0}` added to the solution. - Project `{0}` added to the solution. + Das Projekt "{0}" wurde der Projektmappe hinzugefügt. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + Für das Projekt ist bereits ein Verweis auf "{0}" vorhanden. The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Die zu verwendende Projektdatei. Wenn keine Datei angegeben ist, sucht der Befehl im aktuellen Verzeichnis nach einer Datei. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + Das Projekt "{0}" konnte nicht ausgewertet werden. Fehler bei der Auswertung: {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + Das Projekt "{0}" ist nicht vorhanden. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + "{1}" ist kein Zielframework von Projekt "{0}" . Project `{0}` is invalid. - Project `{0}` is invalid. + Das Projekt "{0}" ist ungültig. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + Das Projekt "{0}" kann nicht hinzugefügt werden, weil die Zielframeworks der beiden Projekte nicht kompatibel sind. Überprüfen Sie das Projekt, das Sie hinzuzufügen möchten, und stellen Sie sicher, dass es mit folgenden Zielen kompatibel ist: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + Das Projekt "{0}" wurde in der Projektmappe nicht gefunden. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Die Projekt- oder C#-Datei (dateibasiertes Programm), auf die zugegriffen werden soll. Wenn keine Datei angegeben ist, durchsucht der Befehl das aktuelle Verzeichnis nach einer Projektdatei. PROJECT | FILE - PROJECT | FILE + PROJEKT | DATEI Project reference - Project reference + Projektverweis Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + Der Projektverweis "{0}" wurde nicht gefunden. Project reference(s) - Project reference(s) + Projektverweis(e) Project reference `{0}` removed. - Project reference `{0}` removed. + Der Projektverweis "{0}" wurde entfernt. Project `{0}` removed from solution. - Project `{0}` removed from solution. + Das Projekt "{0}" wurde aus der Projektmappe entfernt. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + Das Projekt "{0}" wurde aus der Projektmappe entfernt. Razor build server - Razor build server + Razor-Buildserver Reference - Reference + Verweis Reference `{0}` added to the project. - Reference `{0}` added to the project. + Der Verweis "{0}" wurde dem Projekt hinzugefügt. Remove - Remove + Entfernen Required command was not provided. - Required command was not provided. + Der erforderliche Befehl wurde nicht bereitgestellt. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: commandspec aus {1} Toolbibliotheken wird aufgelöst. Response file '{0}' does not exist. - Response file '{0}' does not exist. + Die Antwortdatei „{0}“ ist nicht vorhanden. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: + Fehler bei der Suche. Durch eine spätere Wiederholung kann das Problem möglicherweise behoben werden. Ausführliche Informationen zur Antwort der NuGet-Such-API: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Diagnoseausgabe aktivieren. Display the command schema as JSON. - Display the command schema as JSON. + Das Befehlsschema als JSON anzeigen. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Die Optionen „--self-contained“ und „--no-self-contained“ können nicht gemeinsam verwendet werden. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Hiermit wird die .NET-Runtime mit Ihrer Anwendung veröffentlicht, sodass die Runtime nicht auf dem Zielcomputer installiert werden muss. +Der Standardwert lautet FALSE. Wenn sie jedoch auf .NET 7 oder niedriger abzielen, lautet der Standardwert TRUE, wenn ein Laufzeitbezeichner angegeben wird. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + Der Befehl "{0}" steht in Konflikt zu einem vorhandenen Befehl aus einem anderen Tool. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Suchen Sie nach verfügbaren Workloadversionen oder was eine Workloadversion umfasst. Verwenden Sie "dotnet workload search version --help", um weitere Informationen zu erhalten. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Hiermit wird die Hilfe zur Befehlszeile angezeigt. The shutdown command failed: {0} - The shutdown command failed: {0} + Fehler beim Befehl zum Herunterfahren: {0} Solution - Solution + Projektmappe Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + Die Projektmappe "{0}" enthält das Projekt "{1}" bereits. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + Das Projektmappenargument "{0}" wurde falsch eingefügt. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Die angegebene Projektmappendatei "{0}" ist nicht vorhanden, oder das Verzeichnis enthält keine Projektmappendatei. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Das Projekt oder die Projektmappendatei, die verwendet werden soll. Wenn keine Datei angegeben ist, durchsucht der Befehl das aktuelle Verzeichnis nach einer Datei. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Die Projekt- oder Projektmappe- oder C#-Datei (dateibasiertes Programm), auf die zugegriffen werden soll. Wenn keine Datei angegeben ist, durchsucht der Befehl das aktuelle Verzeichnis nach einem Projekt oder einer Projektmappe. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJEKT | PROJEKTMAPPE | DATEI Specify at least one {0}. - Specify at least one {0}. + Geben Sie mindestens ein Element "{0}" an. You must specify at least one project to add. - You must specify at least one project to add. + Geben Sie mindestens ein hinzuzufügendes Projekt an. You must specify at least one project to remove. - You must specify at least one project to remove. + Geben Sie mindestens ein zu entfernendes Projekt an. You must specify at least one reference to remove. - You must specify at least one reference to remove. + Geben Sie mindestens einen zu löschenden Verweis an. {0}: tool library found {1} - {0}: tool library found {1} + {0}: Toolbibliothek gefunden: {1} Missing 'version' entry. - Missing 'version' entry. + Eintrag "version" fehlt. Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + Das Tool "{0}" (Version "{1}") ist bereits installiert. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + Paket {0} ist kein .NET-Tool. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + Der Befehl "{0}" enthält mindestens eines der folgenden ungültigen Zeichen: {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + Der Befehlsname "{0}" kann nicht mit einem vorangestellten Punkt (.) beginnen. Invalid XML: {0} - Invalid XML: {0} + Ungültiges XML: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + Das Tool definiert einen Befehl mit fehlender Namenseinstellung. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + Dem Befehl "{0}" fehlt eine Einstiegspunkteinstellung. More than one command is defined for the tool. - More than one command is defined for the tool. + Für das Tool wurden mehrere Befehle definiert. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + Das Tool "{0}" verwendet die nicht unterstützte Ausführung "{1}". The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + Das Tool unterstützt die aktuelle Architektur oder das Betriebssystem ({0}) nicht. Unterstützte Laufzeiten: {1} Type - Type + Typ The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + Die angeforderte Zertifikatkettenrichtlinie konnte nicht überprüft werden: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + Temporäre deps.json-Datei kann nicht gelöscht werden: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + „deps.json“ konnte nicht generiert werden, möglicherweise wurde die Datei bereits generiert. Sie können die Option „-d“ nach „dotnet“ angeben, um eine Diagnoseausgabe zu erhalten (Beispiel: „dotnet -d <toolname>“: {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + Dotnetmultiplexer nicht gefunden Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + Erwartet wurde "{0}" für die Eigenschaft "{1}". Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Befehl oder Argument "{0}" nicht erkannt Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + Das Projekt "{0}" weist einen unbekannten Projekttyp auf und kann der Projektmappendatei nicht hinzugefügt werden. Wenden Sie sich an Ihren SDK-Anbieter, um Unterstützung zu erhalten. Update - Update + Aktualisieren VB/C# compiler server - VB/C# compiler server + VB/C#-Compilerserver Value - Value + Wert Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Hiermit wird der Ausführlichkeitsgrad von MSBuild festgelegt. Zulässige Werte sind "q[uiet]", "m[inimal]", "n[ormal]", "d[etailed]" und "diag[nostic]". Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + Es wurde überprüft, ob das NuGet-Paket „{0}“ über eine gültige Signatur verfügt. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + Version für Paket "{0}" konnte nicht aufgelöst werden. Version {0} is invalid. - Version {0} is invalid. + Version {0} ist ungültig. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + Problem beim Verifizieren der Workloads. Führen Sie "dotnet workload update" aus, um weitere Informationen zu erhalten. {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Alle Bestätigungsaufforderungen mit "Ja" akzeptieren. diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.es.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.es.xlf index 164cba68de6a..4593fe79a3a6 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.es.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.es.xlf @@ -4,89 +4,89 @@ Add - Add + Agregar Ambiguous command name: {0} - Ambiguous command name: {0} + Nombre de comando ambiguo: {0} ARCH - ARCH + ARCO The target architecture. - The target architecture. + La arquitectura de destino. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Ruta de acceso de los artefactos. Todas las salidas del proyecto, incluidas las salidas de compilación, publicación y empaquetado, se incluirán en subcarpetas en la ruta de acceso especificada. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: intentando crear commandspec {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: intentando encontrar el comando {1} en {2} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: intentando resolver {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: intentando resolver especificaciones de comando desde la herramienta {1} outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} no existe Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + No se pueden crear las correcciones de compatibilidad (shim) de shell para una ruta ejecutable vacía. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + No se encuentra un archivo de manifiesto. Lista de rutas de acceso buscadas: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + No se encuentra un paquete con el id. de paquete {0} en el archivo de manifiesto. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + No se ha podido resolver el identificador en el tiempo de ejecución actual. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + No se admite la especificación de las opciones '-r|--runtime' y '-a|--arch'. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + No se admite la especificación de las opciones '-r|--runtime' y '-os'. @@ -100,11 +100,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Establece el valor de una variable de entorno. +Crea la variable si no existe o la reemplaza en caso de que exista. +Este argumento se puede especificar varias veces para proporcionar múltiples variables. -Examples: +Ejemplos: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -114,7 +114,7 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" @@ -129,12 +129,12 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Establece el valor de una variable de entorno. +Crea la variable si no existe o la reemplaza en caso de que exista. +Esto forzará la ejecución de las pruebas en un proceso aislado. +Este argumento se puede especificar varias veces para proporcionar múltiples variables. -Examples: +Ejemplos: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -144,102 +144,102 @@ Examples: Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Establece el valor de la propiedad $(VersionSuffix) que se usará al compilar el proyecto. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + El ancho máximo de la columna debe ser superior a cero. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + No se encontró el comando ejecutable para "{0}". Puede que el proyecto no se haya restaurado o que la restauración no haya tenido éxito. Ejecute "dotnet restore" Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Permite que el comando se detenga y espere la entrada o acción del usuario (por ejemplo, para autenticarse). Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Permite que se instalen paquetes de versión preliminar. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec es nulo. FRAMEWORK - FRAMEWORK + MARCO DE DIRECTIVA File `{0}` not found. - File `{0}` not found. + No se encuentra el archivo "{0}". CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + El archivo de solución {0} especificado no existe, o bien no hay ningún archivo de solución en el directorio. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + No se encuentra la solución o el directorio "{0}". {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: no se pudo encontrar el archivo runtimeconfig.json para la herramienta {1} Delete - Delete + Eliminar Unable to find deps.json generator project. - Unable to find deps.json generator project. + No se puede encontrar el proyecto de generador deps.json. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: no se encontró un proyecto coincidente {1}. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: ProjectFactory no encontró el proyecto. Did you mean the following command? - Did you mean the following command? + ¿Quería decir el siguiente comando? Directory - Directory + Directorio Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Fuerce el comando para omitir los servidores de compilación persistentes. {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} no existe @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + El directorio de herramientas "{0}" no está en la variable de entorno PATH. +Si usa Bash, puede agregarlo a su perfil mediante la ejecución del comando siguiente: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Agregue las herramientas del SDK de .NET Core export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Agréguelo a la sesión actual mediante la ejecución del comando siguiente: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + Dado que acaba de instalar el SDK de .NET, tendrá que cerrar la sesión o reiniciarla antes de ejecutar la herramienta instalada. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + El directorio de herramientas "{0}" no está en la variable de entorno PATH. +Si usa Bash, puede agregarlo a su perfil mediante la ejecución del comando siguiente: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Agregue las herramientas del SDK de .NET Core export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Agréguelo a la sesión actual mediante la ejecución del comando siguiente: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + Dado que acaba de instalar el SDK de .NET, tendrá que volver a abrir el terminal antes de ejecutar la herramienta instalada. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + El directorio de herramientas "{0}" no está en la variable de entorno PATH. +Si usa zsh, puede agregarlo a su perfil mediante la ejecución del comando siguiente: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# Agregue las herramientas del SDK de .NET Core export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +Y ejecute `zsh -l` para que esté disponible para la sesión actual. -You can only add it to the current session by running the following command: +Solo puede agregarlo a la sesión actual ejecutando el comando siguiente: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + El directorio de herramientas "{0}" no está actualmente en la variable de entorno PATH. -You can add the directory to the PATH by running the following command: +Puede agregar el directorio a PATH mediante la ejecución del comando siguiente: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + Dado que acaba de instalar el SDK de .NET, tendrá que volver a abrir la ventana del símbolo del sistema antes de ejecutar la herramienta instalada. Error - Error + Error You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + Está ejecutando la operación "tool install" con un origen "HTTP", {0}. NuGet requiere orígenes HTTPS. Para usar un origen HTTP, es necesario establecer explícitamente "allowInsecureConnections" en true en el archivo NuGet.Config. Consulte https://aka.ms/nuget-https-everywhere para obtener más información. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: se espera deps.json en: {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + No se pudieron establecer los permisos ejecutables del usuario para las correcciones de compatibilidad (shim) de shell: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + No se pudieron crear correcciones de compatibilidad (shim) de herramientas para el comando "{0}": {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: no se pudo encontrar commandPath {1} Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + No se pudo encontrar la biblioteca en el archivo de recursos de NuGet para el paquete de herramientas '{0}': {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + La asignación de origen del paquete está habilitada, pero no se encontró ningún origen en el id. de paquete especificado: {0}. Consulte la documentación de asignación de origen del paquete en https://aka.ms/nuget-package-source-mapping para obtener más detalles. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + No se pudo encontrar el paquete de herramientas almacenado provisionalmente "{0}". {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: no se pudo encontrar toolAssembly para {1} Failed to load NuGet source {0} - Failed to load NuGet source {0} + No se pudo cargar el origen de NuGet {0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + La asignación de origen del paquete está habilitada, pero no hay ningún origen asignado en el id. de paquete especificado: {0}. Consulte la documentación de asignación de origen del paquete en https://aka.ms/nuget-package-source-mapping para obtener más detalles. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + No se pudo leer el archivo de recursos de NuGet para el paquete de herramientas '{0}': {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + No se pudo leer el archivo pid "{0}": {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + No se pudieron quitar correcciones de compatibilidad (shim) de herramientas para el comando "{0}": {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: no se pudo resolver commandspec desde la biblioteca. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Error al recuperar la configuración de la herramienta: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + No se pudo agregar "{0}" a la variable de entorno PATH. Agregue este directorio a PATH para usar las herramientas instaladas con "dotnet tool install". Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + No se pudo desinstalar el paquete de herramientas "{0}": {1} Failed to validate package signing. {0} - Failed to validate package signing. + No se pudo validar la firma del paquete. {0} Missing 'commands' entry. - Missing 'commands' entry. + Falta la entrada "commands". File - File + archivo The file-based app to operate on. - The file-based app to operate on. + La aplicación basada en archivos en la que se va a operar. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + La versión de formato es superior a la admitida. Puede que la herramienta no sea compatible con esta versión del SDK. Actualice el SDK. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + La versión de formato es incorrecta. Puede que la herramienta no sea compatible con esta versión del SDK. Póngase en contacto con el autor de la herramienta. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + Falta la versión de formato. Puede que la herramienta no sea compatible con esta versión del SDK. Póngase en contacto con el autor de la herramienta. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + Se ha encontrado el proyecto "{0}", pero no es válido. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: se encontró el archivo de bloqueo de herramienta en: {1} FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Publique la aplicación como una aplicación dependiente del marco de trabajo. para ejecutar la aplicación debe instalarse un entorno de ejecución de .NET compatible en el equipo de destino. Generating deps.json at: {0} - Generating deps.json at: {0} + Generando deps.json en: {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: se ignorará el archivo prefercliruntime dado que la plataforma de destino de la herramienta ({1}) tiene una versión mayor que el entorno de tiempo de ejecución actual de la CLI ({2}) In package {0}: {1} - In package {0}: + En el paquete {0}: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Variables de entorno con formato incorrecto: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: commandResolverArguments no válidos {0} should be an integer - {0} should be an integer + {0} debe ser un entero Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Archivo de manifiesto no válido. Ruta de acceso {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + El proyecto "{0}" no es válido. Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + El proyecto "{0}" no es válido. {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + El identificador en tiempo de ejecución {0} no es válido. Los identificadores en tiempo de ejecución válidos son: {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + La solución "{0}" no es válida. {1} Invalid version string: {0} - Invalid version string: {0} + Cadena de versión no válida: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + No se encuentra {0} en las fuentes de NuGet {1}. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + Error de análisis JSON en el archivo {0} : {1} LEVEL - LEVEL + LEVEL Library - Library + Biblioteca {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: no se encontró la biblioteca en el archivo de bloqueo. List - List + Enumerar {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: buscando el archivo prefercliruntime en "{1}" .NET Cli Options: - .NET Cli Options: + Opciones de la CLI de .NET: MSBuild arguments: {0} - MSBuild arguments: {0} + Argumentos de MSBuild: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: ruta del proyecto MSBuild = {1} MSBuild server - MSBuild server + Servidor de MSBuild File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + El archivo {0} procedía de otro equipo y podría bloquearse para ayudar a proteger este equipo. Para obtener más información, y cómo desbloquearlo, consulte https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + Falta la entrada "isRoot". Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + No se puede agregar el paquete. El archivo de manifiesto ya contiene la versión {0} del paquete {1}. Desinstale, instale o edite el archivo de manifiesto {2} para especificar la nueva versión {3}. Manifest version 0 is not supported. - Manifest version 0 is not supported. + No se admite la versión de manifiesto 0. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + La versión de manifiesto es {0}. Puede que este manifiesto no se admita en esta versión del SDK que puede admitir hasta la versión de manifiesto {1}. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + El archivo de punto de entrada "{0}" para el comando "{1}" no se encontró en el paquete. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + El archivo de configuración "DotnetToolSettings.xml" no se encontró en el paquete. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Hay más de una opción de correcciones de compatibilidad (shim) empaquetadas: {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + Se han encontrado varios archivos de solución en {0}. Especifique el que debe usarse. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Especifique el archivo de proyecto que se debe usar porque "{0}" contiene más de un archivo de proyecto. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Existe más de una entrada para los paquetes: {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + Ejecute "dotnet tool restore" para que esté disponible el comando "{0}". New - New + Nuevo Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + No mostrar la pancarta de inicio ni el mensaje de copyright. No projects found in the solution. - No projects found in the solution. + No se han encontrado proyectos en la solución. There are no {0} references in project {1}. - There are no {0} references in project {1}. + No hay ninguna referencia {0} en el proyecto {1}. Do not restore the project before building. - Do not restore the project before building. + No restaure el proyecto antes de la compilación. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: + No se pudo buscar. Detalles de la respuesta de la API de búsqueda de NuGet: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + Omitiendo la comprobación de firma para el paquete NuGet "{0}" porque procede de un origen que no requiere validación de firma. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + Omitiendo la comprobación de la firma del paquete NuGet. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: raíz de paquetes NuGet: {1} OS - OS + SO Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + Solo se puede especificar un proyecto a la vez mediante la opción -p. {Locked="-p"} The target operating system. - The target operating system. + El sistema operativo de destino. Project to Project - Project to Project + Proyecto a proyecto Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + Solo se puede empaquetar un archivo .nuspec a la vez Package - Package + Paquete Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Referencia de paquete en forma de identificador de paquete como "{0}" o identificador de paquete y versión separados por "@", como "{0}@{1}". Package reference id and version must not be null. - Package reference id and version must not be null. + El id. de referencia y la versión del paquete no deben ser nulos. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + No se puede especificar --version cuando el argumento del paquete ya contiene una versión. {Locked="--version"} Package reference - Package reference + Referencia de paquete A version of {0} of package {1} - A version of {0} of package {1} + Versión de {0} del paquete {1} Version {0} of package {1} - Version {0} of package {1} + Versión {0} del paquete {1} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + Una versión entre {0} y {1} del paquete {2} A version higher than {0} of package {1} - A version higher than {0} of package {1} + Una versión superior a {0} del paquete {1} A version less than {0} of package {1} - A version less than {0} of package {1} + Versión anterior a la {0} del paquete {1} Project - Project + Proyecto Project `{0}` added to the solution. - Project `{0}` added to the solution. + Se ha agregado el proyecto "{0}" a la solución. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + El proyecto ya tiene una referencia a "{0}". The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Archivo del proyecto sobre el que se va a operar. Si no se especifica un archivo, el comando buscará uno en el directorio actual. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: -{1}. + El proyecto "{0}" no se puede evaluar. Se produjo el siguiente error en la evaluación: +{1} Project `{0}` does not exist. - Project `{0}` does not exist. + El proyecto "{0}" no existe. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + El proyecto "{0}" no tiene como destino la plataforma "{1}". Project `{0}` is invalid. - Project `{0}` is invalid. + El proyecto "{0}" no es válido. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + El proyecto "{0}" no se puede agregar debido a que hay plataformas de destino no compatibles entre los dos proyectos. Revise el proyecto que intenta agregar y compruebe que sea compatible con las plataformas siguientes: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + No se encuentra el proyecto "{0}" en la solución. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + El archivo de proyecto o la aplicación basada en archivos de C# en que se va a operar. Si no se especifica un archivo, el comando buscará un archivo de proyecto en el directorio actual. PROJECT | FILE - PROJECT | FILE + PROYECTO | ARCHIVO Project reference - Project reference + Referencia de proyecto Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + No se encuentra la referencia de proyecto "{0}". Project reference(s) - Project reference(s) + Referencias de proyecto Project reference `{0}` removed. - Project reference `{0}` removed. + La referencia de proyecto "{0}" se ha quitado. Project `{0}` removed from solution. - Project `{0}` removed from solution. + Se ha quitado el proyecto "{0}" de la solución. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + Se ha quitado el proyecto "{0}" de la solución. Razor build server - Razor build server + Servidor de compilación de Razor Reference - Reference + Referencia Reference `{0}` added to the project. - Reference `{0}` added to the project. + Se ha agregado la referencia "{0}" al proyecto. Remove - Remove + Quitar Required command was not provided. - Required command was not provided. + No se proporcionó el comando requerido. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: resolviendo commandspec desde las bibliotecas de herramientas de {1}. Response file '{0}' does not exist. - Response file '{0}' does not exist. + El archivo de respuesta '{0}' no existe. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: + No se pudo buscar. Puede que el problema se resuelva si lo reintenta más tarde. Detalles de la respuesta de la API de búsqueda de NuGet: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Habilita la salida de diagnóstico. Display the command schema as JSON. - Display the command schema as JSON. + Muestre el esquema de comandos como JSON. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Las opciones '--self-contained' y '--no-self-contained' no se pueden usar juntas. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Publique el entorno de ejecución de .NET con la aplicación para que no sea necesario instalarlo en el equipo de destino. +El valor predeterminado es "false." Sin embargo, cuando el destino es .NET 7 o inferior, el valor predeterminado es "true" si se especifica un identificador en tiempo de ejecución. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + El comando "{0}" está en conflicto con un comando existente de otra herramienta. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Busque las versiones de carga de trabajo disponibles o lo que comprende una versión de carga de trabajo. Use "dotnet workload search version --help" para obtener más información. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Muestra ayuda de la línea de comandos. The shutdown command failed: {0} - The shutdown command failed: {0} + Error del comando de apagado: {0} Solution - Solution + Solución Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + La solución {0} ya contiene el proyecto {1}. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + El argumento de solución '{0}' está mal colocado. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + El archivo de solución {0} especificado no existe, o bien no hay ningún archivo de solución en el directorio. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + El archivo de proyecto o solución donde operar. Si no se especifica un archivo, el comando buscará uno en el directorio actual. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Proyecto o solución o archivo de C# (programa basado en archivos) en el que se va a operar. Si no se especifica un archivo, el comando buscará en el directorio actual un proyecto o una solución. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROYECTO | SOLUCIÓN | ARCHIVO Specify at least one {0}. - Specify at least one {0}. + Especifique al menos un {0}. You must specify at least one project to add. - You must specify at least one project to add. + Debe especificar al menos un proyecto para agregarlo. You must specify at least one project to remove. - You must specify at least one project to remove. + Debe especificar al menos un proyecto para quitarlo. You must specify at least one reference to remove. - You must specify at least one reference to remove. + Debe especificar al menos una referencia para quitarla. {0}: tool library found {1} - {0}: tool library found {1} + {0}: se encontró biblioteca de herramientas {1} Missing 'version' entry. - Missing 'version' entry. + Falta la entrada "version". Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + La herramienta "{0}" (versión "{1}") ya está instalada. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + El paquete {0} no es una herramienta de .NET. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + El comando "{0}" contiene uno o varios de los siguientes caracteres no válidos: {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + El nombre del comando "{0}" no puede estar precedido de un punto (.). Invalid XML: {0} - Invalid XML: {0} + XML no válido: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + La herramienta define un comando en el que falta un valor de nombre. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + En el comando "{0}", falta un valor de punto de entrada. More than one command is defined for the tool. - More than one command is defined for the tool. + Se ha definido más de un comando para la herramienta. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + La herramienta "{0}" usa un ejecutor no compatible. "{1}". The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + La herramienta no es compatible con la arquitectura o el sistema operativo actual ({0}). Entornos de ejecución compatibles: {1} Type - Type + Tipo The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + No se pudo comprobar la directiva de cadena de certificados solicitada: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + no se puede eliminar el archivo deps.json temporal: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + No se puede generar deps.json, es posible que ya se haya generado. Puede especificar la opción "-d" después de "dotnet" para la salida de diagnóstico (por ejemplo, "dotnet -d <toolname>": {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + No se puede ubicar el multiplexor dotnet Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + Se esperaba un {0} para la propiedad "{1}". Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + No se reconoce el comando o el argumento "{0}" Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + El proyecto "{0}" tiene un tipo de proyecto desconocido y no se puede agregar al archivo de solución. Póngase en contacto con el proveedor de SDK para obtener asistencia Update - Update + Actualizar VB/C# compiler server - VB/C# compiler server + Servidor del compilador de VB o C# Value - Value + Valor Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Establece el nivel de detalle de MSBuild. Los valores permitidos son q[uiet], m[inimal], n[ormal], d[etailed] y diag[nostic]. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + Se comprobó que el paquete NuGet "{0}" tiene una firma válida. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + No se pudo resolver la versión del paquete "{0}". Version {0} is invalid. - Version {0} is invalid. + La versión {0} no es válida. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + Se encontró un problema al comprobar las cargas de trabajo. Para obtener más información, ejecute "dotnet workload update". {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Acepte todas las solicitudes de confirmación mediante "sí." diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.fr.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.fr.xlf index c9ab7fc1c201..9d544de8464b 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.fr.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.fr.xlf @@ -4,89 +4,89 @@ Add - Add + ajouter Ambiguous command name: {0} - Ambiguous command name: {0} + Nom de commande ambigu : {0} ARCH - ARCH + ARC The target architecture. - The target architecture. + L’architecture cible ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Le chemin des artefacts. Toutes les sorties du projet, y compris les sorties de build, de publication et de pack, iront dans des sous-dossiers sous le chemin spécifié. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0} : tentative de création de la spécification de commande {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0} : tentative de recherche de la commande {1} dans {2} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0} : tentative de résolution de {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0} : tentative de résolution de la spécification de commande à partir de l'outil {1} outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver : {0} n'existe pas Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + Impossible de créer un shim d'environnement pour un chemin d'exécutable vide. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + Impossible de trouver un fichier manifeste. Liste des chemins de recherche : {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + Le package ayant l'ID de package {0} est introuvable dans le fichier manifeste. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Échec de la résolution de l’identificateur d’exécution actuel Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + La spécification des options « -r |--Runtime » et « -a |--Arch » n’est pas prise en charge. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + La spécification des options « -r |--Runtime » et « os » n’est pas prise en charge. @@ -100,11 +100,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Définit la valeur d’une variable d’environnement. +Crée la variable si elle n’existe pas, et la remplace si elle existe. +Vous pouvez spécifier cet argument plusieurs fois pour fournir plusieurs variables. -Examples: +Exemples : -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -114,7 +114,7 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" @@ -129,117 +129,117 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Définit la valeur d'une variable d'environnement. +Crée la variable si elle n'existe pas, et la remplace si elle existe. +Cela entraîne l'exécution forcée des tests dans un processus isolé. +Vous pouvez spécifier cet argument plusieurs fois pour fournir plusieurs variables. -Examples: +Exemples : -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="valeur avec des espaces" +-e VARIABLE="valeur;séparée;par;des;points;virgules" -e VAR1=abc -e VAR2=def -e VAR3=ghi Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Définissez la valeur de la propriété $(VersionSuffix) à utiliser durant la génération du projet. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + La largeur maximale de colonne doit être supérieure à zéro. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + La commande exécutable pour "{0}" est introuvable. Le projet n'a peut-être pas été restauré, ou la restauration n'a pas fonctionné - exécutez 'dotnet restore' Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Permet à la commande de s'arrêter et d'attendre une entrée ou une action de l'utilisateur (par exemple pour effectuer une authentification). Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Permet d'installer les packages de préversion. {0}: commandSpec is null. - {0}: commandSpec is null. + {0} : commandSpec a une valeur null. FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + Fichier '{0}' introuvable. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Le fichier solution spécifié {0} n'existe pas ou il n'y a pas de fichier solution dans le répertoire. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + La solution ou le répertoire '{0}' est introuvable. {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0} : le fichier runtimeconfig.json est introuvable pour l'outil {1} Delete - Delete + supprimer Unable to find deps.json generator project. - Unable to find deps.json generator project. + Le projet de générateur deps.json est introuvable. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0} : projet correspondant introuvable {1}. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0} : ProjectFactory n'a pas trouvé le projet. Did you mean the following command? - Did you mean the following command? + Vouliez-vous dire la commande suivante ? Directory - Directory + Répertoire Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Forcez la commande à ignorer tous les serveurs de build persistants. {0}: {1} does not exist - {0}: {1} does not exist + {0} : {1} n'existe pas @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Le répertoire d'outils « {0} » n'est pas dans la variable d'environnement PATH. +Si vous utilisez bash, vous pouvez l'ajouter à votre profil en exécutant la commande suivante : cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Ajouter les outils du kit SDK .NET Core export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Vous pouvez l'ajouter à la session active en exécutant la commande suivante : export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + Dans la mesure où vous venez d'installer le kit SDK .NET, vous devez vous déconnecter ou redémarrer votre session avant d'exécuter l'outil que vous avez installé. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Le répertoire d'outils « {0} » n'est pas dans la variable d'environnement PATH. +Si vous utilisez bash, vous pouvez l'ajouter à votre profil en exécutant la commande suivante : cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Ajouter les outils du kit SDK .NET Core export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Vous pouvez l'ajouter à la session active en exécutant la commande suivante : export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + Dans la mesure où vous venez d'installer le kit SDK .NET, vous devez rouvrir le terminal avant d'exécuter l'outil que vous avez installé. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + Le répertoire d'outils « {0} » n'est pas dans la variable d'environnement PATH. +Si vous utilisez zsh, vous pouvez l'ajouter à votre profil en exécutant la commande suivante : cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# Ajouter les outils du kit SDK .NET Core export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +Exécutez ensuite `zsh -l` afin de le rendre disponible pour la session active. -You can only add it to the current session by running the following command: +Vous pouvez uniquement l'ajouter à la session active en exécutant la commande suivante : export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + Le répertoire d'outils '{0}' se ne trouve pas actuellement sur la variable d'environnement PATH. -You can add the directory to the PATH by running the following command: +Vous pouvez ajouter le répertoire à PATH en exécutant la commande suivante : setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + Dans la mesure où vous venez d'installer le kit SDK .NET, vous devez rouvrir la fenêtre d'invite de commandes avant d'exécuter l'outil que vous avez installé. Error - Error + Erreur You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + Vous exécutez l'opération « installation d’outils » avec une source « HTTP » : {0}. NuGet nécessite des sources HTTPS. Pour utiliser une source HTTP, vous devez définir explicitement « allowInsecureConnections » sur true dans votre fichier NuGet.Config. Reportez-vous à https://aka.ms/nuget-https-everywhere pour plus d’informations. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0} : deps.json attendu sur {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + Échec de définition des autorisations utilisateur d'exécutable pour le shim d'environnement : {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + Échec de création d'un shim d'outil pour la commande '{0}' : {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0} : échec de la recherche de commandPath {1} Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + Bibliothèque introuvable dans le fichier de ressources NuGet pour le package d’outils « {0} » : {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Le mappage de source de package est activé, mais aucune source n’a été trouvée sous l’ID de package spécifié : {0}. Pour plus d’informations, consultez la documentation relative au mappage de source de package sur https://aka.ms/nuget-package-source-mapping. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + Package d'outils indexé '{0}' introuvable. {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0} : échec de la recherche de toolAssembly pour {1} Failed to load NuGet source {0} - Failed to load NuGet source {0} + Échec du chargement de la source DeNget {0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Le mappage de source de package est activé, mais aucune source n’est mappée sous l’ID de package spécifié : {0}. Pour plus d’informations, consultez la documentation relative au mappage de source de package sur https://aka.ms/nuget-package-source-mapping. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + Échec de la lecture du fichier de ressources NuGet pour le paquetage d'outils « {0} » : {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + Échec de lecture du fichier pid '{0}' : {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + Échec de retrait d'un shim d'outil pour la commande '{0}' : {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0} : échec de la résolution de la spécification de commande à partir de la bibliothèque. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Échec de récupération de la configuration de l'outil : {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + L'ajout de '{0}' à la variable d'environnement PATH a échoué. Ajoutez ce répertoire à votre variable PATH pour pouvoir utiliser les outils installés avec 'dotnet tool install'. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + Échec de désinstallation du package d'outils '{0}' : {1} Failed to validate package signing. {0} - Failed to validate package signing. + Nous n’avons pas pu valider la signature de package. {0} Missing 'commands' entry. - Missing 'commands' entry. + Entrée 'commands' manquante. File - File + fichier The file-based app to operate on. - The file-based app to operate on. + Application basée sur des fichiers sur laquelle effectuer des opérations. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + Version de format supérieure à la version prise en charge. Cet outil risque de ne pas être pris en charge dans cette version de SDK. Mettez à jour votre SDK. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + Version de format incorrecte. Cet outil risque de ne pas être pris en charge dans cette version du SDK. Contactez l'auteur de l'outil. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + Version de format manquante. Cet outil risque de ne pas être pris en charge dans cette version du SDK. Contactez l'auteur de l'outil. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + Projet '{0}' trouvé, mais il n'est pas valide. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0} : fichier de verrouillage d'outil trouvé sur : {1} FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Publiez votre application en tant qu'application dépendante du framework. Un runtime .NET compatible doit être installé sur la machine cible pour exécuter votre application. Generating deps.json at: {0} - Generating deps.json at: {0} + Génération de deps.json sur : {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0} : fichier prefercliruntime ignoré, car le framework cible de l'outil ({1}) a une autre version principale que celle du runtime CLI actuel ({2}) In package {0}: {1} - In package {0}: + Dans le package {0} : {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Mise en forme incorrecte des variables d’environnement : {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0} : commandResolverArguments non valide {0} should be an integer - {0} should be an integer + {0} doit être un entier Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Fichier manifeste non valide. Chemin {0} : {1} Invalid project `{0}`. - Invalid project `{0}`. + Projet '{0}' non valide. Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + Projet non valide : '{0}'. {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + L’identificateur d’exécution {0} n’est pas valide. Les identificateurs d’exécution valides sont : {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + Solution non valide '{0}'. {1}. Invalid version string: {0} - Invalid version string: {0} + Chaîne de version non valide : {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + {0} est introuvable dans les flux NuGet {1}. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + Erreur d'analyse Json dans le fichier {0} : {1} LEVEL - LEVEL + LEVEL Library - Library + Bibliothèque {0}: library not found in lock file. - {0}: library not found in lock file. + {0} : bibliothèque introuvable dans le fichier de verrouillage. List - List + Répertorier {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0} : recherche du fichier prefercliruntime sur '{1}' .NET Cli Options: - .NET Cli Options: + Options Cli .NET : MSBuild arguments: {0} - MSBuild arguments: {0} + Arguments MSBuild : {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0} : CHEMIN_MSBUILD_EXE = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0} : chemin de projet MSBuild = {1} MSBuild server - MSBuild server + Serveur MSBuild File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + Le fichier {0} provient d'un autre ordinateur et a éventuellement été bloqué pour protéger cet ordinateur. Pour plus d'informations, notamment sur le déblocage, consultez https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + Entrée 'isRoot' manquante. Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + Impossible d'ajouter le package. Le fichier manifeste contient déjà la version {0} du package {1}. Désinstallez/installez ou modifiez le fichier manifeste {2} pour spécifier la nouvelle version {3}. Manifest version 0 is not supported. - Manifest version 0 is not supported. + Le manifeste version 0 n'est pas pris en charge. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + La version du manifeste est la version {0}. Ce manifeste n'est peut-être pas pris en charge dans cette version du kit SDK, qui peut prendre en charge le manifeste jusqu'à la version {1}. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + Le fichier de point d'entrée '{0}' pour la commande '{1}' est introuvable dans le package. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + Le fichier de paramètres 'DotnetToolSettings.xml' est introuvable dans le package. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Plusieurs shims empaquetés sont disponibles : {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + Plusieurs fichiers solution dans {0}. Spécifiez celui à utiliser. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Spécifiez le fichier projet à utiliser, car '{0}' contient plusieurs fichiers projet. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Il existe plusieurs entrées pour le ou les packages : {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + Exécutez "dotnet tool restore" pour rendre la commande "{0}" disponible. New - New + Nouveau Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + N'affiche pas la bannière de démarrage ni le message de copyright. No projects found in the solution. - No projects found in the solution. + Aucun projet trouvé dans la solution. There are no {0} references in project {1}. - There are no {0} references in project {1}. + Il n'existe aucune référence {0} dans le projet {1}. Do not restore the project before building. - Do not restore the project before building. + Ne restaurez pas le projet avant la génération. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + Échec de la recherche. Détails de la réponse de l'API de recherche NuGet : + RequestUrl : {0}. ReasonPhrase : {1}. StatusCode : {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + La vérification de signature pour le package NuGet « {0} » est ignorée, car elle provient d’une source qui ne nécessite pas de validation de signature. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + La vérification de la signature du package NuGet est ignorée. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0} : racine des packages NuGet : {1} OS - OS + Système d'exploitation Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + Vous ne pouvez spécifier qu’un seul projet à la fois à l’aide de l’option -p. {Locked="-p"} The target operating system. - The target operating system. + Le système d'exploitation cible Project to Project - Project to Project + Projet à projet Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + Vous ne pouvez empaqueter qu’un seul fichier .nuspec à la fois Package - Package + Package Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Référence de package sous la forme d’un identificateur de package tel que « {0} » ou d’un identificateur de package et d’une version séparés par « @ », comme « {0}@{1} ». Package reference id and version must not be null. - Package reference id and version must not be null. + L’ID et la version de référence du package ne doivent pas être nuls. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Impossible de spécifier --version lorsque l’argument de package contient déjà une version. {Locked="--version"} Package reference - Package reference + Référence de package A version of {0} of package {1} - A version of {0} of package {1} + Une version de {0} du package {1} Version {0} of package {1} - Version {0} of package {1} + Une version {0} du package {1} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + Une version comprise entre {0} et {1} du package {2} A version higher than {0} of package {1} - A version higher than {0} of package {1} + Une version supérieure à {0} du package {1} A version less than {0} of package {1} - A version less than {0} of package {1} + Une version inférieure à {0} du package {1} Project - Project + Projet Project `{0}` added to the solution. - Project `{0}` added to the solution. + Projet '{0}' ajouté à la solution. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + Le projet a déjà une référence à '{0}'. The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Fichier projet à traiter. Si aucun fichier n'est spécifié, la commande en recherche un dans le répertoire actif. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + Impossible d'évaluer le projet '{0}'. Échec de l'évaluation en raison de l'erreur suivante : {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + Le projet '{0}' n'existe pas. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + Le projet '{0}' ne cible pas le framework '{1}'. Project `{0}` is invalid. - Project `{0}` is invalid. + Le projet '{0}' n'est pas valide. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + Impossible d'ajouter le projet '{0}' en raison de l'incompatibilité des frameworks ciblés entre les deux projets. Passez en revue le projet que vous essayez d'ajouter, puis vérifiez sa compatibilité avec les cibles suivantes : Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + Projet '{0}' introuvable dans la solution. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Application basée sur des fichiers C# ou fichier projet sur laquelle effectuer des opérations. Si aucun fichier n’est spécifié, la commande recherche un fichier projet dans le répertoire actuel. PROJECT | FILE - PROJECT | FILE + FICHIER | PROJET Project reference - Project reference + Référence de projet Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + La référence de projet '{0}' est introuvable. Project reference(s) - Project reference(s) + Référence(s) de projet Project reference `{0}` removed. - Project reference `{0}` removed. + Référence de projet '{0}' supprimée. Project `{0}` removed from solution. - Project `{0}` removed from solution. + Projet '{0}' retiré de la solution. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + Projet '{0}' retiré de la solution. Razor build server - Razor build server + Serveur de builds Razor Reference - Reference + Référence Reference `{0}` added to the project. - Reference `{0}` added to the project. + Référence '{0}' ajoutée au projet. Remove - Remove + Supprimer Required command was not provided. - Required command was not provided. + La commande nécessaire n'a pas été fournie. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0} : résolution de la spécification de commande à partir des bibliothèques d'outils {1}. Response file '{0}' does not exist. - Response file '{0}' does not exist. + Le fichier réponse '{0}' n’existe pas. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + Échec de la recherche. Si vous réessayez plus tard, cela pourra éventuellement permettre de résoudre le problème. Détails de la réponse de l'API de recherche NuGet : + RequestUrl : {0}. ReasonPhrase : {1}. StatusCode : {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Activez la sortie des diagnostics. Display the command schema as JSON. - Display the command schema as JSON. + Affichez le schéma de commande au format JSON. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Les options '--self-contained' et '--no-self-contained' ne peuvent pas être utilisées ensemble. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Publiez le runtime .NET avec votre application afin que le runtime n’ait pas besoin d’être installé sur l’ordinateur cible. +La valeur par défaut est « false ». Toutefois, lorsque vous ciblez .NET 7 ou une version antérieure, la valeur par défaut est « true » si un identificateur d’exécution est spécifié. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + La commande '{0}' est en conflit avec une commande existante d'un autre outil. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Recherchez les versions de charge de travail disponibles ou ce qui compose une version de charge de travail. Utilisez « dotnet workload search version --help » pour plus d’informations. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Affichez l'aide de la ligne de commande. The shutdown command failed: {0} - The shutdown command failed: {0} + Échec de la commande d'arrêt : {0} Solution - Solution + Solution Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + La solution {0} contient déjà le projet {1}. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + L'argument de solution '{0}' est mal placé. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Le fichier solution spécifié {0} n'existe pas ou il n'y a pas de fichier solution dans le répertoire. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Fichier projet ou solution à utiliser. Si vous ne spécifiez pas de fichier, la commande en recherche un dans le répertoire actuel. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Le fichier projet ou solution ou fichier C# (programme basé sur un fichier) à utiliser. Si aucun fichier n'est spécifié, la commande recherche un projet ou une solution dans le répertoire actuel. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJECT | SOLUTION | FICHIER Specify at least one {0}. - Specify at least one {0}. + Spécifiez au moins un {0}. You must specify at least one project to add. - You must specify at least one project to add. + Vous devez spécifier au moins un projet à ajouter. You must specify at least one project to remove. - You must specify at least one project to remove. + Vous devez spécifier au moins un projet à retirer. You must specify at least one reference to remove. - You must specify at least one reference to remove. + Vous devez spécifier au moins une référence à retirer. {0}: tool library found {1} - {0}: tool library found {1} + {0} : bibliothèque d'outils trouvée {1} Missing 'version' entry. - Missing 'version' entry. + Entrée 'version' manquante. Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + L'outil '{0}' (version '{1}') est déjà installé. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + Le package {0} n’est pas un outil .NET. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + La commande '{0}' contient un ou plusieurs caractères non valides suivants : {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + Le nom de commande '{0}' ne peut pas commencer par un point (.). Invalid XML: {0} - Invalid XML: {0} + XML non valide : {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + L'outil définit une commande avec un paramètre de nom manquant. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + La commande '{0}' a un paramètre de point d'entrée manquant. More than one command is defined for the tool. - More than one command is defined for the tool. + Plusieurs commandes sont définies pour l'outil. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + La commande « {0} » utilise un exécuteur non pris en charge « {1} ». The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + L’outil ne prend pas en charge l’architecture ou le système d’exploitation actuel ({0}). Runtimes pris en charge : {1} Type - Type + Type The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + Impossible de vérifier la stratégie de chaîne de certificats demandée : {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + impossible de supprimer le fichier temporaire deps.json : {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + Impossible de générer deps.json, il a peut-être déjà été généré. Vous pouvez spécifier l'option "-d" après "dotnet" pour une sortie de diagnostic (par exemple, "dotnet -d <toolname>" : {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + Le multiplexeur dotnet est introuvable Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + {0} attendu pour la propriété '{1}'. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Commande ou argument non reconnu : '{0}' Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + Le projet '{0}' correspond à un type de projet inconnu. Il ne peut pas être ajouté au fichier solution. Contactez le fournisseur de votre SDK pour obtenir de l'aide. Update - Update + Mettre à jour VB/C# compiler server - VB/C# compiler server + Serveur de compilation VB/C# Value - Value + Valeur Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Définissez le niveau de verbosité MSBuild. Les valeurs autorisées sont q[uiet], m[inimal], n[ormal], d[etailed] et diag[nostic]. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + Nous avons vérifié que le package NuGet « {0} » a une signature valide. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + La version du package '{0}' n'a pas pu être résolue. Version {0} is invalid. - Version {0} is invalid. + La version {0} est non valide. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + Un problème s’est produit lors de la vérification des charges de travail. Pour plus d’informations, exécutez « dotnet workload update ». {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Acceptez toutes les invites de confirmation en utilisant « oui ». diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.it.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.it.xlf index 94b160d5be5f..84ad6814b700 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.it.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.it.xlf @@ -4,89 +4,89 @@ Add - Add + Aggiungi Ambiguous command name: {0} - Ambiguous command name: {0} + Nome di comando ambiguo: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + Architettura di destinazione. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Percorso degli artefatti. Tutto l'output del progetto, inclusi l'output di compilazione, pubblicazione e pacchetto, verrà inserito nelle sottocartelle nel percorso specificato. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: tentativo di creare commandSpec {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: tentativo di individuazione del comando {1} in {2} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: tentativo di risolvere {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: tentativo di risolvere commandSpec dallo strumento {1} outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} non esiste Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + Non è possibile creare lo shim della shell per un percorso di eseguibile vuoto. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + Non è possibile trovare un file manifesto. Elenco dei percorsi di ricerca: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + Nel file manifesto non è possibile trovare un pacchetto con ID {0}. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + La risoluzione dell'identificatore di runtime corrente non è riuscita. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + La specifica di entrambe le opzioni `-r|--runtime` and `-a|--arch` non è supportata. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + La specifica di entrambe le opzioni `-r|--runtime` e `-os` non è supportata. @@ -100,21 +100,21 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Imposta il valore di una variabile di ambiente. +Crea la variabile se non esiste e la sostituisce se esiste. +È possibile specificare più volte l'argomento per fornire più variabili. -Examples: +Esempi: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="valore con spazi" +-e VARIABLE="valore;delimitato da;punti e virgola" -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NAME="VALORE" @@ -129,117 +129,117 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Imposta il valore di una variabile di ambiente. +Crea la variabile se non esiste e la sostituisce se esiste. +In questo modo forza l'esecuzione dei test in un processo isolato. +È possibile specificare più volte questo argomento per fornire più variabili. -Examples: +Esempi: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="valore con spazi" +-e VARIABLE="valore;delimitato da;punti e virgola" -e VAR1=abc -e VAR2=def -e VAR3=ghi Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Consente di impostare il valore della proprietà $(VersionSuffix) da usare durante la compilazione del progetto. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + La larghezza massima della colonna deve essere maggiore di zero. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + L'eseguibile del comando per "{0}" non è stato trovato. È possibile che il progetto non sia stato ripristinato o che il ripristino non sia riuscito. Eseguire `dotnet restore` Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Consente al comando di arrestare l'esecuzione e attendere l'input o l'azione dell'utente, ad esempio per completare l'autenticazione. Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Consente l'installazione di pacchetti non definitivi. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec è Null. FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + Il file `{0}` non è stato trovato. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Il file di soluzione specificato {0} non esiste oppure nella directory non è presente alcun file di soluzione. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + Non sono state trovate soluzioni o directory `{0}`. {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: il file runtimeconfig.json per lo strumento {1} non è stato trovato Delete - Delete + Elimina Unable to find deps.json generator project. - Unable to find deps.json generator project. + Il progetto del generatore deps.json non è stato trovato. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: non è stato trovato alcun progetto {1} corrispondente. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: ProjectFactory non ha trovato l'elemento Project. Did you mean the following command? - Did you mean the following command? + Si intendeva il comando seguente? Directory - Directory + Directory Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Forza il comando a ignorare tutti i server di compilazione persistenti. {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} non esiste @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + La directory '{0}' degli strumenti non si trova attualmente nella variabile di ambiente PATH. +Se si usa bash, è possibile aggiungerla al profilo eseguendo il comando seguente: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Aggiungi strumenti .NET Core SDK export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Per aggiungerla alla sessione corrente, eseguire il comando seguente: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + Dal momento che è stato appena installato .NET SDK, è necessario disconnettersi o riavviare la sessione prima di eseguire lo strumento installato. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + La directory '{0}' degli strumenti non si trova attualmente nella variabile di ambiente PATH. +Se si usa bash, è possibile aggiungerla al profilo eseguendo il comando seguente: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Aggiungi strumenti .NET Core SDK export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Per aggiungerla alla sessione corrente, eseguire il comando seguente: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + Dal momento che è stato appena installato .NET SDK, è necessario riaprire il terminale prima di eseguire lo strumento installato. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + La directory '{0}' degli strumenti non si trova attualmente nella variabile di ambiente PATH. +Se si usa zsh, è possibile aggiungerla al profilo eseguendo il comando seguente: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# Aggiungi strumenti .NET Core SDK export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +Eseguire `zsh -l` per renderla disponibile per la sessione corrente. -You can only add it to the current session by running the following command: +Per aggiungerla solo alla sessione corrente, eseguire il comando seguente: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + La directory '{0}' degli strumenti non si trova attualmente nella variabile di ambiente PATH. -You can add the directory to the PATH by running the following command: +Per aggiungere la directory a PATH, eseguire il comando seguente: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + Dal momento che è stato appena installato .NET SDK, è necessario riaprire la finestra del prompt dei comandi prima di eseguire lo strumento installato. Error - Error + Errore You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + L'operazione 'tool install' è in esecuzione con un'origine 'HTTP': {0}. NuGet richiede origini HTTPS. Per usare un’origine HTTP, è necessario impostare in modo esplicito ‘allowInsecureConnections’ su true nel file NuGet.Config. Vedere https://aka.ms/nuget-https-everywhere per altre informazioni. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: è previsto deps.json in: {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + Non è stato possibile impostare le autorizzazioni dell'eseguibile per lo shim della shell: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + Non è stato possibile creare lo shim dello strumento per il comando '{0}': {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: commandPath {1} non trovato Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + Non è possibile trovare la libreria nel file di asset NuGet per il pacchetto di strumenti '{0}': {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Mapping origine pacchetto abilitato, ma non è stata trovata alcuna origine nell'ID pacchetto specificato: {0}{0}. Per altri dettagli, vedere la documentazione relativa al mapping dell'origine dei pacchetti in https://aka.ms/nuget-package-source-mapping. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + Non è stato possibile trovare il pacchetto '{0}' dello strumento preparato per il commit. {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: toolAssembly per {1} non trovato Failed to load NuGet source {0} - Failed to load NuGet source {0} + Non è stato possibile caricare l'origine NuGet {0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Il mapping dell'origine del pacchetto è abilitato, ma non è stato eseguito il mapping dell'origine nell'ID pacchetto specificato: {0}. Per altri dettagli, vedere la documentazione relativa al mapping dell'origine dei pacchetti in https://aka.ms/nuget-package-source-mapping. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + Non è possibile leggere il file di asset NuGet per il pacchetto di strumenti '{0}': {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + Non è stato possibile leggere il file '{0}' del PID: {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + Non è stato possibile rimuovere lo shim dello strumento per il comando '{0}': {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: non è stato possibile risolvere commandSpec dalla libreria. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Non è stato possibile recuperare la configurazione dello strumento: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + Non è stato possibile aggiungere '{0}' alla variabile di ambiente PATH. Aggiungere questa directory a PATH per usare gli strumenti installati con 'dotnet tool install'. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + Non è stato possibile disinstallare il pacchetto '{0}' dello strumento: {1} Failed to validate package signing. {0} - Failed to validate package signing. + Non è possibile convalidare la firma del pacchetto. {0} Missing 'commands' entry. - Missing 'commands' entry. + Manca la voce 'commands'. File - File + File The file-based app to operate on. - The file-based app to operate on. + L'app basata su file su cui eseguire operazioni. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + La versione di Format è successiva a quella supportata. È possibile che questo strumento non sia supportato in questa versione dell'SDK. Aggiornare l'SDK. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + La versione di Format non è corretta. È possibile che questo strumento non sia supportato in questa versione dell'SDK. Contattare l'autore dello strumento. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + La versione di Format non è presente. È possibile che questo strumento non sia supportato in questa versione dell'SDK. Contattare l'autore dello strumento. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + È stato trovato un progetto `{0}`, che però non è valido. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: il file di blocco dello strumento è stato trovato in: {1} FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Pubblicare l'applicazione come applicazione dipendente dal framework. Per eseguire l'applicazione, è necessario installare un runtime .NET compatibile nel computer di destinazione. Generating deps.json at: {0} - Generating deps.json at: {0} + Generazione del file deps.json in: {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: il file prefercliruntime verrà ignorato perché la versione principale del framework di destinazione dello strumento ({1}) è diversa rispetto a quella del runtime corrente dell'interfaccia della riga di comando ({2}) In package {0}: {1} - In package {0}: + Nel pacchetto {0}: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Variabili di ambiente formattate in modo non corretto: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: commandResolverArguments non valido {0} should be an integer - {0} should be an integer + {0} deve essere un numero intero Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Il file manifesto non è valido. Percorso: {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + Il progetto `{0}` non è valido. Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + Il progetto `{0}` non è valido. {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + L'identificatore di runtime {0} non è valido. Gli identificatori di runtime validi sono: {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + La soluzione `{0}` non è valida. {1}. Invalid version string: {0} - Invalid version string: {0} + Stringa di versione non valida: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + {0} non è stato trovato nei feed NuGet {1}. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + Errore di analisi JSON nel file {0}: {1} LEVEL - LEVEL + LEVEL Library - Library + Libreria {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: la libreria non è stata trovata nel file di blocco. List - List + Elenco {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: ricerca del file prefercliruntime in `{1}` .NET Cli Options: - .NET Cli Options: + Opzioni dell'interfaccia della riga di comando di .NET: MSBuild arguments: {0} - MSBuild arguments: {0} + Argomenti di MSBuild: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: PERCORSO_EXE_MSBUILD = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: percorso del progetto MSBuild = {1} MSBuild server - MSBuild server + Server di MSBuild File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + Il file {0} proviene da un altro computer e potrebbe essere stato bloccato per proteggere questo computer. Per altre informazioni, incluse le istruzioni su come sbloccare il file, vedere https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + Manca la voce 'isRoot'. Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + Non è possibile aggiungere il pacchetto. Il file manifesto contiene già la versione {0} del pacchetto {1}. Disinstallare/installare o modificare il file manifesto {2} per specificare la nuova versione {3}. Manifest version 0 is not supported. - Manifest version 0 is not supported. + La versione 0 del manifesto non è supportata. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + La versione del manifesto è {0}. Il manifesto potrebbe non essere supportato in questa versione dell'SDK che supporta manifesti fino alla versione {1}. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + Il file '{0}' del punto di ingresso per il comando '{1}' non è stato trovato nel pacchetto. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + Il file di impostazioni 'DotnetToolSettings.xml' non è stato trovato nel pacchetto. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Sono disponibili più shim inclusi nel pacchetto: {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + Sono stati trovati più file di soluzione in {0}. Specificare quello da usare. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Specificare il file di progetto da usare perché questo elemento '{0}' contiene più file di progetto. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Sono presenti più voci per i pacchetti: {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + Eseguire "dotnet tool restore" per rendere disponibile il comando "{0}". New - New + Nuovo Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Evita la visualizzazione del messaggio di avvio o di copyright. No projects found in the solution. - No projects found in the solution. + Non sono stati trovati progetti nella soluzione. There are no {0} references in project {1}. - There are no {0} references in project {1}. + Non sono presenti riferimenti a {0} nel progetto {1}. Do not restore the project before building. - Do not restore the project before building. + Non ripristina il progetto prima della compilazione. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: + Non è stato possibile cercare. Dettagli della risposta dell'API di Ricerca NuGet: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + La verifica della firma per il pacchetto NuGet "{0}" viene ignorata in quanto la firma proviene da un'origine che non richiede la convalida della firma. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + La verifica della firma del pacchetto NuGet verrà ignorata. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: radice dei pacchetti NuGet: {1} OS - OS + Sistema operativo Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + È possibile specificare un solo progetto alla volta utilizzando l'opzione -p. {Locked="-p"} The target operating system. - The target operating system. + Sistema operativo di destinazione. Project to Project - Project to Project + P2P (da progetto a progetto) Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + È creare un pacchetto di un solo file .nuspec alla volta Package - Package + Pacchetto Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Riferimento al pacchetto sotto forma di identificatore di pacchetto, ad esempio '{0}', oppure identificatore e versione di pacchetto separati da '@', ad esempio '{0}@{1}'. Package reference id and version must not be null. - Package reference id and version must not be null. + L'ID e la versione del riferimento al pacchetto non possono essere null. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Non è possibile specificare --version se l'argomento del pacchetto contiene già una versione. {Locked="--version"} Package reference - Package reference + Riferimento al pacchetto A version of {0} of package {1} - A version of {0} of package {1} + Versione di {0} del pacchetto {1} Version {0} of package {1} - Version {0} of package {1} + Versione {0} del pacchetto {1} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + Versione compresa tra {0} e {1} del pacchetto {2} A version higher than {0} of package {1} - A version higher than {0} of package {1} + Versione superiore a {0} del pacchetto {1} A version less than {0} of package {1} - A version less than {0} of package {1} + Versione inferiore a {0} del pacchetto {1} Project - Project + Progetto Project `{0}` added to the solution. - Project `{0}` added to the solution. + Il progetto `{0}` è stato aggiunto alla soluzione. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + Per il progetto esiste già un riferimento a `{0}`. The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + File di progetto su cui intervenire. Se non si specifica un file, il comando ne cercherà uno nella directory corrente. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + Non è stato possibile valutare il progetto `{0}`. La valutazione non è riuscita. Errore: {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + Il progetto `{0}` non esiste. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + Il progetto `{0}` non è destinato al framework `{1}`. Project `{0}` is invalid. - Project `{0}` is invalid. + Il progetto `{0}` non è valido. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + Non è possibile aggiungere il progetto `{0}` a causa di framework di destinazione incompatibili tra i due progetti. Esaminare il progetto che si sta provando ad aggiungere e verificare che sia compatibile con le destinazioni seguenti: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + Il progetto `{0}` non è stato trovato nella soluzione. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Il file di progetto o l'app basata su file C# su cui eseguire operazioni. Se non si specifica un file, il comando cercherà un progetto o una soluzione nella directory corrente. PROJECT | FILE - PROJECT | FILE + FILE DI | PROGETTO Project reference - Project reference + Riferimento al progetto Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + Il riferimento al progetto `{0}` non è stato trovato. Project reference(s) - Project reference(s) + Riferimento/i al progetto Project reference `{0}` removed. - Project reference `{0}` removed. + Il riferimento al progetto `{0}` è stato rimosso. Project `{0}` removed from solution. - Project `{0}` removed from solution. + Il progetto `{0}` è stato rimosso dalla soluzione. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + Il progetto `{0}` è stato rimosso dalla soluzione. Razor build server - Razor build server + Server di compilazione di Razor Reference - Reference + Riferimento Reference `{0}` added to the project. - Reference `{0}` added to the project. + Il riferimento `{0}` è stato aggiunto al progetto. Remove - Remove + Rimuovi Required command was not provided. - Required command was not provided. + Il comando obbligatorio non è stato specificato. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: risoluzione di commandSpec dalle librerie degli strumenti di {1}. Response file '{0}' does not exist. - Response file '{0}' does not exist. + Il file di risposta '{0}' non esiste. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: + Non è stato possibile cercare. Per risolvere il problema, riprovare più tardi. Dettagli della risposta dell'API di Ricerca NuGet: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Abilita l'output di diagnostica. Display the command schema as JSON. - Display the command schema as JSON. + Visualizza lo schema del comando in formato JSON. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Non è possibile usare contemporaneamente le opzioni '--self-contained' e ‘--no-self-contained'. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Pubblicare il runtime .NET con l'applicazione in modo che non sia necessario installare il runtime nel computer di destinazione. +Il valore predefinito è 'false'. Tuttavia, quando la destinazione è .NET 7 o una versione inferiore, il valore predefinito è 'true' se viene specificato un identificatore di runtime. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + Il comando '{0}' è in conflitto con un comando esistente di un altro strumento. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Cerca le versioni del carico di lavoro disponibili o cosa comprende una versione del carico di lavoro. Per altre informazioni, usare 'dotnet workload search version --help'. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Visualizza la Guida della riga di comando. The shutdown command failed: {0} - The shutdown command failed: {0} + Il comando di arresto non è riuscito: {0} Solution - Solution + Soluzione Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + La soluzione {0} contiene già il progetto {1}. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + L'argomento della soluzione '{0}' non è posizionato in modo corretto. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Il file di soluzione specificato {0} non esiste oppure nella directory non è presente alcun file di soluzione. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + File di progetto o di soluzione su cui intervenire. Se non si specifica un file, il comando ne cercherà uno nella directory corrente. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Il progetto o la soluzione o il file C# (programma basato su file) su cui eseguire operazioni. Se non si specifica un file, il comando cercherà un progetto o una soluzione nella directory corrente. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJECT | SOLUTION | FILE Specify at least one {0}. - Specify at least one {0}. + Specificare almeno un elemento {0}. You must specify at least one project to add. - You must specify at least one project to add. + È necessario specificare almeno un progetto da aggiungere. You must specify at least one project to remove. - You must specify at least one project to remove. + È necessario specificare almeno un progetto da rimuovere. You must specify at least one reference to remove. - You must specify at least one reference to remove. + È necessario specificare almeno un riferimento da rimuovere. {0}: tool library found {1} - {0}: tool library found {1} + {0}: libreria degli strumenti {1} trovata Missing 'version' entry. - Missing 'version' entry. + Manca la voce 'version'. Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + Lo strumento '{0}' (versione '{1}') è già installato. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + Il pacchetto {0} non è uno strumento .NET. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + Il comando '{0}' contiene uno o più dei caratteri seguenti non validi: {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + Il nome del comando '{0}' non può iniziare con un punto (.). Invalid XML: {0} - Invalid XML: {0} + XML non valido: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + Lo strumento definisce un comando con un'impostazione di nome mancante. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + Nel comando '{0}' manca un'impostazione di punto di ingresso. More than one command is defined for the tool. - More than one command is defined for the tool. + Per lo strumento è definito più di un comando. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + Lo strumento '{0}' usa il runner non supportato '{1}'." The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + Lo strumento non supporta l'architettura o il sistema operativo corrente ({0}). Runtime supportati: {1} Type - Type + Tipo The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + Non è stato possibile controllare il criterio della catena di certificati richiesto: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + non è possibile eliminare il file deps.json temporaneo: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + Non è possibile generare deps.json. Potrebbe essere stato già generato. Per ottenere l'output diagnostico, è possibile specificare l'opzione "-d" dopo "dotnet", ad esempio "dotnet-d <toolname>": {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + Il multiplexer dotnet non è stato trovato Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + È previsto un tipo {0} per la proprietà '{1}'. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Il comando o l'argomento '{0}' non è stato riconosciuto Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + Il progetto '{0}' ha un tipo di progetto sconosciuto e non può essere aggiunto al file di soluzione. Per assistenza, contattare il fornitore dell'SDK. Update - Update + Aggiorna VB/C# compiler server - VB/C# compiler server + Server del compilatore VB/C# Value - Value + Valore Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Consente di impostare il livello di dettaglio di MSBuild. I valori consentiti sono q[uiet], m[inimal], n[ormal], d[etailed] e diag[nostic]. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + Verifica della validità della firma del pacchetto NuGet "{0}" eseguita. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + Non è stato possibile risolvere la versione per il pacchetto `{0}`. Version {0} is invalid. - Version {0} is invalid. + La versione {0} non è valida. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + Si è verificato un problema nella verifica dei carichi di lavoro. Per altre informazioni, eseguire "dotnet workload update". {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Accetta tutte le richieste di conferma con "yes". diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.ja.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.ja.xlf index 8e414d98a22d..baa44fe8b865 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.ja.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.ja.xlf @@ -4,89 +4,89 @@ Add - Add + 追加 Ambiguous command name: {0} - Ambiguous command name: {0} + あいまいなコマンド名: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + ターゲット アーキテクチャ。 ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + 成果物のパス。ビルド、発行、パック出力などのプロジェクトからの出力はすべて、指定されたパスの下のサブフォルダーに格納されます。 {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: commandspec を作成しようとしています {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: {2} でコマンド {1} を検索しています {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: {1} を解決しようとしています {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: ツール {1} から commandspec を解決しようとしています outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} は存在しません Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + 空の実行可能パスにシェル shim を作成できませんでした。 Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + マニフェスト ファイルが見つかりません。検索されたパスの一覧: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + マニフェスト ファイル内でパッケージ ID {0} を持つパッケージが見つかりません。 Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + 現在のランタイム識別子を解決できませんでした。 Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + `-r|--runtime` および `-a|--arch` オプションの両方を指定することはサポートされていません。 Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + `-r|--runtime` および `-os` オプションの両方を指定することはサポートされていません。 @@ -100,11 +100,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + 環境変数の値を設定します。 +変数が存在しない場合は作成し、存在する場合はオーバーライドします。 +この引数は、複数の変数を指定するために複数回指定できます。 -Examples: +例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -114,7 +114,7 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" @@ -129,12 +129,12 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + 環境変数の値を設定します。 +変数が存在しない場合は作成され、存在する場合はオーバーライドされます。 +これにより、テストは強制的に分離プロセスで実行されます。 +この引数は、複数の変数を指定するために複数回指定できます。 -Examples: +例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -144,102 +144,102 @@ Examples: Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + プロジェクトをビルドするときに使用する $(VersionSuffix) プロパティの値を設定します。 Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + 列の最大幅はゼロより大きくなければなりません。 The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + "{0}" で実行可能なコマンドが見つかりませんでした。プロジェクトが復元されていない可能性があるか、または復元に失敗しました。`dotnet restore` を実行します。 Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + コマンドを停止して、ユーザーの入力またはアクション (認証の完了など) を待機できるようにします。 Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + プレリリース パッケージのインストールを許可します。 {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec が null です。 FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + ファイル `{0}` が見つかりません。 CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + 指定したソリューション ファイル {0} が存在しないか、ディレクトリにソリューション ファイルがありません。 Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + ソリューションまたはディレクトリ `{0}` が見つかりませんでした。 {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: ツール {1} で runtimeconfig.json ファイルが見つかりませんでした Delete - Delete + 削除 Unable to find deps.json generator project. - Unable to find deps.json generator project. + deps.json ジェネレーター プロジェクトが見つかりません。 {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: 一致するプロジェクト {1}.が見つかりませんでした。 {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}:ProjectFactory でプロジェクトが見つかりませんでした。 Did you mean the following command? - Did you mean the following command? + 次のコマンドを意図していましたか? Directory - Directory + ディレクトリ Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + 永続的なビルド サーバーがそのコマンドで無視されるようにします。 {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} は存在しません @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + ツール ディレクトリ '{0}' が、現在の PATH 環境変数に含まれていません。 +bash を使用している場合、次のコマンドを実行してプロファイルに追加できます: cat << \EOF >> ~/.bash_profile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +次のコマンドを実行すると、これを現在のセッションに追加できます: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + .NET SDK をインストールしたばかりなので、インストールしたツールを実行する前に、ログアウトするか、セッションを再起動する必要があります。 @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + ツール ディレクトリ '{0}' が、現在の PATH 環境変数に含まれていません。 +bash を使用している場合、次のコマンドを実行してプロファイルに追加できます: cat << \EOF >> ~/.bash_profile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +次のコマンドを実行すると、これを現在のセッションに追加できます: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + .NET SDK をインストールしたばかりなので、インストールしたツールを実行する前に、端末を再び開く必要があります。 @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + ツール ディレクトリ '{0}' が、現在の PATH 環境変数に含まれていません。 +zsh を使用している場合、次のコマンドを実行してプロファイルに追加できます: cat << \EOF >> ~/.zprofile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +さらに、`zsh -l` を実行して現在のセッションで利用できるようにします。 -You can only add it to the current session by running the following command: +これは、次のコマンドを実行することで、現行のセッションにのみ追加できます: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + Tools ディレクトリ '{0}' は現在、PATH 環境変数に含まれていません。 -You can add the directory to the PATH by running the following command: +次のコマンドを実行して、PATH にディレクトリを追加できます: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + .NET SDK をインストールしたばかりなので、インストールしたツールを実行する前に、コマンド プロンプト ウィンドウを再び開く必要があります。 Error - Error + エラー You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + 'tool install' 操作を、HTTP ソース {0} を使用して実行しています。NuGet には HTTPS ソースが必要です。HTTP ソースを使用するには、NuGet.Config ファイルで 'allowInsecureConnections' を true に明示的に設定する必要があります。詳しくは、https://aka.ms/nuget-https-everywhere を参照してください。 {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: {1} で deps.json が必要です Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + シェル shim で実行可能なユーザー アクセス許可を設定できませんでした: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + コマンド '{0}' でツール shim を作成できませんでした: {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: commandPath {1} が見つかりませんでした Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + ツール パッケージ '{0}' の NuGet アセット ファイルにライブラリが見つかりませんでした: {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + パッケージ ソース マッピングが有効になっていますが、指定されたパッケージ ID {0} にソースが見つかりません。詳細については、https://aka.ms/nuget-package-source-mapping にあるパッケージ ソース マッピングのドキュメントを参照してください。 Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + ステージ済みのツール パッケージ '{0}' が見つかりませんでした。 {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: {1} の toolAssembly が見つかりませんでした Failed to load NuGet source {0} - Failed to load NuGet source {0} + NuGet ソース {0} の読み込みに失敗しました Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + パッケージ ソース マッピングが有効になっていますが、指定されたパッケージ ID {0} にソースがマッピングされていません。詳細については、https://aka.ms/nuget-package-source-mapping にあるパッケージ ソース マッピングのドキュメントを参照してください。 Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + ツール パッケージ '{0}' の NuGet アセット ファイルを読み取ることができませんでした: {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + pid ファイル '{0}' の読み取りに失敗しました: {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + コマンド '{0}' でツール shim を削除できませんでした: {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: ライブラリから commandspec を解決できませんでした。 Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + ツールの構成を取得できませんでした: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + '{0}' を PATH 環境変数に追加できませんでした。'dotnet tool install' でインストールしたツールを使用するには、このディレクトリを PATH に追加します。 Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + ツール パッケージ '{0}' をアンインストールできませんでした: {1} Failed to validate package signing. {0} - Failed to validate package signing. + パッケージ署名の検証に失敗しました。 {0} Missing 'commands' entry. - Missing 'commands' entry. + 'commands' エントリがありません。 File - File + ファイル The file-based app to operate on. - The file-based app to operate on. + 操作するファイル ベースのアプリ。 Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + 形式のバージョンがサポートされているものを超えています。このツールはこのバージョンの SDK ではサポートされていない可能性があります。SDK を更新します。 Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + 形式のバージョンが無効です。このツールはこのバージョンの SDK ではサポートされていない可能性があります。ツールの作成者にお問い合わせください。 Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + 形式のバージョンが見つかりません。このツールはこのバージョンの SDK ではサポートされていない可能性があります。ツールの作成者にお問い合わせください。 Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + プロジェクト `{0}` が見つかりましたが、有効ではありません。 {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: {1} でツールのロックファイルが見つかりました FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + アプリケーションをフレームワーク依存アプリケーションとして公開します。アプリケーションを実行するには、対象のコンピューターで互換性のある .NET ランタイムをインストールする必要があります。 Generating deps.json at: {0} - Generating deps.json at: {0} + {0} で deps.json を生成しています {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: ツール ターゲット フレームワーク ({1}) のメジャー バージョンが現在の CLI ランタイム ({2}) と異なるため、prefercliruntime ファイルは無視されます。 In package {0}: {1} - In package {0}: + パッケージ {0} で: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + 不適切な形式の環境変数です: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: 無効な commandResolverArguments {0} should be an integer - {0} should be an integer + {0} は整数でなければなりません Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + マニフェスト ファイルが無効です。パス {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + 無効なプロジェクト `{0}`。 Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + 無効なプロジェクト `{0}`。{1}。 The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + ランタイム識別子 {0} は無効です。有効なランタイム識別子は {1} です。 Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + 無効なソリューション `{0}`。{1}。 Invalid version string: {0} - Invalid version string: {0} + バージョン文字列が無効です: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + {0} が NuGet フィードに見つかりません{1}。 Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + ファイル {0} で Json の解析エラーが発生しました。{1} LEVEL - LEVEL + LEVEL Library - Library + ライブラリ {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: ロック ファイルにライブラリが見つかりませんでした。 List - List + 一覧 {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}:`{1}` で prefercliruntime ファイルを検索しています .NET Cli Options: - .NET Cli Options: + .NET CLI オプション: MSBuild arguments: {0} - MSBuild arguments: {0} + MSBuild 引数: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: MSBuild project path = {1} MSBuild server - MSBuild server + MSBuild サーバー File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + ファイル {0} は別のコンピューターからのもので、このコンピューターを保護するためにブロックされている可能性があります。ブロックを解除する方法を含む詳細については、https://aka.ms/motw を参照してください Missing 'isRoot' entry. - Missing 'isRoot' entry. + 'isRoot' エントリがありません。 Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + パッケージを追加できません。マニフェスト ファイルにはパッケージ {1} のバージョン {0} が既に含まれています。マニフェスト ファイル {2} をアンインストールまたはインストールするか編集して、新しいバージョン {3} を指定します。 Manifest version 0 is not supported. - Manifest version 0 is not supported. + マニフェスト バージョン 0 はサポートされていません。 Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + マニフェスト バージョンは {0} です。このマニフェストは、この SDK バージョン (最大でマニフェスト バージョン {1} をサポート) でサポートされていない可能性があります。 Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + コマンド '{1}' のエントリ ポイント ファイル '{0}' がパッケージで見つかりませんでした。 Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + 設定ファイル 'DotnetToolSettings.xml' がパッケージで見つかりませんでした。 More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + 複数のパッケージ化された shim が利用可能です: {0}。 Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + {0} に複数のソリューション ファイルが見つかりました。使用するファイルを指定してください。 Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + この '{0}' には複数のプロジェクト ファイルが含まれているため、使用するプロジェクト ファイルを指定します。 More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + パッケージに対して複数のエントリが存在します: {0}。 Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + "dotnet tool restore" を実行して、"{0}" コマンドを利用できるようにします。 New - New + 新規 Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + 著作権情報を表示しません。 No projects found in the solution. - No projects found in the solution. + ソリューション内にプロジェクトが見つかりません。 There are no {0} references in project {1}. - There are no {0} references in project {1}. + プロジェクト {1} には {0} 参照がありません。 Do not restore the project before building. - Do not restore the project before building. + ビルドする前にプロジェクトを復元しません。 Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + 検索に失敗しました。NuGet Search API からの応答の詳細: + RequestUrl: {0}。ReasonPhrase: {1}。StatusCode: {2}。 Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + NuGet パッケージ "{0}" は署名の検証を必要としないソースから取得されたものなので、このパッケージの署名検証をスキップしています。 Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + NuGet パッケージ署名の認証をスキップしています。 {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: NuGet パッケージ ルート: {1} OS - OS + OS Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + -p オプションを使用して一度に指定できるプロジェクトは 1 つだけです。 {Locked="-p"} The target operating system. - The target operating system. + ターゲット オペレーティング システム。 Project to Project - Project to Project + プロジェクト間 Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + 一度にパックできる .nuspec ファイルは 1 つだけです Package - Package + パッケージ Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + '{0}' のようなパッケージ ID の形式のパッケージ参照、または '{0}@{1}' のように '@' で区切られたパッケージ ID とバージョンです。 Package reference id and version must not be null. - Package reference id and version must not be null. + パッケージ参照 ID とバージョンを null 値にすることはできません。 Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + パッケージ引数が既にバージョンを含んでいる場合は、--version を指定できません。 {Locked="--version"} Package reference - Package reference + パッケージ参照 A version of {0} of package {1} - A version of {0} of package {1} + パッケージ {1} の {0} のバージョン Version {0} of package {1} - Version {0} of package {1} + パッケージ {1} のバージョン {0} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + パッケージ {2} の {0} と {1} の間のバージョン A version higher than {0} of package {1} - A version higher than {0} of package {1} + パッケージ {1} の {0} より上位のバージョン A version less than {0} of package {1} - A version less than {0} of package {1} + パッケージ {1} の {0} 未満のバージョン Project - Project + プロジェクト Project `{0}` added to the solution. - Project `{0}` added to the solution. + プロジェクト `{0}` をソリューションに追加しました。 Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + プロジェクトには既に `{0}` への参照が指定されています。 The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + 操作するプロジェクト ファイル。ファイルを指定しない場合、コマンドによって現在のディレクトリから検索されます。 PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: -{1}. + プロジェクト `{0}` を評価できませんでした。評価は次のエラーにより失敗しました: +{1}。 Project `{0}` does not exist. - Project `{0}` does not exist. + プロジェクト `{0}` は存在しません。 Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + プロジェクト `{0}` はフレームワーク `{1}` をターゲットとしていません。 Project `{0}` is invalid. - Project `{0}` is invalid. + プロジェクト `{0}` は無効です。 Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + 2 つのプロジェクト間のターゲット フレームワークに互換性がないため、プロジェクト `{0}` を追加できません。追加しようとしているプロジェクトを確認し、次のターゲットと互換性があることを確認してください: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + プロジェクト `{0}` がソリューション内に見つかりませんでした。 The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + 操作するプロジェクト ファイルまたは C# ファイル ベースのアプリ。ファイルが指定されていない場合、コマンドは現在のディレクトリでプロジェクト ファイルを検索します。 PROJECT | FILE - PROJECT | FILE + プロジェクト | ファイル Project reference - Project reference + プロジェクト参照 Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + プロジェクト参照 `{0}` は見つかりませんでした。 Project reference(s) - Project reference(s) + プロジェクト参照 Project reference `{0}` removed. - Project reference `{0}` removed. + プロジェクト参照 `{0}` は削除されました。 Project `{0}` removed from solution. - Project `{0}` removed from solution. + プロジェクト `{0}` がソリューションから削除されました。 Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + プロジェクト `{0}` がソリューションから削除されました。 Razor build server - Razor build server + Razor ビルド サーバー Reference - Reference + 参照 Reference `{0}` added to the project. - Reference `{0}` added to the project. + 参照 `{0}` がプロジェクトに追加されました。 Remove - Remove + 削除 Required command was not provided. - Required command was not provided. + 必要なコマンドが指定されませんでした。 {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: {1} ツール ライブラリから commandspec を解決しています。 Response file '{0}' does not exist. - Response file '{0}' does not exist. + 応答ファイル '{0}' が存在しません。 Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + 検索に失敗しました。後でもう一度試すと、問題が解決する可能性があります。NuGet Search API からの応答の詳細: + RequestUrl: {0}。ReasonPhrase: {1}。StatusCode: {2}。 RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + 診断出力を有効にします。 Display the command schema as JSON. - Display the command schema as JSON. + コマンド スキーマを JSON として表示します。 The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + '--self-contained' と '--no-self-contained' オプションは同時に使用できません。 {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + アプリケーションと一緒に .NET ランタイムを発行すると、ランタイムをターゲット マシンにインストールする必要がなくなります。 +既定値は 'false' です。しかし、.NET 7 以前が対象の場合、ランタイム識別子が指定されていれば、既定値は 'true' です。 Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + コマンド '{0}' は、別のツールからの既存のコマンドと競合します。 Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + 使用可能なワークロードのバージョン、またはワークロード バージョンを構成するものを検索します。詳細については、'dotnet workload search version --help' を使用してください。 {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + コマンド ラインのヘルプを表示します。 The shutdown command failed: {0} - The shutdown command failed: {0} + シャットダウン コマンドが失敗しました: {0} Solution - Solution + ソリューション Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + ソリューション {0} には既にプロジェクト {1} が含まれています。 Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + ソリューション引数 '{0}' の位置が正しくありません。 Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + 指定したソリューション ファイル {0} が存在しないか、ディレクトリにソリューション ファイルがありません。 The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + 利用するプロジェクト ファイルまたはソリューション ファイル。指定しない場合、コマンドは現在のディレクトリを検索します。 PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + 操作するプロジェクトまたはソリューションまたは C# (ファイル ベースのプログラム) ファイル。ファイルが指定されていない場合、コマンドは現在のディレクトリでプロジェクトまたはソリューションを検索します。 PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + プロジェクト | 解決策 | ファイル Specify at least one {0}. - Specify at least one {0}. + 少なくとも 1 つの {0} を指定してください。 You must specify at least one project to add. - You must specify at least one project to add. + 追加するプロジェクトを少なくとも 1 つ指定する必要があります。 You must specify at least one project to remove. - You must specify at least one project to remove. + 削除するプロジェクトを少なくとも 1 つ指定する必要があります。 You must specify at least one reference to remove. - You must specify at least one reference to remove. + 削除する参照を少なくとも 1 つ指定する必要があります。 {0}: tool library found {1} - {0}: tool library found {1} + {0}: ツール ライブラリで {1} が見つかりました Missing 'version' entry. - Missing 'version' entry. + 'version' エントリがありません。 Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + ツール '{0}' (バージョン '{1}') は既にインストールされています。 Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + パッケージ {0} は .NET ツールではありません。 Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + コマンド '{0}' には次の無効な文字が 1 つまたは複数含まれています: {1}。 The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + コマンド名 '{0}' の先頭にドット (.) を使用することはできません。 Invalid XML: {0} - Invalid XML: {0} + XML が無効です: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + ツールは、名前設定がないコマンドを定義します。 Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + コマンド '{0}' にエントリ ポイント設定がありません。 More than one command is defined for the tool. - More than one command is defined for the tool. + ツールに対して複数のコマンドが定義されています。 Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + ツール '{0}' では、サポートされていないランナー '{1}' が使用されています。" The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + このツールは、現在のアーキテクチャまたはオペレーティング システム ({0}) をサポートしていません。サポートされているランタイム: {1} Type - Type + 種類 The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + 要求された証明書チェーン ポリシーを確認できませんでした: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + deps.json 一時ファイルを削除できません: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + deps.json を生成できません。既に生成されている可能性があります。診断出力の "dotnet" オプションの後に、"-d" オプションを指定できます (例: "dotnet -d <toolname>": {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + dotnet マルチプレクサーが見つかりません Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + プロパティ '{1}' には {0} が必要です。 Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + 認識されないコマンドまたは引数 '{0}' Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + プロジェクト '{0}' のプロジェクト タイプは不明であるため、ソリューション ファイルに追加することができません。サポートが必要な場合は、SDK プロバイダーにお問い合わせください。 Update - Update + 更新 VB/C# compiler server - VB/C# compiler server + VB/C# コンパイラ サーバー Value - Value + Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + MSBuild の詳細レベルを設定します。使用可能な値: q[uiet]、m[inimal]、n[ormal]、d[etailed]、diag[nostic]。 Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + NuGet パッケージ "{0}" に有効な署名があることを確認しました。 Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + パッケージ `{0}` のバージョンを解決できませんでした。 Version {0} is invalid. - Version {0} is invalid. + バージョン {0} は無効です。 VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + ワークロードの検証中に問題が発生しました。詳細については、"dotnet workload update" を実行してください。 {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + [はい] を使用して、すべての確認プロンプトを受け入れます。 diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.ko.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.ko.xlf index 60ae0edeec9c..699ad1da4430 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.ko.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.ko.xlf @@ -4,89 +4,89 @@ Add - Add + 추가 Ambiguous command name: {0} - Ambiguous command name: {0} + 모호한 명령 이름: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + 대상 아키텍처입니다. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + 아티팩트 경로입니다. 빌드, 게시 및 팩 출력을 포함한 프로젝트의 모든 출력이 지정된 경로 아래의 하위 폴더로 이동합니다. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: commandspec 만들기 시도 중 {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: {2}에서 {1} 명령을 찾으려고 시도 중 {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: {1} 확인을 시도 중 {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: {1} 도구에서 command spec을 확인하려고 시도하는 중입니다. outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0}이(가) 없습니다. Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + 빈 실행 파일 경로에 대해 셸 shim을 만들 수 없습니다. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + 매니페스트 파일을 찾을 수 없습니다. 검색된 경로 목록: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + 매니페스트 파일에서 패키지 ID가 {0}인 패키지를 찾을 수 없습니다. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + 현재 런타임 식별자를 확인하지 못했습니다. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + `-r|--runtime` 및 `-a|--arch` 옵션을 모두 지정하는 것은 지원되지 않습니다. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + `-r|--runtime` 및 `-os` 옵션을 모두 지정하는 것은 지원되지 않습니다. @@ -100,11 +100,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + 환경 변수의 값을 설정합니다. +변수가 없는 경우 변수를 만들고, 변수가 있으면 재정의합니다. +이 인수를 여러 번 지정하여 여러 변수를 제공할 수 있습니다. -Examples: +예: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -114,7 +114,7 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" @@ -129,12 +129,12 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + 환경 변수의 값을 설정합니다. +변수가 없는 경우 변수를 만들고, 변수가 있으면 재정의합니다. +이는 테스트가 격리된 프로세스에서 강제로 실행되도록 합니다. +이 인수를 여러 번 지정하여 여러 변수를 제공할 수 있습니다. -Examples: +예: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -144,102 +144,102 @@ Examples: Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + 프로젝트를 빌드할 때 사용할 $(VersionSuffix) 속성의 값을 설정합니다. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + 열 최대 너비는 0보다 커야 합니다. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + "{0}"에 대해 실행 가능한 명령을 찾지 못했습니다. 프로젝트가 복원되지 않았거나 복원이 실패했을 수 있습니다. 'dotnet restore'를 실행하세요. Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + 명령을 중지하고 사용자 입력 또는 작업을 기다리도록 허용합니다(예: 인증 완료). Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + 시험판 패키지를 설치할 수 있습니다. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec이 null입니다. FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + '{0}' 파일을 찾을 수 없습니다. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + 지정한 솔루션 파일 {0}이(가) 없거나 디렉터리에 솔루션 파일이 없습니다. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + 솔루션 또는 디렉터리 '{0}'을(를) 찾을 수 없습니다. {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: 도구 {1}에 대한 runtimeconfig.json 파일을 찾을 수 없음 Delete - Delete + 삭제 Unable to find deps.json generator project. - Unable to find deps.json generator project. + deps.json 생성기 프로젝트를 찾을 수 없습니다. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: 일치하는 프로젝트 {1}을(를) 찾지 못했습니다. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: ProjectFactory에서 프로젝트를 찾지 못했습니다. Did you mean the following command? - Did you mean the following command? + 다음 명령을 의미했나요? Directory - Directory + 디렉터리 Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + 모든 영구 빌드 서버를 무시하도록 명령을 강제 실행합니다. {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1}이(가) 없습니다. @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + 도구 디렉터리 '{0}'이(가) 현재 PATH 환경 변수에 없습니다. +Bash를 사용하는 경우 다음 명령을 실행하여 프로필에 Bash를 추가할 수 있습니다. cat << \EOF >> ~/.bash_profile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +다음 명령을 실행하여 현재 세션에 Bash를 추가할 수 있습니다. export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + .NET SDK를 방금 설치했기 때문에 설치한 도구를 실행하기 전에 로그아웃하거나 세션을 다시 시작해야 합니다. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + 도구 디렉터리 '{0}'이(가) 현재 PATH 환경 변수에 없습니다. +Bash를 사용하는 경우 다음 명령을 실행하여 프로필에 Bash를 추가할 수 있습니다. cat << \EOF >> ~/.bash_profile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +다음 명령을 실행하여 현재 세션에 Bash를 추가할 수 있습니다. export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + .NET SDK를 방금 설치했기 때문에 설치한 도구를 실행하기 전에 터미널을 다시 열어야 합니다. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + 도구 디렉터리 '{0}'이(가) 현재 PATH 환경 변수에 없습니다. +zsh를 사용하는 경우 다음 명령을 실행하여 프로필에 zsh를 추가할 수 있습니다. cat << \EOF >> ~/.zprofile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +또한 `zsh -l`을 실행하여 현재 세션에 zsh를 사용하도록 설정합니다. -You can only add it to the current session by running the following command: +현재 세션에 추가하려면 다음 명령을 실행해야 합니다. export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + 도구 디렉터리 '{0}'이(가) 현재 PATH 환경 변수에 없습니다. -You can add the directory to the PATH by running the following command: +다음 명령을 실행하여 디렉터리를 PATH에 추가할 수 있습니다. setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + .NET SDK를 방금 설치했기 때문에 설치한 도구를 실행하기 전에 명령 프롬프트 창을 다시 열어야 합니다. Error - Error + 오류 You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + 여러분은 'tool install' 작업을 'HTTP' 원본 {0}(으)로 실행하고 있습니다. NuGet에는 HTTPS 원본이 필요합니다. HTTP 원본을 사용하려면 NuGet.Config 파일에서 'allowInsecureConnections'를 명시적으로 true로 설정해야 합니다. https://aka.ms/nuget-https-everywhere에서 자세한 내용을 참조하세요. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: {1}에서 deps.json 필요 Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + 셸 shim에 대해 사용자 실행 파일 권한을 설정하지 못했습니다. {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + '{0}' 명령에 대해 도구 shim을 만들지 못했습니다. {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: commandPath {1} 찾기 실패 Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + 도구 패키지 '{0}'의 NuGet 자산 파일에서 라이브러리를 찾지 못했습니다. {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + 패키지 원본 매핑을 사용하도록 설정된 상태이나 지정된 패키지 ID {0}에서 원본을 찾을 수 없습니다. 자세한 내용은 https://aka.ms/nuget-package-source-mapping에 있는 패키지 원본 매핑에 대한 설명서를 참조하세요. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + 스테이징된 도구 패키지 '{0}'을(를) 찾지 못했습니다. {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: {1}용 toolAssembly 찾기 실패 Failed to load NuGet source {0} - Failed to load NuGet source {0} + NuGet 원본 {0}을(를) 로드하지 못했습니다. Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + 패키지 원본 매핑을 사용하도록 설정된 상태이나 지정된 패키지 ID {0}에 매핑된 원본이 없습니다. 자세한 내용은 https://aka.ms/nuget-package-source-mapping에 있는 패키지 원본 매핑에 대한 설명서를 참조하세요. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + '{0}' 도구 패키지의 NuGet 자산 파일을 읽지 못했습니다. {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + pid 파일 '{0}'을(를) 읽지 못했습니다. {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + '{0}' 명령에 대해 도구 shim을 제거하지 못했습니다. {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: 라이브러리에서 commandspec을 확인하지 못했습니다. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + 도구 구성을 검색하지 못했습니다. {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + PATH 환경 변수에 '{0}'을(를) 추가하지 못했습니다. 'dotnet tool install'로 설치한 도구를 사용하려면 이 디렉터리를 PATH에 추가하세요. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + 도구 패키지 '{0}'을(를) 제거하지 못했습니다. {1} Failed to validate package signing. {0} - Failed to validate package signing. + 패키지 서명을 확인하지 못했습니다. {0} Missing 'commands' entry. - Missing 'commands' entry. + 'commands' 항목이 없습니다. File - File + 파일 The file-based app to operate on. - The file-based app to operate on. + 작동할 파일 기반 앱입니다. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + 형식 버전이 지원되는 버전보다 높습니다. 이 SDK 버전에서 이 도구를 지원하지 않을 수 있습니다. SDK를 업데이트하세요. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + 형식 버전의 형식이 잘못되었습니다. 이 SDK 버전에서 이 도구를 지원하지 않을 수 있습니다. 도구 작성자에게 문의하세요. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + 형식 버전이 누락되었습니다. 이 SDK 버전에서 이 도구를 지원하지 않을 수 있습니다. 도구 작성자에게 문의하세요. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + '{0}' 프로젝트가 있지만 잘못되었습니다. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: {1}에서 도구 잠금 파일을 찾았습니다. FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + 애플리케이션을 프레임워크 종속 애플리케이션으로 게시합니다. 애플리케이션을 실행하려면 호환되는 .NET 런타임이 대상 시스템에 설치되어 있어야 합니다. Generating deps.json at: {0} - Generating deps.json at: {0} + {0}에서 deps.json 생성 중 {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: 도구 대상 프레임워크({1})에 현재 CLI 런타임({2})과 다른 주 버전이 있으므로 prefercliruntime 파일 무시 In package {0}: {1} - In package {0}: + 패키지 {0}: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + 형식이 잘못된 환경 변수: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: 잘못된 commandResolverArguments {0} should be an integer - {0} should be an integer + {0}은(는) 정수여야 합니다. Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + 매니페스트 파일이 잘못되었습니다. 경로 {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + '{0}' 프로젝트가 잘못되었습니다. Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + '{0}' 프로젝트가 잘못되었습니다. {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + 런타임 식별자 {0}이(가) 잘못되었습니다. 유효한 런타임 식별자는 {1}입니다. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + '{0}' 솔루션이 잘못되었습니다. {1}. Invalid version string: {0} - Invalid version string: {0} + 잘못된 버전 문자열: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + {0}을(를) NuGet 피드 {1}에서 찾을 수 없습니다. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + {0} 파일에서 Json 구문 분석 오류 발생: {1} LEVEL - LEVEL + LEVEL Library - Library + 라이브러리 {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: 잠금 파일에서 라이브러리를 찾지 못했습니다. List - List + 목록 {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: '{1}'에서 prefercliruntime 파일을 찾는 중 .NET Cli Options: - .NET Cli Options: + .NET Cli 옵션: MSBuild arguments: {0} - MSBuild arguments: {0} + MSBuild 인수: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: MSBuild 프로젝트 경로 = {1} MSBuild server - MSBuild server + MSBuild 서버 File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + {0} 파일은 다른 컴퓨터에서 제공되었으며 이 컴퓨터를 보호하기 위해 차단되었을 수 있습니다. 차단 해제 방법을 비롯한 자세한 내용은 https://aka.ms/motw를 참조하세요. Missing 'isRoot' entry. - Missing 'isRoot' entry. + 'isRoot' 항목이 없습니다. Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + 패키지를 추가할 수 없습니다. 매니페스트 파일에 이미 {1} 패키지의 {0} 버전이 포함되어 있습니다. 새 버전 {3}을(를) 지정하려면 매니페스트 파일 {2}을(를) 제거/설치하거나 편집하세요. Manifest version 0 is not supported. - Manifest version 0 is not supported. + 매니페스트 버전 0은 지원되지 않습니다. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + 매니페스트 버전이 {0}입니다. 이 매니페스트는 매니페스트 버전 {1}까지 지원할 수 있는 이 SDK 버전에서 지원되지 않을 수 있습니다. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + 패키지에서 '{1}' 명령에 대한 진입점 파일 '{0}'을(를) 찾지 못했습니다. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + 패키지에서 설정 파일 'DotnetToolSettings.xml'을 찾지 못했습니다. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + 패키지된 shim을 하나 이상 사용할 수 있습니다. {0} Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + {0}에서 솔루션 파일을 두 개 이상 찾았습니다. 사용할 파일을 지정하세요. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + 이 '{0}'에 둘 이상의 프로젝트 파일이 포함되어 있으므로 사용할 프로젝트 파일을 지정하세요. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + 패키지 {0}에 항목이 두 개 이상 있습니다. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + "dotnet tool restore"를 실행하여 "{0}" 명령을 사용할 수 있도록 만듭니다. New - New + 새로 만들기 Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + 시작 배너 또는 저작권 메시지를 표시하지 않습니다. No projects found in the solution. - No projects found in the solution. + 솔루션에서 프로젝트를 찾을 수 없습니다. There are no {0} references in project {1}. - There are no {0} references in project {1}. + {1} 프로젝트에 {0} 참조가 없습니다. Do not restore the project before building. - Do not restore the project before building. + 빌드하기 전에 프로젝트를 복원하지 마세요. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: + 검색하지 못했습니다. NuGet 검색 API 응답 정보: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + NuGet 패키지 "{0}"은(는) 서명 유효성 검사가 필요하지 않은 원본에서 제공되었으므로 서명 확인을 건너뜁니다. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + NuGet 패키지 서명 확인을 건너뛰는 중입니다. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: nuget 패키지 루트: {1} OS - OS + OS Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + -p 옵션을 사용하여 한 번에 하나의 프로젝트만 지정할 수 있습니다. {Locked="-p"} The target operating system. - The target operating system. + 대상 운영 체제입니다. Project to Project - Project to Project + 프로젝트 간 Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + 한 번에 하나의 .nuspec 파일만 압축할 수 있습니다. Package - Package + 패키지 Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + '{0}'과 같은 패키지 식별자 또는 '{0}@{1}'과 같이 '@'로 구분된 패키지 식별자 및 버전 형식의 패키지 참조입니다. Package reference id and version must not be null. - Package reference id and version must not be null. + 패키지 참조 ID와 버전은 null이 아니어야 합니다. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + 패키지 인수에 이미 버전이 포함되어 있을 때는 --version을 지정할 수 없습니다. {Locked="--version"} Package reference - Package reference + 패키지 참조 A version of {0} of package {1} - A version of {0} of package {1} + {0}의 버전의 패키지 {1} Version {0} of package {1} - Version {0} of package {1} + 버전 {0}의 패키지 {1} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + {0} 및 {1} 사이의 버전의 패키지 {2} A version higher than {0} of package {1} - A version higher than {0} of package {1} + {0}보다 높은 버전의 패키지 {1} A version less than {0} of package {1} - A version less than {0} of package {1} + {0}보다 낮은 버전의 패키지 {1} Project - Project + 프로젝트 Project `{0}` added to the solution. - Project `{0}` added to the solution. + '{0}' 프로젝트가 솔루션에 추가되었습니다. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + 프로젝트에 이미 '{0}'에 대한 참조가 있습니다. The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + 수행할 프로젝트 파일입니다. 파일을 지정하지 않으면 명령이 현재 디렉터리에서 파일을 검색합니다. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + '{0}' 프로젝트를 평가할 수 없습니다. 다음 오류로 인해 평가가 실패했습니다. {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + '{0}' 프로젝트가 없습니다. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + '{0}' 프로젝트의 대상 프레임워크가 '{1}'이(가) 아닙니다. Project `{0}` is invalid. - Project `{0}` is invalid. + '{0}' 프로젝트가 잘못되었습니다. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + 두 프로젝트 간에 호환되지 않는 대상 프레임워크 때문에 '{0}' 프로젝트를 추가할 수 없습니다. 추가하려는 프로젝트를 검토하고 다음 대상과 호환되는지 확인하세요. Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + 솔루션에서 '{0}' 프로젝트를 찾을 수 없습니다. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + 작업할 프로젝트 파일 또는 C# 파일 기반 앱입니다. 파일을 지정하지 않으면 명령이 현재 디렉터리에서 프로젝트 파일을 검색합니다. PROJECT | FILE - PROJECT | FILE + 프로젝트 | 파일 Project reference - Project reference + 프로젝트 참조 Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + 프로젝트 참조 '{0}'을(를) 찾을 수 없습니다. Project reference(s) - Project reference(s) + 프로젝트 참조 Project reference `{0}` removed. - Project reference `{0}` removed. + 프로젝트 참조 '{0}'이(가) 제거되었습니다. Project `{0}` removed from solution. - Project `{0}` removed from solution. + '{0}' 프로젝트가 솔루션에서 제거되었습니다. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + '{0}' 프로젝트가 솔루션에서 제거되었습니다. Razor build server - Razor build server + Razor 빌드 서버 Reference - Reference + 참조 Reference `{0}` added to the project. - Reference `{0}` added to the project. + 프로젝트에 '{0}' 참조가 추가되었습니다. Remove - Remove + 제거 Required command was not provided. - Required command was not provided. + 필수 명령을 제공하지 않았습니다. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: {1} 도구 라이브러리에서 commandspec을 확인하는 중입니다. Response file '{0}' does not exist. - Response file '{0}' does not exist. + 지시 파일 '{0}'이(가) 없습니다. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: + 검색하지 못했습니다. 나중에 다시 시도하면 문제가 해결될 수도 있습니다. NuGet 검색 API 응답 정보: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + 진단 출력을 사용합니다. Display the command schema as JSON. - Display the command schema as JSON. + 명령 스키마를 JSON으로 표시합니다. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + '--self-contained' 및 '--no-self-contained' 옵션은 함께 사용할 수 없습니다. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + 대상 컴퓨터에 런타임을 설치할 필요가 없도록 애플리케이션과 함께 .NET 런타임을 게시합니다. +기본값은 'false'입니다. 그러나 .NET 7 이하를 대상으로 하고 런타임 식별자를 지정하는 경우 기본값은 'true'입니다. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + '{0}' 명령이 다른 도구의 기존 명령과 충돌합니다. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + 사용 가능한 워크로드 버전 또는 워크로드 버전을 구성하는 항목을 검색합니다. 자세한 내용을 보려면 'dotnet workload search version --help'를 사용하세요. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + 명령줄 도움말을 표시합니다. The shutdown command failed: {0} - The shutdown command failed: {0} + 종료 명령에 실패했습니다. {0} Solution - Solution + 솔루션 Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + {0} 솔루션에 {1} 프로젝트가 이미 있습니다. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + '{0}' 솔루션 인수의 위치가 잘못되었습니다. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + 지정한 솔루션 파일 {0}이(가) 없거나 디렉터리에 솔루션 파일이 없습니다. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + 수행할 프로젝트 또는 솔루션 파일입니다. 파일을 지정하지 않으면 명령이 현재 디렉토리에서 파일을 검색합니다. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + 작업할 프로젝트 또는 솔루션 또는 C#(파일 기반 프로그램) 파일입니다. 파일을 지정하지 않으면 명령이 현재 디렉터리에서 프로젝트 또는 솔루션을 검색합니다. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJECT | SOLUTION | FILE Specify at least one {0}. - Specify at least one {0}. + {0}을(를) 하나 이상 지정하세요. You must specify at least one project to add. - You must specify at least one project to add. + 추가할 프로젝트를 하나 이상 지정해야 합니다. You must specify at least one project to remove. - You must specify at least one project to remove. + 제거할 프로젝트를 하나 이상 지정해야 합니다. You must specify at least one reference to remove. - You must specify at least one reference to remove. + 제거할 참조를 하나 이상 지정해야 합니다. {0}: tool library found {1} - {0}: tool library found {1} + {0}: 도구 라이브러리가 발견됨({1}) Missing 'version' entry. - Missing 'version' entry. + 'version' 항목이 없습니다. Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + '{0}' 도구(버전 '{1}')가 이미 설치되어 있습니다. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + {0} 패키지는 .NET 도구가 아닙니다. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + '{0}' 명령에 다음과 같은 잘못된 문자가 하나 이상 포함되어 있습니다. {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + 명령 이름 '{0}'은(는) 앞에 점(.)으로 시작할 수 없습니다. Invalid XML: {0} - Invalid XML: {0} + 잘못된 XML: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + 도구에서 이름 설정 없이 명령을 정의합니다. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + '{0}' 명령에 진입점 설정이 없습니다. More than one command is defined for the tool. - More than one command is defined for the tool. + 도구에 대해 두 개 이상의 명령이 등록되어 있습니다. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + 도구 '{0}'에서 지원되지 않는 실행기 '{1}'을(를) 사용합니다." The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + 도구가 현재 아키텍처 또는 운영 체제({0})를 지원하지 않습니다. 지원되는 런타임: {1} Type - Type + 형식 The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + 요청한 인증서 체인 정책을 확인할 수 없습니다: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + 임시 deps.json 파일을 삭제할 수 없습니다. {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + deps.json을 생성할 수 없습니다. 이미 생성되었을 수 있습니다. 진단 출력에 대해 “dotnet” 다음에 "-d" 옵션을 지정할 수 있습니다(예: "dotnet-d <toolname>": {0}). Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + dotnet multiplexer를 찾을 수 없음 Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + '{1}' 속성에는 {0}이(가) 필요합니다. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + 인식할 수 없는 명령 또는 인수 '{0}' Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + '{0}' 프로젝트는 알 수 없는 프로젝트 형식이고 솔루션 파일에 추가할 수 없습니다. SDK 공급자에 문의하여 지원을 받으세요. Update - Update + 업데이트 VB/C# compiler server - VB/C# compiler server + VB/C# 컴파일러 서버 Value - Value + Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + MSBuild 세부 정보 표시 수준을 설정합니다. 허용되는 값은 q[uiet], m[inimal], n[ormal], d[etailed] 및 diag[nostic]입니다. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + NuGet 패키지 "{0}"에 유효한 서명이 있음을 확인했습니다. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + '{0}' 패키지의 버전을 확인할 수 없습니다. Version {0} is invalid. - Version {0} is invalid. + 버전 {0}이(가) 잘못되었습니다. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + 워크로드를 확인하는 동안 문제가 발생했습니다. 자세한 내용을 확인하려면 "dotnet workload update"를 실행하세요. {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + "예"를 사용하여 모든 확인 프롬프트를 수락합니다. diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.pl.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.pl.xlf index 18ba7ae7caff..1417032fd5da 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.pl.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.pl.xlf @@ -4,89 +4,89 @@ Add - Add + Dodaj Ambiguous command name: {0} - Ambiguous command name: {0} + Niejednoznaczna nazwa polecenia: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + Architektura docelowa. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Ścieżka artefaktów. Wszystkie dane wyjściowe z projektu, w tym dane wyjściowe kompilacji, publikowania i pakowania, będą trafiać do podfolderów w określonej ścieżce. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: Próba utworzenia elementu commandspec {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: Próba odnalezienia polecenia {1} w lokalizacji {2} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: Próba rozpoznania elementu {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: Próba rozpoznania specyfikacji polecenia z narzędzia {1} outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + Element outputpathresolver: {0} nie istnieje Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + Nie można utworzyć podkładki powłoki dla pustej ścieżki pliku wykonywalnego. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + Nie można odnaleźć pliku manifestu. Lista przeszukanych ścieżek: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + Nie można odnaleźć pakietu o identyfikatorze {0} w pliku manifestu. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Rozpoznawanie bieżącego identyfikatora środowiska uruchomieniowego nie powiodło się. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Określanie opcji „-r|--runtime” i „-a|--arch” nie jest obsługiwane. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Określanie opcji „-r|--runtime” i „-os” nie jest obsługiwane. @@ -100,21 +100,21 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Ustawia wartość zmiennej środowiskowej. +Jeśli zmienna nie istnieje, tworzy ją, a jeśli istnieje, przesłania. +Ten argument można określić wiele razy w celu podania wielu zmiennych. -Examples: +Przykłady: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARABLE=”wartość ze spacjami” +-e VARABLE=”wartości;rozdzielone;średnikami” -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NAZWA="WARTOŚĆ" @@ -129,117 +129,117 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Ustawia wartość zmiennej środowiskowej. +Jeśli zmienna nie istnieje, tworzy ją, a jeśli istnieje, przesłania. +Wymusi to uruchamianie testów w izolowanym procesie. +Ten argument można określić wiele razy w celu podania wielu wartości. -Examples: --e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" --e VAR1=abc -e VAR2=def -e VAR3=ghi +Przykłady: +-e ZMIENNA=abc +-e ZMIENNA="wartość ze spacjami" +-e ZMIENNA="wartości;rozdzielone;średnikami" +-e ZM1=abc -e ZM2=def -e ZM3=ghi Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Ustaw wartość właściwości $(VersionSuffix) do użycia podczas kompilowania projektu. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + Maksymalna szerokość kolumny musi być większa niż zero. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + Nie znaleziono pliku wykonywalnego polecenia dla elementu „{0}”. Projekt mógł nie zostać przywrócony lub przywracanie zakończyło się niepowodzeniem — uruchom polecenie „dotnet restore” Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Zezwala poleceniu na zatrzymanie działania i zaczekanie na wprowadzenie danych lub wykonanie akcji przez użytkownika (na przykład ukończenie uwierzytelniania). Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Zezwala na instalowanie pakietów wersji wstępnych. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: Element commandSpec ma wartość null. FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + Nie odnaleziono pliku „{0}”. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Określony plik rozwiązania {0} nie istnieje bądź w katalogu nie ma żadnego pliku rozwiązania. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + Nie można odnaleźć rozwiązania ani katalogu „{0}”. {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: nie można odnaleźć pliku runtimeconfig.json dla narzędzia {1} Delete - Delete + Usuń Unable to find deps.json generator project. - Unable to find deps.json generator project. + Nie można odnaleźć projektu generatora deps.json. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: Nie znaleziono pasującego projektu {1}. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: Element ProjectFactory nie odnalazł projektu. Did you mean the following command? - Did you mean the following command? + Czy chodziło Ci o następujące polecenie? Directory - Directory + Katalog Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Wymuś polecenie, aby zignorować wszystkie trwałe serwery kompilacji. {0}: {1} does not exist - {0}: {1} does not exist + {0}: Element {1} nie istnieje @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Katalog narzędzi „{0}” nie znajduje się obecnie w zmiennej środowiskowej PATH. +Jeśli używasz powłoki Bash, możesz dodać ją do swojego profilu, uruchamiając następujące polecenie: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Dodaj zestaw narzędzi .NET Core SDK export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Aby dodać go do bieżącej sesji, uruchom następujące polecenie: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + Właśnie zainstalowano zestaw .NET SDK, dlatego należy wylogować się lub uruchomić ponownie sesję przed uruchomieniem zainstalowanego narzędzia. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Katalog narzędzi „{0}” nie znajduje się obecnie w zmiennej środowiskowej PATH. +Jeśli używasz powłoki Bash, możesz dodać ją do swojego profilu, uruchamiając następujące polecenie: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Dodaj zestaw narzędzi .NET Core SDK export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Aby dodać go do bieżącej sesji, uruchom następujące polecenie: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + Właśnie zainstalowano zestaw .NET SDK, dlatego należy ponownie otworzyć terminal przed uruchomieniem zainstalowanego narzędzia. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + Katalog narzędzi „{0}” nie znajduje się obecnie w zmiennej środowiskowej PATH. +Jeśli używasz powłoki zsh, możesz ją dodać do swojego profilu, uruchamiając następujące polecenie: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# Dodaj zestaw narzędzi .NET Core SDK export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +Aby udostępnić ją w bieżącej sesji, uruchom polecenie `zsh -l`. -You can only add it to the current session by running the following command: +Możesz ją dodać tylko do bieżącej sesji, uruchamiając następujące polecenie: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + Katalogu narzędzi „{0}” nie ma obecnie w zmiennej środowiskowej PATH. -You can add the directory to the PATH by running the following command: +Możesz dodać katalog do zmiennej PATH przez uruchomienie następującego polecenia: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + Właśnie zainstalowano zestaw .NET SDK, dlatego należy ponownie otworzyć okno wiersza polecenia przed uruchomieniem zainstalowanego narzędzia. Error - Error + Błąd You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + Operację „instalacji narzędzia” wykonujesz ze źródłem „HTTP”: {0}. Menedżer NuGet wymaga źródeł HTTPS. Aby użyć źródła HTTP, musisz wyraźnie ustawić właściwość „allowInsecureConnections” na wartość true w pliku NuGet.Config. Aby uzyskać więcej informacji, sprawdź witrynę https://aka.ms/nuget-https-everywhere. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: Oczekiwano pliku deps.json w lokalizacji: {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + Nie można ustawić uprawnień pliku wykonywalnego użytkownika dla podkładki powłoki: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + Nie można utworzyć podkładki narzędzia dla polecenia „{0}”: {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: Nie udało się odnaleźć ścieżki commandPath {1} Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + Nie można odnaleźć biblioteki w pliku zasobów NuGet dla pakietu narzędzi „{0}”: {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Mapowanie źródła pakietu jest włączone, ale nie znaleziono źródła w ramach określonego identyfikatora pakietu: {0}. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją mapowania źródła pakietu w witrynie https://aka.ms/nuget-package-source-mapping. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + Nie można odnaleźć przygotowanego pakietu narzędzia „{0}”. {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: Nie udało się odnaleźć elementu toolAssembly dla elementu {1} Failed to load NuGet source {0} - Failed to load NuGet source {0} + Nie można załadować źródła pakietu NuGet {0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Mapowanie źródła pakietu jest włączone, ale nie zamapowano źródła w ramach określonego identyfikatora pakietu: {0}. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją mapowania źródła pakietu w witrynie https://aka.ms/nuget-package-source-mapping. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + Nie można odczytać pliku zasobów NuGet dla pakietu narzędzi „{0}”: {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + Nie można odczytać pliku pid „{0}”: {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + Nie można usunąć podkładki narzędzia dla polecenia „{0}”: {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: Nie udało się rozpoznać elementu commandspec z biblioteki. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Nie można pobrać konfiguracji narzędzia: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + Nie można dodać katalogu „{0}” do zmiennej środowiskowej PATH. Dodaj ten katalog do zmiennej PATH, aby używać narzędzi zainstalowanych za pomocą polecenia „dotnet tool install”. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + Nie można odinstalować pakietu narzędzia „{0}”: {1} Failed to validate package signing. {0} - Failed to validate package signing. + Nie można zweryfikować podpisywania pakietu. {0} Missing 'commands' entry. - Missing 'commands' entry. + Brak wpisu „commands”. File - File + Plik The file-based app to operate on. - The file-based app to operate on. + Aplikacja oparta na plikach, na której ma działać. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + Wersja formatu jest nowsza niż obsługiwana. To narzędzie może nie być obsługiwane w tej wersji zestawu SDK. Zaktualizuj zestaw SDK. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + Wersja formatu jest nieprawidłowo sformułowana. To narzędzie może nie być obsługiwane w tej wersji zestawu SDK. Skontaktuj się z autorem narzędzia. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + Brak wersji formatu. To narzędzie może nie być obsługiwane w tej wersji zestawu SDK. Skontaktuj się z autorem narzędzia. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + Znaleziono projekt „{0}”, ale jest on nieprawidłowy. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: Odnaleziono plik blokady narzędzia w lokalizacji: {1} FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Opublikuj aplikację jako aplikację zależną od frameworku. Aby można było uruchomić aplikację, na maszynie docelowej musi być zainstalowane zgodne środowisko uruchomieniowe platformy .NET. Generating deps.json at: {0} - Generating deps.json at: {0} + Generowanie pliku deps.json w lokalizacji: {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: plik prefercliruntime zostanie zignorowany, ponieważ wersja platforma docelowa narzędzia ({1}) różni się od wersji bieżącego środowiska uruchomieniowego interfejsu wiersza polecenia ({2}) In package {0}: {1} - In package {0}: + W pakiecie {0}: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Niepoprawnie sformatowane zmienne środowiskowe: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: Nieprawidłowa wartość elementu commandResolverArguments {0} should be an integer - {0} should be an integer + Wartość {0} powinna być liczbą całkowitą Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Nieprawidłowy plik manifestu. Ścieżka {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + Nieprawidłowy projekt „{0}”. Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + Nieprawidłowy projekt „{0}”. {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + Identyfikator środowiska uruchomieniowego {0} jest nieprawidłowy. Prawidłowe identyfikatory środowiska uruchomieniowego: {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + Nieprawidłowe rozwiązanie „{0}”. {1}. Invalid version string: {0} - Invalid version string: {0} + Nieprawidłowy ciąg wersji: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + Nie znaleziono pakietu {0} w kanałach informacyjnych pakietu NuGet {1}. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + Błąd analizowania kodu JSON w pliku {0}: {1} LEVEL - LEVEL + LEVEL Library - Library + Biblioteka {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: Nie odnaleziono biblioteki w pliku blokady. List - List + Wyświetl listę {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: Wyszukiwanie pliku prefercliruntime w lokalizacji „{1}” .NET Cli Options: - .NET Cli Options: + Opcje interfejsu wiersza polecenia platformy .NET: MSBuild arguments: {0} - MSBuild arguments: {0} + Argumenty programu MSBuild: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: Ścieżka MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: Ścieżka projektu programu MSBuild = {1} MSBuild server - MSBuild server + Serwer MSBuild File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + Plik {0} pochodzi z innego komputera i może zostać zablokowany, aby pomóc chronić ten komputer. Aby uzyskać więcej informacji, w tym o sposobie odblokowywania, zobacz https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + Brak wpisu „isRoot”. Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + Nie można dodać pakietu. Plik manifestu zawiera już wersję {0} pakietu {1}. Odinstaluj, zainstaluj lub edytuj plik manifestu {2}, aby określić nową wersję {3}. Manifest version 0 is not supported. - Manifest version 0 is not supported. + Manifest w wersji 0 nie jest obsługiwany. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + Wersja manifestu to {0}. Ten manifest może nie być obsługiwany w tej wersji zestawu SDK, który obsługuje manifest do wersji {1}. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + Nie znaleziono pliku punktu wejścia „{0}” polecenia „{1}” w pakiecie. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + Nie znaleziono pliku ustawień „DotnetToolSettings.xml” w pakiecie. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Dostępna jest więcej niż jedna spakowana podkładka: {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + Znaleziono więcej niż jeden plik rozwiązania w lokalizacji {0}. Określ, który ma zostać użyty. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Określ, który plik ma zostać użyty, ponieważ w tym elemencie „{0}” podano kilka plików projektu. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Istnieje wiele pozycji dla pakietów: {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + Uruchom polecenie „dotnet tool restore”, aby udostępnić polecenie „{0}”. New - New + Nowy Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Nie wyświetlaj baneru początkowego ani komunikatu o prawach autorskich. No projects found in the solution. - No projects found in the solution. + Nie znaleziono żadnych projektów w tym rozwiązaniu. There are no {0} references in project {1}. - There are no {0} references in project {1}. + Brak odwołań do elementu {0} w projekcie {1}. Do not restore the project before building. - Do not restore the project before building. + Nie przywracaj projektu przed kompilowaniem. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + Nie można wyszukać. Szczegóły odpowiedzi interfejsu API wyszukiwania NuGet: + Adres URL żądania: {0}. Fraza przyczyny: {1}. Kod stanu: {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + Pomijanie weryfikacji podpisu dla pakietu NuGet „{0}”, ponieważ pochodzi ona ze źródła, które nie wymaga weryfikacji podpisu. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + Pomijanie weryfikacji podpisu pakietu NuGet. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: Katalog główny pakietów NuGet: {1} OS - OS + System operacyjny Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + Jednocześnie można określić tylko jeden projekt przy użyciu opcji -p. {Locked="-p"} The target operating system. - The target operating system. + Docelowy system operacyjny. Project to Project - Project to Project + Między projektami Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + Jednocześnie można spakować tylko jeden plik nuspec Package - Package + Pakiet Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Odwołanie do pakietu w formie identyfikatora pakietu, takiego jak „{0}” lub identyfikatora pakietu i wersji, rozdzielonych znakiem „@”, np. „{0}@{1}”. Package reference id and version must not be null. - Package reference id and version must not be null. + Identyfikator odwołania i wersja pakietu nie mogą mieć wartości null. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Nie można określić parametru --version, jeśli argument pakietu zawiera już wersję. {Locked="--version"} Package reference - Package reference + Odwołanie do pakietu A version of {0} of package {1} - A version of {0} of package {1} + Wersja {0} pakietu {1} Version {0} of package {1} - Version {0} of package {1} + Wersja {0} pakietu {1} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + Wersja między {0} i {1} pakietu {2} A version higher than {0} of package {1} - A version higher than {0} of package {1} + Wersja nowsza niż {0} pakietu {1} A version less than {0} of package {1} - A version less than {0} of package {1} + Wersja mniejsza niż {0} pakietu {1} Project - Project + Projekt Project `{0}` added to the solution. - Project `{0}` added to the solution. + Dodano projekt „{0}” do rozwiązania. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + Projekt zawiera już odwołanie do elementu „{0}”. The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Plik projektu, na którym ma zostać wykonana operacja. Jeśli nie określono pliku, polecenie przeszuka bieżący katalog pod jego kątem. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + Nie można ocenić projektu „{0}”. Ocena nie powiodła się z powodu następującego błędu: {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + Projekt „{0}” nie istnieje. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + „{1}” nie jest platformą docelową projektu „{0}”. Project `{0}` is invalid. - Project `{0}` is invalid. + Projekt „{0}” jest nieprawidłowy. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + Nie można dodać projektu „{0}” z powodu niezgodnych platform docelowych dwóch projektów. Sprawdź projekt, który próbujesz dodać, i zweryfikuj, czy jest zgodny z następującymi platformami docelowymi: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + Nie można odnaleźć projektu „{0}” w rozwiązaniu. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Plik projektu lub aplikacja oparta na plikach języka C#, na którym ma działać. Jeśli plik nie zostanie określony, polecenie wyszuka bieżący katalog w poszukiwaniu pliku projektu. PROJECT | FILE - PROJECT | FILE + PROJEKT | PLIK Project reference - Project reference + Odwołanie do projektu Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + Nie można odnaleźć odwołania do projektu „{0}”. Project reference(s) - Project reference(s) + Odwołania do projektów Project reference `{0}` removed. - Project reference `{0}` removed. + Odwołanie do projektu „{0}” zostało usunięte. Project `{0}` removed from solution. - Project `{0}` removed from solution. + Projekt „{0}” został skasowany z rozwiązania. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + Projekt „{0}” został skasowany z rozwiązania. Razor build server - Razor build server + Serwer kompilacji Razor Reference - Reference + Odwołanie Reference `{0}` added to the project. - Reference `{0}` added to the project. + Do projektu zostało dodane odwołanie „{0}”. Remove - Remove + Usuń Required command was not provided. - Required command was not provided. + Nie podano wymaganego polecenia. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: Rozpoznawanie elementu commandspec z bibliotek narzędzia {1}. Response file '{0}' does not exist. - Response file '{0}' does not exist. + Plik odpowiedzi „{0}” nie istnieje. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + Nie można wyszukać. Późniejsza ponowna próba może rozwiązać problem. Szczegóły odpowiedzi interfejsu API wyszukiwania NuGet: + Adres URL żądania: {0}. Fraza przyczyny: {1}. Kod stanu: {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Włącz diagnostyczne dane wyjściowe. Display the command schema as JSON. - Display the command schema as JSON. + Wyświetl schemat polecenia jako kod JSON. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Opcji „--self-contained” i „--no-self-contained” nie można używać razem. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Opublikuj środowisko uruchomieniowe platformy .NET z aplikacją, aby nie trzeba było instalować środowiska uruchomieniowego na maszynie docelowej. +Wartość domyślna to „false”. Jednak w przypadku, gdy docelową jest platforma .NET 7 lub jej niższa wersja wartością domyślną jest „true”, jeśli określono identyfikator środowiska uruchomieniowego. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + Wystąpił konflikt między poleceniem „{0}” i istniejącym poleceniem z innego narzędzia. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Wyszukaj dostępne wersje obciążeń lub elementy składowe poszczególnych wersji obciążeń. Aby uzyskać więcej informacji, użyj polecenia „dotnet workload search version --help”. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Pokaż pomoc wiersza polecenia. The shutdown command failed: {0} - The shutdown command failed: {0} + Polecenie zamknięcia nie powiodło się: {0} Solution - Solution + Rozwiązanie Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + Rozwiązanie {0} zawiera już projekt {1}. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + Argument rozwiązania „{0}” jest zagubiony. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Określony plik rozwiązania {0} nie istnieje bądź w katalogu nie ma żadnego pliku rozwiązania. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Plik projektu lub rozwiązania, dla którego ma zostać wykonana operacja. Jeśli plik nie zostanie podany, polecenie wyszuka go w bieżącym katalogu. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Projekt lub rozwiązanie albo plik C# (program oparty na plikach), na którym ma być wykonana operacja. Jeśli plik nie zostanie określony, polecenie wyszuka bieżący katalog w poszukiwaniu projektu lub rozwiązania. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJEKT | ROZWIĄZANIE | PLIK Specify at least one {0}. - Specify at least one {0}. + Określ co najmniej jeden element {0}. You must specify at least one project to add. - You must specify at least one project to add. + Musisz określić co najmniej jeden projekt do dodania. You must specify at least one project to remove. - You must specify at least one project to remove. + Musisz określić co najmniej jeden projekt do skasowania. You must specify at least one reference to remove. - You must specify at least one reference to remove. + Musisz określić co najmniej jedno odwołanie do usunięcia. {0}: tool library found {1} - {0}: tool library found {1} + {0}: Znaleziono bibliotekę narzędzia {1} Missing 'version' entry. - Missing 'version' entry. + Brak wpisu „version”. Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + Narzędzie „{0}” (wersja: „{1}”) jest już zainstalowane. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + Pakiet {0} nie jest narzędziem platformy .NET. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + Polecenie „{0}” zawiera co najmniej jeden nieprawidłowy znak: {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + Nazwa polecenia „{0}” nie może zaczynać się od kropki (.). Invalid XML: {0} - Invalid XML: {0} + Nieprawidłowy kod XML: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + Narzędzie definiuje polecenie z brakującym ustawieniem nazwy. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + W poleceniu „{0}” brakuje ustawienia punktu wejścia. More than one command is defined for the tool. - More than one command is defined for the tool. + Dla narzędzia zdefiniowano więcej niż jedno polecenie. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + Narzędzie „{0}” używa nieobsługiwanego modułu uruchamiającego „{1}”.” The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + Narzędzie nie obsługuje bieżącej architektury ani systemu operacyjnego ({0}). Obsługiwane środowiska uruchomieniowe: {1} Type - Type + Typ The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + Nie można sprawdzić żądanych zasad łańcucha certyfikatów: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + nie można usunąć tymczasowego pliku deps.json: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + Nie można wygenerować pliku deps.json. Plik mógł zostać już wygenerowany. Możesz określić opcję opcji „-d" po poleceniu „dotnet" dla danych wyjściowych diagnostyki (na przykład polecenie: „dotnet -d <toolname>": {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + Nie można zlokalizować multipleksera dotnet Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + Oczekiwano wartości {0} dla właściwości „{1}”. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Nierozpoznane polecenie lub argument „{0}” Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + Projekt „{0}” ma nieznany typ projektu i nie można go dodać do pliku rozwiązania. Skontaktuj się z dostawcą zestawu SDK w celu uzyskania pomocy technicznej. Update - Update + Aktualizuj VB/C# compiler server - VB/C# compiler server + Serwer kompilatora VB/C# Value - Value + Wartość Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Ustaw poziom szczegółowości programu MSBuild. Dopuszczalne wartości to: q[uiet], m[inimal], n[ormal], d[etailed] i diag[nostic]. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + Zweryfikowano, że pakiet NuGet „{0}” ma prawidłowy podpis. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + Nie można rozpoznać wersji pakietu „{0}”. Version {0} is invalid. - Version {0} is invalid. + Wersja {0} jest nieprawidłowa. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + Napotkano problem podczas weryfikowania obciążeń. Aby uzyskać więcej informacji, uruchom polecenie „dotnet workload update”. {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Zaakceptuj wszystkie monity o potwierdzenie, używając słowa „tak”. diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.pt-BR.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.pt-BR.xlf index b1010ed09091..7c192a6159f9 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.pt-BR.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.pt-BR.xlf @@ -4,89 +4,89 @@ Add - Add + adicionar Ambiguous command name: {0} - Ambiguous command name: {0} + Nome de comando ambíguo: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + A arquitetura de destino. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + O caminho dos artefatos. Toda a saída do projeto, incluindo compilação, publicação e saída do pacote, irá para subpastas no caminho especificado. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: tentando criar commandspec {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: tentando encontrar o comando {1} em {2} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: tentando resolver {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: tentando resolver commandspec por meio da ferramenta {1} outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} não existe Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + Não é possível criar o shim do shell para um caminho executável vazio. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + Não é possível localizar um arquivo de manifesto. A lista de caminhos pesquisados: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + Não é possível localizar um pacote com a ID {0} no arquivo de manifesto. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Falha ao resolver o identificador de tempo de execução atual. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Não há suporte para especificar as opções '-r |--runtime ' e '-a |--arch '. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Não há suporte para especificar as opções '-r |--runtime ' e '-a |--os '. @@ -100,21 +100,21 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Define o valor de uma variável de ambiente. +Cria a variável se ela não existir, substitui se existir. +Este argumento pode ser especificado várias vezes para fornecer múltiplas variáveis. -Examples: +Exemplos: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="valor com espaços" +-e VARIABLE="valor;separado por;ponto e vírgula" -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NAME="VALUE" @@ -129,117 +129,117 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Define o valor de uma variável de ambiente. +Criará a variável quando ela não existir e a substituirá quando existir. +Isso forçará a execução dos testes em um processo isolado. +Esse argumento pode ser especificado várias vezes para fornecer várias variáveis. -Examples: +Exemplos: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="valor com espaços" +-e VARIABLE="valor;separado com;ponto e vírgula" -e VAR1=abc -e VAR2=def -e VAR3=ghi Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Definir o valor da propriedade $(VersionSuffix) a ser usado ao compilar o projeto. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + A largura máxima da coluna deve ser maior que zero. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + O comando executável para "{0}" não foi encontrado. O projeto pode não ter sido restaurado ou a restauração falhou – execute `dotnet restore` Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Permite que o comando seja interrompido e aguarde a ação ou entrada do usuário (por exemplo, para concluir a autenticação). Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Permite a instalação de pacotes de pré-lançamento. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec é nulo. FRAMEWORK - FRAMEWORK + ESTRUTURA File `{0}` not found. - File `{0}` not found. + Arquivo ‘{0}’ não encontrado. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + O arquivo de solução {0} especificado não existe ou não há um arquivo de solução no diretório. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + Não foi possível encontrar a solução ou o diretório ‘{0}’. {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: não foi possível localizar o arquivo runtimeconfig.json para a ferramenta {1} Delete - Delete + Excluir Unable to find deps.json generator project. - Unable to find deps.json generator project. + Não é possível localizar o projeto do gerador deps.json. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: não encontrou um projeto {1} correspondente. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: ProjectFactory não encontrou o Projeto. Did you mean the following command? - Did you mean the following command? + Você quis dizer o seguinte comando? Directory - Directory + Diretório Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Force o comando a ignorar quaisquer servidores de compilação persistentes. {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} não existe @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + O diretório de ferramentas "{0}" não está atualmente na variável de ambiente PATH. +Se você estiver usando bash, pode adicioná-lo ao seu perfil executando o seguinte comando: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Adicionar ferramentas do SDK do .NET Core export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Você pode adicioná-lo à sessão atual executando o seguinte comando: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + Já que você acabou de instalar o SDK do .NET, ainda precisará fazer logoff ou reiniciar a sessão antes de executar a ferramenta instalada. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + O diretório de ferramentas "{0}" não está atualmente na variável de ambiente PATH. +Se você estiver usando bash, pode adicioná-lo ao seu perfil executando o seguinte comando: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Adicionar ferramentas do SDK do .NET Core export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Você pode adicioná-lo à sessão atual executando o seguinte comando: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + Já que você acabou de instalar o SDK do .NET, ainda precisará reabrir o terminal antes de executar a ferramenta instalada. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + O diretório de ferramentas "{0}" não está atualmente na variável de ambiente PATH. +Se você estiver usando zsh, pode adicioná-lo ao seu perfil executando o seguinte comando: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# Adicionar ferramentas do SDK do .NET Core export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +E execute `zsh -l` para torná-lo disponível na sessão atual. -You can only add it to the current session by running the following command: +Você só pode adicioná-lo à sessão atual executando o seguinte comando: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + O diretório de ferramentas '{0}' não está na variável de ambiente PATH no momento. -You can add the directory to the PATH by running the following command: +Você pode adicionar o diretório à variável PATH executando o seguinte comando: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + Já que você acabou de instalar o SDK do .NET, ainda precisará reabrir a janela do Prompt de Comando antes de executar a ferramenta instalada. Error - Error + Erro You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + Você está executando a operação 'tool install' com uma fonte 'HTTP': {0}. O NuGet requer fontes HTTPS. Para usar uma fonte HTTP, você deve definir explicitamente 'allowInsecureConnections' como true no arquivo NuGet.Config. Consulte https://aka.ms/nuget-https-everywhere para mais informações. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: espera de deps.json em: {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + Falha ao definir as permissões do executável do usuário para o shim do shell: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + Falha ao criar o shim da ferramenta para o comando '{0}': {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: falha ao encontrar commandPath {1} Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + Falha ao encontrar a biblioteca no arquivo de ativos do NuGet para o pacote de ferramenta '{0}': {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + O Mapeamento de Origem do Pacote está habilitado, mas nenhuma origem foi encontrada na ID de pacote especificada: {0}. Consulte a documentação do Mapeamento de Origem do Pacote em https://aka.ms/nuget-package-source-mapping para obter mais detalhes. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + Falha ao encontrar o pacote de ferramentas preparado '{0}'. {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: falha ao encontrar toolAssembly para {1} Failed to load NuGet source {0} - Failed to load NuGet source {0} + Falha no carregamento da fonte NuGet {0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + O Mapeamento de Origem do Pacote está habilitado, mas nenhuma origem foi mapeada na ID de pacote especificada: {0}. Consulte a documentação do Mapeamento de Origem do Pacote em https://aka.ms/nuget-package-source-mapping para obter mais detalhes. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + Falha ao ler o arquivo de ativos do NuGet para o pacote de ferramenta '{0}': {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + Falha ao ler o arquivo PID '{0}': {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + Falha ao remover o shim da ferramenta para o comando '{0}': {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: falha ao resolver commandspec por meio da biblioteca. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Falha ao recuperar a configuração da ferramenta: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + Falha ao adicionar '{0}' à variável de ambiente PATH. Adicione este diretório ao seu PATH para usar as ferramentas instaladas com 'dotnet tool install'. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + Falha ao desinstalar o pacote da ferramenta '{0}': {1} Failed to validate package signing. {0} - Failed to validate package signing. + Falha na validação da assinatura do pacote. {0} Missing 'commands' entry. - Missing 'commands' entry. + Entrada 'commands' ausente. File - File + Arquivo The file-based app to operate on. - The file-based app to operate on. + O aplicativo baseado no arquivo a ser operado. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + A versão do formato é superior à versão compatível. Pode não haver suporte para esta ferramenta nesta versão do SDK. Atualize o SDK. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + A versão do formato está malformada. Pode não haver suporte para esta ferramenta nesta versão do SDK. Entre em contato com o autor da ferramenta. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + A versão do formato está ausente. Pode não haver suporte para esta ferramenta nesta versão do SDK. Entre em contato com o autor da ferramenta. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + Foi encontrado um projeto ‘{0}’, mas ele é inválido. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: arquivo de bloqueio de ferramenta encontrado em: {1} FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Publique o seu aplicativo como um aplicativo dependente de estrutura. Um runtime do .NET compatível precisa ser instalado no computador de destino para executar o aplicativo. Generating deps.json at: {0} - Generating deps.json at: {0} + Gerando deps.json em: {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: ignorando o arquivo prefercliruntime, uma vez que a estrutura de destino da ferramenta ({1}) tem uma versão principal diferente daquela do tempo de execução atual da CLI ({2}) In package {0}: {1} - In package {0}: + No pacote {0}: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Variáveis de ambiente formatadas incorretamente: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: commandResolverArguments inválido {0} should be an integer - {0} should be an integer + {0} deve ser um inteiro Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Arquivo de manifesto inválido. Caminho de {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + Projeto ‘{0}’ inválido. Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + Projeto inválido `{0}`. {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + O identificador de tempo de execução {0} é inválido. Os identificadores de tempo de execução válidos são: {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + Solução inválida `{0}`. {1}. Invalid version string: {0} - Invalid version string: {0} + Cadeia de caracteres de versão inválida: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + {0} não é encontrado no NuGet feeds {1}. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + Erro no arquivo de análise JSON {0} : {1} LEVEL - LEVEL + LEVEL Library - Library + Biblioteca {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: biblioteca não encontrada no arquivo de bloqueio. List - List + Listar {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: procurando o arquivo prefercliruntime em '{1}' .NET Cli Options: - .NET Cli Options: + Opções da CLI do .NET: MSBuild arguments: {0} - MSBuild arguments: {0} + Argumentos do MSBuild: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: caminho de projeto do MSBuild = {1} MSBuild server - MSBuild server + Servidor MSBuild File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + O arquivo {0} veio de outro computador e pode estar bloqueado para ajudar a proteger este computador. Para obter mais informações, incluindo como desbloquear, consulte https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + Entrada 'isRoot' ausente. Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + Não é possível adicionar o pacote. O arquivo de manifesto já contém a versão {0} do pacote {1}. Instale/desinstale ou edite o arquivo de manifesto {2} para especificar a nova versão {3}. Manifest version 0 is not supported. - Manifest version 0 is not supported. + Não há suporte para a versão de manifesto 0. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + A versão de manifesto é {0}. Este manifesto pode não ter suporte nesta versão do SDK, que dá suporte até a versão de manifesto {1}. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + O arquivo de ponto de entrada '{0}' do comando '{1}' não foi encontrado no pacote. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + O arquivo de configurações 'DotnetToolSettings.xml' não foi encontrado no pacote. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Há mais de um shim empacotado disponível: {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + Foi encontrado mais de um arquivo de solução em {0}. Especifique qual deve ser usado. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Especifique qual arquivo de projeto será usado, pois este '{0}' contém mais de um arquivo de projeto. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Existe mais de uma entrada para os pacotes: {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + Execute "dotnet tool restore" para tornar o comando "{0}" disponível. New - New + Novo Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Não exibe a faixa de inicialização ou a mensagem de direitos autorais. No projects found in the solution. - No projects found in the solution. + Não foi encontrado nenhum projeto na solução. There are no {0} references in project {1}. - There are no {0} references in project {1}. + Não há nenhuma referência {0} no projeto {1}. Do not restore the project before building. - Do not restore the project before building. + Não restaurar o projeto antes de compilar. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: + Falha na pesquisa. Detalhe da resposta da API de Pesquisa do NuGet: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + Ignorando a verificação de assinatura para o pacote NuGet "{0}" porque ele vem de uma origem que não requer validação de assinatura. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + Ignorando a verificação de assinatura do pacote NuGet. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: raiz de pacotes NuGet: {1} OS - OS + SO Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + Somente um projeto pode ser especificado por vez usando a opção -p. {Locked="-p"} The target operating system. - The target operating system. + O sistema operacional de destino. Project to Project - Project to Project + Projeto para Projeto Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + Somente um arquivo .nuspec pode ser empacotado por vez Package - Package + Pacote Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Referência de pacote na forma de um identificador de pacote como '{0}' ou identificador de pacote e versão separados por '@', como '{0}@{1}'. Package reference id and version must not be null. - Package reference id and version must not be null. + O ID e a versão da referência do pacote não podem ser nulos. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Não é possível especificar --version quando o argumento do pacote já contém uma versão. {Locked="--version"} Package reference - Package reference + Referência do pacote A version of {0} of package {1} - A version of {0} of package {1} + Uma versão do {0} do pacote {1} Version {0} of package {1} - Version {0} of package {1} + Versão {0} do pacote {1} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + Uma versão entre {0} e {1} do pacote {2} A version higher than {0} of package {1} - A version higher than {0} of package {1} + Uma versão superior a {0} do pacote {1} A version less than {0} of package {1} - A version less than {0} of package {1} + Uma versão anterior a {0} do pacote {1} Project - Project + Projeto Project `{0}` added to the solution. - Project `{0}` added to the solution. + O projeto ‘{0}’ foi adicionado à solução. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + O projeto já tem uma referência a ‘{0}’. The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + O arquivo de projeto no qual operar. Se um arquivo não for especificado, o comando pesquisará um no diretório atual. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + O projeto '{0}' não pôde ser avaliado. A avaliação falhou com o seguinte erro: {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + O projeto ‘{0}’ não existe. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + O projeto '{0}' não tem como destino a estrutura '{1}'. Project `{0}` is invalid. - Project `{0}` is invalid. + O projeto ‘{0}’ é inválido. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + O projeto '{0}' não pode ser adicionado por causa de estruturas de destino incompatíveis entre os dois projetos. Examine o projeto que você está tentando adicionar e verifique se ele é compatível com os seguintes destinos: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + Não foi possível encontrar o projeto ‘{0}’ na solução. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + O arquivo do projeto ou aplicativo baseado em arquivo C# a ser operado. Se um arquivo não for especificado, o comando pesquisará um arquivo de projeto no diretório atual. PROJECT | FILE - PROJECT | FILE + PROJETO | ARQUIVO Project reference - Project reference + Referência do projeto Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + Não foi possível encontrar a referência de projeto ‘{0}’. Project reference(s) - Project reference(s) + Referências de projeto Project reference `{0}` removed. - Project reference `{0}` removed. + Referência de projeto ‘{0}’ removida. Project `{0}` removed from solution. - Project `{0}` removed from solution. + O projeto ‘{0}’ foi removido da solução. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + O projeto `{0}` foi removido da solução. Razor build server - Razor build server + Servidor de build Razor Reference - Reference + Referência Reference `{0}` added to the project. - Reference `{0}` added to the project. + A referência ‘{0}’ foi adicionada ao projeto. Remove - Remove + Remover Required command was not provided. - Required command was not provided. + O comando necessário não foi fornecido. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: resolvendo commandspec por meio das Bibliotecas de Ferramentas de {1}. Response file '{0}' does not exist. - Response file '{0}' does not exist. + O arquivo de resposta '{0}' não existe. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: + Falha na pesquisa. Uma nova tentativa mais tarde poderá resolver o problema. Detalhe da resposta da API de Pesquisa do NuGet: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Habilitar saída de diagnóstico. Display the command schema as JSON. - Display the command schema as JSON. + Exibir o esquema do comando em JSON. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + As opções '--self-contained' e '--no-self-contained' não podem ser usadas juntas. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Publique o runtime do .NET junto com seu aplicativo para que o runtime não precise ser instalado no computador de destino. +O padrão é "falso." No entanto, ao direcionar para .NET 7 ou inferior, o padrão é "verdadeiro" se um identificador de runtime for especificado. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + O comando '{0}' conflita com um comando existente de outra ferramenta. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Pesquisar por versões disponíveis da carga de trabalho ou pelo que compõe uma versão da carga de trabalho. Use 'dotnet workload search version --help' para mais informações. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Mostrar a ajuda da linha de comando. The shutdown command failed: {0} - The shutdown command failed: {0} + O comando de desligamento falhou: {0} Solution - Solution + Solução Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + A solução {0} já contém o projeto {1}. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + O argumento da solução '{0}' está mal colocado. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + O arquivo de solução {0} especificado não existe ou não há um arquivo de solução no diretório. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + O arquivo de solução ou projeto para operar. Se um arquivo não for especificado, o comando pesquisará um no diretório atual. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + O projeto, solução ou arquivo C# (programa baseado em arquivo) para operar. Se um arquivo não for especificado, o comando buscará na pasta atual por um projeto ou solução. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJETO | SOLUÇÃO | ARQUIVO Specify at least one {0}. - Specify at least one {0}. + Especifique pelo menos um {0}. You must specify at least one project to add. - You must specify at least one project to add. + É necessário especificar pelo menos um projeto a ser adicionado. You must specify at least one project to remove. - You must specify at least one project to remove. + É necessário especificar pelo menos um projeto para ser removido. You must specify at least one reference to remove. - You must specify at least one reference to remove. + É necessário especificar pelo menos uma referência a ser removida. {0}: tool library found {1} - {0}: tool library found {1} + {0}: a biblioteca de ferramentas encontrou {1} Missing 'version' entry. - Missing 'version' entry. + Entrada 'version' ausente. Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + A ferramenta '{0}' (versão '{1}') já está instalada. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + O pacote {0} não é uma ferramenta .NET. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + O comando '{0}' contém um ou mais dos seguintes caracteres inválidos: {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + O nome do comando '{0}' não pode começar com ponto final (.) à esquerda. Invalid XML: {0} - Invalid XML: {0} + XML inválido: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + A ferramenta define um comando com uma configuração de nome ausente. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + Há uma configuração de ponto de entrada ausente no comando '{0}'. More than one command is defined for the tool. - More than one command is defined for the tool. + Há mais de um comando definido para a ferramenta. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + A ferramenta '{0}' usa o executor '{1}' que não é suportado." The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + A ferramenta não suporta a arquitetura ou sistema operacional atual ({0}). Runtimes com suporte: {1} Type - Type + Tipo The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + Não foi possível verificar a política de cadeia de certificados solicitada: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + não é possível excluir o arquivo temporário deps.json: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + Não é possível gerar deps.json, ele pode já ter sido gerado. Você pode especificar a opção "-d" após "dotnet" para a saída de diagnóstico (por exemplo, "dotnet -d <toolname>": {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + Não é possível localizar o multiplexador do dotnet Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + Um {0} era esperado para a propriedade '{1}'. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Comando ou argumento '{0}' não reconhecido Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + O projeto '{0}' tem um tipo de projeto desconhecido e não pode ser adicionado ao arquivo da solução. Entre em contato com o provedor do SDK para obter suporte. Update - Update + Atualização VB/C# compiler server - VB/C# compiler server + Servidor do compilador VB/C# Value - Value + Valor Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Definir o nível de detalhamento do MSBuild. Os valores permitidos são q[uiet], m[inimal], n[ormal], d[etailed] e diag[nostic]. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + Verificado que o pacote NuGet "{0}" tem uma assinatura válida. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + A versão do pacote '{0}' não pôde ser resolvida. Version {0} is invalid. - Version {0} is invalid. + A versão {0} não é válida. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + Foi encontrado um problema ao verificar as cargas de trabalho. Para obter mais informações, execute "dotnet workload update". {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Aceite todas as solicitações de confirmação usando "sim." diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.ru.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.ru.xlf index daa186bb2e53..038e50410d21 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.ru.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.ru.xlf @@ -4,89 +4,89 @@ Add - Add + добавить Ambiguous command name: {0} - Ambiguous command name: {0} + Неоднозначное имя команды: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + Целевая архитектура. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Путь к артефактам. Все выходные данные проекта, включая выходные данные сборки, публикации и упаковки, будут направляться во вложенные папки по указанному пути. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: попытка создать спецификацию команды {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: попытка найти команду {1} в {2} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: попытка разрешить {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: попытка разрешить спецификацию команды из средства {1} outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} не существует. Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + Невозможно создать оболочку совместимости для пустого пути к исполняемому файлу. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + Не удается найти файл манифеста. Список путей, где был выполнен поиск: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + Не удается найти пакет с ИД {0} в файле манифеста. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Не удалось разрешить текущий идентификатор среды выполнения. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Указание параметров "-r|--runtime" и "-a|--arch" не поддерживается. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Указание параметров "-r|--runtime" и "-os" не поддерживается. @@ -100,21 +100,21 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Устанавливает значение переменной среды. +Если переменной среды не существует, она создается, если существует — переопределяется. +Этот аргумент может быть указан несколько раз для указания нескольких переменных. -Examples: +Примеры: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="значение с пробелами" +-e VARIABLE="значение;разделенное;точками;с;запятыми" -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NAME="VALUE" @@ -129,117 +129,117 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Устанавливает значение переменной среды. +Если переменной среды не существует, она создается. Если переменная среды существует, она переопределяется. +Этот аргумент подразумевает принудительное выполнение тестов в изолированном процессе. +Этот аргумент может быть указан несколько раз для нескольких переменных среды. -Examples: +Примеры: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="значение с пробелами" +-e VARIABLE="значение;разделенное;точками;с;запятыми" -e VAR1=abc -e VAR2=def -e VAR3=ghi Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Установка значения свойства $(VersionSuffix), используемого для сборки проекта. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + Максимальная ширина столбца должна быть больше нуля. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + Исполняемый файл команды для "{0}" не найден. Возможно, проект не был восстановлен или его восстановление завершилось сбоем. Запустите команду "dotnet restore". Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Позволяет остановить команду и ожидать ввода или действия пользователя (например, для проверки подлинности). Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Разрешает установку пакетов предварительного выпуска. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec имеет значение NULL. FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + Файл "{0}" не найден. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Указанный файл решения "{0}" не существует, или в каталоге нет файла решения. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + Не удалось найти решение или каталог "{0}". {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: не удалось найти файл runtimeconfig.json для средства {1} Delete - Delete + Удалить Unable to find deps.json generator project. - Unable to find deps.json generator project. + Не удалось найти проект генератора deps.json. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: не найден подходящий проект {1}. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: фабрика проектов не нашла проект. Did you mean the following command? - Did you mean the following command? + Вы имели в виду следующую команду? Directory - Directory + Каталог Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Принудительно игнорировать все постоянные серверы сборки. {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} не существует. @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Каталог инструментов "{0}" сейчас не входит в переменную среды PATH. +Если вы используете bash, то можете добавить этот каталог в свой профиль, выполнив следующую команду: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Добавление инструментов пакета SDK для .NET Core export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Чтобы добавить его в текущий сеанс, выполните следующую команду: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + Так как вы только что установили пакет SDK для .NET, перед его запуском нужно выйти из системы или перезапустить сеанс. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Каталог инструментов "{0}" сейчас не входит в переменную среды PATH. +Если вы используете bash, то можете добавить этот каталог в свой профиль, выполнив следующую команду: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Добавление инструментов пакета SDK для .NET Core export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Чтобы добавить его в текущий сеанс, выполните следующую команду: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + Так как вы только что установили пакет SDK для .NET, перед его запуском нужно заново открыть терминал. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + Каталог инструментов "{0}" сейчас не входит в переменную среды PATH. +Если вы используете zsh, можете добавить его в свой профиль, выполнив следующую команду: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# Добавление инструментов пакета SDK для .NET Core export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +И выполните команду `zsh -l`, чтобы сделать его доступным для текущего сеанса. -You can only add it to the current session by running the following command: +Его можно добавить только в текущий сеанс, выполнив следующую команду: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + Каталог инструментов "{0}" сейчас отсутствует в переменной среды PATH. -You can add the directory to the PATH by running the following command: +Вы можете добавить каталог в PATH, выполнив следующую команду: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + Так как вы только что установили пакет SDK для .NET, перед его запуском нужно заново открыть окно командной строки. Error - Error + Ошибка You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + Вы выполняете операцию "установка средства" с источником "HTTP": {0}. Для NuGet требуются источники HTTPS. Чтобы использовать источник HTTP, необходимо явно задать для параметра "allowInsecureConnections" значение true в файле NuGet.Config. Дополнительные сведения см. на странице https://aka.ms/nuget-https-everywhere. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: ожидается deps.json в: {1}. Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + Не удалось задать разрешения исполняемого файла пользователя для оболочки совместимости: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + Не удалось создать оболочку совместимости инструмента для команды "{0}": {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: не удалось найти commandPath {1}. Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + Не удалось найти библиотеку в файле ресурсов NuGet для пакета инструмента "{0}": {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Сопоставление источников пакетов включено, но не найден источник для указанного идентификатора пакета: {0}. Дополнительные сведения см. в документации по сопоставлению источников пакетов: https://aka.ms/nuget-package-source-mapping. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + Не удалось найти промежуточный пакет инструментов "{0}". {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: не удалось найти toolAssembly для {1}. Failed to load NuGet source {0} - Failed to load NuGet source {0} + Не удалось загрузить источник NuGet {0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Сопоставление источников пакетов включено, но не сопоставлен источник для указанного идентификатора пакета: {0}. Дополнительные сведения см. в документации по сопоставлению источников пакетов: https://aka.ms/nuget-package-source-mapping. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + Не удалось прочитать файл ресурсов NuGet для пакета инструмента "{0}": {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + Не удалось считать файл идентификатора процесса "{0}": {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + Не удалось удалить оболочку совместимости инструмента для команды "{0}": {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: не удалось разрешить спецификацию команды из библиотеки. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Не удалось получить конфигурацию инструмента: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + Не удалось добавить "{0}" в переменную среды PATH. Добавьте этот каталог в PATH, чтобы использовать средства, установленные с помощью команды dotnet tool install. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + Не удалось удалить пакет инструментов "{0}": {1} Failed to validate package signing. {0} - Failed to validate package signing. + Не удалось проверить подпись пакета. {0} Missing 'commands' entry. - Missing 'commands' entry. + Отсутствует запись "commands". File - File + Файл The file-based app to operate on. - The file-based app to operate on. + Приложение на основе файла для работы. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + Версия формата выше поддерживаемой. Возможно, средство не поддерживается в этой версии пакета SDK. Обновите пакет SDK. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + Версия формата имеет неправильный формат. Возможно, средство не поддерживается в этой версии пакета SDK. Обратитесь к автору средства. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + Версия формата отсутствует. Возможно, средство не поддерживается в этой версии пакета SDK. Обратитесь к автору средства. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + Найден проект "{0}", однако он недопустим. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: найден файл блокировки средства в: {1}. FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Опубликуйте приложение как зависимое от платформы. Для запуска приложения на целевом компьютере должна быть установлена совместимая среда выполнения .NET. Generating deps.json at: {0} - Generating deps.json at: {0} + Выполняется создание deps.json в: {0}. {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: файл prefercliruntime игнорируется, так как основные номера версии целевой платформы средства ({1}) и текущей среды выполнения CLI ({2}) различаются In package {0}: {1} - In package {0}: + В пакете {0}: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Неправильный формат переменных среды: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: недопустимый commandResolverArguments {0} should be an integer - {0} should be an integer + {0} должно быть целым числом. Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Недопустимый файл манифеста. Путь {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + Недопустимый проект "{0}". Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + Недопустимый проект "{0}". {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + Недопустимый идентификатор среды выполнения {0}. Допустимые идентификаторы среды выполнения: {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + Недопустимое решение "{0}". {1}. Invalid version string: {0} - Invalid version string: {0} + Недопустимая строка версии: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + {0} не найдено в веб-каналах NuGet {1}. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + Ошибка анализа JSON в файле {0} : {1} LEVEL - LEVEL + LEVEL Library - Library + Библиотека {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: не найдена библиотека в файле блокировки. List - List + Список {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: поиск файла prefercliruntime в "{1}" .NET Cli Options: - .NET Cli Options: + Параметры CLI .NET: MSBuild arguments: {0} - MSBuild arguments: {0} + Аргументы MSBuild: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: путь проекта MSBuild — {1} MSBuild server - MSBuild server + Сервер MSBuild File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + Файл {0} получен с другого компьютера и может быть заблокирован для защиты этого компьютера. Дополнительные сведения, включая процедуру разблокировки, см. на странице https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + Отсутствует запись "isRoot". Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + Не удается добавить пакет. Файл манифеста уже содержит версию {0} пакета {1}. Удалите и установите либо измените файл манифеста {2}, чтобы указать новую версию {3}. Manifest version 0 is not supported. - Manifest version 0 is not supported. + Версия манифеста 0 не поддерживается. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + Версия манифеста имеет значение {0}. Этот манифест может не поддерживаться в этой версии пакета SDK, которая способна поддерживать версии манифеста вплоть до {1}. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + Файл точки входа "{0}" для команды "{1}" не найден в пакете. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + Файл параметров "DotnetToolSettings.xml" не найден в пакете. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Доступно несколько упакованных оболочек совместимости: {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + Найдено несколько файлов решений в {0}. Выберите один. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Укажите используемый файл проекта, так как этот "{0}" содержит несколько таких файлов. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Существует несколько записей для следующих пакетов: {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + Запустите "dotnet tool restore", чтобы сделать команду "{0}" доступной. New - New + Новое Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Не отображать начальный баннер или сообщение об авторских правах. No projects found in the solution. - No projects found in the solution. + Проекты не найдены в решении. There are no {0} references in project {1}. - There are no {0} references in project {1}. + Нет ссылок {0} в проекте {1}. Do not restore the project before building. - Do not restore the project before building. + Не восстанавливать проект перед сборкой. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: + Не удалось выполнить поиск. Сведения об ответе API для поиска NuGet: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + Пропуск проверки подписи для пакета NuGet "{0}", так как он получен из источника, который не требует проверки подписи. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + Пропуск проверки подписи пакета NuGet. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: корень пакетов nuget: {1} OS - OS + ОС Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + С помощью параметра -p можно указать только один проект за раз. {Locked="-p"} The target operating system. - The target operating system. + Целевая операционная система. Project to Project - Project to Project + Проект — проект Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + Одновременно можно упаковать только один файл .nuspec Package - Package + Пакет Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Ссылка на пакет в виде идентификатора пакета, например "{0}", или идентификатора пакета и версии, разделенных "@", например "{0}@{1}". Package reference id and version must not be null. - Package reference id and version must not be null. + Идентификатор ссылки на пакет и версия не могут быть равны null. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Невозможно указать --version, если аргумент пакета уже содержит версию. {Locked="--version"} Package reference - Package reference + Ссылка на пакет A version of {0} of package {1} - A version of {0} of package {1} + Версия {0} пакета {1} Version {0} of package {1} - Version {0} of package {1} + Версия {0} пакета {1} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + Версия от {0} до {1} пакета {2} A version higher than {0} of package {1} - A version higher than {0} of package {1} + Версия пакета {1} выше {0} A version less than {0} of package {1} - A version less than {0} of package {1} + Версия пакета {1} ниже {0} Project - Project + Проект Project `{0}` added to the solution. - Project `{0}` added to the solution. + Проект "{0}" добавлен в решение. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + Проект уже содержит ссылку на "{0}". The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Обрабатываемый файл проекта. Если файл не указан, команда будет искать его в текущем каталоге. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + Не удалось оценить проект "{0}". Произошел сбой оценки со следующей ошибкой: {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + Проект "{0}" не существует. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + Проект "{0}" не нацелен на платформу "{1}". Project `{0}` is invalid. - Project `{0}` is invalid. + Проект "{0}" недопустим. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + Не удается добавить проект "{0}" из-за несовместимости целевых платформ этих двух проектов. Просмотрите добавляемый проект и убедитесь, что он совместим со следующими целевыми платформами: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + Проект "{0}" не удалось найти в решении. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Приложение на основе файла проекта или файла C# для работы. Если файл не указан, команда будет искать файл проекта в текущем каталоге. PROJECT | FILE - PROJECT | FILE + ПРОЕКТ | ФАЙЛ Project reference - Project reference + Ссылка на проект Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + Не удалось найти ссылку на проект "{0}". Project reference(s) - Project reference(s) + Ссылки проекта Project reference `{0}` removed. - Project reference `{0}` removed. + Ссылка на проект "{0}" удалена. Project `{0}` removed from solution. - Project `{0}` removed from solution. + Проект "{0}" удален из решения. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + Проект "{0}" удален из решения. Razor build server - Razor build server + Сервер сборки Razor Reference - Reference + Ссылка Reference `{0}` added to the project. - Reference `{0}` added to the project. + Ссылка "{0}" добавлена в проект. Remove - Remove + Удалить Required command was not provided. - Required command was not provided. + Обязательная команда не указана. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: разрешение спецификации команды из библиотек средств {1}. Response file '{0}' does not exist. - Response file '{0}' does not exist. + Файл отклика "{0}" не существует. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: + Не удалось выполнить поиск. Повторите попытку позже. Сведения об ответе API для поиска NuGet: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Включение выходных данных диагностики. Display the command schema as JSON. - Display the command schema as JSON. + Отобразить схему команды в формате JSON. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Параметры "--self-contained" и "--no-self-contained" нельзя использовать вместе. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Публикуйте среду выполнения .NET вместе с приложением, чтобы ее не пришлось устанавливать на целевом компьютере. +Значение по умолчанию — "false". Однако для .NET 7 или более ранней версии значение по умолчанию — "true", если указан идентификатор среды выполнения. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + Команда "{0}" конфликтует с существующей командой в другом инструменте. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Поиск доступных версий рабочей нагрузки или составных частей версии рабочей нагрузки. Используйте "dotnet workload search version --help" для получения дополнительных сведений. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Показать справку командной строки. The shutdown command failed: {0} - The shutdown command failed: {0} + Команда завершения работы не выполнена: {0} Solution - Solution + Решение Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + Решение {0} уже содержит проект {1}. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + Аргумент решения "{0}" размещен неправильно. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Указанный файл решения "{0}" не существует, или в каталоге нет файла решения. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Файл проекта или решения. Если файл не указан, команда будет искать его в текущем каталоге. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Файл проекта, решения или файл C# (программа на основе файла) для работы. Если файл не указан, команда будет искать его в текущем каталоге для проекта или решения. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJECT | SOLUTION | FILE Specify at least one {0}. - Specify at least one {0}. + Укажите хотя бы один "{0}". You must specify at least one project to add. - You must specify at least one project to add. + Необходимо указать по крайней мере один добавляемый проект. You must specify at least one project to remove. - You must specify at least one project to remove. + Необходимо указать по крайней мере один удаляемый проект. You must specify at least one reference to remove. - You must specify at least one reference to remove. + Необходимо указать по крайней мере одну удаляемую ссылку. {0}: tool library found {1} - {0}: tool library found {1} + {0}: найдена библиотека средств {1}. Missing 'version' entry. - Missing 'version' entry. + Отсутствует запись "version". Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + Инструмент "{0}" (версия "{1}") уже установлен. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + Пакет {0} не является средством .NET. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + Команда "{0}" содержит следующие недопустимы символы: {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + Имя команды "{0}" не может начинаться с точки (.). Invalid XML: {0} - Invalid XML: {0} + Недопустимый XML: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + Инструмент определяет команду, для которой не задано имя. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + В команде "{0}" не задана точка входа. More than one command is defined for the tool. - More than one command is defined for the tool. + Для инструмента определено больше одной команды. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + Инструмент "{0}" использует неподдерживаемое средство выполнения тестов "{1}"." The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + Инструмент не поддерживает текущую архитектуру или операционную систему ({0}). Поддерживаемые среды выполнения: {1} Type - Type + Тип The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + Не удалось проверить запрошенную политику цепочки сертификатов {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + не удается удалить временный файл deps.json: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + Не удалось создать deps.json, возможно, он уже создан. Параметр "-d" можно указать после "dotnet" для диагностических выходных данных (например, "dotnet -d <toolname>": {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + Не удается найти мультиплексор dotnet. Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + Ожидается {0} для свойства "{1}". Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Нераспознанная команда или аргумент "{0}" Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + Проект "{0}" имеет неизвестный тип и не может быть добавлен в файл решения. За поддержкой обратитесь к поставщику пакета SDK. Update - Update + Обновить VB/C# compiler server - VB/C# compiler server + Сервер компилятора VB или C# Value - Value + Значение Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Установка уровня детализации MSBuild. Допустимые значения: q[uiet], m[inimal], n[ormal], d[etailed] и diag[nostic]. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + Проверено, что пакет NuGet "{0}" содержит допустимую подпись. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + Не удалось разрешить версию для пакета "{0}". Version {0} is invalid. - Version {0} is invalid. + Версия {0} не является допустимой. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + При проверке рабочих нагрузок возникла проблема. Для получения дополнительных сведений выполните команду "dotnet workload update". {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Принимать все запросы подтверждения с помощью "да". diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.tr.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.tr.xlf index 2e79985d8997..2968c7959b15 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.tr.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.tr.xlf @@ -4,89 +4,89 @@ Add - Add + Ekle Ambiguous command name: {0} - Ambiguous command name: {0} + Belirsiz komut adı: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + Hedef mimari. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Yapıtlar yolu. Derleme, yayımlama ve paket çıkışı dahil olmak üzere projedeki tüm çıkışlar belirtilen yol altındaki alt klasörlerde bulunur. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: commandspec oluşturulmaya çalışılıyor {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: {2} içinde {1} komutu bulunmaya çalışılıyor {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: {1} öğesi çözümlenmeye çalışılıyor {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: {1} aracından commandspec çözümlenmeye çalışılıyor outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} yok Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + Boş bir yürütülebilir yol için kabuk dolgusu oluşturulamaz. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + Bildirim dosyası bulunamadı. Aranan yolların listesi: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + Bildirim dosyasında paket kimliği {0} olan ile bir paket bulunamıyor. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Geçerli çalışma zamanı tanımlayıcısı çözümlenemedi. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Hem `-r|--runtime` hem de `-a|--arch` seçeneğinin belirtilmesi desteklenmiyor. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Hem `-r|--runtime` hem de `-os` seçeneğinin belirtilmesi desteklenmiyor. @@ -100,21 +100,21 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Bir ortam değişkeninin değerini ayarlar. +Değişken yoksa oluşturur, varsa değişkeni geçersiz kılar. +Bu bağımsız değişken, birden çok değişken sağlamak için birden çok kez belirtilebilir. -Examples: --e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" --e VAR1=abc -e VAR2=def -e VAR3=ghi +Örnek: +-e DEĞİŞKEN=abc +-e DEĞİŞKEN="boşluk içeren değerler" +-e DEĞİŞKEN="noktalı virgülle;ayrılmış;değerler" +-e DEĞ1=abc -e DEĞ2=def -e DEĞ3=ghi NAME="VALUE" - NAME="VALUE" + AD="DEĞER" @@ -129,117 +129,117 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Bir ortam değişkeninin değerini ayarlar. +Değişken yoksa oluşturur, varsa değişkeni geçersiz kılar. +Bu, testleri yalıtılmış bir işlemde çalıştırılmaya zorlar. +Bu bağımsız değişken, birden çok değişken sağlamak için birden çok kez belirtilebilir. -Examples: --e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" --e VAR1=abc -e VAR2=def -e VAR3=ghi +Örnek: +-e DEĞİŞKEN=abc +-e DEĞİŞKEN="boşluk içeren değerler" +-e DEĞİŞKEN="noktalı virgülle;ayrılmış;değerler" +-e DEĞ1=abc -e DEĞ2=def -e DEĞ3=ghi Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Projeyi derlerken kullanılacak $(VersionSuffix) özelliğinin değerini ayarlar. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + Maksimum sütun genişliği sıfırdan büyük olmalıdır. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + "{0}" için komut yürütülebilir dosyası bulunamadı. Proje geri yüklenmemiş veya geri yükleme başarısız olmuş olabilir - `dotnet restore` çalıştırın Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Komutun durup kullanıcı girişini veya eylemini (örneğin, kimlik doğrulamasının tamamlanmasını) beklemesine izin verir . Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Ön sürüm paketlerinin yüklenmesini sağlar. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec null. FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + `{0}` dosyası bulunamadı. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Belirtilen {0} çözüm dosyası yok veya dizinde bir çözüm dosyası yok. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + `{0}` çözümü veya dizini bulunamadı. {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: {1} aracı için runtimeconfig.json dosyası bulunamadı Delete - Delete + Sil Unable to find deps.json generator project. - Unable to find deps.json generator project. + deps.json oluşturucu projesi bulunamıyor. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: Eşleşen {1} projesi bulunamadı. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: ProjectFactory, Projeyi bulamadı. Did you mean the following command? - Did you mean the following command? + Aşağıdaki komutu mu kullanmak istediniz? Directory - Directory + Dizin Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Komutu kalıcı derleme sunucularını yoksaymaya zorla. {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} yok @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + '{0}' araçlar dizini şu anda PATH ortam değişkeninde değil. +Bash kullanıyorsanız, şu komutu çalıştırarak profilinize ekleyebilirsiniz: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# .NET Core SDK araçları ekleyin export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Şu komutu çalıştırarak geçerli oturuma ekleyebilirsiniz: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + .NET SDK’sını yüklediğinizden, yüklediğiniz aracı çalıştırmadan önce oturumunuzu kapatmanız veya oturumu yeniden başlatmanız gerekiyor. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + '{0}' araçlar dizini şu anda PATH ortam değişkeninde değil. +Bash kullanıyorsanız, şu komutu çalıştırarak profilinize ekleyebilirsiniz: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# .NET Core SDK araçları ekleyin export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Şu komutu çalıştırarak geçerli oturuma ekleyebilirsiniz: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + .NET SDK’sını yüklediğinizden, yüklediğiniz aracı çalıştırmadan önce terminali yeniden açmanız gerekiyor. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + '{0}' araçlar dizini şu anda PATH ortam değişkeninde değil. +zsh kullanıyorsanız, aşağıdaki komutu çalıştırarak bunu profilinize ekleyebilirsiniz: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# .NET Core SDK araçları ekleyin export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +Geçerli oturum için kullanılabilir hale getirmek üzere `zsh -l` komutunu çalıştırın. -You can only add it to the current session by running the following command: +Aşağıdaki komutu çalıştırarak araçlar dizinini yalnızca geçerli oturuma ekleyebilirsiniz: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + '{0}' araç dizini şu anda PATH ortam değişkeni üzerinde değil. -You can add the directory to the PATH by running the following command: +Aşağıdaki komutu çalıştırarak dizini PATH öğesine ekleyebilirsiniz: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + .NET SDK’sını yüklediğinizden, yüklediğiniz aracı çalıştırmadan önce Komut İstemi penceresini yeniden açmanız gerekiyor. Error - Error + Hata You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + 'tool install' işlemini {0} 'HTTP' kaynağıyla çalıştırıyorsunuz. NuGet için HTTPS kaynakları gereklidir. Bir HTTP kaynağı kullanmak için NuGet.Config dosyanızda 'allowInsecureConnections' ayarını açıkça true olarak ayarlamanız gerekir. Daha fazla bilgi için şuraya bakın: https://aka.ms/nuget-https-everywhere. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: şu konumda deps.json bekleniyor: {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + Kabuk dolgusu için kullanıcı yürütülebilir dosya izinleri ayarlanamadı: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + '{0}' komutu için araç dolgusu oluşturulamadı: {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: {1} commandPath bulunamadı Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + '{0}' araç paketi için NuGet varlıkları dosyasında kitaplık bulunamadı: {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Paket Kaynak Eşlemesi etkinleştirildi ancak belirtilen paket kimliği altında kaynak bulunamadı: {0}. Paket Kaynak Eşlemesi hakkında daha fazla ayrıntı için https://aka.ms/nuget-package-source-mapping belgelerine bakın. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + '{0}' adlı hazırlanmış araç paketi bulunamadı. {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: {1} için toolAssembly bulunamadı Failed to load NuGet source {0} - Failed to load NuGet source {0} + {0} NuGet kaynağı yüklemesi yüklenemedi Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Paket Kaynak Eşlemesi etkinleştirildi ancak belirtilen paket kimliği altında eşlenen kaynak bulunamadı: {0}. Paket Kaynak Eşlemesi hakkında daha fazla ayrıntı için https://aka.ms/nuget-package-source-mapping belgelerine bakın. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + '{0}' araç paketi için NuGet varlık dosyası okunamadı: {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + '{0}' adlı pid dosyası okunamadı: {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + '{0}' komutu için araç dolgusu kaldırılamadı: {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: kitaplıktan commandspec çözümlenemedi. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Araç yapılandırması alınamadı: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + '{0}' dizini PATH ortam değişkenine eklenemedi. 'dotnet tool install' ile yüklenen araçları kullanmak için bu dizini PATH değişkeninize ekleyin. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + '{0}' araç paketi kaldırılamadı: {1} Failed to validate package signing. {0} - Failed to validate package signing. + Paket imzası doğrulanamadı. {0} Missing 'commands' entry. - Missing 'commands' entry. + 'commands' girişi eksik. File - File + Dosya The file-based app to operate on. - The file-based app to operate on. + İşlem yapılacak dosya tabanlı uygulama. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + Biçim sürümü desteklenenden daha yüksek. Bu araç bu SDK sürümünde desteklenmeyebilir. SDK’nızı güncelleştirin. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + Biçim sürümü hatalı biçimlendirilmiş. Bu araç bu SDK sürümünde desteklenmeyebilir. Aracın yazarına başvurun. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + Biçim sürümü eksik. Bu araç bu SDK sürümünde desteklenmeyebilir. Aracın yazarına başvurun. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + Bir `{0}` projesi bulundu ancak geçersiz. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: araç kilit dosyası şurada bulundu : {1} FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Uygulamanızı çerçeveye bağımlı bir uygulama olarak yayımlayın. Uygulamanızı çalıştırmak için hedef makineye uyumlu bir .NET çalışma zamanı yüklenmelidir. Generating deps.json at: {0} - Generating deps.json at: {0} + Şu konumda deps.json oluşturuluyor: {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: Araç hedef çerçevesi ({1}), geçerli CLI çalışma zamanından farklı bir ana sürüme ({2}) sahip olduğundan prefercliruntime dosyası yok sayılıyor In package {0}: {1} - In package {0}: + {0} paketinde: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Yanlış biçimlendirilmiş ortam değişkenleri: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: geçersiz commandResolverArguments {0} should be an integer - {0} should be an integer + {0} bir tamsayı olmalıdır Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Geçersiz bildirim dosyası. Yol {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + `{0}` projesi geçersiz. Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + `{0}` projesi geçersiz. {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + {0} çalışma zamanı tanımlayıcısı geçersiz. Geçerli çalışma zamanı tanımlayıcıları: {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + `{0}` çözümü geçersiz. {1}. Invalid version string: {0} - Invalid version string: {0} + Geçersiz sürüm dizesi: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + {0}, {1} NuGet akışlarında bulunamadı. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + {0} dosyasında Json ayrıştırma hatası : {1} LEVEL - LEVEL + LEVEL Library - Library + Kitaplık {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: kitaplık, kilit dosyasında bulunamadı. List - List + Liste {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: `{1}` konumunda prefercliruntime dosyası aranıyor .NET Cli Options: - .NET Cli Options: + .NET Cli Seçenekleri: MSBuild arguments: {0} - MSBuild arguments: {0} + MSBuild bağımsız değişkenleri: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: MSBuild proje yolu = {1} MSBuild server - MSBuild server + MSBuild sunucusu File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + {0} adlı dosya başka bir bilgisayardan geldiğinden bilgisayarı korumaya yardımcı olmak için engellenmiş olabilir. Engellemenin nasıl kaldırılacağı da dahil olmak üzere daha fazla bilgi için bkz. https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + 'isRoot' girişi eksik. Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + Paket eklenemiyor. Bildirim dosyası {1} paketinin {0} sürümünü zaten içeriyor. Yeni olan {3} sürümünü belirtmek için {2} bildirim dosyasını kaldırın/yükleyin veya düzenleyin. Manifest version 0 is not supported. - Manifest version 0 is not supported. + Bildirim sürümü 0 desteklenmez. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + Bildirim sürümü {0}. Bu bildirim, en fazla {1} bildirim sürümünü destekleyebilen bu SDK sürümünde desteklenemez. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + '{1}' komutu için '{0}' giriş noktası dosyası pakette bulunamadı. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + 'DotnetToolSettings.xml' ayar dosyası pakette bulunamadı. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Birden fazla paketlenmiş dolgu var: {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + {0} içinde birden fazla çözüm dosyası bulundu. Hangisinin kullanılacağını belirtin. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Bu '{0}' birden çok proje dosyası içerdiğinden, hangi proje dosyasının kullanılacağını belirtmeniz gerekir. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Paketler için birden fazla giriş var: {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + "{0}" komutunu kullanabilmek için "dotnet tool restore" komutunu çalıştırın. New - New + Yeni Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Başlangıç bandını veya telif hakkı iletisini görüntüleme. No projects found in the solution. - No projects found in the solution. + Çözümde proje bulunamadı. There are no {0} references in project {1}. - There are no {0} references in project {1}. + {1} projesinde hiçbir {0} başvurusu yok. Do not restore the project before building. - Do not restore the project before building. + Projeyi derlemeden önce geri yüklemeyin. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: + Arama başarısız oldu. NuGet Arama API'si yanıt ayrıntısı: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + "{0}"NuGet paketinin imza doğrulaması atlandı, çünkü imza doğrulaması gerektirmeyen bir kaynaktan geliyor. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + NuGet paket imzası doğrulaması atlanıyor. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: NuGet paketleri kökü: {1} OS - OS + İS Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + -p seçeneği kullanılarak tek seferde yalnızca bir proje belirtilebilir. {Locked="-p"} The target operating system. - The target operating system. + Hedef işletim sistemi. Project to Project - Project to Project + Projeden Projeye Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + Tek seferde yalnızca bir .nuspec dosyası paketlenebilir Package - Package + Paket Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + '{0}' gibi bir paket tanımlayıcısı veya '{0}@{1}' gibi '@' ile ayrılmış paket tanımlayıcısı ve sürümü şeklinde paket başvurusu. Package reference id and version must not be null. - Package reference id and version must not be null. + Paket referans kimliği ve sürümü null olmamalıdır. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Paket bağımsız değişkeni zaten bir sürüm içeriyorsa --version belirtilemez. {Locked="--version"} Package reference - Package reference + Paket başvurusu A version of {0} of package {1} - A version of {0} of package {1} + {1} paketinin bir {0} sürümü Version {0} of package {1} - Version {0} of package {1} + {1} paketinin {0} sürümü A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + {2} paketinin {0} ve {1} arasındaki bir sürümü A version higher than {0} of package {1} - A version higher than {0} of package {1} + {1} paketinin {0} sürümünden yüksek bir sürümü A version less than {0} of package {1} - A version less than {0} of package {1} + {1} paketinin {0} sürümünden düşük bir sürümü Project - Project + Proje Project `{0}` added to the solution. - Project `{0}` added to the solution. + `{0}` projesi çözüme eklendi. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + Projede `{0}` başvurusu zaten var. The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Üzerinde işlem yapılacak proje dosyası. Bir dosya belirtilmezse, komut geçerli dizinde böyle bir dosya arar. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + `{0}` projesi değerlendirilemedi. Değerlendirme şu hatayla başarısız oldu: {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + `{0}` projesi yok. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + `{0}` projesi `{1}` çerçevesini hedeflemiyor. Project `{0}` is invalid. - Project `{0}` is invalid. + `{0}` projesi geçersiz. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + `{0}` projesi, iki projede hedeflenen Framework'lerin birbiriyle uyumsuz olması nedeniyle eklenemiyor. Eklemeye çalıştığınız projeyi inceleyin ve aşağıdaki hedeflerle uyumlu olduğunu doğrulayın: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + `{0}` projesi çözümde bulunamadı. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + İşlem yapılacak proje dosyası veya C# dosyası tabanlı uygulama. Bir dosya belirtilmezse, komut geçerli dizinde bir proje dosyası arar. PROJECT | FILE - PROJECT | FILE + PROJE | DOSYA Project reference - Project reference + Proje başvurusu Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + `{0}` proje başvurusu bulunamadı. Project reference(s) - Project reference(s) + Proje başvuruları Project reference `{0}` removed. - Project reference `{0}` removed. + `{0}` proje başvurusu kaldırıldı. Project `{0}` removed from solution. - Project `{0}` removed from solution. + `{0}` projesi çözümden kaldırıldı. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + `{0}` projesi çözümden kaldırıldı. Razor build server - Razor build server + Razor derleme sunucusu Reference - Reference + Başvuru Reference `{0}` added to the project. - Reference `{0}` added to the project. + `{0}` başvurusu projeye eklendi. Remove - Remove + Kaldır Required command was not provided. - Required command was not provided. + Gerekli komut sağlanmadı. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: {1} Araç Kitaplıklarından commandspec çözümleniyor. Response file '{0}' does not exist. - Response file '{0}' does not exist. + '{0}' yanıt dosyası mevcut değil. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: + Arama başarısız oldu. Daha sonra yeniden denemek sorunu çözebilir. NuGet Arama API'si yanıt ayrıntısı: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Tanılama çıkışını etkinleştirir. Display the command schema as JSON. - Display the command schema as JSON. + Komut şemasını JSON formatında görüntüle. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + '--self-contained' ve '--no-self-contained' seçenekleri birlikte kullanılamaz. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Uygulamanızla birlikte .NET çalışma zamanını yayımladığınızda hedef makinede çalışma zamanının yüklü olması gerekmez. +Varsayılan değer 'false.' Ancak çalışma zamanı tanımlayıcısı belirtildiyse .NET 7 veya altı projeler hedeflenirken varsayılan değer 'true' olur. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + '{0}' komutu, başka bir araçtaki mevcut bir komutla çakışıyor. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Mevcut iş yükü sürümlerini veya bir iş yükü sürümünü neyin oluşturduğunu arayın. Daha fazla bilgi için 'dotnet workload search version --help' komutunu kullanın. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Komut satırı yardımını gösterir. The shutdown command failed: {0} - The shutdown command failed: {0} + Kapatma komutu başarısız oldu: {0} Solution - Solution + Çözüm Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + {0} çözümü zaten {1} projesini içeriyor. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + '{0}' çözüm bağımsız değişkeni yanlış yerleştirilmiş. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Belirtilen {0} çözüm dosyası yok veya dizinde bir çözüm dosyası yok. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Üzerinde işlem yapılacak proje veya çözüm dosyası. Bir dosya belirtilmezse komut geçerli dizinde dosya arar. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Üzerinde işlem yapılacak proje veya çözüm veya C# (dosya tabanlı program) dosyası. Bir dosya belirtilmezse, komut geçerli dizinde bir proje veya çözüm arayacaktır. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJE | ÇÖZÜM | DOSYA Specify at least one {0}. - Specify at least one {0}. + En az bir {0} belirtin. You must specify at least one project to add. - You must specify at least one project to add. + Eklemek için en az bir proje belirtmeniz gerekir. You must specify at least one project to remove. - You must specify at least one project to remove. + Kaldırmak için en az bir proje belirtmeniz gerekir. You must specify at least one reference to remove. - You must specify at least one reference to remove. + Kaldırmak için en az bir başvuru belirtmeniz gerekir. {0}: tool library found {1} - {0}: tool library found {1} + {0}: araç kitaplığı bulundu {1} Missing 'version' entry. - Missing 'version' entry. + 'version' girişi eksik. Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + '{0}' aracı (sürüm '{1}') zaten yüklü. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + {0} paketi bir .NET aracı değil. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + '{0}' komutu şu geçersiz karakterlerden birini veya daha fazlasını içeriyor: {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + '{0}' komut adının başında bir nokta (.) olamaz. Invalid XML: {0} - Invalid XML: {0} + Geçersiz XML: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + Araçta ad ayarı eksik bir komut tanımlanıyor. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + '{0}' komutunda giriş noktası ayarı eksik. More than one command is defined for the tool. - More than one command is defined for the tool. + Araç için birden fazla komut tanımlı. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + '{0}' aracı, desteklenmeyen '{1}' çalıştırıcısını kullanıyor The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + Araç, geçerli mimariyi veya işletim sistemini ({0}) desteklemiyor. Desteklenen çalışma zamanları: {1} Type - Type + Tür The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + İstenen sertifika zinciri ilkesi denetlenemedi: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + geçici deps.json dosyası silinemedi: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + deps.json oluşturulamıyor, dosya önceden oluşturulmuş olabilir. Tanılama çıkışının "dotnet"ten sonra "-d" seçeneğini belirtebilirsiniz (örneğin, "dotnet -d <toolname>": {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + Dotnet çoğullayıcısı bulunamadı Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + '{1}' özelliği için bir {0} bekleniyordu. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Tanınmayan komut veya bağımsız değişken: '{0}' Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + '{0}' projesi bilinmeyen bir proje türüne sahip ve çözüm dosyasına eklenemiyor. Destek için SDK sağlayıcınıza başvurun. Update - Update + Güncelleştir VB/C# compiler server - VB/C# compiler server + VB/C# derleyici sunucusu Value - Value + Değer Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + MSBuild ayrıntı düzeyini ayarlar. İzin verilen değerler: q[uiet], m[inimal], n[ormal], d[etailed] ve diag[nostic]. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + "{0}" NuGet paketinin geçerli imzaya sahip olduğu doğrulandı. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + `{0}` paketi için sürüm çözümlenemedi. Version {0} is invalid. - Version {0} is invalid. + {0} sürümü geçersiz. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + İş yükleri doğrulanırken bir sorunla karşılaşıldı. Daha fazla bilgi için "dotnet workload update" komutunu çalıştırın. {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + "Evet" seçeneğini kullanarak tüm onay istemlerini kabul edin. diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.zh-Hans.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.zh-Hans.xlf index e84ca7958d8d..a72ab423bfb7 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.zh-Hans.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.zh-Hans.xlf @@ -4,89 +4,89 @@ Add - Add + 添加 Ambiguous command name: {0} - Ambiguous command name: {0} + 模糊命令名: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + 目标体系结构。 ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + 工件路径。项目中的所有输出(包括生成、发布和打包输出)都将放到指定路径下的子文件夹中。 {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: 尝试创建 commandspec {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: 尝试在 {2} 中查找命令 {1} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: 尝试解析 {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: 正在尝试从工具 {1} 解析命令 spec outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} 不存在 Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + 无法为空的可执行文件路径创建 shell 填充程序。 Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + 找不到清单文件。已搜索路径的列表: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + 在清单文件中找不到包 ID 为 {0} 的包。 Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + 解决当前运行时标识符失败。 Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + 不支持同时指定“-r |--runtime”和“-a |-arch”选项。 Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + 不支持同时指定“-r |--runtime”和“-os”选项。 @@ -100,11 +100,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + 设置环境变量的值。 +如果该变量不存在,则创建它;如果它已存在,则替代它。 +可多次指定此参数来提供多个变量。 -Examples: +示例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -114,7 +114,7 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" @@ -129,12 +129,12 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + 设置环境变量的值。 +如果该变量不存在,则创建它;如果它已存在,则替代它。 +这将在隔离的进程中强制运行测试。 +可多次指定此参数来提供多个变量。 -Examples: +示例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -144,102 +144,102 @@ Examples: Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + 设置生成项目时使用的 $(VersionSuffix) 属性的值。 Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + 列的最大宽度必须大于零。 The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + 找不到可为“{0}”执行的命令。可能未还原项目或还原失败 - 运行 `dotnet restore` Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + 允许命令停止和等待用户输入或操作(例如,用以完成身份验证)。 Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + 允许安装预发行包。 {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec 为 null。 FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + 未找到文件“{0}”。 CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + 指定的解决方案文件 {0} 不存在,或目录中没有解决方案文件。 Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + 找不到解决方案或目录“{0}”。 {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: 找不到工具 {1} 的 runtimeconfig.json 文件 Delete - Delete + 删除 Unable to find deps.json generator project. - Unable to find deps.json generator project. + 找不到 deps.json 生成器项目。 {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: 未能找到匹配的项目 {1}。 {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: ProjectFactory 未找到项目。 Did you mean the following command? - Did you mean the following command? + 你是否是指以下命令? Directory - Directory + 目录 Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + 强制命令忽略任何永久性生成服务器。 {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} 不存在 @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + 工具目录 '{0}' 当前不在 PATH 环境变量上。 +如果使用的是 bash,则可通过运行以下命令将其添加到配置文件: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# 添加 .NET Core SDK 工具 export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +可通过运行以下命令将其添加到当前会话: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + 由于刚安装了 .NET SDK,因此在运行安装的工具之前,需要注销或重启会话。 @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + 工具目录 '{0}' 当前不在 PATH 环境变量上。 +如果使用的是 bash,则可通过运行以下命令将其添加到配置文件: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# 添加 .NET Core SDK 工具 export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +可通过运行以下命令将其添加到当前会话: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + 由于刚安装了 .NET SDK,因此在运行安装的工具之前,需要重新打开终端。 @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + 工具目录 '{0}' 当前不在 PATH 环境变量上。 +如果使用的是 zsh,则可通过运行以下命令将其添加到配置文件: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# 添加 .NET Core SDK 工具 export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +然后运行 `zsh -l` 以使其可用于当前会话。 -You can only add it to the current session by running the following command: +只能通过运行以下命令将其添加到当前会话: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + 工具目录“{0}”目前不在 PATH 环境变量中。 -You can add the directory to the PATH by running the following command: +可运行以下命令将目录添加到 PATH: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + 由于刚安装了 .NET SDK,因此在运行安装的工具之前,需要重新打开命令提示符窗口。 Error - Error + 错误 You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + 正在通过 "HTTP" 源运行“工具安装”操作: {0}。NuGet 需要 HTTPS 源。要使用 HTTP 源,必须在 NuGet.Config 文件中将 "allowInsecureConnections" 显式设置为 true。有关详细信息,请参阅 https://aka.ms/nuget-https-everywhere。 {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: 需要 deps.json: {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + 未能为 shell 填充程序设置用户可执行文件权限: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + 未能为命令“{0}”创建工具填充程序: {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: 未能找到 commandPath {1} Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + 在工具包“{0}”的 NuGet 资产文件中找不到库: {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + 已启用包源映射,但在指定的包 ID 下找不到源: {0}。有关详细信息,请参阅包源映射文档(https://aka.ms/nuget-package-source-mapping)。 Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + 无法找到暂存工具包“{0}”。 {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: 未能找到 {1} 的 toolAssembly Failed to load NuGet source {0} - Failed to load NuGet source {0} + 无法加载 NuGet 源 {0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + 已启用包源映射,但在指定的包 ID 下未映射源: {0}。有关详细信息,请参阅包源映射文档(https://aka.ms/nuget-package-source-mapping)。 Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + 无法读取工具包 '{0}' 的 NuGet 资产文件: {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + 未能读取 pid 文件“{0}”: {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + 未能为命令“{0}”删除工具填充程序: {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: 未能从库解析 commandspec。 Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + 无法检索工具配置: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + 未能将“{0}”添加到 PATH 环境变量。请将此目录添加到 PATH,以使用通过 "dotnet tool install" 安装的工具。 Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + 未能卸载工具包“{0}”: {1} Failed to validate package signing. {0} - Failed to validate package signing. + 未能验证包签名。 {0} Missing 'commands' entry. - Missing 'commands' entry. + 缺少 "commands" 条目。 File - File + 文件 The file-based app to operate on. - The file-based app to operate on. + 要操作的基于文件的应用。 Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + 格式版本高于受支持的版本。该 SDK 版本可能不支持此工具。请更新 SDK。 Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + 格式版本格式不正确。该 SDK 版本可能不支持此工具。请联系工具作者。 Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + 缺少格式版本。该 SDK 版本可能不支持此工具。请联系工具作者。 Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + 找到项目“{0}”但无效。 {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: 在 {1} 中找到工具 lockfile FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + 将应用程序发布为依赖框架的应用程序。目标计算机上必须安装兼容的 .NET 运行时才能运行该应用程序。 Generating deps.json at: {0} - Generating deps.json at: {0} + 即将生成 deps.json: {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: 忽略 prefercliruntime 文件,因为工具目标框架({1})的主要版本不是当前 CLI 运行时({2}) In package {0}: {1} - In package {0}: + 在包 {0} 中: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + 环境变量格式不正确: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: 无效的 commandResolverArguments {0} should be an integer - {0} should be an integer + {0} 应为整数 Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + 清单文件无效。路径 {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + 项目“{0}”无效。 Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + 项目“{0}”无效。{1}。 The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + 运行时标识符 {0} 无效。有效的运行时标识符为: {1}。 Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + 解决方案“{0}”无效。{1}。 Invalid version string: {0} - Invalid version string: {0} + 版本字符串 {0} 无效 {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + 在 NuGet 源 {1} 中找不到 {0}。 Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + 文件 {0} 中存在 Json 分析错误: {1} LEVEL - LEVEL + LEVEL Library - Library + {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: 在锁定文件中未找到库。 List - List + 列表 {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: 在“{1}”查找 prefercliruntime 文件 .NET Cli Options: - .NET Cli Options: + .NET Cli 选项: MSBuild arguments: {0} - MSBuild arguments: {0} + MSBuild 参数: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: MSBuild 项目路径 = {1} MSBuild server - MSBuild server + MSBuild 服务器 File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + 文件 {0} 来自另一台计算机,而且可能会被阻止以帮助保护此计算机。有关详细信息(包括如何解除阻止),请参阅 https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + 缺少 "isRoot" 条目。 Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + 无法添加包。清单文件已经包含版本 {0} 的包 {1}。请卸载/安装或编辑清单文件 {2} 以指定新版本 {3}。 Manifest version 0 is not supported. - Manifest version 0 is not supported. + 不支持清单版本 0。 Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + 清单版本为 {0}。此 SDK 版本最多支持清单版本 {1},可能不支持此清单。 Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + 在包中找不到命令“{1}”的入口点文件“{0}”。 Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + 在包中找不到设置文件 "DotnetToolSettings.xml"。 More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + 多个包装填充码可用: {0}。 Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + 在 {0} 中找到多个解决方案文件。请指定使用哪一个。 Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + 指定要使用的项目文件,因为此“{0}”包含多个项目文件。 More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + 包 {0} 存在多个条目。 Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + 运行 "dotnet tool restore" 以使“{0}”命令可用。 New - New + 新建 Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + 不显示启动版权标志或版权消息。 No projects found in the solution. - No projects found in the solution. + 未在解决方案中找到项目。 There are no {0} references in project {1}. - There are no {0} references in project {1}. + 项目 {1} 中没有 {0} 引用。 Do not restore the project before building. - Do not restore the project before building. + 生成前请勿还原项目。 Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + 搜索失败。NuGet 搜索 API 响应详细信息: + RequestUrl: {0}。ReasonPhrase: {1}。StatusCode: {2}。 Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + 正在跳过 NuGet 包“{0}”的签名验证,因为该包来自不需要签名验证的源。 Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + 正在跳过 NuGet 包签名验证。 {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: nuget 包根目录: {1} OS - OS + OS Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + 使用 -p 选项时一次只能指定一个项目。 {Locked="-p"} The target operating system. - The target operating system. + 目标操作系统。 Project to Project - Project to Project + 项目到项目 Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + 一次只能打包一个 .nuspec 文件 Package - Package + 打包 Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + 包引用的格式为包标识符,如 ‘{0}’,或由 ‘@’ 分隔的包标识符和版本,如 ‘{0}@{1}’。 Package reference id and version must not be null. - Package reference id and version must not be null. + 包引用 ID 和版本不得为 null。 Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + 当包参数已包含版本时,无法指定 --version。 {Locked="--version"} Package reference - Package reference + 包引用 A version of {0} of package {1} - A version of {0} of package {1} + 包 {1} 的版本 {0} Version {0} of package {1} - Version {0} of package {1} + 包 {1} 的版本 {0} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + 包 {2} 的 {0} 和 {1} 之间的版本 A version higher than {0} of package {1} - A version higher than {0} of package {1} + 包 {1} 的高于 {0} 的版本 A version less than {0} of package {1} - A version less than {0} of package {1} + 包 {1} 的低于 {0} 的版本 Project - Project + 项目 Project `{0}` added to the solution. - Project `{0}` added to the solution. + 已将项目“{0}”添加到解决方案中。 Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + 项目已经具有对“{0}”的引用。 The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + 要操作的项目文件。如果未指定文件,则命令会在当前目录下搜索一个文件。 PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: -{1}. + 无法评估项目“{0}”。评估失败,出现以下错误: +{1}。 Project `{0}` does not exist. - Project `{0}` does not exist. + 项目“{0}”不存在。 Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + 项目“{0}”不以框架“{1}”为目标。 Project `{0}` is invalid. - Project `{0}` is invalid. + 项目“{0}”无效。 Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + 由于两个项目之间的目标框架不兼容,无法添加项目“{0}”。请检查要添加的项目,并验证是否与以下目标兼容: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + 未能在解决方案中找到项目“{0}”。 The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + 要操作的项目文件或基于 C# 文件的应用。如果未指定文件,则该命令将在当前目录中搜索项目文件。 PROJECT | FILE - PROJECT | FILE + 项目|文件 Project reference - Project reference + 项目引用 Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + 找不到项目引用“{0}”。 Project reference(s) - Project reference(s) + 项目引用 Project reference `{0}` removed. - Project reference `{0}` removed. + 已删除项目引用“{0}”。 Project `{0}` removed from solution. - Project `{0}` removed from solution. + 已从解决方案中移除项目“{0}”。 Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + 已从解决方案中移除项目“{0}”。 Razor build server - Razor build server + Razor 生成服务器 Reference - Reference + 引用 Reference `{0}` added to the project. - Reference `{0}` added to the project. + 已将引用“{0}”添加到项目。 Remove - Remove + 删除 Required command was not provided. - Required command was not provided. + 未提供必需的命令。 {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: 正在从 {1} 工具库解析 commandspec。 Response file '{0}' does not exist. - Response file '{0}' does not exist. + 响应文件“{0}”不存在。 Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + 搜索失败。稍后重试可能会解决此问题。NuGet 搜索 API 响应详细信息: + RequestUrl: {0}。ReasonPhrase: {1}。StatusCode: {2}。 RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + 启用诊断输出。 Display the command schema as JSON. - Display the command schema as JSON. + 将命令架构显示为 JSON。 The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + "--self-contained"和 "--no-self-contained" 选项不能一起使用。 {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + 将 .NET 运行时与应用程序一起发布,从而无需在目标计算机上安装运行时。 +默认值为 'false'。但目标为 .NET 7 或更低版本时,如果指定了运行时标识符,则默认值为 'true'。 Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + 命令“{0}”与另一个工具中的现有命令相冲突。 Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + 搜索可用工作负载版本或包含工作负载版本的版本。有关详细信息,请使用 'dotnet workload search version --help'。 {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + 显示命令行帮助。 The shutdown command failed: {0} - The shutdown command failed: {0} + shutdown 命令失败: {0} Solution - Solution + 解决方案 Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + 解决方案 {0} 已包含项目 {1}。 Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + 解决方案参数“{0}”位置错误。 Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + 指定的解决方案文件 {0} 不存在,或目录中没有解决方案文件。 The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + 要操作的项目或解决方案文件。如果没有指定文件,则命令将在当前目录里搜索一个文件。 PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + 要操作的项目或解决方案或 C# (基于文件的程序)文件。如果未指定文件,则该命令将在当前目录中搜索项目或解决方案。 PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJECT | SOLUTION | FILE Specify at least one {0}. - Specify at least one {0}. + 请至少指定一个 {0}。 You must specify at least one project to add. - You must specify at least one project to add. + 必须至少指定一个要添加的项目。 You must specify at least one project to remove. - You must specify at least one project to remove. + 必须至少指定一个要删除的项目。 You must specify at least one reference to remove. - You must specify at least one reference to remove. + 必须至少指定一个要删除的引用。 {0}: tool library found {1} - {0}: tool library found {1} + {0}: 找到工具库 {1} Missing 'version' entry. - Missing 'version' entry. + 缺少 "version" 条目。 Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + 已安装工具“{0}”(版本“{1}”). Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + 包 {0} 不是 .NET 工具。 Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + 命令“{0}”包含一个或多个以下无效字符: {1}。 The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + 命令名称“{0}”不能以前导点(.)开头。 Invalid XML: {0} - Invalid XML: {0} + 无效的 XML: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + 工具使用缺失的名称设置定义命令。 Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + 命令“{0}”缺少入口点设置。 More than one command is defined for the tool. - More than one command is defined for the tool. + 为工具定义了多个命令。 Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + 工具 '{0}' 使用的是不受支持的运行器 ‘{1}’。 The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + 该工具不支持当前体系结构或操作系统({0})。支持的运行时: {1} Type - Type + 类型 The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + 无法检查请求的证书链策略: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + 无法删除临时 deps.json 文件: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + 无法生成 deps.json,可能已生成。可在诊断输出之后指定“-d”选项(例如,“dotnet-d <toolname>”: {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + 找不到 dotnet 多路复用器 Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + 属性“{1}”需要 {0}。 Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + 未识别命令或参数“{0}” Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + 项目“{0}”包含未知的项目类型,且无法添加到解决方案文件。请联系 SDK 提供商获取支持。 Update - Update + 更新 VB/C# compiler server - VB/C# compiler server + VB/C# 编译器服务器 Value - Value + Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + 设置 MSBuild 详细程度。允许值为 q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。 Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + 已验证 NuGet 包“{0}”具有有效签名。 Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + 无法解析包“{0}”的版本。 Version {0} is invalid. - Version {0} is invalid. + 版本 {0} 无效。 VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + 验证工作负载时遇到问题。有关详细信息,请运行 "dotnet workload update"。 {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + 使用“是”接受所有确认提示。 diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.zh-Hant.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.zh-Hant.xlf index 57e25cc190be..edb0df677f2a 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.zh-Hant.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CliStrings.zh-Hant.xlf @@ -4,89 +4,89 @@ Add - Add + 加入 Ambiguous command name: {0} - Ambiguous command name: {0} + 不明確的命令名稱: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + 目標結構。 ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + 成品路徑。來自專案的所有輸出 (包括建置、發佈和封裝輸出),都會進入指定路徑下的子資料夾。 {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: 正在嘗試建立 commandspec {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: 正在嘗試於 {2} 中尋找命令 {1} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: 正在嘗試解析 {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: 正在嘗試從工具 {1} 解析 command spec outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} 不存在 Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + 無法為空白的可執行檔路徑建立殼層填充碼。 Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + 找不到資訊清單檔。搜尋路徑清單: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + 在資訊清單檔中找不到套件識別碼為 {0} 的套件。 Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + 解析目前執行階段識別碼失敗。 Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + 不支援同時指定 `-r|--runtime` 與 `-a|--arch` 選項。 Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + 不支援同時指定 `-r|--runtime` 與 `-os` 選項。 @@ -100,11 +100,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + 設定環境變數的值。 +若變數不存在,則加以建立; 若有,則予以覆寫。 +此引數可多次指定,以提供多項變數。 -Examples: +範例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -114,7 +114,7 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" @@ -129,12 +129,12 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + 設定環境變數的值。 +若變數不存在,則加以建立; 若有,則予以覆寫。 +這會強制在隔離流程中執行測試。 +此引數可多次指定,以提供多項變數。 -Examples: +範例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -144,102 +144,102 @@ Examples: Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + 設定建置專案時,要使用之 $(VersionSuffix) 屬性的值。 Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + 資料行寬度上限必須大於零。 The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + 找不到 "{0}" 的命令可執行檔。該專案可能尚未還原或還原失敗 - 請執行 `dotnet restore` Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + 允許命令停止並等候使用者輸入或動作 (例如: 完成驗證)。 Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + 允許安裝發行前版本套件。 {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec 為 null。 FRAMEWORK - FRAMEWORK + 架構 File `{0}` not found. - File `{0}` not found. + 找不到檔案 `{0}`。 CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + 指定的方案檔 {0} 不存在,或目錄中沒有方案檔。 Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + 找不到解決方案或目錄 `{0}`。 {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: 找不到工具 {1} 的 runtimeconfig.json 檔案 Delete - Delete + 刪除 Unable to find deps.json generator project. - Unable to find deps.json generator project. + 找不到 deps.json 產生器專案。 {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: 未找到相符的專案 {1}。 {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: ProjectFactory 未找到專案。 Did you mean the following command? - Did you mean the following command? + 您是指下列命令嗎? Directory - Directory + 目錄 Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + 強制命令略過任何持續性組建伺服器。 {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} 不存在 @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + 工具目錄 '{0}' 目前不在 PATH 環境變數上。 +若目前使用 bash,可執行下列命令將其新增至您的設定檔: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# 新增 .NET Core SDK 工具 export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +您可執行下列命令,將其新增至目前的工作階段: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + 因為您剛才安裝了 .NET SDK,所以必須先登出或重新啟動工作階段,才能執行所安裝的工具。 @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + 工具目錄 '{0}' 目前不在 PATH 環境變數上。 +若目前使用 bash,可執行下列命令將其新增至您的設定檔: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# 新增 .NET Core SDK 工具 export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +您可執行下列命令,將其新增至目前的工作階段: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + 因為您剛才安裝了 .NET SDK,所以必須先重新開啟終端,才能執行所安裝的工具。 @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + 工具目錄 '{0}' 目前不在 PATH 環境變數上。 +如果您在使用 zsh,可以執行以下命令將其新增至您的設定檔: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# 新增 .NET Core SDK 工具 export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +並執行 `zsh -l` 讓其可用於目前的工作階段。 -You can only add it to the current session by running the following command: +您只能執行以下命令將其新增至目前的工作階段: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + 工具目錄 '{0}' 目前不在 PATH 環境變數上。 -You can add the directory to the PATH by running the following command: +您可執行下列命令將目錄新增至 PATH: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + 因為您剛才安裝了 .NET SDK,所以必須先重新開啟 [命令提示字元] 視窗,才能執行所安裝的工具。 Error - Error + 錯誤 You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + 您正使用 'HTTP' 來源執行 'tool install' 作業: {0}。NuGet 需要 HTTPS 來源。若要使用 HTTP 來源,您必須在 NuGet.Config 檔案中將 'allowInsecureConnections' 明確設定為 true。如需詳細資訊,請參閱 https://aka.ms/nuget-https-everywhere。 {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: 於 {1} 需要 deps.json Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + 無法為殼層填充碼設定使用者可執行檔權限: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + 無法為命令 '{0}' 建立工具填充碼: {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: 找不到 commandPath {1} Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + 在 NuGet 資產檔案中找不到工具套件 '{0}' 的程式庫: {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + 已啟用封裝來源對應,但在指定的封裝識別碼下找不到來源: {0}。如需詳細資料,請參閱位於 https://aka.ms/nuget-package-source-mapping 的封裝來源對應文件。 Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + 無法找到暫存工具套件 '{0}'。 {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: 找不到 {1} 的 toolAssembly Failed to load NuGet source {0} - Failed to load NuGet source {0} + 無法載入 NuGet 來源{0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + 已啟用封裝來源對應,但在指定的封裝識別碼下沒有對應的來源: {0}。如需詳細資料,請參閱位於 https://aka.ms/nuget-package-source-mapping 的封裝來源對應文件。 Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + 無法讀取工具套件 '{0}' 的 NuGet 資產檔案: {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + 無法讀取 pid 檔案 '{0}': {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + 無法為命令 '{0}' 移除工具填充碼: {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: 無法從程式庫解析 commandspec。 Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + 無法擷取工具組態: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + 無法將 '{0}' 新增到 PATH 環境變數。請將此目錄新增到您的 PATH,以使用由 'dotnet tool install' 所安裝的工具。 Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + 無法將工具套件 '{0}' 解除安裝: {1} Failed to validate package signing. {0} - Failed to validate package signing. + 無法驗證套件簽署。 {0} Missing 'commands' entry. - Missing 'commands' entry. + 遺漏 'commands' 項目。 File - File + 檔案 The file-based app to operate on. - The file-based app to operate on. + 要執行的檔案型應用程式。 Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + 格式版本高於支援的版本。此 SDK 版本可能不支援這項工具。請更新您的 SDK。 Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + 格式版本的格式不正確。此 SDK 版本可能不支援這項工具。請連絡該工具的作者。 Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + 遺漏格式版本。此 SDK 版本可能不支援這項工具。請連絡該工具的作者。 Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + 找到專案 `{0}` 但無效。 {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: 於 {1} 找到工具鎖定檔案 FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + 將您的應用程式發佈為架構相依的應用程式。必須在目標機器上安裝相容的 .NET 執行階段,才能執行您的應用程式。 Generating deps.json at: {0} - Generating deps.json at: {0} + 正在於 {0} 產生 deps.json {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: 因為工具目標架構 ({1}) 的主要版本與目前的 CLI 執行階段 ({2}) 不同,所以將忽略 prefercliruntime 檔案 In package {0}: {1} - In package {0}: + 位於套件 {0} 中: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + 環境變數格式不正確: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: commandResolverArguments 無效 {0} should be an integer - {0} should be an integer + {0} 應為整數 Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + 資訊清單檔無效。路徑 {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + 專案 `{0}` 無效。 Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + 專案 `{0}` 無效。{1}。 The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + 執行階段識別碼 {0} 無效。有效的執行階段識別碼為: {1}。 Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + 解決方案 `{0}` 無效。{1}。 Invalid version string: {0} - Invalid version string: {0} + 版本字串無效: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + 在 NuGet 摘要 {1} 中找不到 {0}。 Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + 檔案 {0} 中發生 JSON 剖析錯誤: {1} LEVEL - LEVEL + LEVEL Library - Library + 程式庫 {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: 鎖定檔案中找不到程式庫。 List - List + 列出 {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: 正在於 `{1}` 尋找 prefercliruntime 檔 .NET Cli Options: - .NET Cli Options: + .NET CLI 選項: MSBuild arguments: {0} - MSBuild arguments: {0} + MSBuild 引數: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: MSBuild 專案路徑 = {1} MSBuild server - MSBuild server + MSBuild 伺服器 File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + 檔案 {0} 來自另一部電腦,但此電腦可能已封鎖而加以保護。如需詳細資訊,包括如何解除封鎖,請參閱 https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + 遺漏 'isRoot' 項目。 Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + 無法新增套件。資訊清單檔已包含了版本 {0} 的套件 {1}。請解除安裝/安裝資訊清單檔 {2} 或加以編輯,以指定新的版本 {3}。 Manifest version 0 is not supported. - Manifest version 0 is not supported. + 不支援資訊清單版本 0。 Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + 資訊清單版本為 {0}。此 SDK 版本中可能不支援這個資訊清單,最高支援到資訊清單版本 {1}。 Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + 無法在套件中找到命令 '{1}' 的進入點檔案 '{0}'。 Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + 無法在套件中找到設定檔 'DotnetToolSettings.xml'。 More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + 有多個經過封裝的填充碼可用: {0}。 Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + 在 {0} 中找到多個解決方案檔。請指定要使用的檔案。 Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + 指定要使用的專案檔,因為這個 '{0}' 包含多個專案檔。 More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + 封裝存在多個項目: {0}。 Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + 執行 "dotnet tool restore",將 "{0}" 命令設為可以使用。 New - New + 新建 Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + 不顯示啟始資訊或著作權訊息。 No projects found in the solution. - No projects found in the solution. + 在解決方案中找不到任何專案。 There are no {0} references in project {1}. - There are no {0} references in project {1}. + 專案 {1} 中沒有任何 {0} 參考。 Do not restore the project before building. - Do not restore the project before building. + 建置前請勿還原該專案。 Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + 無法搜尋。NuGet 搜尋 API 回應詳細資料: + RequestUrl: {0}。ReasonPhrase: {1}。StatusCode: {2}。 Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + 正在略過 NuGet 套件的簽章驗證「{0}」,因為它的來源不需要簽章驗證。 Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + 正在略過 NuGet 套件簽章驗證。 {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: NuGet 套件根: {1} OS - OS + 作業系統 Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + 使用 -p 選項時,一次只能指定一個專案。 {Locked="-p"} The target operating system. - The target operating system. + 目標作業系統。 Project to Project - Project to Project + 專案對專案 Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + 一次只能封裝一個 .nuspec 檔案 Package - Package + 套件 Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + 套件參考的格式為套件識別碼,例如 '{0}',或是以 '@' 分隔的套件識別碼和版本,例如 '{0}@{1}'。 Package reference id and version must not be null. - Package reference id and version must not be null. + 套件參考識別碼和版本不得為空。 Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + 當套件引數已包含版本時,無法指定 --version。 {Locked="--version"} Package reference - Package reference + 套件參考 A version of {0} of package {1} - A version of {0} of package {1} + 封裝 {1} 的版本 {0} Version {0} of package {1} - Version {0} of package {1} + 封裝 {1} 的版本 {0} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + 封裝 {2} 的 {0} 與 {1} 之間的版本 A version higher than {0} of package {1} - A version higher than {0} of package {1} + 封裝 {1} 高於 {0} 的版本 A version less than {0} of package {1} - A version less than {0} of package {1} + 封裝 {1} 小於 {0} 的版本 Project - Project + 專案 Project `{0}` added to the solution. - Project `{0}` added to the solution. + 專案 `{0}` 已新增至解決方案。 Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + 專案已經有 `{0}` 的參考。 The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + 要進行作業的專案檔。若未指定檔案,此命令將會搜尋目前的目錄以取得一個檔案。 PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: -{1}. + 無法評估專案 `{0}`。評估失敗,發生下列錯誤: +{1}。 Project `{0}` does not exist. - Project `{0}` does not exist. + 專案 `{0}` 不存在。 Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + 專案 `{0}` 未將架構 `{1}` 設為目標。 Project `{0}` is invalid. - Project `{0}` is invalid. + 專案 `{0}` 無效。 Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + 因為兩個專案間的目標 Framework 不相容,所以無法新增專案 `{0}`。請檢閱您嘗試新增的專案,並驗證其與下列目標相容: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + 在解決方案中找不到專案 `{0}`。 The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + 要執行的專案檔案或 C# 檔案型應用程式。若未指定檔案,命令就會在目前的目錄中搜尋專案或檔案。 PROJECT | FILE - PROJECT | FILE + 專案 | 檔案 Project reference - Project reference + 專案參考 Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + 找不到專案參考 `{0}`。 Project reference(s) - Project reference(s) + 專案參考 Project reference `{0}` removed. - Project reference `{0}` removed. + 專案參考 `{0}` 已移除。 Project `{0}` removed from solution. - Project `{0}` removed from solution. + 專案 `{0}` 已從解決方案移除。 Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + 專案 `{0}` 已從解決方案移除。 Razor build server - Razor build server + Razor 組建伺服器 Reference - Reference + 參考 Reference `{0}` added to the project. - Reference `{0}` added to the project. + 參考 `{0}` 已新增至專案。 Remove - Remove + 移除 Required command was not provided. - Required command was not provided. + 未提供所需的命令。 {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: 正在從 {1} 工具程式庫解析 commandspec。 Response file '{0}' does not exist. - Response file '{0}' does not exist. + 回應檔 '{0}' 不存在。 Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + 無法搜尋。稍後重試可能可以解決此問題。NuGet 搜尋 API 回應詳細資料: + RequestUrl: {0}。ReasonPhrase: {1}。StatusCode: {2}。 RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + 啟用診斷輸出。 Display the command schema as JSON. - Display the command schema as JSON. + 以 JSON 格式顯示命令結構描述。 The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + 不能同時使用 '--self-contained' 和 '--no-self-contained' 選項。 {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + 將 .NET 執行階段隨著您的應用程式發佈,以便您不需在目標電腦上安裝執行階段。 +預設值為 'false'。不過,當目標為 .NET 7 或更低版本時,如有指定執行階段識別碼,則預設值為 'true'。 Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + 命令 '{0}' 與來自另一個工具的現有命令發生衝突。 Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + 搜尋可用的工作負載版本或工作負載版本的組成部分。如需詳細資訊,請使用 'dotnet workload search version --help'。 {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + 顯示命令列說明。 The shutdown command failed: {0} - The shutdown command failed: {0} + 關機命令失敗: {0} Solution - Solution + 解決方案 Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + 解決方案 {0} 已經包含專案 {1}。 Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + 解決方案引數 '{0}' 位置錯誤。 Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + 指定的方案檔 {0} 不存在,或目錄中沒有方案檔。 The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + 要操作的專案或解決方案。若未指定檔案,命令就會在目前的目錄中搜尋一個檔案。 PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + 要執行的專案或解決方案或 C# (基於檔案的程式) 檔案。若未指定檔案,命令就會在目前的目錄中搜尋專案或解決方案。 PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + 專案 | 解決方案 | 檔案 Specify at least one {0}. - Specify at least one {0}. + 請至少指定一個 {0}。 You must specify at least one project to add. - You must specify at least one project to add. + 您必須指定至少一個要新增的專案。 You must specify at least one project to remove. - You must specify at least one project to remove. + 您必須至少指定一個要移除的專案。 You must specify at least one reference to remove. - You must specify at least one reference to remove. + 您必須指定至少一個要刪除的參考。 {0}: tool library found {1} - {0}: tool library found {1} + {0}: 找到工具程式庫 {1} Missing 'version' entry. - Missing 'version' entry. + 遺漏 'version' 項目。 Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + 工具 '{0}' ('{1}' 版) 已經安裝。 Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + 套件 {0} 不是 .NET 工具。 Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + 命令 '{0}' 包含下列一或多個無效的字元: {1}。 The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + 命令名稱 '{0}' 的開頭不能為點 (.)。 Invalid XML: {0} - Invalid XML: {0} + XML 無效: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + 工具使用了缺少的名稱設定定義命令。 Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + 命令 '{0}' 缺少進入點設定。 More than one command is defined for the tool. - More than one command is defined for the tool. + 為工具定義了多個命令。 Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + 工具 '{0}' 使用不支援的執行器 '{1}'。" The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + 該工具不支援目前的結構或作業系統 ({0})。支援的執行階段: {1} Type - Type + 類型 The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + 無法檢查要求的憑證鏈結原則: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + 無法刪除暫存 deps.json 檔: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + Deps.json 可能已經產生,因此無法再產生。您可於診斷輸出 "dotnet" 之後, 指定 "-d" 選項 (例如 "dotnet-d <toolname>": {0}) Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + 找不到 dotnet multiplexer Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + 對屬性 '{1}' 來說應為 {0}。 Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + 無法辨識的命令或引數 '{0}' Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + 專案 '{0}' 的專案類型不明,因而無法新增至解決方案檔。請連絡 SDK 提供者,以取得支援。 Update - Update + 更新 VB/C# compiler server - VB/C# compiler server + VB/C# 編譯器伺服器 Value - Value + Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + 設定 MSBuild 的詳細程度層級。允許的值為 q[uiet]、m[inimal]、n[ormal]、d[etailed] 及 diag[nostic]。 Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + 已驗證 NuGet 套件「{0}」具備有效簽章。 Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + 無法解析套件 `{0}` 的版本。 Version {0} is invalid. - Version {0} is invalid. + 版本 {0} 不正確。 VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + 驗證工作負載時發生問題。如需詳細資訊,請執行 "dotnet workload update"。 {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + 使用「是」,以接受所有確認提示。 diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.cs.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.cs.xlf index f4b315f785b7..88b512211a27 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.cs.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.cs.xlf @@ -4,162 +4,162 @@ Only update advertising manifests. - Only update advertising manifests. + Aktualizujte jenom manifesty reklamy. Add one or more projects to a solution file. - Add one or more projects to a solution file. + Přidá do souboru řešení jeden nebo více projektů. The paths to the projects to add to the solution. - The paths to the projects to add to the solution. + Cesty k projektům, které se mají přidat do řešení PROJECT_PATH - PROJECT_PATH + PROJECT_PATH The destination solution folder path to add the projects to. - The destination solution folder path to add the projects to. + Cílová cesta složky řešení, do které chcete přidat projekty Allow package downgrade when installing a .NET tool package. - Allow package downgrade when installing a .NET tool package. + Při instalaci balíčku nástroje .NET povolte downgrade balíčku. ARCH - ARCH + ARCH The target architecture. - The target architecture. + Cílová architektura ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Cesta k artefaktům. Veškerý výstup z projektu, včetně výstupu sestavení, publikování a balíčku, se přesune do podsložek v zadané cestě. .NET Builder - .NET Builder + .NET Builder The configuration to use for building the project. The default for most projects is 'Debug'. - The configuration to use for building the project. The default for most projects is 'Debug'. + Konfigurace použitá k sestavení projektu. Výchozí možností pro většinu projektů je Debug. The target framework to build for. The target framework must also be specified in the project file. - The target framework to build for. The target framework must also be specified in the project file. + Cílová architektura pro sestavení. Cílová architektura musí být určená také v souboru projektu. The output directory to place built artifacts in. - The output directory to place built artifacts in. + Výstupní adresář, do kterého se mají umístit sestavené artefakty The target runtime to build for. - The target runtime to build for. + Cílový modul runtime pro sestavení. Interact with servers started from a build. - Interact with servers started from a build. + Interakce se servery spuštěnými z buildu Shuts down build servers that are started from dotnet. By default, all servers are shut down. - Shuts down build servers that are started from dotnet. By default, all servers are shut down. + Vypne buildovací servery spuštěné z dotnetu. Ve výchozím nastavení jsou vypnuté všechny servery. Cannot specify both the {0} and {1} arguments. - Cannot specify both the {0} and {1} arguments. + Argumenty {0} a {1} není možné zadat zároveň. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Nepovedlo se vyřešit aktuální identifikátor modulu runtime. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Zadání možností -r|--runtime a -a|--arch zároveň se nepodporuje. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Zadání možností -r|--runtime a -os zároveň se nepodporuje. Causes clean to remove and uninstall all workload components from all SDK versions. - Causes clean to remove and uninstall all workload components from all SDK versions. + Způsobí vyčištění, které odebere a odinstaluje všechny součásti úloh ze všech verzí sady SDK. .NET Clean Command - .NET Clean Command + Příkaz rozhraní .NET pro vyčištění OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The directory containing the build artifacts to clean. - The directory containing the build artifacts to clean. + Adresář obsahující artefakty buildu, které se mají vyčistit The configuration to clean for. The default for most projects is 'Debug'. - The configuration to clean for. The default for most projects is 'Debug'. + Konfigurace pro vyčištění. Výchozí možností pro většinu projektů je Debug. Removes artifacts created for file-based apps - Removes artifacts created for file-based apps + Odebere artefakty vytvořené pro souborové aplikace. How many days an artifact folder needs to be unused in order to be removed - How many days an artifact folder needs to be unused in order to be removed + Kolik dní musí být složka artefaktů nepoužívaná, aby byla odebrána Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Určuje změny, aniž by ve skutečnosti měnil systém souborů. The target framework to clean for. The target framework must also be specified in the project file. - The target framework to clean for. The target framework must also be specified in the project file. + Cílová architektura pro vyčištění. Cílová architektura musí být určená také v souboru projektu. The target runtime to clean for. - The target runtime to clean for. + Cílový modul runtime pro vyčištění. Enables collecting crash dump on expected as well as unexpected testhost exit. - Enables collecting crash dump on expected as well as unexpected testhost exit. + Umožní shromažďovat výpisy stavu systému při očekávaných i neočekávaných ukončeních hostitele testů. @@ -174,22 +174,22 @@ The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downlo To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. Implies --blame. - Runs the tests in blame mode and collects a crash dump when the test host exits unexpectedly. This option depends on the version of .NET used, the type of error, and the operating system. + Spustí testy v režimu blame a shromáždí výpis stavu systému, když se hostitel testů neočekávaně ukončí. Tento parametr závisí na verzi použitého rozhraní .NET, typu chyby a operačním systému. -For exceptions in managed code, a dump will be automatically collected on .NET 5.0 and later versions. It will generate a dump for testhost or any child process that also ran on .NET 5.0 and crashed. Crashes in native code will not generate a dump. This option works on Windows, macOS, and Linux. +Pro výjimky ve spravovaném kódu se výpis automaticky shromáždí v rozhraní .NET 5.0 a novějších verzích. Vygeneruje výpis pro hostitele testu nebo jakýkoli podřízený proces, který také běžel v rozhraní .NET 5.0 a došlo k chybovému ukončení. Chybová ukončení v nativním kódu nevygenerují výpis paměti. Tento parametr funguje ve Windows, macOS a Linuxu. -Crash dumps in native code, or when targetting .NET Framework, or .NET Core 3.1 and earlier versions, can only be collected on Windows, by using Procdump. A directory that contains procdump.exe and procdump64.exe must be in the PATH or PROCDUMP_PATH environment variable. +Výpisy stavu systému v nativním kódu nebo při cílení na .NET Framework nebo .NET Core 3.1 a starší verze se dají shromažďovat jenom ve Windows pomocí Procdumpu. Adresář obsahující procdump.exe a procdump64.exe musí být v proměnné prostředí PATH nebo PROCDUMP_PATH. -The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downloads/procdump +Nástroje si můžete stáhnout odsud: https://docs.microsoft.com/sysinternals/downloads/procdump -To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. +Pokud chcete shromáždit výpis stavu systému z nativní aplikace spuštěné na rozhraní .NET 5.0 nebo novějším, je možné použití procdumpu vynutit nastavením proměnné prostředí VSTEST_DUMP_FORCEPROCDUMP na hodnotu 1. -Implies --blame. +Implikuje --blame. The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. - The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. + Typ výpisu stavu systému, který se má shromáždit. Podporované hodnoty jsou úplné (výchozí) a mini. Implikuje --blame-crash. @@ -207,30 +207,30 @@ Example: Timeout the test run when a test takes more than 20 minutes and collect hang dump. dotnet test --blame-hang-timeout 20min - Runs the tests in blame mode. This option is helpful in isolating problematic tests that cause the test host to crash or hang, but it does not create a memory dump by default. + Spustí testy v režimu blame. Tento parametr se hodí pro izolaci problematických testů, které způsobují chybové ukončení nebo zablokování testovacího hostitele, ale ve výchozím nastavení nevytváří výpis paměti. -When a crash is detected, it creates an sequence file in TestResults/guid/guid_Sequence.xml that captures the order of tests that were run before the crash. +Při zjištění chybového ukončení vytvoří soubor sekvence v souboru TestResults/guid/guid_Sequence.xml, který zachycuje pořadí testů, které byly spuštěny před chybou. -Based on the additional settings, hang dump or crash dump can also be collected. +Na základě dalších nastavení je také možné shromáždit výpis stavu systému nebo výpis stavu systému. -Example: - Timeout the test run when test takes more than the default timeout of 1 hour, and collect crash dump when the test host exits unexpectedly. - (Crash dumps require additional setup, see below.) +Příklad: + Vypršení časového limitu testovacího běhu, když test trvá déle než výchozí časový limit 1 hodina, a shromážděte výpis stavu systému, když se hostitel testu neočekávaně ukončí. + (výpisy stavu systému vyžadují další nastavení, viz níže). dotnet test --blame-hang --blame-crash -Example: - Timeout the test run when a test takes more than 20 minutes and collect hang dump. - dotnet test --blame-hang-timeout 20min +Příklad: + Vypršení časového limitu testovacího běhu, když test trvá více než 20 minut, a shromáždění výpisu stavu systému. + dotnet test --blame-hang-timeout 20 minut Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. - Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. + Spustí testy v režimu blame a umožní shromažďování výpisů stavu systému při zablokování, když test překročí stanovený časový limit. The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. - The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. + Typ výpisu stavu systému, který se má shromáždit. Když se použije možnost Žádný, hostitel testů se po vypršení časového limitu ukončí, ale neshromáždí se žádný výpis. Implikuje --blame-hang. @@ -238,67 +238,67 @@ Example: The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, For MSTest before 2.2.4, the timeout is used for all testcases. - Per-test timeout, after which hang dump is triggered and the testhost process is terminated. Default is 1h. -The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. -When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, -For MSTest before 2.2.4, the timeout is used for all testcases. + Časový limit pro jednotlivé testy, po kterém se aktivuje výpis stavu systému a proces testhost se ukončí. Výchozí hodnota je 1h. +Hodnota časového limitu je zadána v následujícím formátu: 1,5 h / 90m / 5400 s / 5400000 ms. Pokud se nepoužije žádná jednotka (např. 5400000), předpokládá se, že hodnota je v milisekundách. +Při použití společně s testy řízenými daty závisí chování časového limitu na použitém testovacím adaptéru. Pro xUnit, NUnit a MSTest 2.2.4+ se časový limit prodlouží po každém testovacím případu +Pro MSTest před 2.2.4 se časový limit použije pro všechny testovací případy. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + Cesta ke konfiguračnímu souboru NuGet, který se má použít. Vyžaduje přepínač --outdated, --deprecated nebo --vulnerable. Specifies a testconfig.json file. - Specifies a testconfig.json file. + Určuje soubor testconfig.json. FILE - FILE + FILE The NuGet configuration file to use. - The NuGet configuration file to use. + Konfigurační soubor NuGet, který se použije. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE Use current runtime as the target runtime. - Use current runtime as the target runtime. + Jako cílový modul runtime použijte aktuální modul. Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. - Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. + Vypíše balíčky, které jsou zastaralé. Nedá se kombinovat s možností --vulnerable ani --outdated. Output directory of the diagnostic logging. If not specified the file will be generated inside the default 'TestResults' directory. - Output directory of the diagnostic logging. -If not specified the file will be generated inside the default 'TestResults' directory. + Výstupní adresář diagnostického protokolování. +Pokud není zadaný, soubor se vygeneruje ve výchozím adresáři TestResults. DIAGNOSTIC_DIR - DIAGNOSTIC_DIR + DIAGNOSTIC_DIR Prevent restoring multiple projects in parallel. - Prevent restoring multiple projects in parallel. + Zabrání souběžnému obnovení několika projektů. @@ -312,88 +312,88 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Nastavuje hodnotu proměnné prostředí. +Pokud proměnná neexistuje, vytvoří ji, a pokud existuje, přepíše ji. +Tento argument je možné zadat vícekrát a určit tak více proměnných. Examples: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="hodnota s mezerami" +-e VARIABLE="hodnota;oddělená;pomocí;středníků" -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NÁZEV="HODNOTA" EXPRESSION - EXPRESSION + EXPRESSION Path to the file-based program. - Path to the file-based program. + Cesta k programu na základě souboru Force all dependencies to be resolved even if the last restore was successful. This is equivalent to deleting project.assets.json. - Force all dependencies to be resolved even if the last restore was successful. -This is equivalent to deleting project.assets.json. + Vynutí vyřešení všech závislostí, i když poslední obnovení proběhlo úspěšně. +Jedná se o ekvivalent odstranění project.assets.json. Specifies the output format type for the list packages command. - Specifies the output format type for the list packages command. + Určuje typ výstupního formátu pro příkaz list packages. Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. + Při hledání novějších balíčků se budou brát v úvahu jenom balíčky s odpovídajícím číslem hlavní verze. Vyžaduje přepínač --outdated. Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. + Při hledání novějších balíčků se budou brát v úvahu jenom balíčky s odpovídajícími čísly hlavní verze a podverze. Vyžaduje přepínač --outdated. Treat package source failures as warnings. - Treat package source failures as warnings. + Zacházet s nenalezenými zdroji balíčku jako s upozorněními Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. - Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. + Zahrne soubory PDB a zdrojové soubory. Zdrojové soubory budou ve složce src ve výsledném balíčku NuGet. Include packages with symbols in addition to regular packages in output directory. - Include packages with symbols in addition to regular packages in output directory. + Zahrne do výstupního adresáře kromě běžných balíčků i balíčky se symboly. List the discovered tests instead of running the tests. - List the discovered tests instead of running the tests. + Místo spuštění testů vypíše seznam zjištěných testů. LOCK_FILE_PATH - LOCK_FILE_PATH + LOCK_FILE_PATH Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. - Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. + Výstupní umístění, kde je zapsán soubor zámku projektu. Ve výchozím nastavení jde o PROJECT_ROOT\packages.lock.json. Don't allow updating project lock file. - Don't allow updating project lock file. + Nepovolí aktualizaci souboru zámku projektu. @@ -402,223 +402,223 @@ This is equivalent to deleting project.assets.json. Log in trx format using a unique file name: --logger trx Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" See https://aka.ms/vstest-report for more information on logger arguments. - The logger to use for test results. - Examples: - Log in trx format using a unique file name: --logger trx - Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" - See https://aka.ms/vstest-report for more information on logger arguments. + Protokolovací nástroj, který se má použít pro výsledky testování. + Příklady: + Protokolování ve formátu trx s jedinečným názvem souboru: --logger trx + Protokolování ve formátu trx se zadaným názvem souboru: --logger "trx;LogFileName=<TestResults.trx>" + Další informace o argumentech protokolovacího nástroje najdete na adrese https://aka.ms/vstest-report. LOGGER - LOGGER + LOGGER The max number of test modules that can run in parallel. - The max number of test modules that can run in parallel. + Maximální počet testovacích modulů, které je možné spustit paralelně. Specifies the minimum number of tests that are expected to run. - Specifies the minimum number of tests that are expected to run. + Určuje minimální počet testů, jejichž spuštění se očekává. Disable ANSI output. - Disable ANSI output. + Zakáže výstup ANSI. Do not build the project before testing. Implies --no-restore. - Do not build the project before testing. Implies --no-restore. + Nesestavujte projekt, dokud ho neotestujete. Implikuje možnost --no-restore. Do not build the project before packing. Implies --no-restore. - Do not build the project before packing. Implies --no-restore. + Nesestavujte projekt, dokud ho nezabalíte. Implikuje možnost --no-restore. Do not cache packages and http requests. - Do not cache packages and http requests. + Neukládat balíčky a požadavky http do mezipaměti Do not restore project-to-project references and only restore the specified project. - Do not restore project-to-project references and only restore the specified project. + Neobnoví odkazy mezi projekty a obnoví jen konkrétní projekt. Disable Http Caching for packages. - Disable Http Caching for packages. + Zakázat ukládání do mezipaměti HTTP pro balíčky. Disable progress reporting. - Disable progress reporting. + Umožňuje zakázat hlášení o průběhu. Do not restore before running the command. - Do not restore before running the command. + Před spuštěním příkazu neprovádějte obnovu. NUMBER - NUMBER + ČÍSLO Force conversion even if there are malformed directives. - Force conversion even if there are malformed directives. + Vynuťte převod i v případě, že existují chybné direktivy. Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. - Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. + Vypíše balíčky, které mají novější verze. Nedá se kombinovat s možností --deprecated ani --vulnerable. The output directory to place built artifacts in. - The output directory to place built artifacts in. + Výstupní adresář, do kterého se mají umístit sestavené artefakty Specifies the version of machine-readable output. Requires the '--format json' option. - Specifies the version of machine-readable output. Requires the '--format json' option. + Určuje verzi strojově čitelného výstupu. Vyžaduje možnost --format json. PACKAGE_NAME - PACKAGE_NAME + PACKAGE_NAME PACKAGE_DIR - PACKAGE_DIR + PACKAGE_DIR The directory to restore packages to. - The directory to restore packages to. + Adresář, do kterého se balíčky mají obnovit PACKAGES_DIR - PACKAGES_DIR + PACKAGES_DIR The directory to restore packages to. - The directory to restore packages to. + Adresář, do kterého se balíčky mají obnovit LOG_FILE - LOG_FILE + LOG_FILE RESULTS_DIR - RESULTS_DIR + RESULTS_DIR Enable verbose logging to the specified file. - Enable verbose logging to the specified file. + Povolí podrobné protokolování do zadaného souboru. Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. - Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. + Při hledání novějších balíčků se budou brát v úvahu i balíčky v předběžných verzích. Vyžaduje přepínač --outdated. Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Definuje cestu souboru projektu, který se má spustit. Použijte cestu k souboru projektu nebo cestu k adresáři obsahujícímu soubor projektu. Pokud se nezadá, použije se výchozí nastavení aktuálního adresáře. Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Definuje cestu k projektu nebo souboru řešení, který se má otestovat. Použijte cestu k souboru projektu nebo cestu k adresáři obsahujícímu soubor projektu. Pokud se nezadá, použije se výchozí nastavení aktuálního adresáře. PROJECT_OR_SOLUTION_PATH - PROJECT_OR_SOLUTION_PATH + PROJECT_OR_SOLUTION_PATH Forces restore to reevaluate all dependencies even if a lock file already exists. - Forces restore to reevaluate all dependencies even if a lock file already exists. + Vynutí obnovení při přehodnocení všech závislostí i v případě, že už existuje soubor zámku. The directory where the test results will be placed. The specified directory will be created if it does not exist. - The directory where the test results will be placed. -The specified directory will be created if it does not exist. + Adresář, do kterého se umístí výsledky testu. +Pokud zadaný adresář neexistuje, bude vytvořen. ROOT_PATH - ROOT_PATH + ROOT_PATH RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER The target runtime to restore packages for. - The target runtime to restore packages for. + Cílový modul runtime pro obnovení balíčků Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. - Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. + Nastaví v balíčku příznak obsluhovatelnosti. Další informace najdete na adrese https://aka.ms/nupkgservicing. The settings file to use when running tests. - The settings file to use when running tests. + Soubor nastavení, který se má použít při spouštění testů SETTINGS_FILE - SETTINGS_FILE + SETTINGS_FILE Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. - Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. + Definuje cestu k souboru řešení, který se má otestovat. Použijte cestu k souboru řešení nebo cestu k adresáři, který obsahuje soubor řešení. Pokud se nezadá, použije se výchozí nastavení aktuálního adresáře. SOLUTION_PATH - SOLUTION_PATH + SOLUTION_PATH SOURCE - SOURCE + SOURCE The NuGet package source to use for the restore. - The NuGet package source to use for the restore. + Zdroj balíčku NuGet, který se má použít k obnovení ADAPTER_PATH - ADAPTER_PATH + ADAPTER_PATH The path to the custom adapters to use for the test run. - The path to the custom adapters to use for the test run. + Cesta k vlastním adaptérům, které se mají použít pro testovací běh @@ -629,18 +629,18 @@ The specified directory will be created if it does not exist. Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" See https://aka.ms/vstest-filtering for more information on filtering support. - Run tests that match the given expression. + Spustí testy, které odpovídají danému výrazu. Examples: - Run tests with priority set to 1: --filter "Priority = 1" - Run a test with the specified full name: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" - Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" - See https://aka.ms/vstest-filtering for more information on filtering support. + Spustí testy s prioritou nastavenou na 1: --filter "Priority = 1" + Spustí test se zadaným úplným názvem: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" + Spustí testy, které obsahují zadaný název: --filter "FullyQualifiedName~007E;Namespace.Class" + Další informace o podpoře filtrování: https://aka.ms/vstest-filtering EXPRESSION - EXPRESSION + EXPRESSION @@ -655,827 +655,827 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Nastaví hodnotu proměnné prostředí. +Pokud proměnná neexistuje, vytvoří ji, a pokud existuje, přepíše ji. +Tímto se vynutí spuštění testů v izolovaném procesu. +Tento argument je možné zadat vícekrát a určit tak více proměnných. -Examples: --e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" --e VAR1=abc -e VAR2=def -e VAR3=ghi +Příklady: +-e PROMĚNNÁ=abc +-e PROMĚNNÁ="hodnota s mezerami" +-e PROMĚNNÁ="hodnota;oddělená;pomocí;středníků" +-e PROM1=abc -e PROM2=def -e PROM3=ghi Run tests for the specified test modules. - Run tests for the specified test modules. + Spusťte testy pro zadané testovací moduly. The test modules have the specified root directory. - The test modules have the specified root directory. + Testovací moduly mají zadaný kořenový adresář. Verbosity of test output. - Verbosity of test output. + Podrobnosti výstupu testu Lists transitive and top-level packages. - Lists transitive and top-level packages. + Vypíše seznam přenosných balíčků a balíčků nejvyšší úrovně. Test runner '{0}' is not supported. - Test runner '{0}' is not supported. + Spouštěč testů {0} není podporován. Enables project lock file to be generated and used with restore. - Enables project lock file to be generated and used with restore. + Povolí vygenerování souboru zámku projektu a jeho použití s obnovením. VERSION - VERSION + VERSION The version of the package to add. - The version of the package to add. + Verze balíčku, který se má přidat Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Nastavuje hodnotu vlastnosti $(VersionSuffix), která se má použít při sestavování projektu. Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. - Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. + Vypíše balíčky, které mají známá ohrožení zabezpečení. Nedá se kombinovat s možností --deprecated ani --outdated. The SDK command to launch online help for. - The SDK command to launch online help for. + Příkaz sady SDK, pro který se má spustit online nápověda COMMAND_NAME - COMMAND_NAME + COMMAND_NAME Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Umožňuje, aby se příkaz zastavil a počkal na vstup nebo akci uživatele (například na dokončení ověření). The command name of the tool to run. - The command name of the tool to run. + Název příkazu nástroje, který se má spustit COMMAND_NAME - COMMAND_NAME + COMMAND_NAME The device identifier to use for running the application. - The device identifier to use for running the application. + Identifikátor zařízení, který se má použít ke spuštění aplikace DEVICE - DEVICE + ZAŘÍZENÍ The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). - The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). + Cesta ke spuštěné souborové aplikaci (dá se také předat jako první argument, pokud v aktuálním adresáři není žádný projekt). FILE_PATH - FILE_PATH + CESTA K_SOUBORU The name of the launch profile (if any) to use when launching the application. - The name of the launch profile (if any) to use when launching the application. + Název profilu spuštění (pokud existuje), který se má použít při spuštění aplikace. LAUNCH_PROFILE - LAUNCH_PROFILE + LAUNCH_PROFILE List available devices for running the application. - List available devices for running the application. + Vypíše dostupná zařízení pro spuštění aplikace. Do not build the project before running. Implies --no-restore. - Do not build the project before running. Implies --no-restore. + Nesestavujte projekt, dokud ho nespustíte. Implikuje možnost --no-restore. {Locked="--no-restore"} Skip up to date checks and always build the program before running. - Skip up to date checks and always build the program before running. + Přeskočit aktuální kontroly a před spuštěním vždy sestavit program Do not use arguments specified in launch profile to run the application. - Do not use arguments specified in launch profile to run the application. + Ke spuštění aplikace nepoužívat argumenty zadané v profilu spuštění. Do not attempt to use launchSettings.json or [app].run.json to configure the application. - Do not attempt to use launchSettings.json or [app].run.json to configure the application. + Nepokoušejte se ke konfiguraci aplikace použít launchSettings.json nebo [app].run.json. {Locked="launchSettings.json"}{Locked=".run.json"} PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Umožňuje instalaci předběžných verzí balíčků. Creates an alias for instantiate command with a certain set of arguments. - Creates an alias for instantiate command with a certain set of arguments. + Vytvoří alias pro vytvoření instance příkazu s určitou sadou argumentů. Displays defined aliases. - Displays defined aliases. + Zobrazí definované aliasy. Creates or displays defined aliases. - Creates or displays defined aliases. + Vytvoří nebo zobrazí definované aliasy. Provides the details for specified template package. The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. - - Provides the details for specified template package. - The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. + + Poskytuje podrobnosti pro zadaný balíček šablony. + Příkaz zkontroluje, jestli je balíček nainstalovaný místně, pokud se nenašel, prohledá nakonfigurované informační kanály NuGet. NuGet package ID or path to folder or NuGet package to install. To install the NuGet package of certain version, use <package ID>::<version>. - NuGet package ID or path to folder or NuGet package to install. -To install the NuGet package of certain version, use <package ID>::<version>. + ID balíčku NuGet nebo cesta ke složce nebo balíčku NuGet, který se má nainstalovat. +Pokud chcete nainstalovat balíček NuGet určité verze, použijte <package ID>::<version>. Installs a template package. - Installs a template package. + Nainstaluje balíček šablon. A short name of the template to create. - A short name of the template to create. + Krátký název šablony, která se má vytvořit. Template specific options to use. - Template specific options to use. + Možnosti specifické pro šablonu, které se mají použít. Instantiates a template with given short name. An alias of 'dotnet new <template name>'. - Instantiates a template with given short name. An alias of 'dotnet new <template name>'. + Vytvoří instanci šablony se zadaným krátkým názvem. Alias „dotnet new <template name>“. do not translate 'dotnet new <template name>' Checks the currently installed template packages for updates. - Checks the currently installed template packages for updates. + Vyhledá aktualizace pro aktuálně nainstalované balíčky šablon. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Když se určí, zobrazí se jenom šablony, které odpovídají názvu. Lists templates containing the specified template name. If no name is specified, lists all templates. - Lists templates containing the specified template name. If no name is specified, lists all templates. + Vypíše šablony, které obsahují zadaný název šablony. Pokud se nezadá žádný název, vypíše seznam všech šablon. Template Instantiation Commands for .NET CLI. - Template Instantiation Commands for .NET CLI. + Příkazy pro vytvoření instancí šablon pro .NET CLI. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Když se určí, zobrazí se jenom šablony, které odpovídají názvu. Searches for the templates on NuGet.org. - Searches for the templates on NuGet.org. + Vyhledá šablony na NuGet.org. NuGet package ID (without version) or path to folder to uninstall. If command is specified without the argument, it lists all the template packages installed. - NuGet package ID (without version) or path to folder to uninstall. -If command is specified without the argument, it lists all the template packages installed. + ID balíčku NuGet (bez verze) nebo cesta ke složce, která se má odinstalovat. +Pokud je příkaz zadán bez argumentu, zobrazí seznam všech nainstalovaných balíčků šablon. Uninstalls a template package. - Uninstalls a template package. + Odinstaluje balíček šablon. Checks the currently installed template packages for update, and install the updates. - Checks the currently installed template packages for update, and install the updates. + Vyhledejte aktualizace pro aktuálně nainstalované balíčky šablon a nainstalujte je. Only checks for updates and display the template packages to be updated without applying update. - Only checks for updates and display the template packages to be updated without applying update. + Zkontroluje pouze aktualizace a zobrazte balíčky šablon, které se mají aktualizovat bez použití aktualizace. Unrecognized command or argument(s): {0}. - Unrecognized command or argument(s): {0}. + Nerozpoznaný příkaz nebo argument(y): {0}. {0} - wrong token or comma-separated tokens (if multiple). Each token is enclosed with single quotes: 'token'. FRAMEWORK - FRAMEWORK + FRAMEWORK ConfigFile - ConfigFile + ConfigFile The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior - The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior + Konfigurační soubor NuGet. Když se zadá, použijí se jen nastavení z tohoto souboru. Když se soubor nezadá, použijte se hierarchie konfiguračních souborů z aktuálního adresáře. Další informace najdete na adrese https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior CONFIGURATION - CONFIGURATION + CONFIGURATION DUMP_TYPE - DUMP_TYPE + DUMP_TYPE Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed - Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed + Vytvořte manifest nástroje, pokud se nějaký nenajde během instalace nástroje. Informace o tom, jak se manifesty nacházejí, najdete v tématu https://aka.ms/dotnet/tools/create-manifest-if-needed Use current runtime as the target runtime. - Use current runtime as the target runtime. + Jako cílový modul runtime použijte aktuální modul. Show detail result of the query. - Show detail result of the query. + Zobrazit podrobné výsledky dotazu Package identifier - Package identifier + Identifikátor balíčku Enables diagnostic output. - Enables diagnostic output. + Povolí diagnostický výstup. Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Vynuťte, aby příkaz ignoroval všechny trvalé buildovací servery. Disables evaluating project context using MSBuild. - Disables evaluating project context using MSBuild. + Zakáže vyhodnocování kontextu projektu pomocí nástroje MSBuild. If present, prevents templates bundled in the SDK from being presented. - If present, prevents templates bundled in the SDK from being presented. + Pokud je k dispozici, zabrání zobrazení šablon, které jsou součástí sady SDK. .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. + Testovací příkaz .NET pro Microsoft.Testing.Platform (vyjádřen výslovný souhlas prostřednictvím souboru global.json). Podporuje jenom Microsoft.Testing.Platform a nepodporuje VSTest. Další informace najdete na https://aka.ms/dotnet-test. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. + Testovací příkaz .NET pro VSTest. Pokud chcete použít Microsoft.Testing.Platform, prostřednictvím souboru global.json vyjádřete výslovný souhlas s příkazem založeným na Microsoft.Testing.Platform. Další informace najdete na https://aka.ms/dotnet-test. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} DIRECTORY - DIRECTORY + ADRESÁŘ Download packages needed to install a workload to a folder that can be used for offline installation. - Download packages needed to install a workload to a folder that can be used for offline installation. + Stáhněte si balíčky potřebné pro instalaci úlohy do složky, kterou je možné použít pro offline instalaci. Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. - Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. + Vyžaduje, aby hledaný termín přesně odpovídal názvu balíčku. Způsobí, že se možnosti --take a --skip budou ignorovat. The file-based app to operate on. - The file-based app to operate on. + Souborová aplikace, se kterou se má pracovat. Format - Format + Formát Format the output accordingly. Either `table`, or `json`. The default value is `table`. - Format the output accordingly. Either `table`, or `json`. The default value is `table`. + Formátuje výstup odpovídajícím způsobem. Buď table, nebo json. Výchozí hodnota je table. Changes the format of outputted workload versions. Can take 'json' or 'list' - Changes the format of outputted workload versions. Can take 'json' or 'list' + Změní formát výstupních verzí úloh. Může přijmout json nebo list. FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Publikujte svoji aplikaci jako aplikaci závislou na architektuře. Aby bylo možné vaši aplikaci spustit, musí být na cílovém počítači nainstalovaný kompatibilní modul runtime .NET. FRAMEWORK_VERSION - FRAMEWORK_VERSION + FRAMEWORK_VERSION The Microsoft.NETCore.App package version that will be used to run the assemblies. - The Microsoft.NETCore.App package version that will be used to run the assemblies. + Verze balíčku Microsoft.NETCore.App, který se použije ke spuštění sestavení DIRECTORY - DIRECTORY + ADRESÁŘ Complete the operation from cache (offline). - Complete the operation from cache (offline). + Dokončete operaci z mezipaměti (offline). Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. - Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. + Aktualizujte úlohy na předchozí verzi určenou argumentem. K zobrazení dostupných záznamů historie úloh použijte příkaz dotnet workload history. Include workloads installed with earlier SDK versions in update. - Include workloads installed with earlier SDK versions in update. + Zahrnout do aktualizace úlohy nainstalované s předchozími verzemi sady SDK. Update workloads based on specified rollback definition file. - Update workloads based on specified rollback definition file. + Aktualizuje úlohy na základě zadaného souboru definice vrácení zpět. DUMP_TYPE - DUMP_TYPE + DUMP_TYPE TIMESPAN - TIMESPAN + TIMESPAN .NET CLI help utility - .NET CLI help utility + Nástroj nápovědy k rozhraní příkazového řádku .NET Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. - Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. + Aktualizovat na verze úloh zadané v historii, aniž by se změnilo, které úlohy jsou nainstalovány. Aktuálně nainstalované úlohy budou aktualizovány tak, aby odpovídaly zadané verzi historie. Place project in root of the solution, rather than creating a solution folder. - Place project in root of the solution, rather than creating a solution folder. + Umístěte projekt do kořene řešení, není potřeba vytvářet složku řešení. Allow prerelease workload manifests. - Allow prerelease workload manifests. + Povolit předběžné verze manifestů úloh. Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Nesprávně formátované proměnné prostředí: {0} WORKING_DIR - WORKING_DIR + WORKING_DIR The working directory used by the command to execute. - The working directory used by the command to execute. + Pracovní adresář použitý příkazem, který se má spustit Invalid version string: {0} - Invalid version string: {0} + Neplatný řetězec verze: {0} LEVEL - LEVEL + LEVEL List all projects in a solution file. - List all projects in a solution file. + Vypíše seznam všech projektů v souboru řešení. Disables checking if the template meets the constraints to be run. - Disables checking if the template meets the constraints to be run. + Zakáže kontrolu, jestli šablona splňuje omezení, aby ji bylo možné spustit. Display solution folder paths. - Display solution folder paths. + Zobrazí cesty ke složkám řešení. Shut down the MSBuild build server. - Shut down the MSBuild build server. + Vypne buildovací server MSBuild. MANIFEST - MANIFEST + MANIFEST The path to a target manifest file that contains the list of packages to be excluded from the publish step. - The path to a target manifest file that contains the list of packages to be excluded from the publish step. + Cesta k cílovému souboru manifestu obsahujícímu seznam balíčků, které se mají vyloučit z kroku publikování Generate a .slnx file from a .sln file. - Generate a .slnx file from a .sln file. + Vygenerujte soubor .slnx ze souboru .sln. .NET Add Command - .NET Add Command + Příkaz rozhraní .NET pro přidání List references or packages of a .NET project. - List references or packages of a .NET project. + Vypíše seznam odkazů nebo balíčků projektu .NET. .NET Remove Command - .NET Remove Command + Příkaz rozhraní .NET pro odebrání Do not build the project before publishing. Implies --no-restore. - Do not build the project before publishing. Implies --no-restore. + Nesestavujte projekt, dokud ho nepublikujete. Implikuje možnost --no-restore. Do not build project-to-project references and only build the specified project. - Do not build project-to-project references and only build the specified project. + Nesestaví odkazy mezi projekty a sestaví jen určený projekt. Do not use incremental building. - Do not use incremental building. + Nepoužije se přírůstkové sestavení. Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Nezobrazovat úvodní nápis ani zprávu o autorských právech Do not restore the project before building. - Do not restore the project before building. + Neobnoví projekt před sestavením. OS - OS + Operační systém Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). - Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). + Zadávání možnosti manifestu nástroje (--tool-manifest) je platné jen spolu s možností local (--local nebo výchozí). The target operating system. - The target operating system. + Cílový operační systém Specifies a NuGet source to use. - Specifies a NuGet source to use. + Určuje zdroj NuGet, který se má použít. Filters the templates based on the template author. - Filters the templates based on the template author. + Filtruje šablony na základě autora šablony. Filters the templates based on baseline defined in the template. - Filters the templates based on baseline defined in the template. + Filtruje šablony podle směrného plánu definovaného v šabloně. Specifies the columns to display in the output. - Specifies the columns to display in the output. + Určete sloupce k zobrazení ve výstupu. Displays all columns in the output. - Displays all columns in the output. + Zobrazí všechny sloupce ve výstupu. Allows to pause execution in order to attach to the process for debug purposes. - Allows to pause execution in order to attach to the process for debug purposes. + Umožňuje pozastavit provádění, aby se mohlo připojit k procesu pro účely ladění. Sets custom settings location. - Sets custom settings location. + Nastaví vlastní umístění nastavení. If specified, removes the template cache prior to command execution. - If specified, removes the template cache prior to command execution. + Když se tato možnost zadá, před provedením příkazu se odebere mezipaměť šablony. If specified, resets the settings prior to command execution. - If specified, resets the settings prior to command execution. + Pokud je zadáno, obnoví nastavení před provedením příkazu. If specified, shows the template engine config prior to command execution. - If specified, shows the template engine config prior to command execution. + Pokud je zadáno, zobrazí konfiguraci modulu šablony před spuštěním příkazu. If specified, the settings will be not preserved on file system. - If specified, the settings will be not preserved on file system. + Pokud je zadáno, nastavení nebudou v systému souborů zachována. Allows installing template packages from the specified sources even if they would override a template package from another source. - Allows installing template packages from the specified sources even if they would override a template package from another source. + Umožňuje instalaci balíčků šablon ze zadaných zdrojů i v případě, že by přepsaly balíček šablony z jiného zdroje. Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Umožňuje, aby se příkaz zastavil a počkal na vstup nebo akci uživatele (například na dokončení ověření). Filters templates based on language. - Filters templates based on language. + Filtruje šablony podle jazyka. Location to place the generated output. - Location to place the generated output. + Umístění, do kterého se uloží vygenerovaný výstup Filters the templates based on NuGet package ID. - Filters the templates based on NuGet package ID. + Filtruje šablony podle ID balíčku NuGet. The project that should be used for context evaluation. - The project that should be used for context evaluation. + Projekt, který by se měl použít pro vyhodnocení kontextu. Filters the templates based on the tag. - Filters the templates based on the tag. + Filtruje šablony na základě značky. Filters templates based on available types. Predefined values are "project" and "item". - Filters templates based on available types. Predefined values are "project" and "item". + Filtruje šablony na základě dostupných typů. Předem definované hodnoty jsou project a item. project and item should not be translated Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. - Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. + Možnosti --outdated, --deprecated a --vulnerable se nedají kombinovat. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR .NET Core NuGet Package Packer - .NET Core NuGet Package Packer + Nástroj .NET Core pro balení balíčku NuGet OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place built packages in. - The output directory to place built packages in. + Výstupní adresář, kam se mají umístit sestavené balíčky VERSION - VERSION + VERZE The version of the package to create - The version of the package to create + Verze balíčku, který se má vytvořit The configuration to use for building the package. The default is 'Release'. - The configuration to use for building the package. The default is 'Release'. + Konfigurace, která se má použít k sestavení balíčku. Výchozí hodnota je Release. Add a NuGet package reference to the project. - Add a NuGet package reference to the project. + Přidat odkaz na balíček NuGet do projektu FRAMEWORK - FRAMEWORK + FRAMEWORK Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Přidá odkaz jen v případě, že cílem je konkrétní architektura. Add the reference without performing restore preview and compatibility check. - Add the reference without performing restore preview and compatibility check. + Přidá odkaz bez provedení náhledu obnovení a kontroly kompatibility. SOURCE - SOURCE + ZDROJ The NuGet package source to use during the restore. - The NuGet package source to use during the restore. + Zdroj balíčku NuGet, který se použije při obnovení Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Odkaz na balíček ve formě identifikátoru balíčku, jako je „{0}“, nebo identifikátor balíčku a verze oddělené znakem @, například „{0}@{1}“. Package reference id and version must not be null. - Package reference id and version must not be null. + ID a verze odkazu na balíček nesmí být prázdné. List all package references of the project or solution. - List all package references of the project or solution. + Vypíše všechny odkazy na balíčky z projektu nebo řešení. FRAMEWORK | FRAMEWORK\RID - FRAMEWORK | FRAMEWORK\RID + FRAMEWORK | FRAMEWORK\RID Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. - Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. + Zvolí architekturu, pro kterou se mají zobrazit balíčky. Pokud chcete určit více architektur, zadejte tento přepínač vícekrát. SOURCE - SOURCE + ZDROJ The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + Zdroje NuGet, které se mají použít při hledání novějších balíčků. Vyžaduje možnost --outdated, --deprecated nebo --vulnerable. Package reference - Package reference + Odkaz na balíček Remove a NuGet package reference from the project. - Remove a NuGet package reference from the project. + Odebrat odkaz na balíček NuGet z projektu The package reference to remove. - The package reference to remove. + Odkaz na balíček, který se má odebrat Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. - Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. + Vyhledá v jednom nebo více zdrojích balíčků balíčky, které odpovídají hledanému výrazu. Pokud nejsou zadány žádné zdroje, budou použity všechny zdroje definované v NuGet.Config. Include prerelease packages. - Include prerelease packages. + Zahrnout předběžné verze balíčků. SearchTerm - SearchTerm + SearchTerm Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. - Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. + Hledaný termín umožňuje filtrovat názvy balíčků, popisy a značky. Používá se jako hodnota literálu. Příklad: dotnet package search some.package. Nenašla se žádná shoda --exact-match. Skip - Skip + Přeskočit Number of results to skip, to allow pagination. Default 0. - Number of results to skip, to allow pagination. Default 0. + Počet výsledků, které se mají přeskočit, aby se povolilo stránkování. Výchozí hodnota 0. Take - Take + Převzít Number of results to return. Default 20. - Number of results to return. Default 20. + Počet výsledků, které se mají vrátit. Výchozí hodnota je 20. Only print the list of links to download without downloading. - Only print the list of links to download without downloading. + Vytiskne pouze seznam odkazů, které se mají stáhnout, aniž by se tento seznam stahoval. @@ -1508,15 +1508,15 @@ If command is specified without the argument, it lists all the template packages dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 - 'dotnet workload search version' has three functions depending on its argument: - 1. If no argument is specified, it outputs a list of the latest released workload versions from this feature band. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + dotnet workload search version má tři funkce v závislosti na argumentu: + 1. Pokud není zadán žádný argument, vypíše seznam nejnovějších vydaných verzí úloh z tohoto pásma funkcí. Pomocí parametru --take určíte, kolik jich má být poskytnuto, a pomocí parametru --format změníte formát. + Příklad: dotnet workload search version --take 2 --format json [{"workloadVersion":"9.0.201"},{"workloadVersion":"9.0.200.1"}] - 2. If a workload version is provided as an argument, it outputs a table of various workloads and their versions for the specified workload version. Takes the --format option to alter the output format. - Example: + 2. Pokud je jako argument zadána verze úlohy, je výstupem tabulka různých úloh a jejich verzí pro zadanou verzi úlohy. Provede změnu výstupního formátu pomocí parametru --format. + Příklad: dotnet workload search version 9.0.201 - Workload manifest ID Manifest feature band Manifest Version + ID manifestu úlohy Pásmo funkcí manifestu Verze manifestu ------------------------------------------------------------------------------------------------ microsoft.net.workload.emscripten.current 9.0.100-rc.1 9.0.0-rc.1.24430.3 microsoft.net.workload.emscripten.net6 9.0.100-rc.1 9.0.0-rc.1.24430.3 @@ -1532,8 +1532,8 @@ If command is specified without the argument, it lists all the template packages microsoft.net.workload.mono.toolchain.net6 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net7 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net8 9.0.100-rc.1 9.0.0-rc.1.24431.7 - 3. If one or more workloads are provided along with their versions (by joining them with the '@' character), it outputs workload versions that match the provided versions. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 3. Pokud jsou zadány úlohy spolu s jejich verzemi (spojených znakem @), budou výstupem verze úloh, které odpovídají zadaným verzím. Pomocí parametru --take určíte, kolik jich má být poskytnuto, a pomocí parametru --format změníte formát. + Příklad: dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 @@ -1541,775 +1541,775 @@ If command is specified without the argument, it lists all the template packages The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Soubor projektu, s kterým se má pracovat. Pokud soubor není zadaný, příkaz ho bude hledat v aktuálním adresáři. Convert a file-based program to a project-based program. - Convert a file-based program to a project-based program. + Umožňuje převést program na bázi souboru na program na bázi projektu. Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Určuje změny, aniž by ve skutečnosti měnil systém souborů. PROJECT_MANIFEST - PROJECT_MANIFEST + PROJECT_MANIFEST The XML file that contains the list of packages to be stored. - The XML file that contains the list of packages to be stored. + Soubor XML obsahující seznam balíčků, které se mají uložit The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Soubor projektu nebo souborová aplikace v jazyce C#, se kterou se má pracovat. Pokud soubor není zadaný, příkaz vyhledá soubor projektu v aktuálním adresáři. PROJECT | FILE - PROJECT | FILE + PROJEKT | SOUBOR Publisher for the .NET Platform - Publisher for the .NET Platform + Vydavatel pro platformu .NET The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. - The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. + Konfigurace, pro kterou se má publikovat. Pro projekty NET 8.0 a vyšší je výchozí hodnota Release, ale pro starší projekty je hodnota Debug. The target framework to publish for. The target framework has to be specified in the project file. - The target framework to publish for. The target framework has to be specified in the project file. + Cílová architektura pro publikování. Cílová architektura musí být zadaná v souboru projektu. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place the published artifacts in. - The output directory to place the published artifacts in. + Výstupní adresář do kterého se mají umístit publikované artefakty The target runtime to publish for. This is used when creating a self-contained deployment. The default is to publish a framework-dependent application. - The target runtime to publish for. This is used when creating a self-contained deployment. -The default is to publish a framework-dependent application. + Modul runtime, který je cílem publikování. Používá se při vytváření samostatného nasazení. +Ve výchozím nastavení je publikována aplikace závislá na architektuře. Shut down the Razor build server. - Shut down the Razor build server. + Vypne buildovací server Razor. Add a project-to-project reference to the project. - Add a project-to-project reference to the project. + Přidat odkaz mezi projekty do projektu Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Přidá odkaz jen v případě, že cílem je konkrétní architektura. The paths to the projects to add as references. - The paths to the projects to add as references. + Cesty k projektům, které se mají přidat jako odkazy PROJECT_PATH - PROJECT_PATH + PROJECT_PATH List all project-to-project references of the project. - List all project-to-project references of the project. + Zobrazí všechny odkazy mezi projekty v projektu. Remove a project-to-project reference from the project. - Remove a project-to-project reference from the project. + Odebrat odkaz mezi projekty z projektu Remove the reference only when targeting a specific framework. - Remove the reference only when targeting a specific framework. + Odebere odkaz jen v případě, že cílem je konkrétní architektura. The paths to the referenced projects to remove. - The paths to the referenced projects to remove. + Cesty k odkazovaným projektům, které se mají odebrat PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Remove one or more projects from a solution file. - Remove one or more projects from a solution file. + Odebere ze souboru řešení jeden nebo více projektů. The project paths or names to remove from the solution. - The project paths or names to remove from the solution. + Cesty nebo názvy projektů, které se mají z řešení odebrat PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Required command was not provided. - Required command was not provided. + Požadovaný příkaz nebyl zadán. .NET dependency restorer - .NET dependency restorer + Nástroj .NET pro obnovení závislostí Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. - Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. + Povolí nástroji .NET přejít na novější verze modulu .NET runtime, pokud není nainstalován modul runtime, na který cílí. .NET Run Command - .NET Run Command + Příkaz rozhraní .NET pro spuštění The configuration to run for. The default for most projects is 'Debug'. - The configuration to run for. The default for most projects is 'Debug'. + Konfigurace pro spuštění. Výchozí možností pro většinu projektů je Debug. The target framework to run for. The target framework must also be specified in the project file. - The target framework to run for. The target framework must also be specified in the project file. + Cílová architektura pro spuštění. Cílová architektura musí být určená také v souboru projektu. The target runtime to run for. - The target runtime to run for. + Cílový modul runtime pro běh RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Povolí diagnostický výstup. Display the command schema as JSON. - Display the command schema as JSON. + Zobrazí schéma příkazu jako JSON. .NET SDK Command - .NET SDK Command + Příkaz sady .NET SDK .NET SDK Check Command - .NET SDK Check Command + Příkaz kontroly sady .NET SDK The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Možnosti --self-contained a --no-self-contained nelze použít společně. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Publikujte se svou aplikací modul runtime pro .NET, aby ho nebylo nutné instalovat na cílovém počítači. +Výchozí hodnota je false. Pokud však cílíte na .NET 7 nebo nižší a je zadán identifikátor modulu runtime, výchozí hodnota je true. Skip updating the workload manifests. - Skip updating the workload manifests. + Přeskočit aktualizaci manifestů úlohy Skip the optimization phase. - Skip the optimization phase. + Vynechá fázi optimalizace. Skip signature verification of workload packages and installers. - Skip signature verification of workload packages and installers. + Přeskočit ověření podpisu balíčků úloh a instalačních programů Skip creating symbol files which can be used for profiling the optimized assemblies. - Skip creating symbol files which can be used for profiling the optimized assemblies. + Vynechá vytvoření souborů symbolů, které lze použít k profilaci optimalizovaných sestavení. Recursively add projects' ReferencedProjects to solution - Recursively add projects' ReferencedProjects to solution + Rekurzivně přidá projekty ReferencedProjects do řešení. .NET modify solution file command - .NET modify solution file command + Příkaz rozhraní .NET pro úpravy souboru řešení The solution file to operate on. If not specified, the command will search the current directory for one. - The solution file to operate on. If not specified, the command will search the current directory for one. + Soubor řešení, s kterým se má pracovat. Pokud není zadaný, příkaz ho bude hledat v aktuálním adresáři. SLN_FILE - SLN_FILE + SLN_FILE The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Soubor projektu nebo řešení, se kterým se má operace provést. Pokud soubor není zadaný, příkaz ho bude hledat v aktuálním adresáři. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Projekt nebo řešení nebo soubor C# (souborový program), se kterým se má pracovat. Pokud soubor není zadaný, příkaz bude hledat projekt nebo řešení v aktuálním adresáři. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJEKT | ŘEŠENÍ | SOUBOR Source - Source + Zdroj The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. - The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. + Zdroj balíčku, který se má vyhledat. Pokud chcete hledat více zdrojů balíčků, můžete předat více možností --source. Příklad: --source https://api.nuget.org/v3/index.json Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. - Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. + Uloží určená sestavení pro platformu .NET. Standardně se optimalizují pro cílový modul runtime a architekturu. The target framework to store packages for. The target framework has to be specified in the project file. - The target framework to store packages for. The target framework has to be specified in the project file. + Cílová architektura pro uložení balíčků. Cílová architektura musí být zadaná v souboru projektu. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to store the given assemblies in. - The output directory to store the given assemblies in. + Výstupní adresář, do kterého se mají uložit daná sestavení The target runtime to store packages for. - The target runtime to store packages for. + Cílový modul runtime pro uložení balíčků Specify a temporary directory for this command to download and extract NuGet packages (must be secure). - Specify a temporary directory for this command to download and extract NuGet packages (must be secure). + Zadejte dočasný adresář pro tento příkaz, který se má stáhnout a extrahujte balíčky NuGet (musí být zabezpečené). Displays a summary of what would happen if the given command line were run if it would result in a template creation. - Displays a summary of what would happen if the given command line were run if it would result in a template creation. + Zobrazí souhrn toho, co by se mohlo stát, kdyby se daný příkazový řádek spustil, pokud by to vedlo k vytvoření šablony. Forces content to be generated even if it would change existing files. - Forces content to be generated even if it would change existing files. + Vynutí vygenerování obsahu i v případě, že by došlo ke změně existujících souborů. The name for the output being created. If no name is specified, the name of the output directory is used. - The name for the output being created. If no name is specified, the name of the output directory is used. + Název vytvářeného výstupu. Pokud se žádný název nezadá, použije se název výstupního adresáře. Disables checking for the template package updates when instantiating a template. - Disables checking for the template package updates when instantiating a template. + Zakáže kontrolu aktualizací balíčků šablony při vytváření instance šablony. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The configuration to use for running tests. The default for most projects is 'Debug'. - The configuration to use for running tests. The default for most projects is 'Debug'. + Konfigurace, která se má použít pro spuštění testů. Výchozí možností pro většinu projektů je Debug. The target framework to run tests for. The target framework must also be specified in the project file. - The target framework to run tests for. The target framework must also be specified in the project file. + Cílová architektura pro spuštění testů. Cílová architektura musí být určená také v souboru projektu. The target runtime to test for. - The target runtime to test for. + Cílový modul runtime pro testování. Install or work with tools that extend the .NET experience. - Install or work with tools that extend the .NET experience. + Instaluje nástroje, které rozšiřují prostředí .NET, nebo s nimi pracuje. Executes a tool from source without permanently installing it. - Executes a tool from source without permanently installing it. + Spustí nástroj ze zdroje bez trvalé instalace. Add an additional NuGet package source to use during installation. - Add an additional NuGet package source to use during installation. + Přidá další zdroj balíčku NuGet, který se použije při instalaci. ADDSOURCE - ADDSOURCE + ADDSOURCE Install global or local tool. Local tools are added to manifest and restored. - Install global or local tool. Local tools are added to manifest and restored. + Nainstaluje globální nebo místní nástroj. Místní nástroje se přidávají do manifestu a obnovují. The NuGet configuration file to use. - The NuGet configuration file to use. + Konfigurační soubor NuGet, který se použije. FILE - FILE + SOUBOR The target framework to install the tool for. - The target framework to install the tool for. + Cílová architektura, pro kterou se má nástroj nainstalovat FRAMEWORK - FRAMEWORK + FRAMEWORK Install the tool for the current user. - Install the tool for the current user. + Nainstaluje nástroj pro aktuálního uživatele. Install the tool and add to the local tool manifest (default). - Install the tool and add to the local tool manifest (default). + Nainstaluje nástroj a přidá ho do manifestu místního nástroje (výchozí). Path to the manifest file. - Path to the manifest file. + Cesta k souboru manifestu PATH - PATH + PATH Replace all NuGet package sources to use during installation with these. - Replace all NuGet package sources to use during installation with these. + Nahradit všechny zdroje balíčků NuGet, které se mají použít při instalaci, těmito zdroji. SOURCE - SOURCE + ZDROJ The directory where the tool will be installed. The directory will be created if it does not exist. - The directory where the tool will be installed. The directory will be created if it does not exist. + Adresář, do kterého se nástroj nainstaluje. Pokud tento adresář neexistuje, bude vytvořen. PATH - PATH + PATH The version of the tool package to install. - The version of the tool package to install. + Verze balíčku nástroje, který se má nainstalovat VERSION - VERSION + VERZE List tools installed globally or locally. - List tools installed globally or locally. + Vypíše globálně nebo místně nainstalované nástroje. The output format for the list of tools. - The output format for the list of tools. + Výstupní formát seznamu nástrojů. List tools installed for the current user. - List tools installed for the current user. + Vypíše nástroje nainstalované pro aktuálního uživatele. List the tools installed in the local tool manifest. - List the tools installed in the local tool manifest. + Vypíše nástroje nainstalované v manifestu místního nástroje. The NuGet Package Id of the tool to list - The NuGet Package Id of the tool to list + ID balíčku NuGet nástroje, který se má vypsat PACKAGE_ID - PACKAGE_ID + PACKAGE_ID The directory containing the tools to list. - The directory containing the tools to list. + Adresář obsahující nástroje, které se mají vypsat Restore tools defined in the local tool manifest. - Restore tools defined in the local tool manifest. + Obnoví nástroje definované v manifestu místního nástroje. Path to the manifest file. - Path to the manifest file. + Cesta k souboru manifestu Arguments forwarded to the tool - Arguments forwarded to the tool + Argumenty předané nástroji Run a local tool. Note that this command cannot be used to run a global tool. - Run a local tool. Note that this command cannot be used to run a global tool. + Spustí místní nástroj. Tento příkaz nejde použít ke spuštění globálního nástroje. Search dotnet tools in nuget.org - Search dotnet tools in nuget.org + Hledat nástroje dotnet v nuget.org Include pre-release packages. - Include pre-release packages. + Zahrnuje balíčky v předběžné verzi. SEARCH_TERM - SEARCH_TERM + SEARCH_TERM Search term from package id or package description. Require at least one character. - Search term from package id or package description. Require at least one character. + Hledaný výraz z ID nebo popisu balíčku. Vyžaduje alespoň jeden znak. Skip - Skip + Přeskočit The number of results to skip, for pagination. - The number of results to skip, for pagination. + Počet výsledků, které se mají přeskočit pro stránkování Take - Take + Převzít The number of results to return, for pagination. - The number of results to return, for pagination. + Počet výsledků, které se mají vrátit pro stránkování Uninstall a global tool or local tool. - Uninstall a global tool or local tool. + Odinstaluje globální nebo místní nástroj. Uninstall the tool from the current user's tools directory. - Uninstall the tool from the current user's tools directory. + Odinstaluje nástroj z adresáře nástrojů aktuálního uživatele. Uninstall the tool and remove it from the local tool manifest. - Uninstall the tool and remove it from the local tool manifest. + Odinstaluje nástroj a odebere ho z manifestu místního nástroje. Path to the manifest file. - Path to the manifest file. + Cesta k souboru manifestu The directory containing the tool to uninstall. - The directory containing the tool to uninstall. + Adresář obsahující nástroj, který se má odinstalovat Update a global or local tool. - Update a global or local tool. + Aktualizace globálního nebo místního nástroje. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Nerozpoznaný příkaz nebo argument: {0} Update all tools. - Update all tools. + Aktualizuje všechny nástroje. Controls whether updates should look for workload sets or the latest version of each individual manifest. - Controls whether updates should look for workload sets or the latest version of each individual manifest. + Určuje, zda mají aktualizace vyhledávat sady úloh nebo nejnovější verzi každého jednotlivého manifestu. Shut down the VB/C# compiler build server. - Shut down the VB/C# compiler build server. + Vypne buildovací server kompilátoru VB/C#. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Nejde zadat --version, pokud argument balíčku již obsahuje verzi. {Locked="--version"} Verbosity - Verbosity + Podrobnosti Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` - Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` + Ve výstupu se zobrazí následující množství podrobností: normální, minimální, podrobné. Výchozí hodnota je normal. Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Nastavuje úroveň podrobností MSBuild. Povolené hodnoty jsou q [tichý], m [minimální], n [normální], d [podrobný] a diag [diagnostický]. Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. - Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. + Nastaví úroveň podrobností. Povolené hodnoty jsou: q[uiet], m[inimal], n[ormal] a diag[nostic]. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX Removes workload components that may have been left behind from previous updates and uninstallations. - Removes workload components that may have been left behind from previous updates and uninstallations. + Odebere součásti úloh, které mohly být pozůstatky z předchozích aktualizací a odinstalací. Install or work with workloads that extend the .NET experience. - Install or work with workloads that extend the .NET experience. + Nainstalujte úlohy, které rozšiřují prostředí .NET, nebo s nimi pracujte. Modify or display workload configuration values. To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" - Modify or display workload configuration values. -To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" + Upraví nebo zobrazí hodnoty konfigurace úlohy. +Pokud chcete zobrazit hodnotu, zadejte odpovídající volbu příkazového řádku bez zadání hodnoty. Například: dotnet workload config --update-mode Start the elevated server process to facilitate MSI based installations. - Start the elevated server process to facilitate MSI based installations. + Spuštěním serverového procesu se zvýšenými oprávněními umožněte používat instalace založené na instalační službě MSI. Shows a history of workload installation actions. - Shows a history of workload installation actions. + Zobrazí historii akcí instalace úlohy. The NuGet package ID of the workload to install. - The NuGet package ID of the workload to install. + ID balíčku NuGet úlohy, která se má nainstalovat. WORKLOAD_ID - WORKLOAD_ID + WORKLOAD_ID The text to search for in the IDs and descriptions of available workloads. - The text to search for in the IDs and descriptions of available workloads. + Text, který se má vyhledávat v ID a popisech dostupných úloh. SEARCH_STRING - SEARCH_STRING + SEARCH_STRING Display information about installed workloads. - Display information about installed workloads. + Zobrazí informace o nainstalovaných úlohách. Install one or more workloads. - Install one or more workloads. + Nainstalujte jednu nebo více úloh. The NuGet configuration file to use. - The NuGet configuration file to use. + Konfigurační soubor NuGet, který se použije. FILE - FILE + SOUBOR The NuGet package source to use during the restore. To specify multiple sources, repeat the option. - The NuGet package source to use during the restore. To specify multiple sources, repeat the option. + Zdroj balíčku NuGet, který se má použít při obnovení. Chcete-li zadat více zdrojů, opakujte tuto možnost. SOURCE - SOURCE + ZDROJ The version of the SDK. - The version of the SDK. + Verze sady SDK VERSION - VERSION + VERZE List workloads available. - List workloads available. + Jsou k dispozici seznamy úloh. Repair workload installations. - Repair workload installations. + Opravte instalace úloh. Restore workloads required for a project. - Restore workloads required for a project. + Obnovte úlohy požadované pro projekt. Search for available workloads. - Search for available workloads. + Vyhledávejte dostupné úlohy. A workload version to display or one or more workloads and their versions joined by the '@' character. - A workload version to display or one or more workloads and their versions joined by the '@' character. + Verze úlohy, která se má zobrazit, nebo jedna nebo více úloh a jejich verze spojené znakem @. Uninstall one or more workloads. - Uninstall one or more workloads. + Odinstalujte nejméně jednu úlohu. Update all installed workloads. - Update all installed workloads. + Aktualizace všech nainstalovaných úloh. WORKLOAD_VERSION - WORKLOAD_VERSION + WORKLOAD_VERSION Output workload manifest versions associated with the provided workload version. - Output workload manifest versions associated with the provided workload version. + Verze manifestu výstupní úlohy přidružené k zadané verzi úlohy. Display the currently installed workload version. - Display the currently installed workload version. + Zobrazí aktuálně nainstalovanou verzi úlohy. Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Přijměte všechny výzvy k potvrzení kliknutím „ano“. The friendly name of the data collector to use for the test run. More info here: https://aka.ms/vstest-collect - The friendly name of the data collector to use for the test run. - More info here: https://aka.ms/vstest-collect + Popisný název kolekce dat, která se má použít pro testovací běh. + Další informace: https://aka.ms/vstest-collect DATA_COLLECTOR_NAME - DATA_COLLECTOR_NAME + DATA_COLLECTOR_NAME diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.de.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.de.xlf index 66b2dc383317..2e08a6629d2b 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.de.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.de.xlf @@ -4,162 +4,162 @@ Only update advertising manifests. - Only update advertising manifests. + Aktualisieren Sie nur Werbemanifeste. Add one or more projects to a solution file. - Add one or more projects to a solution file. + Fügt einer Projektmappendatei ein oder mehrere Projekte hinzu. The paths to the projects to add to the solution. - The paths to the projects to add to the solution. + Die Pfade zu den Projekten, die zur Projektmappe hinzugefügt werden sollen. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH The destination solution folder path to add the projects to. - The destination solution folder path to add the projects to. + Der Zielpfad des Projektmappenordners, dem die Projekte hinzugefügt werden sollen. Allow package downgrade when installing a .NET tool package. - Allow package downgrade when installing a .NET tool package. + Paketdowngrade beim Installieren eines .NET-Toolpakets zulassen. ARCH - ARCH + ARCH The target architecture. - The target architecture. + Die Zielarchitektur. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Der Artefaktpfad. Die gesamte Ausgabe des Projekts, einschließlich Build-, Veröffentlichungs- und Paketausgabe, wird in Unterordnern unter dem angegebenen Pfad angezeigt. .NET Builder - .NET Builder + .NET-Generator The configuration to use for building the project. The default for most projects is 'Debug'. - The configuration to use for building the project. The default for most projects is 'Debug'. + Die für die Projekterstellung zu verwendende Konfiguration. Standard für die meisten Projekte ist "Debug". The target framework to build for. The target framework must also be specified in the project file. - The target framework to build for. The target framework must also be specified in the project file. + Das Zielframework für die Erstellung. Das Zielframework muss auch in der Projektdatei angegeben werden. The output directory to place built artifacts in. - The output directory to place built artifacts in. + Das Ausgabeverzeichnis, in dem erstellte Artefakte abgelegt werden. The target runtime to build for. - The target runtime to build for. + Die Zielruntime für die Erstellung. Interact with servers started from a build. - Interact with servers started from a build. + Interaktion mit Servern, die aus einem Build gestartet werden. Shuts down build servers that are started from dotnet. By default, all servers are shut down. - Shuts down build servers that are started from dotnet. By default, all servers are shut down. + Fährt Buildserver herunter, die aus .NET gestartet werden. Standardmäßig werden alle Server heruntergefahren. Cannot specify both the {0} and {1} arguments. - Cannot specify both the {0} and {1} arguments. + Die Argumente {0} und {1} können nicht gleichzeitig angegeben werden. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Fehler beim Auflösen des aktuellen Runtimebezeichners. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Das gleichzeitige Angeben der Optionen „-r|--runtime“ und „-a|--arch“ wird nicht unterstützt. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Das gleichzeitige Angeben der Optionen „-r|--runtime“ und „-os“ wird nicht unterstützt. Causes clean to remove and uninstall all workload components from all SDK versions. - Causes clean to remove and uninstall all workload components from all SDK versions. + Bewirkt, dass alle Workloadkomponenten aus allen SDK-Versionen entfernt und deinstalliert werden. .NET Clean Command - .NET Clean Command + .NET-Befehl "Clean" OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The directory containing the build artifacts to clean. - The directory containing the build artifacts to clean. + Das Verzeichnis mit den zu bereinigenden Buildartefakten. The configuration to clean for. The default for most projects is 'Debug'. - The configuration to clean for. The default for most projects is 'Debug'. + Die Konfiguration für die Bereinigung. Der Standardwert für die meisten Projekte ist "Debug". Removes artifacts created for file-based apps - Removes artifacts created for file-based apps + Entfernt Artefakte, die für dateibasierte Apps erstellt wurden. How many days an artifact folder needs to be unused in order to be removed - How many days an artifact folder needs to be unused in order to be removed + Wie viele Tage muss ein Artefaktordner ungenutzt bleiben, um entfernt zu werden? Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Bestimmt Änderungen, ohne das Dateisystem tatsächlich zu ändern. The target framework to clean for. The target framework must also be specified in the project file. - The target framework to clean for. The target framework must also be specified in the project file. + Das Zielframework für die Bereinigung. Das Zielframework muss auch in der Projektdatei angegeben werden. The target runtime to clean for. - The target runtime to clean for. + Die Zielruntime für die Bereinigung. Enables collecting crash dump on expected as well as unexpected testhost exit. - Enables collecting crash dump on expected as well as unexpected testhost exit. + Aktiviert die Erfassung von Absturzabbildern bei einer erwarteten und einer unerwarteten Beendigung des Testhosts. @@ -174,22 +174,22 @@ The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downlo To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. Implies --blame. - Runs the tests in blame mode and collects a crash dump when the test host exits unexpectedly. This option depends on the version of .NET used, the type of error, and the operating system. + Führt die Tests im Modus „Verantwortung zuweisen“ aus und erfasst ein Absturzabbild, wenn der Testhost unerwartet beendet wird. Diese Option hängt von der verwendeten .NET-Version ab, dem Fehlertyp und dem Betriebssystem. -For exceptions in managed code, a dump will be automatically collected on .NET 5.0 and later versions. It will generate a dump for testhost or any child process that also ran on .NET 5.0 and crashed. Crashes in native code will not generate a dump. This option works on Windows, macOS, and Linux. +Bei Ausnahmen im verwalteten Code wird in .NET 5.0 und höheren Versionen automatisch ein Speicherabbild erfasst. Es wird ein Speicherabbild für den Testhost oder einen beliebigen untergeordneten Prozess generiert, der ebenfalls unter .NET 5.0 ausgeführt wurde und abstürzte. Bei Abstürzen im nativen Code wird kein Speicherabbild generiert. Diese Option funktioniert unter Windows, macOS und Linux. -Crash dumps in native code, or when targetting .NET Framework, or .NET Core 3.1 and earlier versions, can only be collected on Windows, by using Procdump. A directory that contains procdump.exe and procdump64.exe must be in the PATH or PROCDUMP_PATH environment variable. +Absturzabbilder in nativem Code, oder wenn Sie .NET Framework oder .NET Core 3.1 und frühere Versionen als Ziel verwenden, können nur unter Windows mit Procdump gesammelt werden. Ein Verzeichnis, das procdump.exe und procdump64.exe enthält, muss sich in der Umgebungsvariable PATH oder PROCDUMP_PATH befinden. -The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downloads/procdump +Die Tools können hier heruntergeladen werden: https://docs.microsoft.com/sysinternals/downloads/procdump -To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. +Um ein Absturzabbild von einer nativen Anwendung zu sammeln, die unter .NET 5.0 oder höher ausgeführt wird, kann die Verwendung von Procdump erzwungen werden, indem die Umgebungsvariable VSTEST_DUMP_FORCEPROCDUMP auf 1 festgelegt wird. -Implies --blame. +Impliziert --blame. The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. - The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. + Der Typ des zu erfassenden Absturzabbilds. Unterstützte Werte sind „vollständig“ (Standard) und „minimal“. Impliziert „--blame-crash“. @@ -207,30 +207,30 @@ Example: Timeout the test run when a test takes more than 20 minutes and collect hang dump. dotnet test --blame-hang-timeout 20min - Runs the tests in blame mode. This option is helpful in isolating problematic tests that cause the test host to crash or hang, but it does not create a memory dump by default. + Führt den Test im Modus „Verantwortung zuweisen“ aus. Diese Option ist hilfreich zum Isolieren von problematischen Tests, die dazu geführt haben, dass der Testhost abgestürzt ist oder nicht mehr reagiert, aber kein standardmäßiges Speicherabbild des Arbeitsspeichers erstellt. -When a crash is detected, it creates an sequence file in TestResults/guid/guid_Sequence.xml that captures the order of tests that were run before the crash. +Wird ein Absturz erkannt, wird in „TestResults/guid/guid_Sequence.xml“ eine Sequenzdatei erstellt, in der die Reihenfolge der vor dem Absturz ausgeführten Tests erfasst wird. -Based on the additional settings, hang dump or crash dump can also be collected. +Basierend auf den zusätzlichen Einstellungen kann auch ein Blockade- oder Absturzabbild erfasst werden. -Example: - Timeout the test run when test takes more than the default timeout of 1 hour, and collect crash dump when the test host exits unexpectedly. - (Crash dumps require additional setup, see below.) +Beispiel: + Es wird ein Timeout für die Testausführung ausgelöst, wenn der Test länger als 1 Stunde (Standardtimeout) dauert, und es wird ein Absturzabbild erfasst, wenn der Testhost unerwartet beendet wird. + (Für Absturzabbilder ist ein zusätzlicher Setup erforderlich, siehe unten.) dotnet test --blame-hang --blame-crash -Example: - Timeout the test run when a test takes more than 20 minutes and collect hang dump. +Beispiel: + Es wird ein Timeout für die Testausführung ausgelöst, wenn der Test mehr als 20 Minuten dauert, und es wird ein Blockadeabbild erfasst. dotnet test --blame-hang-timeout 20min Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. - Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. + Hiermit werden Tests im Modus "Verantwortung zuweisen" ausgeführt, und es wird die Erfassung eines Blockadeabbilds aktiviert, wenn der Test länger als angegeben dauert. The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. - The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. + Der Typ des zu erfassenden Absturzabbilds. Die unterstützten Werte sind „vollständig“ (Standard), „minimal“ und „keines“. Wenn „keines“ verwendet wird, wird der Testhost beim Timeout beendet, aber es wird kein Speicherabbild erfasst. Impliziert „--blame-hang“. @@ -238,67 +238,67 @@ Example: The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, For MSTest before 2.2.4, the timeout is used for all testcases. - Per-test timeout, after which hang dump is triggered and the testhost process is terminated. Default is 1h. -The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. -When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, -For MSTest before 2.2.4, the timeout is used for all testcases. + Timeout pro Test, nach dem das Blockadeabbild ausgelöst und der Testhost-Prozess beendet wird. Der Standardwert ist 1 Std. +Der Timeoutwert wird im folgenden Format angegeben: 1.5h. / 90m / 5400s / 5400000ms. Wenn keine Einheit verwendet wird (z. B. 5400000), wird davon ausgegangen, dass der Wert in Millisekunden angegeben ist. +Wenn dies zusammen mit datengesteuerten Tests verwendet wird, hängt das Timeoutverhalten vom verwendeten Testadapter ab. Für xUnit, NUnit und MSTest 2.2.4+ wird das Timeout nach jedem Testfall erneuert, +Für MSTest vor 2.2.4 wird das Timeout für alle Testfälle verwendet. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + Der Pfad zurNuGet-Konfigurationsdatei, die verwendet werden soll. Erfordert die Option "--outdated", "--deprecated" oder "--vulnerable". Specifies a testconfig.json file. - Specifies a testconfig.json file. + Gibt eine testconfig.json-Datei an. FILE - FILE + FILE The NuGet configuration file to use. - The NuGet configuration file to use. + Die zu verwendende NuGet-Konfigurationsdatei. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE Use current runtime as the target runtime. - Use current runtime as the target runtime. + Verwenden Sie die aktuelle Runtime als Zielruntime. Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. - Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. + Listet Pakete auf, die veraltet sind. Kann nicht mit den Optionen "--vulnerable" oder "--outdated" kombiniert werden. Output directory of the diagnostic logging. If not specified the file will be generated inside the default 'TestResults' directory. - Output directory of the diagnostic logging. -If not specified the file will be generated inside the default 'TestResults' directory. + Das Ausgabeverzeichnis der Diagnoseprotokollierung. +Sofern nicht angegeben, wird die Datei im Standardverzeichnis „TestResults“ generiert. DIAGNOSTIC_DIR - DIAGNOSTIC_DIR + DIAGNOSTIC_DIR Prevent restoring multiple projects in parallel. - Prevent restoring multiple projects in parallel. + Hiermit wird die parallele Wiederherstellung mehrerer Projekte verhindert. @@ -312,88 +312,88 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Legt den Wert einer Umgebungsvariablen fest. +Erstellt die Variable, wenn Sie nicht vorhanden ist, und setzt sie andernfalls außer Kraft. +Dieses Argument kann mehrmals angegeben werden, um mehrere Variablen bereitzustellen. -Examples: +Beispiele: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="wert mit leerzeichen" +-e VARIABLE="wert;getrennt durch;semikolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NAME="WERT" EXPRESSION - EXPRESSION + EXPRESSION Path to the file-based program. - Path to the file-based program. + Pfad zum dateibasierten Programm. Force all dependencies to be resolved even if the last restore was successful. This is equivalent to deleting project.assets.json. - Force all dependencies to be resolved even if the last restore was successful. -This is equivalent to deleting project.assets.json. + Hiermit wird erzwungen, dass alle Abhängigkeiten aufgelöst werden, auch wenn die letzte Wiederherstellung erfolgreich war. +Dies entspricht dem Löschen von "project.assets.json". Specifies the output format type for the list packages command. - Specifies the output format type for the list packages command. + Gibt den Ausgabeformattyp für den Befehl "list packages" an. Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. + Hiermit werden bei der Suche nach neueren Paketen nur die Pakete mit übereinstimmender Hauptversionsnummer berücksichtigt. Hierfür ist die Option "--outdated" erforderlich. Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. + Hiermit werden bei der Suche nach neueren Paketen nur die Pakete mit übereinstimmender Haupt- und Nebenversionsnummer berücksichtigt. Hierfür ist die Option "--outdated" erforderlich. Treat package source failures as warnings. - Treat package source failures as warnings. + Paketquellfehler als Warnungen behandeln. Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. - Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. + Hiermit werden PDBs und Quelldateien eingeschlossen. Quelldateien werden im Ordner "src" im resultierenden NuGet-Paket abgelegt. Include packages with symbols in addition to regular packages in output directory. - Include packages with symbols in addition to regular packages in output directory. + Pakete mit Symbolen zusätzlich zu regulären Paketen in Ausgabeverzeichnis einschließen. List the discovered tests instead of running the tests. - List the discovered tests instead of running the tests. + Hiermit werden die gefundenen Tests aufgelistet, anstatt sie auszuführen. LOCK_FILE_PATH - LOCK_FILE_PATH + LOCK_FILE_PATH Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. - Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. + Das Ausgabeverzeichnis, in das die Projektsperrdatei geschrieben werden soll. Standardmäßig ist dies "PROJECT_ROOT\packages.lock.json". Don't allow updating project lock file. - Don't allow updating project lock file. + Lassen Sie keine Aktualisierung der Projektsperrdatei zu. @@ -402,223 +402,223 @@ This is equivalent to deleting project.assets.json. Log in trx format using a unique file name: --logger trx Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" See https://aka.ms/vstest-report for more information on logger arguments. - The logger to use for test results. - Examples: - Log in trx format using a unique file name: --logger trx - Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" - See https://aka.ms/vstest-report for more information on logger arguments. + Die für Testergebnisse zu verwendende Protokollierung. + Beispiele: + Protokollierung im TRX-Format mit einem eindeutigen Dateinamen: --logger trx + Protokollierung im TRX-Format mit dem angegebenen Dateinamen: --logger "trx;LogFileName=<TestResults.trx>" + Weitere Informationen zu Protokollierungsargumenten finden Sie unter https://aka.ms/vstest-report. LOGGER - LOGGER + LOGGER The max number of test modules that can run in parallel. - The max number of test modules that can run in parallel. + Die maximale Anzahl von Testmodulen, die parallel ausgeführt werden können. Specifies the minimum number of tests that are expected to run. - Specifies the minimum number of tests that are expected to run. + Gibt die Mindestanzahl von Tests an, die ausgeführt werden sollen. Disable ANSI output. - Disable ANSI output. + Deaktivieren Sie die ANSI-Ausgabe. Do not build the project before testing. Implies --no-restore. - Do not build the project before testing. Implies --no-restore. + Erstellt das Projekt nicht vor dem Testen. Impliziert "--no-restore". Do not build the project before packing. Implies --no-restore. - Do not build the project before packing. Implies --no-restore. + Erstellt das Projekt nicht vor dem Paketieren. Impliziert "--no-restore". Do not cache packages and http requests. - Do not cache packages and http requests. + Pakete und HTTP-Anforderungen nicht zwischenspeichern. Do not restore project-to-project references and only restore the specified project. - Do not restore project-to-project references and only restore the specified project. + Hiermit werden keine Projekt-zu-Projekt-Verweise wiederhergestellt, sondern nur das angegebene Projekt. Disable Http Caching for packages. - Disable Http Caching for packages. + Deaktivieren die HTTP-Zwischenspeicherung für Pakete. Disable progress reporting. - Disable progress reporting. + Statusberichte deaktivieren. Do not restore before running the command. - Do not restore before running the command. + Führen Sie die Wiederherstellung nicht aus, bevor Sie den Befehl ausführen. NUMBER - NUMBER + ZAHL Force conversion even if there are malformed directives. - Force conversion even if there are malformed directives. + Erzwingen Sie die Konvertierung, auch wenn falsch formatierte Direktiven vorhanden sind. Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. - Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. + Listet Pakete mit neueren Versionen auf. Kann nicht mit den Optionen "--deprecated" oder "--vulnerable" kombiniert werden. The output directory to place built artifacts in. - The output directory to place built artifacts in. + Das Ausgabeverzeichnis, in dem erstellte Artefakte abgelegt werden. Specifies the version of machine-readable output. Requires the '--format json' option. - Specifies the version of machine-readable output. Requires the '--format json' option. + Gibt die Version der computerlesbaren Ausgabe an. Erfordert die Option „--format json“. PACKAGE_NAME - PACKAGE_NAME + PACKAGE_NAME PACKAGE_DIR - PACKAGE_DIR + PACKAGE_DIR The directory to restore packages to. - The directory to restore packages to. + Das Verzeichnis, in dem Pakete wiederhergestellt werden sollen. PACKAGES_DIR - PACKAGES_DIR + PACKAGES_DIR The directory to restore packages to. - The directory to restore packages to. + Das Verzeichnis, in dem Pakete wiederhergestellt werden sollen. LOG_FILE - LOG_FILE + LOG_FILE RESULTS_DIR - RESULTS_DIR + RESULTS_DIR Enable verbose logging to the specified file. - Enable verbose logging to the specified file. + Hiermit wird die ausführliche Protokollierung in der angegebenen Datei aktiviert. Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. - Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. + Hiermit werden bei der Suche nach neueren Pakete auch Pakete mit Vorabversionen berücksichtigt. Hierfür ist die Option "--outdated" erforderlich. Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Definiert den Pfad der auszuführenden Projektdatei. Verwenden Sie den Pfad zur Projektdatei oder den Pfad zu dem Verzeichnis, das die Projektdatei enthält. Wenn keine Angabe erfolgt, wird standardmäßig das aktuelle Verzeichnis verwendet. Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Definiert den Pfad des zu testenden Projekts oder der zu testenden Projektmappendatei. Verwenden Sie den Pfad zur Projektdatei oder den Pfad zu dem Verzeichnis, das die Projektdatei enthält. Wenn keine Angabe erfolgt, wird standardmäßig das aktuelle Verzeichnis verwendet. PROJECT_OR_SOLUTION_PATH - PROJECT_OR_SOLUTION_PATH + PROJECT_OR_SOLUTION_PATH Forces restore to reevaluate all dependencies even if a lock file already exists. - Forces restore to reevaluate all dependencies even if a lock file already exists. + Erzwingt die Neubewertung aller Abhängigkeiten bei der Wiederherstellung, selbst wenn bereits eine Sperrdatei vorhanden ist. The directory where the test results will be placed. The specified directory will be created if it does not exist. - The directory where the test results will be placed. -The specified directory will be created if it does not exist. + Das Verzeichnis, in dem die Testergebnisse abgelegt werden. +Das angegebene Verzeichnis wird erstellt, wenn es nicht vorhanden ist. ROOT_PATH - ROOT_PATH + ROOT_PATH RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER The target runtime to restore packages for. - The target runtime to restore packages for. + Die Zielruntime für die Wiederherstellung von Paketen. Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. - Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. + Hiermit wird das Verarbeitungsflag im Paket festgelegt. Weitere Informationen finden Sie unter https://aka.ms/nupkgservicing. The settings file to use when running tests. - The settings file to use when running tests. + Die beim Ausführen von Tests zu verwendende Einstellungsdatei. SETTINGS_FILE - SETTINGS_FILE + SETTINGS_FILE Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. - Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. + Definiert den Pfad der zu testenden Projektmappendatei. Verwenden Sie den Pfad zur Projektmappendatei oder den Pfad zu dem Verzeichnis, das die Projektmappendatei enthält. Wenn keine Angabe erfolgt, wird standardmäßig das aktuelle Verzeichnis verwendet. SOLUTION_PATH - SOLUTION_PATH + SOLUTION_PATH SOURCE - SOURCE + SOURCE The NuGet package source to use for the restore. - The NuGet package source to use for the restore. + Die für die Wiederherstellung zu verwendende NuGet-Paketquelle. ADAPTER_PATH - ADAPTER_PATH + ADAPTER_PATH The path to the custom adapters to use for the test run. - The path to the custom adapters to use for the test run. + Der Pfad zu den benutzerdefinierten Adaptern, die für den Testlauf verwendet werden sollen. @@ -629,18 +629,18 @@ The specified directory will be created if it does not exist. Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" See https://aka.ms/vstest-filtering for more information on filtering support. - Run tests that match the given expression. - Examples: - Run tests with priority set to 1: --filter "Priority = 1" - Run a test with the specified full name: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" - Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" - See https://aka.ms/vstest-filtering for more information on filtering support. + Hiermit werden Tests ausgeführt, die dem angegebenen Ausdruck entsprechen. + Beispiele: + Hiermit werden Tests ausgeführt, bei denen die Priorität auf 1 festgelegt ist: --filter "Priority = 1" + Hiermit wird ein Test mit dem angegebenen vollständigen Namen ausgeführt: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" + Hiermit werden Tests ausgeführt, die den angegebenen Namen enthalten: --filter "FullyQualifiedName~007E;Namespace.Class" + Weitere Informationen zur Unterstützung der Filterung finden Sie unter https://aka.ms/vstest-filtering. EXPRESSION - EXPRESSION + EXPRESSION @@ -655,827 +655,827 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Legt den Wert einer Umgebungsvariablen fest. +Erstellt die Variable, wenn Sie nicht vorhanden ist, und setzt sie andernfalls außer Kraft. +Dadurch wird die Ausführung der Tests in einem isolierten Prozess erzwungen. +Dieses Argument kann mehrmals angegeben werden, um mehrere Variablen bereitzustellen. -Examples: +Beispiele: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="wert mit leerzeichen" +-e VARIABLE="wert;getrennt durch;semikolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi Run tests for the specified test modules. - Run tests for the specified test modules. + Führen Sie Tests für die angegebenen Testmodule aus. The test modules have the specified root directory. - The test modules have the specified root directory. + Die Testmodule weisen das angegebene Stammverzeichnis auf. Verbosity of test output. - Verbosity of test output. + Ausführlichkeit der Testausgabe. Lists transitive and top-level packages. - Lists transitive and top-level packages. + Listet transitive Pakete und Pakete der obersten Ebene auf. Test runner '{0}' is not supported. - Test runner '{0}' is not supported. + Der Test Runner "{0}" wird nicht unterstützt. Enables project lock file to be generated and used with restore. - Enables project lock file to be generated and used with restore. + Ermöglicht das Generieren und Verwenden einer Projektsperrdatei bei der Wiederherstellung. VERSION - VERSION + VERSION The version of the package to add. - The version of the package to add. + Die Version des hinzuzufügenden Pakets. Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Hiermit wird der Wert der $(VersionSuffix)-Eigenschaft festgelegt, die beim Erstellen des Projekts verwendet werden soll. Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. - Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. + Listet Pakete auf, die bekannte Sicherheitsrisiken aufweisen. Kann nicht mit den Optionen "--deprecated" oder "--outdated" kombiniert werden. The SDK command to launch online help for. - The SDK command to launch online help for. + Der SDK-Befehl zum Starten der Onlinehilfe. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Hiermit wird zugelassen, dass der Befehl anhält und auf eine Benutzereingabe oder Aktion wartet (beispielsweise auf den Abschluss der Authentifizierung). The command name of the tool to run. - The command name of the tool to run. + Der Befehlsname des auszuführenden Tools. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME The device identifier to use for running the application. - The device identifier to use for running the application. + Der Gerätebezeichner, der zum Ausführen der Anwendung verwendet werden soll. DEVICE - DEVICE + GERÄT The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). - The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). + Der Pfad zur dateibasierten App, die ausgeführt werden soll (kann auch als erstes Argument übergeben werden, wenn sich im aktuellen Verzeichnis kein Projekt befindet). FILE_PATH - FILE_PATH + FILE_PATH The name of the launch profile (if any) to use when launching the application. - The name of the launch profile (if any) to use when launching the application. + Der Name des Startprofils (sofern vorhanden), das beim Starten der Anwendung verwendet werden soll. LAUNCH_PROFILE - LAUNCH_PROFILE + LAUNCH_PROFILE List available devices for running the application. - List available devices for running the application. + Listet die verfügbaren Geräte zum Ausführen der Anwendung auf. Do not build the project before running. Implies --no-restore. - Do not build the project before running. Implies --no-restore. + Erstellt das Projekt nicht vor der Ausführung. Impliziert "--no-restore". {Locked="--no-restore"} Skip up to date checks and always build the program before running. - Skip up to date checks and always build the program before running. + Überspringen Sie aktuelle Überprüfungen, und erstellen Sie das Programm immer, bevor Sie es ausführen. Do not use arguments specified in launch profile to run the application. - Do not use arguments specified in launch profile to run the application. + Verwenden Sie die im Startprofil angegebenen Argumente nicht zum Ausführen der Anwendung. Do not attempt to use launchSettings.json or [app].run.json to configure the application. - Do not attempt to use launchSettings.json or [app].run.json to configure the application. + Versuchen Sie nicht, „launchSettings.json“ oder „[app].run.json“ zum Konfigurieren der Anwendung zu verwenden. {Locked="launchSettings.json"}{Locked=".run.json"} PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Ermöglicht die Installation von Paketen mit Vorabversionen. Creates an alias for instantiate command with a certain set of arguments. - Creates an alias for instantiate command with a certain set of arguments. + Erstellt einen Alias für den Instanziierungsbefehl mit einer bestimmten Reihe von Argumenten. Displays defined aliases. - Displays defined aliases. + Zeigt definierte Aliase an. Creates or displays defined aliases. - Creates or displays defined aliases. + Erstellt oder zeigt definierte Aliase an. Provides the details for specified template package. The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. - - Provides the details for specified template package. - The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. + + Stellt die Details für das angegebene Vorlagenpaket bereit. + Der Befehl überprüft, ob das Paket lokal installiert ist, wenn es nicht gefunden wurde, durchsucht es die konfigurierten NuGet-Feeds. NuGet package ID or path to folder or NuGet package to install. To install the NuGet package of certain version, use <package ID>::<version>. - NuGet package ID or path to folder or NuGet package to install. -To install the NuGet package of certain version, use <package ID>::<version>. + NuGet-Paket-ID oder Pfad zum Ordner oder nuGet-Paket, das installiert werden soll. +Um das NuGet-Paket einer bestimmten Version zu installieren, verwenden Sie <Paket-ID>::<version>. Installs a template package. - Installs a template package. + Installiert ein Vorlagenpaket. A short name of the template to create. - A short name of the template to create. + Ein Kurzname der zu erstellenden Vorlage. Template specific options to use. - Template specific options to use. + Vorlagenspezifische Optionen, die verwendet werden sollen. Instantiates a template with given short name. An alias of 'dotnet new <template name>'. - Instantiates a template with given short name. An alias of 'dotnet new <template name>'. + Instanziiert eine Vorlage mit dem angegebenen Kurznamen. Ein Alias von "dotnet new <template name>". do not translate 'dotnet new <template name>' Checks the currently installed template packages for updates. - Checks the currently installed template packages for updates. + Überprüft die aktuell installierten Vorlagenpakete auf Updates. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Bei Angabe werden nur die Vorlagen angezeigt, die mit dem Namen übereinstimmen. Lists templates containing the specified template name. If no name is specified, lists all templates. - Lists templates containing the specified template name. If no name is specified, lists all templates. + Listet Vorlagen auf, die den angegebenen Vorlagennamen enthalten. Wenn kein Name angegeben wird, werden alle Vorlagen aufgelistet. Template Instantiation Commands for .NET CLI. - Template Instantiation Commands for .NET CLI. + Instanziierungsbefehle für Vorlagen für .NET Core-CLI. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Bei Angabe werden nur die Vorlagen angezeigt, die mit dem Namen übereinstimmen. Searches for the templates on NuGet.org. - Searches for the templates on NuGet.org. + Sucht nach den Vorlagen auf NuGet.org. NuGet package ID (without version) or path to folder to uninstall. If command is specified without the argument, it lists all the template packages installed. - NuGet package ID (without version) or path to folder to uninstall. -If command is specified without the argument, it lists all the template packages installed. + NuGet-Paket-ID (ohne Version) oder Pfad zum Ordner, der deinstalliert werden soll. +Wenn der Befehl ohne Argument angegeben wird, werden alle installierten Vorlagenpakete aufgelistet. Uninstalls a template package. - Uninstalls a template package. + Deinstalliert ein Vorlagenpaket. Checks the currently installed template packages for update, and install the updates. - Checks the currently installed template packages for update, and install the updates. + Überprüft die aktuell installierten Vorlagenpakete auf Updates, und installiert sie. Only checks for updates and display the template packages to be updated without applying update. - Only checks for updates and display the template packages to be updated without applying update. + Sucht nur nach Updates und zeigt die vorlagenbasierten Pakete an, die aktualisiert werden sollen, ohne das Update anzuwenden. Unrecognized command or argument(s): {0}. - Unrecognized command or argument(s): {0}. + Befehl oder Argument(e) nicht erkannt:{0}. {0} - wrong token or comma-separated tokens (if multiple). Each token is enclosed with single quotes: 'token'. FRAMEWORK - FRAMEWORK + FRAMEWORK ConfigFile - ConfigFile + ConfigFile The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior - The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior + Die NuGet-Konfigurationsdatei. Sofern angegeben, werden nur die Einstellungen aus dieser Datei verwendet. Falls nicht angegeben, wird die Hierarchie der Konfigurationsdateien aus dem aktuellen Verzeichnis verwendet. Weitere Informationen finden Sie unter https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior CONFIGURATION - CONFIGURATION + CONFIGURATION DUMP_TYPE - DUMP_TYPE + DUMP_TYPE Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed - Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed + Erstellen Sie ein Toolmanifest, wenn es während der Toolinstallation nicht gefunden wird. Informationen dazu, wie Manifeste gefunden werden, finden Sie unter https://aka.ms/dotnet/tools/create-manifest-if-needed Use current runtime as the target runtime. - Use current runtime as the target runtime. + Verwenden Sie die aktuelle Runtime als Zielruntime. Show detail result of the query. - Show detail result of the query. + Hiermit wird das Ergebnis der Abfrage im Detail angezeigt. Package identifier - Package identifier + Paketbezeichner Enables diagnostic output. - Enables diagnostic output. + Aktiviert die Diagnoseausgabe. Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Erzwingen Sie, dass der Befehl alle persistenten Buildserver ignoriert. Disables evaluating project context using MSBuild. - Disables evaluating project context using MSBuild. + Deaktiviert die Auswertung des Projektkontexts mit MSBuilds. If present, prevents templates bundled in the SDK from being presented. - If present, prevents templates bundled in the SDK from being presented. + Falls vorhanden, wird verhindert, dass im SDK gebündelte Vorlagen präsentiert werden. .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. + .NET-Testbefehl für Microsoft.Testing.Platform (über die Datei „global.json“ aktiviert). Dies unterstützt ausschließlich Microsoft.Testing.Platform und nicht VSTest. Weitere Informationen finden Sie unter https://aka.ms/dotnet-test. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. + .NET-Testbefehl für VSTest. Um Microsoft.Testing.Platform zu verwenden, aktivieren Sie den Microsoft.Testing.Platform-basierten Befehl über global.json. Weitere Informationen finden Sie unter https://aka.ms/dotnet-test. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} DIRECTORY - DIRECTORY + VERZEICHNIS Download packages needed to install a workload to a folder that can be used for offline installation. - Download packages needed to install a workload to a folder that can be used for offline installation. + Laden Sie Pakete, die zum Installieren einer Workload erforderlich sind, in einen Ordner herunter, welcher für die Offlineinstallation verwendet werden kann. Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. - Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. + Erfordert, dass der Suchbegriff genau dem Namen des Pakets entspricht. Führt dazu, dass die Optionen "--take" und "--skip" ignoriert werden. The file-based app to operate on. - The file-based app to operate on. + Die dateibasierte App, die verwendet werden soll. Format - Format + Format Format the output accordingly. Either `table`, or `json`. The default value is `table`. - Format the output accordingly. Either `table`, or `json`. The default value is `table`. + Formatieren Sie die Ausgabe entsprechend. Entweder "table" oder "json". Der Standardwert ist "table". Changes the format of outputted workload versions. Can take 'json' or 'list' - Changes the format of outputted workload versions. Can take 'json' or 'list' + Ändert das Format der ausgegebenen Workloadversionen. Kann „json“ oder „list“ annehmen FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Veröffentlichen Sie Ihre Anwendung als eine von einem Framework abhängige Anwendung. Eine kompatible .NET-Runtime muss auf dem Zielcomputer installiert sein, um Ihre Anwendung ausführen zu können. FRAMEWORK_VERSION - FRAMEWORK_VERSION + FRAMEWORK_VERSION The Microsoft.NETCore.App package version that will be used to run the assemblies. - The Microsoft.NETCore.App package version that will be used to run the assemblies. + Die Microsoft.NETCore.App-Paketversion, die zum Ausführen der Assemblys verwendet wird. DIRECTORY - DIRECTORY + VERZEICHNIS Complete the operation from cache (offline). - Complete the operation from cache (offline). + Führen Sie den Vorgang aus dem Cache (offline) aus. Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. - Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. + Aktualisieren Workloads auf eine frühere Version, die von dem Argument angegeben wurde. Verwenden die „dotnet workload history“, um verfügbare Workloadverlaufsdatensätze anzuzeigen. Include workloads installed with earlier SDK versions in update. - Include workloads installed with earlier SDK versions in update. + Schließen Sie Workloads in die Aktualisierung ein, die mit früheren SDK-Versionen installiert wurden. Update workloads based on specified rollback definition file. - Update workloads based on specified rollback definition file. + Aktualisieren Sie Workloads basierend auf der angegebenen Rollbackdefinitionsdatei. DUMP_TYPE - DUMP_TYPE + DUMP_TYPE TIMESPAN - TIMESPAN + TIMESPAN .NET CLI help utility - .NET CLI help utility + .NET CLI-Hilfeprogramm Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. - Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. + Aktualisieren die im Verlauf angegebenen Workloadversionen, ohne zu ändern, welche Workloads installiert werden. Aktuell installierte Workloads werden entsprechend der angegebenen Verlaufsversion aktualisiert. Place project in root of the solution, rather than creating a solution folder. - Place project in root of the solution, rather than creating a solution folder. + Platzieren Sie das Projekt im Stamm der Projektmappe, statt einen Projektmappenordner zu erstellen. Allow prerelease workload manifests. - Allow prerelease workload manifests. + Hiermit wird die Vorabversion von Workloadmanifesten zugelassen. Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Falsch formatierte Umgebungsvariablen: {0} WORKING_DIR - WORKING_DIR + WORKING_DIR The working directory used by the command to execute. - The working directory used by the command to execute. + Das vom auszuführenden Befehl verwendete Arbeitsverzeichnis. Invalid version string: {0} - Invalid version string: {0} + Ungültige Versionszeichenfolge: {0} LEVEL - LEVEL + LEVEL List all projects in a solution file. - List all projects in a solution file. + Listet alle Projekte in einer Projektmappendatei auf. Disables checking if the template meets the constraints to be run. - Disables checking if the template meets the constraints to be run. + Deaktiviert die Überprüfung, ob die Vorlage die auszuführenden Einschränkungen erfüllt. Display solution folder paths. - Display solution folder paths. + Projektmappenordnerpfade anzeigen. Shut down the MSBuild build server. - Shut down the MSBuild build server. + Hiermit wird der MSBuild-Buildserver heruntergefahren. MANIFEST - MANIFEST + MANIFEST The path to a target manifest file that contains the list of packages to be excluded from the publish step. - The path to a target manifest file that contains the list of packages to be excluded from the publish step. + Der Pfad zu einer Zielmanifestdatei, die die Liste der von der Veröffentlichung auszuschließenden Pakete enthält. Generate a .slnx file from a .sln file. - Generate a .slnx file from a .sln file. + Generieren Sie eine SLNX-Datei aus einer SLN-Datei. .NET Add Command - .NET Add Command + .NET-Befehl "Add" List references or packages of a .NET project. - List references or packages of a .NET project. + Verweise oder Pakete eines .NET-Projekts auflisten .NET Remove Command - .NET Remove Command + .NET-Befehl "Remove" Do not build the project before publishing. Implies --no-restore. - Do not build the project before publishing. Implies --no-restore. + Erstellt das Projekt nicht vor dem Veröffentlichen. Impliziert "--no-restore". Do not build project-to-project references and only build the specified project. - Do not build project-to-project references and only build the specified project. + Hiermit werden keine Projekt-zu-Projekt-Verweise erstellt, sondern nur das angegebene Projekt wird erstellt. Do not use incremental building. - Do not use incremental building. + Hiermit wird keine inkrementelle Erstellung durchgeführt. Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Zeigt kein Startbanner und keine Copyrightmeldung an. Do not restore the project before building. - Do not restore the project before building. + Hiermit wird das Projekt nicht vor der Erstellung wiederhergestellt. OS - OS + Betriebssystem Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). - Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). + Die Angabe der Toolmanifestoption (--tool-manifest) ist nur mit der lokalen Option gültig (--local oder Standardwert). The target operating system. - The target operating system. + Das Zielbetriebssystem. Specifies a NuGet source to use. - Specifies a NuGet source to use. + Gibt eine NuGet-Quelle an, die verwendet werden soll. Filters the templates based on the template author. - Filters the templates based on the template author. + Filtert die Vorlagen basierend auf dem Autor der Vorlage. Filters the templates based on baseline defined in the template. - Filters the templates based on baseline defined in the template. + Filtert die Vorlagen basierend auf der in der Vorlage definierten Baseline. Specifies the columns to display in the output. - Specifies the columns to display in the output. + Gibt die Spalten an, die in der Ausgabe angezeigt werden sollen. Displays all columns in the output. - Displays all columns in the output. + Zeigt alle Spalten in der Ausgabe an. Allows to pause execution in order to attach to the process for debug purposes. - Allows to pause execution in order to attach to the process for debug purposes. + Ermöglicht das Anhalten der Ausführung zum Anfügen an den Prozess zum Debuggen. Sets custom settings location. - Sets custom settings location. + Legt den Speicherort für benutzerdefinierte Einstellungen fest. If specified, removes the template cache prior to command execution. - If specified, removes the template cache prior to command execution. + Bei Angabe wird der Vorlagencache vor der Ausführung des Befehls entfernt. If specified, resets the settings prior to command execution. - If specified, resets the settings prior to command execution. + Bei Angabe werden die Einstellungen vor der Ausführung des Befehls zurückgesetzt. If specified, shows the template engine config prior to command execution. - If specified, shows the template engine config prior to command execution. + Bei Angabe wird die Engine-Konfiguration der Vorlage vor der Ausführung des Befehls angezeigt. If specified, the settings will be not preserved on file system. - If specified, the settings will be not preserved on file system. + Bei Angabe werden die Einstellungen im Dateisystem nicht beibehalten. Allows installing template packages from the specified sources even if they would override a template package from another source. - Allows installing template packages from the specified sources even if they would override a template package from another source. + Ermöglicht das Installieren von Vorlagenpaketen aus den angegebenen Quellen, auch wenn sie ein Vorlagenpaket aus einer anderen Quelle überschreiben würden. Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Hiermit wird zugelassen, dass der Befehl anhält und auf eine Benutzereingabe oder Aktion wartet (beispielsweise auf den Abschluss der Authentifizierung). Filters templates based on language. - Filters templates based on language. + Filtert Vorlagen basierend auf der Sprache. Location to place the generated output. - Location to place the generated output. + Speicherort für die generierte Ausgabe. Filters the templates based on NuGet package ID. - Filters the templates based on NuGet package ID. + Filtert die Vorlagen basierend auf der NuGet-Paket-ID. The project that should be used for context evaluation. - The project that should be used for context evaluation. + Das Projekt, das für die Kontextauswertung verwendet werden soll. Filters the templates based on the tag. - Filters the templates based on the tag. + Filtert die Vorlagen basierend auf dem Tag. Filters templates based on available types. Predefined values are "project" and "item". - Filters templates based on available types. Predefined values are "project" and "item". + Filtert Vorlagen basierend auf verfügbaren Typen. Vordefinierte Werte sind "project" und "item". project and item should not be translated Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. - Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. + Die Optionen "--outdated", "--deprecated" und "--vulnerable" können nicht kombiniert werden. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR .NET Core NuGet Package Packer - .NET Core NuGet Package Packer + .NET Core NuGet Package Packer OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place built packages in. - The output directory to place built packages in. + Das Ausgabeverzeichnis, in dem erstellte Pakete abgelegt werden. VERSION - VERSION + VERSION The version of the package to create - The version of the package to create + Die Version des Pakets, das erstellt werden soll The configuration to use for building the package. The default is 'Release'. - The configuration to use for building the package. The default is 'Release'. + Die für die Paketerstellung zu verwendende Konfiguration. Der Standardwert lautet "Release". Add a NuGet package reference to the project. - Add a NuGet package reference to the project. + Hiermit fügen Sie dem Projekt einen NuGet-Paketverweis hinzu. FRAMEWORK - FRAMEWORK + FRAMEWORK Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Hiermit wird der Verweis nur dann hinzugefügt, wenn ein bestimmtes Zielframework als Zielversion verwendet wird. Add the reference without performing restore preview and compatibility check. - Add the reference without performing restore preview and compatibility check. + Hiermit wird ein Verweis hinzugefügt, ohne dass eine Wiederherstellung der Vorschau oder eine Kompatibilitätsprüfung durchgeführt wird. SOURCE - SOURCE + QUELLE The NuGet package source to use during the restore. - The NuGet package source to use during the restore. + Die für die Wiederherstellung zu verwendende NuGet-Paketquelle. Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Paketverweis in Form eines Paketbezeichners wie {0} oder Paketbezeichner und -version getrennt durch „@“ wie „{0}@{1}“. Package reference id and version must not be null. - Package reference id and version must not be null. + Die Paketverweis-ID und die -version dürfen nicht null sein. List all package references of the project or solution. - List all package references of the project or solution. + Hiermit listen Sie alle Paketverweise des Projekts oder der Lösung auf. FRAMEWORK | FRAMEWORK\RID - FRAMEWORK | FRAMEWORK\RID + FRAMEWORK | FRAMEWORK\RID Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. - Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. + Wählt ein Framework für die Anzeige der zugehörigen Pakete aus. Für mehrere Frameworks verwenden Sie die Option mehrmals. SOURCE - SOURCE + QUELLE The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + Die bei der Suche nach neueren Paketen zu verwendenden NuGet-Quellen. Erfordert die Option "--outdated", "--deprecated" oder "--vulnerable". Package reference - Package reference + Paketverweis Remove a NuGet package reference from the project. - Remove a NuGet package reference from the project. + Hiermit entfernen Sie einen NuGet-Paketverweis aus dem Projekt. The package reference to remove. - The package reference to remove. + Der zu entfernende Paketverweis. Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. - Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. + Durchsucht mindestens eine Paketquelle nach Paketen, die mit einem Suchbegriff übereinstimmen. Wenn keine Quellen angegeben sind, werden alle in der NuGet.Config definierten Quellen verwendet. Include prerelease packages. - Include prerelease packages. + Schließen Sie Vorabversionspakete ein. SearchTerm - SearchTerm + SearchTerm Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. - Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. + Suchbegriff zum Filtern von Paketnamen, Beschreibungen und Tags. Wird als Literalwert verwendet. Beispiel: "dotnet package search some.package". Siehe auch "--exact-match". Skip - Skip + Überspringen Number of results to skip, to allow pagination. Default 0. - Number of results to skip, to allow pagination. Default 0. + Anzahl der zu überspringenden Ergebnisse, um Paginierung zuzulassen. Standard 0. Take - Take + Übernehmen Number of results to return. Default 20. - Number of results to return. Default 20. + Anzahl der Ergebnisse, die zurückgegeben werden sollen. Standard 20. Only print the list of links to download without downloading. - Only print the list of links to download without downloading. + Drucken Sie nur die Liste der Links zum Herunterladen, ohne sie herunterzuladen. @@ -1508,15 +1508,15 @@ If command is specified without the argument, it lists all the template packages dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 - 'dotnet workload search version' has three functions depending on its argument: - 1. If no argument is specified, it outputs a list of the latest released workload versions from this feature band. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + „dotnet workload search version“ hat je nach Argument drei Funktionen: + 1. Wird kein Argument angegeben, dann wird eine Liste der zuletzt veröffentlichten Workloadversionen aus diesem Featureband ausgegeben. Akzeptiert die Option „--take“, um anzugeben, wie viele angegeben werden sollen, und „--format“, um das Format zu ändern. + Beispiel: dotnet workload search version --take 2 --format json [{"workloadVersion":"9.0.201"},{"workloadVersion":"9.0.200.1"}] - 2. If a workload version is provided as an argument, it outputs a table of various workloads and their versions for the specified workload version. Takes the --format option to alter the output format. - Example: + 2. Wenn eine Workloadversion als Argument angegeben wird, dann werden eine Tabelle mit verschiedenen Workloads und deren Versionen für die angegebene Workloadversion ausgegeben. Akzeptiert die Option „--format“, um das Ausgabeformat zu ändern. + Beispiel: dotnet workload search version 9.0.201 - Workload manifest ID Manifest feature band Manifest Version + Workloadmanifest-ID Manifest-Featureband Manifestversion ------------------------------------------------------------------------------------------------ microsoft.net.workload.emscripten.current 9.0.100-rc.1 9.0.0-rc.1.24430.3 microsoft.net.workload.emscripten.net6 9.0.100-rc.1 9.0.0-rc.1.24430.3 @@ -1532,8 +1532,8 @@ If command is specified without the argument, it lists all the template packages microsoft.net.workload.mono.toolchain.net6 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net7 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net8 9.0.100-rc.1 9.0.0-rc.1.24431.7 - 3. If one or more workloads are provided along with their versions (by joining them with the '@' character), it outputs workload versions that match the provided versions. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 3. Wenn eine oder mehrere Workloads zusammen mit ihren Versionen bereitgestellt werden (indem sie mit dem @-Zeichen verbunden werden), werden die Workloadversionen, die mit den angegebenen Versionen übereinstimmen, ausgegebenen. Akzeptiert die Option „--take“, um anzugeben, wie viele angegeben werden sollen, und „--format“, um das Format zu ändern. + Beispiel: dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 @@ -1541,775 +1541,775 @@ If command is specified without the argument, it lists all the template packages The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Die zu verwendende Projektdatei. Wenn keine Datei angegeben ist, sucht der Befehl im aktuellen Verzeichnis nach einer Datei. Convert a file-based program to a project-based program. - Convert a file-based program to a project-based program. + Konvertieren Sie ein dateibasiertes Programm in ein projektbasiertes Programm. Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Bestimmt Änderungen, ohne das Dateisystem tatsächlich zu ändern. PROJECT_MANIFEST - PROJECT_MANIFEST + PROJECT_MANIFEST The XML file that contains the list of packages to be stored. - The XML file that contains the list of packages to be stored. + Die XML-Datei, die die Liste der zu speichernden Pakete enthält. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Die Projekt- oder C#-Datei (dateibasiertes Programm), auf die zugegriffen werden soll. Wenn keine Datei angegeben ist, durchsucht der Befehl das aktuelle Verzeichnis nach einer Projektdatei. PROJECT | FILE - PROJECT | FILE + PROJEKT | DATEI Publisher for the .NET Platform - Publisher for the .NET Platform + Herausgeber für die .NET-Plattform The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. - The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. + Die Konfiguration, für die veröffentlicht werden soll. Der Standardwert ist "Release" für NET 8.0-Projekte und höher, aber "Debug" für ältere Projekte. The target framework to publish for. The target framework has to be specified in the project file. - The target framework to publish for. The target framework has to be specified in the project file. + Das Zielframework für die Veröffentlichung. Das Zielframework muss in der Projektdatei angegeben werden. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place the published artifacts in. - The output directory to place the published artifacts in. + Das Ausgabeverzeichnis, in dem veröffentlichte Artefakte abgelegt werden. The target runtime to publish for. This is used when creating a self-contained deployment. The default is to publish a framework-dependent application. - The target runtime to publish for. This is used when creating a self-contained deployment. -The default is to publish a framework-dependent application. + Die Zielruntime für die Veröffentlichung. Diese wird verwendet, wenn eine eigenständige Bereitstellung erstellt wird. +Standardmäßig wird eine Framework-abhängige Anwendung veröffentlicht. Shut down the Razor build server. - Shut down the Razor build server. + Hiermit wird der Razor-Buildserver heruntergefahren. Add a project-to-project reference to the project. - Add a project-to-project reference to the project. + Hiermit fügen Sie dem Projekt einen Projekt-zu-Projekt-Verweis hinzu. Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Hiermit wird der Verweis nur dann hinzugefügt, wenn ein bestimmtes Zielframework als Zielversion verwendet wird. The paths to the projects to add as references. - The paths to the projects to add as references. + Die Pfade zu den Projekten, die als Verweise hinzugefügt werden sollen. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH List all project-to-project references of the project. - List all project-to-project references of the project. + Hiermit listen Sie alle Projekt-zu-Projekt-Verweise des Projekts auf. Remove a project-to-project reference from the project. - Remove a project-to-project reference from the project. + Hiermit entfernen Sie einen Projekt-zu-Projekt-Verweis aus dem Projekt. Remove the reference only when targeting a specific framework. - Remove the reference only when targeting a specific framework. + Der Verweis wird nur dann entfernt, wenn ein bestimmtes Zielframework als Zielversion verwendet wird. The paths to the referenced projects to remove. - The paths to the referenced projects to remove. + Die Pfade zu den referenzierten Projekten, die entfernt werden sollen. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Remove one or more projects from a solution file. - Remove one or more projects from a solution file. + Entfernt ein oder mehrere Projekte von einer Projektmappendatei. The project paths or names to remove from the solution. - The project paths or names to remove from the solution. + Die Projektpfade oder Namen, die aus der Projektmappe entfernt werden sollen. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Required command was not provided. - Required command was not provided. + Der erforderliche Befehl wurde nicht bereitgestellt. .NET dependency restorer - .NET dependency restorer + Funktion.zum Wiederherstellen der NET-Abhängigkeit Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. - Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. + Ermöglicht einem .NET-Tool, ein Rollforward auf neuere Versionen der .NET-Runtime auszuführen, wenn die Runtime, auf die es abzielt, nicht installiert ist. .NET Run Command - .NET Run Command + .NET-Befehl "Run" The configuration to run for. The default for most projects is 'Debug'. - The configuration to run for. The default for most projects is 'Debug'. + Die Konfiguration für die Ausführung. Der Standardwert für die meisten Projekte ist "Debug". The target framework to run for. The target framework must also be specified in the project file. - The target framework to run for. The target framework must also be specified in the project file. + Das Zielframework für die Ausführung. Das Zielframework muss auch in der Projektdatei angegeben werden. The target runtime to run for. - The target runtime to run for. + Die Zielruntime, für die die Ausführung erfolgt. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Diagnoseausgabe aktivieren. Display the command schema as JSON. - Display the command schema as JSON. + Das Befehlsschema als JSON anzeigen. .NET SDK Command - .NET SDK Command + .NET SDK-Befehl .NET SDK Check Command - .NET SDK Check Command + Befehl zur .NET SDK-Überprüfung The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Die Optionen „--self-contained“ und „--no-self-contained“ können nicht gemeinsam verwendet werden. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Hiermit wird die .NET-Runtime mit Ihrer Anwendung veröffentlicht, sodass die Runtime nicht auf dem Zielcomputer installiert werden muss. +Der Standardwert lautet FALSE. Wenn sie jedoch auf .NET 7 oder niedriger abzielen, lautet der Standardwert TRUE, wenn ein Laufzeitbezeichner angegeben wird. Skip updating the workload manifests. - Skip updating the workload manifests. + Überspringen Sie die Aktualisierung der Workload-Manifeste. Skip the optimization phase. - Skip the optimization phase. + Hiermit wird die Optimierungsphase übersprungen. Skip signature verification of workload packages and installers. - Skip signature verification of workload packages and installers. + Überspringen Sie die Signaturüberprüfung von Workloadpaketen und -installationsprogrammen. Skip creating symbol files which can be used for profiling the optimized assemblies. - Skip creating symbol files which can be used for profiling the optimized assemblies. + Hiermit wird die Erstellung von Symboldateien übersprungen, die für die Profilerstellung der optimierten Assemblys verwendet werden können. Recursively add projects' ReferencedProjects to solution - Recursively add projects' ReferencedProjects to solution + Rekursives Hinzufügen von Projekten " ReferencedProjects" zur Projektmappe .NET modify solution file command - .NET modify solution file command + .NET-Befehl zum Ändern von Projektmappendateien The solution file to operate on. If not specified, the command will search the current directory for one. - The solution file to operate on. If not specified, the command will search the current directory for one. + Die zu verwendende Projektmappendatei. Wenn keine Projektmappendatei angegeben ist, sucht der Befehl im aktuellen Verzeichnis nach einer Datei. SLN_FILE - SLN_FILE + SLN_FILE The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Das Projekt oder die Projektmappendatei, die verwendet werden soll. Wenn keine Datei angegeben ist, durchsucht der Befehl das aktuelle Verzeichnis nach einer Datei. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Die Projekt- oder Projektmappe- oder C#-Datei (dateibasiertes Programm), auf die zugegriffen werden soll. Wenn keine Datei angegeben ist, durchsucht der Befehl das aktuelle Verzeichnis nach einem Projekt oder einer Projektmappe. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJEKT | PROJEKTMAPPE | DATEI Source - Source + Quelle The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. - The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. + Die zu durchsuchende Paketquelle. Sie können mehrere „--source“-Optionen übergeben, um mehrere Paketquellen zu durchsuchen. Beispiel: "--source https://api.nuget.org/v3/index.json". Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. - Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. + Speichert die angegebenen Assemblys für die .NET-Plattform. Standardmäßig werden diese für die Zielruntime und das Framework optimiert. The target framework to store packages for. The target framework has to be specified in the project file. - The target framework to store packages for. The target framework has to be specified in the project file. + Das Zielframework zum Speichern von Paketen. Das Zielframework muss in der Projektdatei angegeben werden. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to store the given assemblies in. - The output directory to store the given assemblies in. + Das Ausgabeverzeichnis, in dem die angegebenen Assemblys gespeichert werden. The target runtime to store packages for. - The target runtime to store packages for. + Die Zielruntime zum Speichern von Paketen. Specify a temporary directory for this command to download and extract NuGet packages (must be secure). - Specify a temporary directory for this command to download and extract NuGet packages (must be secure). + Geben Sie ein temporäres Verzeichnis für diesen Befehl zum Herunterladen und Extrahieren von NuGet-Paketen an (muss sicher sein). Displays a summary of what would happen if the given command line were run if it would result in a template creation. - Displays a summary of what would happen if the given command line were run if it would result in a template creation. + Zeigt eine Zusammenfassung der Ergebnisse der Ausführung der angegebenen Befehlszeile an, wenn dies zu einer Vorlagenerstellung führen würde. Forces content to be generated even if it would change existing files. - Forces content to be generated even if it would change existing files. + Erzwingt, dass der Inhalt generiert wird, auch wenn vorhandene Dateien geändert würden. The name for the output being created. If no name is specified, the name of the output directory is used. - The name for the output being created. If no name is specified, the name of the output directory is used. + Der Name für die erstellte Ausgabe. Wenn kein Name angegeben wird, wird der Name des Ausgabeverzeichnisses verwendet. Disables checking for the template package updates when instantiating a template. - Disables checking for the template package updates when instantiating a template. + Deaktiviert die Suche nach Vorlagenpaketaktualisierungen beim Instanziieren einer Vorlage. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The configuration to use for running tests. The default for most projects is 'Debug'. - The configuration to use for running tests. The default for most projects is 'Debug'. + Die für die Testausführung zu verwendende Konfiguration. Standard für die meisten Projekte ist "Debug". The target framework to run tests for. The target framework must also be specified in the project file. - The target framework to run tests for. The target framework must also be specified in the project file. + Das Zielframework für den Testlauf. Das Zielframework muss auch in der Projektdatei angegeben werden. The target runtime to test for. - The target runtime to test for. + Die Zielruntime, für die Tests ausgeführt werden sollen. Install or work with tools that extend the .NET experience. - Install or work with tools that extend the .NET experience. + Installation oder Arbeit mit Tools zum Erweitern der .NET-Benutzeroberfläche. Executes a tool from source without permanently installing it. - Executes a tool from source without permanently installing it. + Führt ein Tool aus der Quelle aus, ohne es dauerhaft zu installieren. Add an additional NuGet package source to use during installation. - Add an additional NuGet package source to use during installation. + Hiermit wird eine weitere NuGet-Paketquelle zur Verwendung während der Installation hinzugefügt. ADDSOURCE - ADDSOURCE + QUELLE HINZUFÜGEN Install global or local tool. Local tools are added to manifest and restored. - Install global or local tool. Local tools are added to manifest and restored. + Hiermit installieren Sie das globale oder lokale Tool. Lokale Tools werden dem Manifest hinzugefügt und wiederhergestellt. The NuGet configuration file to use. - The NuGet configuration file to use. + Die zu verwendende NuGet-Konfigurationsdatei. FILE - FILE + DATEI The target framework to install the tool for. - The target framework to install the tool for. + Das Zielframework, für das das Tool installiert wird. FRAMEWORK - FRAMEWORK + FRAMEWORK Install the tool for the current user. - Install the tool for the current user. + Hiermit installieren Sie das Tool für den aktuellen Benutzer. Install the tool and add to the local tool manifest (default). - Install the tool and add to the local tool manifest (default). + Hiermit installieren Sie das Tool und fügen es dem lokalen Toolmanifest (Standard) hinzu. Path to the manifest file. - Path to the manifest file. + Pfad zur Manifestdatei. PATH - PATH + PATH Replace all NuGet package sources to use during installation with these. - Replace all NuGet package sources to use during installation with these. + Ersetzen alle NuGet-Paketquellen für die Nutzung während der Installation durch diese. SOURCE - SOURCE + QUELLE The directory where the tool will be installed. The directory will be created if it does not exist. - The directory where the tool will be installed. The directory will be created if it does not exist. + Das Verzeichnis, in dem das Tool installiert wird. Das Verzeichnis wird erstellt, wenn es nicht vorhanden ist. PATH - PATH + PATH The version of the tool package to install. - The version of the tool package to install. + Die Version des zu installierenden Toolpakets. VERSION - VERSION + VERSION List tools installed globally or locally. - List tools installed globally or locally. + Hiermit listen Sie die global oder lokal installierten Tools auf. The output format for the list of tools. - The output format for the list of tools. + Das Ausgabeformat für die Liste der Tools. List tools installed for the current user. - List tools installed for the current user. + Hiermit listen Sie die für den aktuellen Benutzer installierten Tools auf. List the tools installed in the local tool manifest. - List the tools installed in the local tool manifest. + Hiermit listen Sie die im lokalen Toolmanifest installierten Tools auf. The NuGet Package Id of the tool to list - The NuGet Package Id of the tool to list + Die NuGet-Paket-ID des Tools, das aufgelistet werden soll. PACKAGE_ID - PACKAGE_ID + PACKAGE_ID The directory containing the tools to list. - The directory containing the tools to list. + Das Verzeichnis, das die aufzulistenden Tools enthält. Restore tools defined in the local tool manifest. - Restore tools defined in the local tool manifest. + Hiermit stellen Sie die im lokalen Toolmanifest definierten Tools wieder her. Path to the manifest file. - Path to the manifest file. + Pfad zur Manifestdatei. Arguments forwarded to the tool - Arguments forwarded to the tool + An das Tool weitergeleitete Argumente. Run a local tool. Note that this command cannot be used to run a global tool. - Run a local tool. Note that this command cannot be used to run a global tool. + Lokales Tool aus ausführen. Beachten Sie, dass dieser Befehl nicht zum Ausführen eines globalen Tools verwendet werden kann. Search dotnet tools in nuget.org - Search dotnet tools in nuget.org + "dotnet tools" in nuget.org suchen Include pre-release packages. - Include pre-release packages. + Vorabversionspakete einschließen. SEARCH_TERM - SEARCH_TERM + SEARCH_TERM Search term from package id or package description. Require at least one character. - Search term from package id or package description. Require at least one character. + Suchbegriff aus Paket-ID oder Paketbeschreibung. Es ist mindestens ein Zeichen erforderlich. Skip - Skip + Überspringen The number of results to skip, for pagination. - The number of results to skip, for pagination. + Die Anzahl der zu überspringenden Ergebnisse für die Paginierung. Take - Take + Übernehmen The number of results to return, for pagination. - The number of results to return, for pagination. + Die Anzahl der zurückzugebenden Ergebnisse für die Paginierung. Uninstall a global tool or local tool. - Uninstall a global tool or local tool. + Deinstallieren Sie ein globales oder lokales Tool. Uninstall the tool from the current user's tools directory. - Uninstall the tool from the current user's tools directory. + Hiermit wird das Tool im Toolverzeichnis des aktuellen Benutzers deinstalliert. Uninstall the tool and remove it from the local tool manifest. - Uninstall the tool and remove it from the local tool manifest. + Deinstallieren Sie das Tool, und entfernen Sie es aus dem lokalen Toolmanifest. Path to the manifest file. - Path to the manifest file. + Pfad zur Manifestdatei. The directory containing the tool to uninstall. - The directory containing the tool to uninstall. + Das Verzeichnis, das das zu deinstallierende Tool enthält. Update a global or local tool. - Update a global or local tool. + Hiermit aktualisieren Sie ein globales oder lokales Tool. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Befehl oder Argument "{0}" nicht erkannt Update all tools. - Update all tools. + Alle Tools aktualisieren. Controls whether updates should look for workload sets or the latest version of each individual manifest. - Controls whether updates should look for workload sets or the latest version of each individual manifest. + Steuert, ob Updates nach Workloadsätzen oder der neuesten Version jedes einzelnen Manifests suchen sollen. Shut down the VB/C# compiler build server. - Shut down the VB/C# compiler build server. + Hiermit wird der VB/C#-Compilerbuildserver heruntergefahren. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + --version kann nicht angegeben werden, wenn das Paketargument bereits eine Version enthält. {Locked="--version"} Verbosity - Verbosity + Ausführlichkeit Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` - Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` + Zeigen Sie die entsprechende Menge von Details in der Ausgabe an: „Normal“, „Minimal“, „Detailliert“. Der Standardwert ist „Normal“ Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Hiermit wird der Ausführlichkeitsgrad von MSBuild festgelegt. Zulässige Werte sind "q[uiet]", "m[inimal]", "n[ormal]", "d[etailed]" und "diag[nostic]". Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. - Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. + Legt den Ausführlichkeitsgrad fest. Zulässige Werte sind q[uiet], m[inimal], n[ormal] und diag[nostic]. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX Removes workload components that may have been left behind from previous updates and uninstallations. - Removes workload components that may have been left behind from previous updates and uninstallations. + Entfernt Workloadkomponenten, die möglicherweise von vorherigen Updates und Deinstallationen zurückgelassen wurden. Install or work with workloads that extend the .NET experience. - Install or work with workloads that extend the .NET experience. + Installation oder Arbeit mit Workloads zum Erweitern der .NET-Benutzeroberfläche. Modify or display workload configuration values. To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" - Modify or display workload configuration values. -To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" + Workloadkonfigurationswerte ändern oder anzeigen. +Um einen Wert anzuzeigen, geben Sie die entsprechende Befehlszeilenoption an, ohne einen Wert anzugeben. Beispiel: „dotnet workload config --update-mode“ Start the elevated server process to facilitate MSI based installations. - Start the elevated server process to facilitate MSI based installations. + Starten Sie den Serverprozess mit erhöhten Rechten, um MSI-basierte Installationen zu unterstützen. Shows a history of workload installation actions. - Shows a history of workload installation actions. + Zeigt einen Verlauf der Workloadinstallationsaktionen an. The NuGet package ID of the workload to install. - The NuGet package ID of the workload to install. + Die NuGet-Paket-ID der zu installierenden Workload. WORKLOAD_ID - WORKLOAD_ID + WORKLOAD_ID The text to search for in the IDs and descriptions of available workloads. - The text to search for in the IDs and descriptions of available workloads. + Der Text, nach dem in den IDs und Beschreibungen der verfügbaren Workloads gesucht werden soll. SEARCH_STRING - SEARCH_STRING + SEARCH_STRING Display information about installed workloads. - Display information about installed workloads. + Zeigt Informationen zu installierten Workloads an. Install one or more workloads. - Install one or more workloads. + Installieren Sie mindestens eine Workload. The NuGet configuration file to use. - The NuGet configuration file to use. + Die zu verwendende NuGet-Konfigurationsdatei. FILE - FILE + DATEI The NuGet package source to use during the restore. To specify multiple sources, repeat the option. - The NuGet package source to use during the restore. To specify multiple sources, repeat the option. + Die NuGet-Paketquelle, die während der Wiederherstellung verwendet werden soll. Wiederholen Sie die Option, um mehrere Quellen anzugeben. SOURCE - SOURCE + QUELLE The version of the SDK. - The version of the SDK. + Die Version des SDK. VERSION - VERSION + VERSION List workloads available. - List workloads available. + Hiermit werden die verfügbaren Workloads aufgelistet. Repair workload installations. - Repair workload installations. + Reparieren Sie Workloadinstallationen. Restore workloads required for a project. - Restore workloads required for a project. + Stellen Sie Workloads wieder her, die für ein Projekt erforderlich sind. Search for available workloads. - Search for available workloads. + Suchen Sie nach verfügbaren Workloads. A workload version to display or one or more workloads and their versions joined by the '@' character. - A workload version to display or one or more workloads and their versions joined by the '@' character. + Eine Workloadversion zum Anzeigen oder mindestens eine Workload und deren Versionen, die mit dem Zeichen "@" verknüpft sind. Uninstall one or more workloads. - Uninstall one or more workloads. + Deinstallieren Sie mindestens eine Workload. Update all installed workloads. - Update all installed workloads. + Aktualisieren Sie alle installierten Workloads. WORKLOAD_VERSION - WORKLOAD_VERSION + WORKLOAD_VERSION Output workload manifest versions associated with the provided workload version. - Output workload manifest versions associated with the provided workload version. + Geben Workloadmanifestversionen, die der angegebenen Workloadversion zugeordnet sind, aus. Display the currently installed workload version. - Display the currently installed workload version. + Zeigt die aktuell installierte Workloadversion an. Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Alle Bestätigungsaufforderungen mit "Ja" akzeptieren. The friendly name of the data collector to use for the test run. More info here: https://aka.ms/vstest-collect - The friendly name of the data collector to use for the test run. - More info here: https://aka.ms/vstest-collect + Der Anzeigename des Datensammlers für den Testlauf. + Weitere Informationen finden Sie hier: https://aka.ms/vstest-collect DATA_COLLECTOR_NAME - DATA_COLLECTOR_NAME + DATA_COLLECTOR_NAME diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.es.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.es.xlf index f40caede124a..92deb95d7e0b 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.es.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.es.xlf @@ -4,162 +4,162 @@ Only update advertising manifests. - Only update advertising manifests. + Actualizar solo los manifiestos de publicidad. Add one or more projects to a solution file. - Add one or more projects to a solution file. + Agrega uno o varios proyectos a un archivo de solución. The paths to the projects to add to the solution. - The paths to the projects to add to the solution. + Las rutas a los proyectos para agregar la solución. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH The destination solution folder path to add the projects to. - The destination solution folder path to add the projects to. + Ruta de acceso de la carpeta de la solución de destino a la que agregar los proyectos. Allow package downgrade when installing a .NET tool package. - Allow package downgrade when installing a .NET tool package. + Permitir la degradación del paquete al instalar un paquete de herramientas de .NET. ARCH - ARCH + ARCO The target architecture. - The target architecture. + La arquitectura de destino. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Ruta de acceso de los artefactos. Todas las salidas del proyecto, incluidas las salidas de compilación, publicación y empaquetado, se incluirán en subcarpetas en la ruta de acceso especificada. .NET Builder - .NET Builder + Generador para .NET The configuration to use for building the project. The default for most projects is 'Debug'. - The configuration to use for building the project. The default for most projects is 'Debug'. + La configuración que se usará para compilar el proyecto. El valor predeterminado para la mayoría de los proyectos es "Debug". The target framework to build for. The target framework must also be specified in the project file. - The target framework to build for. The target framework must also be specified in the project file. + La plataforma de destino para la que se compila. La plataforma de destino se debe especificar en el archivo de proyecto. The output directory to place built artifacts in. - The output directory to place built artifacts in. + Directorio de salida en el que se ubicarán los artefactos compilados. The target runtime to build for. - The target runtime to build for. + El entorno de tiempo de ejecución para el que se compila. Interact with servers started from a build. - Interact with servers started from a build. + Interactúe con los servidores que se inician desde una compilación. Shuts down build servers that are started from dotnet. By default, all servers are shut down. - Shuts down build servers that are started from dotnet. By default, all servers are shut down. + Apaga los servidores de compilación que se inician desde dotnet. De forma predeterminada, se apagan todos los servidores. Cannot specify both the {0} and {1} arguments. - Cannot specify both the {0} and {1} arguments. + No se pueden especificar los argumentos {0} y {1}. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + No se ha podido resolver el identificador en el tiempo de ejecución actual. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + No se admite la especificación de las opciones '-r|--runtime' y '-a|--arch'. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + No se admite la especificación de las opciones '-r|--runtime' y '-os'. Causes clean to remove and uninstall all workload components from all SDK versions. - Causes clean to remove and uninstall all workload components from all SDK versions. + Hace que la limpieza quite y desinstale todos los componentes de carga de trabajo de todas las versiones del SDK. .NET Clean Command - .NET Clean Command + Comando Clean de .NET OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The directory containing the build artifacts to clean. - The directory containing the build artifacts to clean. + Directorio que contiene los artefactos de compilación para limpiar. The configuration to clean for. The default for most projects is 'Debug'. - The configuration to clean for. The default for most projects is 'Debug'. + La configuración para la que se limpia. El valor predeterminado para la mayoría de los proyectos es "Debug". Removes artifacts created for file-based apps - Removes artifacts created for file-based apps + Quita los artefactos creados para las aplicaciones basadas en archivos How many days an artifact folder needs to be unused in order to be removed - How many days an artifact folder needs to be unused in order to be removed + Número de días que una carpeta de artefactos debe no usarse para poder quitarse Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Determina los cambios sin modificar realmente el sistema de archivos The target framework to clean for. The target framework must also be specified in the project file. - The target framework to clean for. The target framework must also be specified in the project file. + La plataforma de destino para la que se limpia. La plataforma de destino se debe especificar en el archivo de proyecto. The target runtime to clean for. - The target runtime to clean for. + El entorno de tiempo de ejecución para el que se limpia. Enables collecting crash dump on expected as well as unexpected testhost exit. - Enables collecting crash dump on expected as well as unexpected testhost exit. + Habilita la recopilación del volcado de memoria en la salida del host de prueba esperada e inesperada. @@ -174,22 +174,22 @@ The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downlo To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. Implies --blame. - Runs the tests in blame mode and collects a crash dump when the test host exits unexpectedly. This option depends on the version of .NET used, the type of error, and the operating system. + Ejecuta las pruebas en modo de reprobación y recopila un volcado de memoria cuando el host de prueba se cierra inesperadamente. Esta opción depende de la versión de .NET usada, el tipo de error y el sistema operativo. -For exceptions in managed code, a dump will be automatically collected on .NET 5.0 and later versions. It will generate a dump for testhost or any child process that also ran on .NET 5.0 and crashed. Crashes in native code will not generate a dump. This option works on Windows, macOS, and Linux. +Para las excepciones en código administrado, se recopilará automáticamente un volcado en .NET 5.0 y versiones posteriores. Generará un volcado para testhost o cualquier proceso secundario que también se ejecutara en .NET 5.0 y se bloqueara. Los bloqueos en código nativo no generarán un volcado. Esta opción funciona en Windows, macOS y Linux. -Crash dumps in native code, or when targetting .NET Framework, or .NET Core 3.1 and earlier versions, can only be collected on Windows, by using Procdump. A directory that contains procdump.exe and procdump64.exe must be in the PATH or PROCDUMP_PATH environment variable. +Los volcados de memoria en código nativo, o al establecer como destino .NET Framework, o .NET Core 3.1 y versiones anteriores, solo se pueden recopilar en Windows, mediante Procdump. Un directorio que contenga procdump.exe y procdump64.exe debe estar en la variable de entorno PATH o PROCDUMP_PATH. -The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downloads/procdump +Las herramientas se pueden descargar aquí: https://docs.microsoft.com/sysinternals/downloads/procdump -To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. +Para recopilar un volcado de memoria de una aplicación nativa que se ejecuta en .NET 5.0 o posterior, se puede forzar el uso de Procdump estableciendo la variable de entorno VSTEST_DUMP_FORCEPROCDUMP en 1. -Implies --blame. +Implica --blame. The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. - The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. + Tipo de volcado de memoria que se va a recopilar. Los valores admitidos son completo (valor predeterminado) y mini. Implica --blame-crash. @@ -207,30 +207,30 @@ Example: Timeout the test run when a test takes more than 20 minutes and collect hang dump. dotnet test --blame-hang-timeout 20min - Runs the tests in blame mode. This option is helpful in isolating problematic tests that cause the test host to crash or hang, but it does not create a memory dump by default. + Ejecuta las pruebas en modo de reprobación. Esta opción es útil para aislar las pruebas problemáticas que hacen que el host de prueba se bloquee o se bloquee, pero no crea un volcado de memoria de forma predeterminada. -When a crash is detected, it creates an sequence file in TestResults/guid/guid_Sequence.xml that captures the order of tests that were run before the crash. +Cuando se detecta un bloqueo, crea un archivo de secuencia en TestResults/guid/guid_Sequence.xml que captura el orden de las pruebas que se ejecutaron antes del bloqueo. -Based on the additional settings, hang dump or crash dump can also be collected. +En función de la configuración adicional, también se pueden recopilar volcados de bloqueo o volcados de memoria. -Example: - Timeout the test run when test takes more than the default timeout of 1 hour, and collect crash dump when the test host exits unexpectedly. - (Crash dumps require additional setup, see below.) - dotnet test --blame-hang --blame-crash -Example: - Timeout the test run when a test takes more than 20 minutes and collect hang dump. - dotnet test --blame-hang-timeout 20min +Ejemplo: + Se agotó la ejecución de la prueba cuando esta dura más de 1 hora como tiempo de espera predeterminado, y recopila el volcado de memoria cuando el host de prueba se cierra inesperadamente. + (Los volcados de memoria requieren una configuración adicional, consulte a continuación.) + prueba de dotnet --blame-hang --blame-crash +Ejemplo: + Se agotó el tiempo de espera de la serie de pruebas cuando una prueba tarda más de 20 minutos y se recopila el volcado de memoria. + prueba de dotnet --blame-hang-timeout 20min Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. - Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. + Ejecuta las pruebas en el modo de culpa y habilita la recopilación del volcado de bloqueo cuando la prueba supera el tiempo de espera especificado. The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. - The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. + El tipo de volcado de memoria que se va a recoger. Los valores soportados son completo (valor predeterminado), mini, y ninguno. Si se utiliza "ninguno", el host de prueba termina cuando se agota el tiempo de espera, pero no se recoge ningún volcado. Implica --blame-hang. @@ -238,67 +238,67 @@ Example: The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, For MSTest before 2.2.4, the timeout is used for all testcases. - Per-test timeout, after which hang dump is triggered and the testhost process is terminated. Default is 1h. -The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. -When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, -For MSTest before 2.2.4, the timeout is used for all testcases. + Tiempo de espera por prueba, después del cual se desencadena el volcado de bloqueo de memoria y se termina el proceso testhost. El valor predeterminado es 1 h. +El valor de tiempo de espera se especifica en el siguiente formato: 1,5 h / 90 m / 5400 s / 5 400 000 ms. Cuando no se usa ninguna unidad (por ejemplo, 5400000), se supone que el valor está en milisegundos. +Cuando se usa junto con pruebas basadas en datos, el comportamiento del tiempo de espera depende del adaptador de pruebas utilizado. Para xUnit, NUnit y MSTest 2.2.4+ el tiempo de espera se renueva después de cada caso de prueba, +Para MSTest antes de 2.2.4, el tiempo de espera se usa para todos los casos de prueba. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + La ruta de acceso al archivo de configuración de NuGet que se va a usar. Requiere la opción "--outdated", "--deprecated" o "--vulnerable". Specifies a testconfig.json file. - Specifies a testconfig.json file. + Especifica un archivo testconfig.json. FILE - FILE + FILE The NuGet configuration file to use. - The NuGet configuration file to use. + Archivo de configuración de NuGet que debe usarse. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE Use current runtime as the target runtime. - Use current runtime as the target runtime. + Use el runtime actual como runtime de destino. Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. - Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. + Muestra los paquetes que han quedado en desuso. No se puede combinar con las opciones "--outdated" o "--vulnerable". Output directory of the diagnostic logging. If not specified the file will be generated inside the default 'TestResults' directory. - Output directory of the diagnostic logging. -If not specified the file will be generated inside the default 'TestResults' directory. + Directorio de salida del registro de diagnóstico. +Si no se especifica, el archivo se generará dentro del directorio predeterminado 'TestResults'. DIAGNOSTIC_DIR - DIAGNOSTIC_DIR + DIAGNOSTIC_DIR Prevent restoring multiple projects in parallel. - Prevent restoring multiple projects in parallel. + Evite la restauración de varios proyectos en paralelo. @@ -312,88 +312,88 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Establece el valor de una variable de entorno. +Crea la variable si no existe o la reemplaza en caso de que exista. +Este argumento se puede especificar varias veces para proporcionar múltiples variables. -Examples: +Ejemplos: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="valor con espacios" +-e VARIABLE="valor; separados con; punto y coma" -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NAME="VALUE" EXPRESSION - EXPRESSION + EXPRESIÓN Path to the file-based program. - Path to the file-based program. + Ruta de acceso al programa basado en archivos. Force all dependencies to be resolved even if the last restore was successful. This is equivalent to deleting project.assets.json. - Force all dependencies to be resolved even if the last restore was successful. -This is equivalent to deleting project.assets.json. + Fuerce la resolución de todas las dependencias aunque la última restauración se haya realizado correctamente. +Esta acción es equivalente a eliminar project.assets.json. Specifies the output format type for the list packages command. - Specifies the output format type for the list packages command. + Especifica el tipo de formato de salida para el comando Enumerar paquetes. Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. + Considere solo los paquetes con un número de versión mayor coincidente al buscar nuevos paquetes. Se requiere la opción "--outdated". Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. + Considere solo los paquetes con números de versión mayor y menor coincidentes al buscar nuevos paquetes. Se requiere la opción "--outdated". Treat package source failures as warnings. - Treat package source failures as warnings. + Indica que los errores de origen de paquete se traten como advertencias. Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. - Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. + Se incluyen los archivos PDB y de código fuente. Los archivos de código fuente van a la carpeta "src" del paquete de NuGet resultante Include packages with symbols in addition to regular packages in output directory. - Include packages with symbols in addition to regular packages in output directory. + Se incluyen paquetes con símbolos además de los paquetes habituales en el directorio de salida. List the discovered tests instead of running the tests. - List the discovered tests instead of running the tests. + Enumera las pruebas detectadas en vez de ejecutar las pruebas. LOCK_FILE_PATH - LOCK_FILE_PATH + LOCK_FILE_PATH Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. - Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. + Destino de salida donde se escribe el archivo de bloqueo del proyecto. De forma predeterminada, esto es "PROJECT_ROOT\packages.lock.json". Don't allow updating project lock file. - Don't allow updating project lock file. + No permite actualizar el archivo de bloqueo del proyecto. @@ -402,223 +402,223 @@ This is equivalent to deleting project.assets.json. Log in trx format using a unique file name: --logger trx Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" See https://aka.ms/vstest-report for more information on logger arguments. - The logger to use for test results. - Examples: - Log in trx format using a unique file name: --logger trx - Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" - See https://aka.ms/vstest-report for more information on logger arguments. + Registrador que se va a usar para los resultados de pruebas. + Ejemplos: + Registrar en formato trx con un nombre de archivo único: --logger trx + Registrar en formato trx con el nombre de archivo especificado: --logger "trx;LogFileName=<ResultadosPruebas.trx>" + Consulte https://aka.ms/vstest-report para obtener más información sobre los argumentos del registrador. LOGGER - LOGGER + LOGGER The max number of test modules that can run in parallel. - The max number of test modules that can run in parallel. + Número máximo de módulos de prueba que se pueden ejecutar en paralelo. Specifies the minimum number of tests that are expected to run. - Specifies the minimum number of tests that are expected to run. + Especifica el número mínimo de pruebas que se espera que se ejecuten. Disable ANSI output. - Disable ANSI output. + Deshabilite la salida ANSI. Do not build the project before testing. Implies --no-restore. - Do not build the project before testing. Implies --no-restore. + No compile el proyecto antes de probarlo. Implica --no-restore. Do not build the project before packing. Implies --no-restore. - Do not build the project before packing. Implies --no-restore. + No compile el proyecto antes de empaquetarlo. Implica --no-restore. Do not cache packages and http requests. - Do not cache packages and http requests. + Indica que no se almacenen en caché los paquetes ni las solicitudes HTTP. Do not restore project-to-project references and only restore the specified project. - Do not restore project-to-project references and only restore the specified project. + No restaure referencias de proyecto a proyecto y restaure solo el proyecto especificado. Disable Http Caching for packages. - Disable Http Caching for packages. + Deshabilitar el almacenamiento en caché HTTP para los paquetes. Disable progress reporting. - Disable progress reporting. + Deshabilite los informes de progreso. Do not restore before running the command. - Do not restore before running the command. + No restaure antes de ejecutar el comando. NUMBER - NUMBER + NUMBER Force conversion even if there are malformed directives. - Force conversion even if there are malformed directives. + Forzar la conversión incluso si hay directivas con formato incorrecto. Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. - Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. + Muestra los paquetes que tienen versiones más recientes. No se puede combinar con las opciones '--deprecated" o "--vulnerable". The output directory to place built artifacts in. - The output directory to place built artifacts in. + Directorio de salida en el que se ubicarán los artefactos compilados. Specifies the version of machine-readable output. Requires the '--format json' option. - Specifies the version of machine-readable output. Requires the '--format json' option. + Especifica la versión de la salida legible por máquina. Requiere la opción "--format json". PACKAGE_NAME - PACKAGE_NAME + PACKAGE_NAME PACKAGE_DIR - PACKAGE_DIR + PACKAGE_DIR The directory to restore packages to. - The directory to restore packages to. + El directorio en el que se restauran paquetes. PACKAGES_DIR - PACKAGES_DIR + PACKAGES_DIR The directory to restore packages to. - The directory to restore packages to. + El directorio en el que se restauran paquetes. LOG_FILE - LOG_FILE + LOG_FILE RESULTS_DIR - RESULTS_DIR + RESULTS_DIR Enable verbose logging to the specified file. - Enable verbose logging to the specified file. + Habilite el registro detallado para el archivo especificado. Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. - Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. + Considere la posibilidad de usar paquetes con versiones previas al buscar nuevos paquetes. Requiere la opción "--outdated". Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Defina la ruta de acceso del archivo de proyecto que se va a ejecutar. Use la ruta de acceso al archivo de proyecto o la ruta de acceso al directorio que contiene el archivo de proyecto. Si no se especifica, el valor predeterminado es el directorio actual. Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Defina la ruta de acceso del proyecto o archivo de solución que se va a probar. Use la ruta de acceso al archivo de proyecto o la ruta de acceso al directorio que contiene el archivo de proyecto. Si no se especifica, el valor predeterminado es el directorio actual. PROJECT_OR_SOLUTION_PATH - PROJECT_OR_SOLUTION_PATH + PROJECT_OR_SOLUTION_PATH Forces restore to reevaluate all dependencies even if a lock file already exists. - Forces restore to reevaluate all dependencies even if a lock file already exists. + Fuerza la restauración para volver a evaluar todas las dependencias aunque ya exista un archivo de bloqueo. The directory where the test results will be placed. The specified directory will be created if it does not exist. - The directory where the test results will be placed. -The specified directory will be created if it does not exist. + El directorio donde se colocarán los resultados de prueba. +Si no existe, se creará el directorio especificado. ROOT_PATH - ROOT_PATH + ROOT_PATH RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER The target runtime to restore packages for. - The target runtime to restore packages for. + El tiempo de ejecución de destino para el que se restauran los paquetes. Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. - Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. + Establece la marca serviceable en el paquete. Para obtener más información, consulte https://aka.ms/nupkgservicing. The settings file to use when running tests. - The settings file to use when running tests. + Archivo de configuración que debe usarse al ejecutar las pruebas. SETTINGS_FILE - SETTINGS_FILE + SETTINGS_FILE Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. - Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. + Defina la ruta de acceso del archivo de solución que se va a probar. Use la ruta de acceso al archivo de solución o la ruta de acceso al directorio que contiene el archivo de solución. Si no se especifica, el valor predeterminado es el directorio actual. SOLUTION_PATH - SOLUTION_PATH + SOLUTION_PATH SOURCE - SOURCE + SOURCE The NuGet package source to use for the restore. - The NuGet package source to use for the restore. + El origen de un paquete de NuGet para usarlo para la restauración. ADAPTER_PATH - ADAPTER_PATH + ADAPTER_PATH The path to the custom adapters to use for the test run. - The path to the custom adapters to use for the test run. + La ruta de acceso a los adaptadores personalizados que se usarán en la serie de pruebas. @@ -629,18 +629,18 @@ The specified directory will be created if it does not exist. Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" See https://aka.ms/vstest-filtering for more information on filtering support. - Run tests that match the given expression. - Examples: - Run tests with priority set to 1: --filter "Priority = 1" - Run a test with the specified full name: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" - Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" - See https://aka.ms/vstest-filtering for more information on filtering support. + Ejecuta las pruebas que coinciden con una expresión dada. + Ejemplos: + Ejecuta las pruebas con una prioridad establecida en 1: --filter "Priority = 1" + Ejecuta una prueba con el nombre completo especificado: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" + Ejecuta las pruebas que contienen el nombre especificado: --filter "FullyQualifiedName~Namespace.Class" + Consulte https://aka.ms/vstest-filtering para obtener más información sobre la compatibilidad con el filtrado. EXPRESSION - EXPRESSION + EXPRESSION @@ -655,12 +655,12 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Establece el valor de una variable de entorno. +Crea la variable si no existe o la reemplaza en caso de que exista. +Esto forzará la ejecución de las pruebas en un proceso aislado. +Este argumento se puede especificar varias veces para proporcionar múltiples variables. -Examples: +Ejemplos: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -670,812 +670,812 @@ Examples: Run tests for the specified test modules. - Run tests for the specified test modules. + Ejecute pruebas para los módulos de prueba especificados. The test modules have the specified root directory. - The test modules have the specified root directory. + Los módulos de prueba tienen el directorio raíz especificado. Verbosity of test output. - Verbosity of test output. + Nivel de detalle de la salida de la prueba. Lists transitive and top-level packages. - Lists transitive and top-level packages. + Contiene paquetes de transitivos y de nivel superior. Test runner '{0}' is not supported. - Test runner '{0}' is not supported. + No se admite el ejecutor de pruebas "{0}". Enables project lock file to be generated and used with restore. - Enables project lock file to be generated and used with restore. + Habilita la generación del archivo de bloqueo del proyecto y su uso con la restauración. VERSION - VERSION + VERSION The version of the package to add. - The version of the package to add. + La versión del paquete para agregar. Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Establece el valor de la propiedad $(VersionSuffix) que se usará al compilar el proyecto. Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. - Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. + Muestra los paquetes que tienen vulnerabilidades conocidas. No se puede combinar con las opciones "--outdated" o "--deprecated". The SDK command to launch online help for. - The SDK command to launch online help for. + El comando de SDK para el que iniciar la ayuda en línea. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Permite que el comando se detenga y espere la entrada o acción del usuario (por ejemplo, para autenticarse). The command name of the tool to run. - The command name of the tool to run. + El nombre de comando de la herramienta que se va a ejecutar. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME The device identifier to use for running the application. - The device identifier to use for running the application. + Identificador de dispositivo que se va a usar para ejecutar la aplicación. DEVICE - DEVICE + DISPOSITIVO The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). - The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). + Ruta de acceso a la aplicación basada en archivos que se va a ejecutar (también se puede pasar como primer argumento si no hay ningún proyecto en el directorio actual). FILE_PATH - FILE_PATH + FILE_PATH The name of the launch profile (if any) to use when launching the application. - The name of the launch profile (if any) to use when launching the application. + El nombre del perfil de inicio (si lo hay) que se usará al iniciar la aplicación. LAUNCH_PROFILE - LAUNCH_PROFILE + LAUNCH_PROFILE List available devices for running the application. - List available devices for running the application. + Enumere los dispositivos disponibles para ejecutar la aplicación. Do not build the project before running. Implies --no-restore. - Do not build the project before running. Implies --no-restore. + No compile el proyecto antes de ejecutarlo. Implica --no-restore. {Locked="--no-restore"} Skip up to date checks and always build the program before running. - Skip up to date checks and always build the program before running. + Omite las comprobaciones actualizadas y compile siempre el programa antes de ejecutarlo. Do not use arguments specified in launch profile to run the application. - Do not use arguments specified in launch profile to run the application. + No use los argumentos especificados en el perfil de inicio para ejecutar la aplicación. Do not attempt to use launchSettings.json or [app].run.json to configure the application. - Do not attempt to use launchSettings.json or [app].run.json to configure the application. + No intente usar launchSettings.json o [app].run.json para configurar la aplicación. {Locked="launchSettings.json"}{Locked=".run.json"} PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Permite que se instalen paquetes de versión preliminar. Creates an alias for instantiate command with a certain set of arguments. - Creates an alias for instantiate command with a certain set of arguments. + Crea un alias para crear instancias del comando con un determinado conjunto de argumentos. Displays defined aliases. - Displays defined aliases. + Muestra los alias definidos. Creates or displays defined aliases. - Creates or displays defined aliases. + Crea o muestra alias definidos. Provides the details for specified template package. The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. - - Provides the details for specified template package. - The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. + + Proporciona los detalles del paquete de plantilla especificado. + El comando comprueba si el paquete está instalado localmente, si no se encontró, busca en las fuentes de NuGet configuradas. NuGet package ID or path to folder or NuGet package to install. To install the NuGet package of certain version, use <package ID>::<version>. - NuGet package ID or path to folder or NuGet package to install. -To install the NuGet package of certain version, use <package ID>::<version>. + Id. del paquete NuGet o ruta de acceso a la carpeta o paquete NuGet que se va a instalar. +Para instalar el paquete NuGet de una versión determinada, use <package ID>::<version>. Installs a template package. - Installs a template package. + Instala un paquete de plantillas. A short name of the template to create. - A short name of the template to create. + Nombre corto de la plantilla que se va a crear. Template specific options to use. - Template specific options to use. + Opciones específicas de la plantilla que se van a usar. Instantiates a template with given short name. An alias of 'dotnet new <template name>'. - Instantiates a template with given short name. An alias of 'dotnet new <template name>'. + Crea una instancia de una plantilla con el nombre corto especificado. Alias de "dotnet new <template name>". do not translate 'dotnet new <template name>' Checks the currently installed template packages for updates. - Checks the currently installed template packages for updates. + Comprueba si hay actualizaciones para los paquetes de plantillas instalados actualmente. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Si se especifica, solo se mostrarán las plantillas que coincidan con el nombre. Lists templates containing the specified template name. If no name is specified, lists all templates. - Lists templates containing the specified template name. If no name is specified, lists all templates. + Muestra las plantillas que contienen el nombre de plantilla especificado. Si no se especifica ningún nombre, muestra todas las plantillas. Template Instantiation Commands for .NET CLI. - Template Instantiation Commands for .NET CLI. + Comandos de creación de instancias de la plantilla para CLI de .NET. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Si se especifica, solo se mostrarán las plantillas que coincidan con el nombre. Searches for the templates on NuGet.org. - Searches for the templates on NuGet.org. + Busca las plantillas en NuGet.org. NuGet package ID (without version) or path to folder to uninstall. If command is specified without the argument, it lists all the template packages installed. - NuGet package ID (without version) or path to folder to uninstall. -If command is specified without the argument, it lists all the template packages installed. + Id. del paquete NuGet (sin versión) o ruta de acceso a la carpeta que se va a desinstalar. +Si el comando se especifica sin el argumento, muestra todos los paquetes de plantillas instalados. Uninstalls a template package. - Uninstalls a template package. + Desinstala un paquete de plantillas. Checks the currently installed template packages for update, and install the updates. - Checks the currently installed template packages for update, and install the updates. + Comprueba si hay actualizaciones para los paquetes de plantillas instalados actualmente e instala las actualizaciones. Only checks for updates and display the template packages to be updated without applying update. - Only checks for updates and display the template packages to be updated without applying update. + Comprueba solo si hay actualizaciones y muestra los paquetes de plantillas que se van a actualizar sin aplicar la actualización. Unrecognized command or argument(s): {0}. - Unrecognized command or argument(s): {0}. + No se reconoce el comando o el argumento: {0}. {0} - wrong token or comma-separated tokens (if multiple). Each token is enclosed with single quotes: 'token'. FRAMEWORK - FRAMEWORK + MARCO DE DIRECTIVA ConfigFile - ConfigFile + ConfigFile The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior - The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior + Archivo de configuración de NuGet. Si se especifica, solo se usará la configuración de este archivo. Si no se especifica, se usará la jerarquía de los archivos de configuración del directorio actual. Para obtener más información, vea https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior CONFIGURATION - CONFIGURATION + CONFIGURATION DUMP_TYPE - DUMP_TYPE + DUMP_TYPE Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed - Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed + Cree un manifiesto de herramienta si no se encuentra ninguno durante la instalación de la herramienta. Para obtener información sobre cómo se encuentran los manifiestos, consulte https://aka.ms/dotnet/tools/create-manifest-if-needed Use current runtime as the target runtime. - Use current runtime as the target runtime. + Use el runtime actual como runtime de destino. Show detail result of the query. - Show detail result of the query. + Muestra el resultado detallado de la consulta. Package identifier - Package identifier + Identificador del paquete Enables diagnostic output. - Enables diagnostic output. + Permite habilitar la salida de diagnóstico. Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Fuerce el comando para omitir los servidores de compilación persistentes. Disables evaluating project context using MSBuild. - Disables evaluating project context using MSBuild. + Deshabilita la evaluación del contexto del proyecto mediante MSBuild. If present, prevents templates bundled in the SDK from being presented. - If present, prevents templates bundled in the SDK from being presented. + Si está presente, impide que se presenten las plantillas agrupadas en el SDK. .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. + Comando de prueba de .NET para Microsoft.Testing.Platform (activado mediante el archivo “global.json”). Solo es compatible con Microsoft.Testing.Platform y no con VSTest. Consulte https://aka.ms/dotnet-test para obtener más información. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. + Comando de prueba de .NET para VSTest. Para usar Microsoft.Testing.Platform, actívelo en el comando basado en Microsoft.Testing.Platform mediante global.json. Consulte https://aka.ms/dotnet-test para obtener más información. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} DIRECTORY - DIRECTORY + DIRECTORIO Download packages needed to install a workload to a folder that can be used for offline installation. - Download packages needed to install a workload to a folder that can be used for offline installation. + Descargue los paquetes necesarios para instalar una carga de trabajo en una carpeta que se pueda usar para la instalación sin conexión. Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. - Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. + Requiere que el término de búsqueda coincida exactamente con el nombre del paquete. Hace que se omitan las opciones '--take' y '--skip'. The file-based app to operate on. - The file-based app to operate on. + La aplicación basada en archivos en la que se va a operar. Format - Format + Formato Format the output accordingly. Either `table`, or `json`. The default value is `table`. - Format the output accordingly. Either `table`, or `json`. The default value is `table`. + Dé formato a la salida en consecuencia. Puede ser 'table' o 'json'. El valor predeterminado es 'table'. Changes the format of outputted workload versions. Can take 'json' or 'list' - Changes the format of outputted workload versions. Can take 'json' or 'list' + Cambia el formato de las versiones de la carga de trabajo de salida. Puede tomar "json" o "list" FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Publique la aplicación como una aplicación dependiente del marco de trabajo. para ejecutar la aplicación debe instalarse un entorno de ejecución de .NET compatible en el equipo de destino. FRAMEWORK_VERSION - FRAMEWORK_VERSION + FRAMEWORK_VERSION The Microsoft.NETCore.App package version that will be used to run the assemblies. - The Microsoft.NETCore.App package version that will be used to run the assemblies. + La versión del paquete Microsoft.NETCore.App que se usará para ejecutar los ensamblados DIRECTORY - DIRECTORY + DIRECTORIO Complete the operation from cache (offline). - Complete the operation from cache (offline). + Completa la operación desde la memoria caché (sin conexión). Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. - Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. + Actualizar las cargas de trabajo a una versión anterior especificada por el argumento. Usar el "historial de cargas de trabajo de dotnet" para ver los registros del historial de cargas de trabajo disponibles. Include workloads installed with earlier SDK versions in update. - Include workloads installed with earlier SDK versions in update. + Incluir las cargas de trabajo instaladas con versiones anteriores de SDK en la actualización. Update workloads based on specified rollback definition file. - Update workloads based on specified rollback definition file. + Actualice las cargas de trabajo en función del archivo de definición de reversión especificado. DUMP_TYPE - DUMP_TYPE + DUMP_TYPE TIMESPAN - TIMESPAN + TIMESPAN .NET CLI help utility - .NET CLI help utility + Utilidad de ayuda de la CLI de .NET Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. - Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. + Actualizar a las versiones de carga de trabajo especificadas en el historial sin cambiar las cargas de trabajo instaladas. Las cargas de trabajo instaladas actualmente se actualizarán para que coincidan con la versión del historial especificada. Place project in root of the solution, rather than creating a solution folder. - Place project in root of the solution, rather than creating a solution folder. + Coloque el proyecto en la raíz de la solución, en lugar de crear una carpeta de soluciones. Allow prerelease workload manifests. - Allow prerelease workload manifests. + Permitir manifiestos de carga de trabajo de versión preliminar. Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Variables de entorno con formato incorrecto: {0} WORKING_DIR - WORKING_DIR + WORKING_DIR The working directory used by the command to execute. - The working directory used by the command to execute. + El directorio de trabajo usado por el comando que se ejecutará. Invalid version string: {0} - Invalid version string: {0} + Cadena de versión no válida: {0} LEVEL - LEVEL + LEVEL List all projects in a solution file. - List all projects in a solution file. + Enumera todos los proyectos de la solución. Disables checking if the template meets the constraints to be run. - Disables checking if the template meets the constraints to be run. + Deshabilita la comprobación de si la plantilla cumple las restricciones que se van a ejecutar. Display solution folder paths. - Display solution folder paths. + Muestra las rutas de acceso de la carpeta de la solución. Shut down the MSBuild build server. - Shut down the MSBuild build server. + Apaga el servidor de compilación de MSBuild. MANIFEST - MANIFEST + MANIFEST The path to a target manifest file that contains the list of packages to be excluded from the publish step. - The path to a target manifest file that contains the list of packages to be excluded from the publish step. + La ruta de acceso a un archivo de manifiesto de destino que contiene la lista de paquetes que se excluirán del paso de publicación. Generate a .slnx file from a .sln file. - Generate a .slnx file from a .sln file. + Generar un archivo .slnx a partir de un archivo .sln. .NET Add Command - .NET Add Command + Comando Add de .NET List references or packages of a .NET project. - List references or packages of a .NET project. + Enumerar referencias o paquetes de un proyecto .NET. .NET Remove Command - .NET Remove Command + Comando Remove de .NET Do not build the project before publishing. Implies --no-restore. - Do not build the project before publishing. Implies --no-restore. + No compile el proyecto antes de publicarlo. Implica --no-restore. Do not build project-to-project references and only build the specified project. - Do not build project-to-project references and only build the specified project. + No compile referencias de proyecto a proyecto y compile solo el proyecto especificado. Do not use incremental building. - Do not use incremental building. + No utilice la compilación incremental. Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + No mostrar la pancarta de inicio ni el mensaje de copyright. Do not restore the project before building. - Do not restore the project before building. + No restaure el proyecto antes de la compilación. OS - OS + SO Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). - Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). + La especificación de la opción del manifiesto de herramienta (--tool-manifest) solo es válida con la opción local (--local o el valor predeterminado). The target operating system. - The target operating system. + El sistema operativo de destino. Specifies a NuGet source to use. - Specifies a NuGet source to use. + Especifica un origen de NuGet que se va a usar. Filters the templates based on the template author. - Filters the templates based on the template author. + Filtra las plantillas en función del autor de la plantilla. Filters the templates based on baseline defined in the template. - Filters the templates based on baseline defined in the template. + Filtra las plantillas en función de la línea base definida en la plantilla. Specifies the columns to display in the output. - Specifies the columns to display in the output. + Especifica las columnas que se van a mostrar en la salida. Displays all columns in the output. - Displays all columns in the output. + Muestra todas las columnas de la salida. Allows to pause execution in order to attach to the process for debug purposes. - Allows to pause execution in order to attach to the process for debug purposes. + Permite pausar la ejecución para asociarla al proceso con fines de depuración. Sets custom settings location. - Sets custom settings location. + Establece la ubicación de la configuración personalizada. If specified, removes the template cache prior to command execution. - If specified, removes the template cache prior to command execution. + Si se especifica, quita la memoria caché de las plantillas antes de la ejecución del comando. If specified, resets the settings prior to command execution. - If specified, resets the settings prior to command execution. + Si se especifica, restablece la configuración antes de la ejecución del comando. If specified, shows the template engine config prior to command execution. - If specified, shows the template engine config prior to command execution. + Si se especifica, muestra la configuración del motor de plantillas antes de la ejecución del comando. If specified, the settings will be not preserved on file system. - If specified, the settings will be not preserved on file system. + Si se especifica, la configuración no se conservará en el sistema de archivos. Allows installing template packages from the specified sources even if they would override a template package from another source. - Allows installing template packages from the specified sources even if they would override a template package from another source. + Permite instalar paquetes de plantillas desde los orígenes especificados, incluso si invalidarían un paquete de plantillas de otro origen. Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Permite que el comando se detenga y espere la entrada o acción del usuario (por ejemplo, para autenticarse). Filters templates based on language. - Filters templates based on language. + Filtra las plantillas en función del idioma. Location to place the generated output. - Location to place the generated output. + Ubicación en la que se colocará el resultado generado. Filters the templates based on NuGet package ID. - Filters the templates based on NuGet package ID. + Filtra las plantillas en función del id. del paquete NuGet. The project that should be used for context evaluation. - The project that should be used for context evaluation. + Proyecto que se debe usar para la evaluación de contexto. Filters the templates based on the tag. - Filters the templates based on the tag. + Filtra las plantillas en función de la etiqueta. Filters templates based on available types. Predefined values are "project" and "item". - Filters templates based on available types. Predefined values are "project" and "item". + Filtra las plantillas en función de los tipos disponibles. Los valores predefinidos son "proyecto" y "elemento". project and item should not be translated Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. - Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. + No se pueden combinar las opciones "--outdated", "--deprecated" y "--vulnerable". OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR .NET Core NuGet Package Packer - .NET Core NuGet Package Packer + .NET Core NuGet Package Packer OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place built packages in. - The output directory to place built packages in. + Directorio de salida en el que se ubicarán los paquetes compilados. VERSION - VERSION + VERSIÓN The version of the package to create - The version of the package to create + La versión del paquete para crear The configuration to use for building the package. The default is 'Release'. - The configuration to use for building the package. The default is 'Release'. + Configuración que se va a usar para compilar el paquete. El valor predeterminado es "Release". Add a NuGet package reference to the project. - Add a NuGet package reference to the project. + Agrega una referencia de paquete de NuGet al proyecto. FRAMEWORK - FRAMEWORK + MARCO Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Agrega una referencia solo cuando el destino es una plataforma específica. Add the reference without performing restore preview and compatibility check. - Add the reference without performing restore preview and compatibility check. + Agrega la referencia sin realizar la vista previa de restauración y la comprobación de compatibilidad. SOURCE - SOURCE + ORIGEN The NuGet package source to use during the restore. - The NuGet package source to use during the restore. + El origen de un paquete de NuGet para usarlo durante la restauración. Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Referencia de paquete en forma de identificador de paquete como "{0}" o identificador de paquete y versión separados por "@", como "{0}@{1}". Package reference id and version must not be null. - Package reference id and version must not be null. + El id. de referencia y la versión del paquete no deben ser nulos. List all package references of the project or solution. - List all package references of the project or solution. + Enumere todas las referencias de paquete del proyecto o la solución. FRAMEWORK | FRAMEWORK\RID - FRAMEWORK | FRAMEWORK\RID + FRAMEWORK | FRAMEWORK\RID Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. - Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. + Elige un marco para mostrar sus paquetes. Utilice la opción varias veces para marcos múltiples. SOURCE - SOURCE + ORIGEN The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + Los orígenes de NuGet que se usan al buscar paquetes más recientes. Requiere la opción "--outdated", "--deprecated" o "--vulnerable". Package reference - Package reference + Referencia de paquete Remove a NuGet package reference from the project. - Remove a NuGet package reference from the project. + Quita una referencia de paquete de NuGet del proyecto. The package reference to remove. - The package reference to remove. + La referencia de paquete para quitar. Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. - Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. + Busca en uno o varios orígenes de paquetes los paquetes que coincidan con un término de búsqueda. Si no se especifica ningún origen, se usarán todos los orígenes definidos en NuGet.Config. Include prerelease packages. - Include prerelease packages. + Incluir paquetes de versión preliminar. SearchTerm - SearchTerm + SearchTerm Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. - Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. + Término de búsqueda para filtrar nombres de paquetes, descripciones y etiquetas. Se usa como un valor literal. Ejemplo: 'dotnet package search some.package'. Vea también '--exact-match'. Skip - Skip + Omitir Number of results to skip, to allow pagination. Default 0. - Number of results to skip, to allow pagination. Default 0. + Número de resultados que se van a omitir para permitir la paginación. Predeterminado 0. Take - Take + Take Number of results to return. Default 20. - Number of results to return. Default 20. + Número de resultados que se devolverán. Predeterminado 20. Only print the list of links to download without downloading. - Only print the list of links to download without downloading. + Imprima solo la lista de vínculos para descargar, sin descargarla. @@ -1508,15 +1508,15 @@ If command is specified without the argument, it lists all the template packages dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 - 'dotnet workload search version' has three functions depending on its argument: - 1. If no argument is specified, it outputs a list of the latest released workload versions from this feature band. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + "dotnet workload search version" tiene tres funciones dependiendo de su argumento: + 1. Si no se especifica ningún argumento, genera una lista de las últimas versiones de carga de trabajo publicadas de esta banda de características. Toma la opción --take para especificar cuántos proporcionar y --format para modificar el formato. + Ejemplo: dotnet workload search version --take 2 --format json [{"workloadVersion":"9.0.201"},{"workloadVersion":"9.0.200.1"}] - 2. If a workload version is provided as an argument, it outputs a table of various workloads and their versions for the specified workload version. Takes the --format option to alter the output format. - Example: + 2. Si se proporciona una versión de carga de trabajo como argumento, genera una tabla de varias cargas de trabajo y sus versiones para la versión de carga de trabajo especificada. Toma la opción --format para modificar el formato de salida. + Ejemplo: dotnet workload search version 9.0.201 - Workload manifest ID Manifest feature band Manifest Version + Id. del manifiesto de carga de trabajo Banda de características del manifiesto Versión del manifiesto ------------------------------------------------------------------------------------------------ microsoft.net.workload.emscripten.current 9.0.100-rc.1 9.0.0-rc.1.24430.3 microsoft.net.workload.emscripten.net6 9.0.100-rc.1 9.0.0-rc.1.24430.3 @@ -1532,8 +1532,8 @@ If command is specified without the argument, it lists all the template packages microsoft.net.workload.mono.toolchain.net6 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net7 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net8 9.0.100-rc.1 9.0.0-rc.1.24431.7 - 3. If one or more workloads are provided along with their versions (by joining them with the '@' character), it outputs workload versions that match the provided versions. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 3. Si se proporcionan una o varias cargas de trabajo junto con sus versiones (al unirlas con el carácter '@'), genera versiones de carga de trabajo que coinciden con las versiones proporcionadas. Toma la opción --take para especificar cuántos proporcionar y --format para modificar el formato. + Ejemplo: dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 @@ -1541,775 +1541,775 @@ If command is specified without the argument, it lists all the template packages The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Archivo del proyecto sobre el que se va a operar. Si no se especifica un archivo, el comando buscará uno en el directorio actual. Convert a file-based program to a project-based program. - Convert a file-based program to a project-based program. + Convertir un programa basado en archivos en un programa basado en proyecto. Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Determina los cambios sin modificar realmente el sistema de archivos PROJECT_MANIFEST - PROJECT_MANIFEST + PROJECT_MANIFEST The XML file that contains the list of packages to be stored. - The XML file that contains the list of packages to be stored. + El archivo XML que contiene la lista de paquetes que se van a almacenar. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + El archivo de proyecto o la aplicación basada en archivos de C# en que se va a operar. Si no se especifica un archivo, el comando buscará un archivo de proyecto en el directorio actual. PROJECT | FILE - PROJECT | FILE + PROYECTO | ARCHIVO Publisher for the .NET Platform - Publisher for the .NET Platform + Publicador para la plataforma .NET The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. - The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. + Configuración para la que se va a publicar. El valor predeterminado es "Versión" para proyectos de NET 8.0 y versiones posteriores, pero "Depurar" para proyectos anteriores. The target framework to publish for. The target framework has to be specified in the project file. - The target framework to publish for. The target framework has to be specified in the project file. + La plataforma de destino para la que se publica. La plataforma de destino se debe especificar en el archivo de proyecto. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place the published artifacts in. - The output directory to place the published artifacts in. + El directorio de salida en el que se ubicarán los artefactos publicados. The target runtime to publish for. This is used when creating a self-contained deployment. The default is to publish a framework-dependent application. - The target runtime to publish for. This is used when creating a self-contained deployment. -The default is to publish a framework-dependent application. + El tiempo de ejecución objetivo para publicar. Esto se utiliza al crear una implementación independiente. +El valor predeterminado es publicar una aplicación dependiente del marco. Shut down the Razor build server. - Shut down the Razor build server. + Apaga el servidor de compilación de Razor. Add a project-to-project reference to the project. - Add a project-to-project reference to the project. + Agrega referencia de proyecto a proyecto al proyecto. Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Agrega una referencia solo cuando el destino es una plataforma específica. The paths to the projects to add as references. - The paths to the projects to add as references. + Las rutas a los proyectos para agregar como referencias. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH List all project-to-project references of the project. - List all project-to-project references of the project. + Enumera referencias de proyecto a proyecto del proyecto. Remove a project-to-project reference from the project. - Remove a project-to-project reference from the project. + Quita referencia de proyecto a proyecto del proyecto. Remove the reference only when targeting a specific framework. - Remove the reference only when targeting a specific framework. + Quita una referencia solo cuando el destino es una plataforma específica. The paths to the referenced projects to remove. - The paths to the referenced projects to remove. + Las rutas a los proyectos a los que se hace referencia para quitar. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Remove one or more projects from a solution file. - Remove one or more projects from a solution file. + Quita uno o varios proyectos de un archivo de solución. The project paths or names to remove from the solution. - The project paths or names to remove from the solution. + Las rutas o nombres de los proyectos que hay que eliminar de la solución. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Required command was not provided. - Required command was not provided. + No se proporcionó el comando requerido. .NET dependency restorer - .NET dependency restorer + Restaurador de dependencia de .NET Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. - Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. + Permitir que una herramienta .NET se ponga al día a versiones más recientes del runtime de .NET si el runtime al que se dirige no está instalado. .NET Run Command - .NET Run Command + Ejecutar comando de .NET The configuration to run for. The default for most projects is 'Debug'. - The configuration to run for. The default for most projects is 'Debug'. + La configuración para la que se ejecuta. El valor predeterminado para la mayoría de los proyectos es "Debug". The target framework to run for. The target framework must also be specified in the project file. - The target framework to run for. The target framework must also be specified in the project file. + La plataforma de destino para la que se ejecuta. La plataforma de destino se debe especificar en el archivo de proyecto. The target runtime to run for. - The target runtime to run for. + El entorno de ejecución de destino en el que se ejecuta. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Habilita la salida de diagnóstico. Display the command schema as JSON. - Display the command schema as JSON. + Muestre el esquema de comandos como JSON. .NET SDK Command - .NET SDK Command + Comando del SDK de .NET .NET SDK Check Command - .NET SDK Check Command + Comando de comprobación del SDK de .NET The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Las opciones '--self-contained' y '--no-self-contained' no se pueden usar juntas. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Publique el entorno de ejecución de .NET con la aplicación para que no sea necesario instalarlo en el equipo de destino. +El valor predeterminado es "false". Sin embargo, cuando el destino es .NET 7 o inferior, el valor predeterminado es "true" si se especifica un identificador en tiempo de ejecución. Skip updating the workload manifests. - Skip updating the workload manifests. + Omitir la actualización de los manifiestos de carga de trabajo. Skip the optimization phase. - Skip the optimization phase. + Omite la fase de optimización. Skip signature verification of workload packages and installers. - Skip signature verification of workload packages and installers. + Omita la comprobación de firma de los paquetes de carga de trabajo y los instaladores. Skip creating symbol files which can be used for profiling the optimized assemblies. - Skip creating symbol files which can be used for profiling the optimized assemblies. + Omite la creación de archivos de símbolos que se pueden usar para generar perfiles para los ensamblados optimizados. Recursively add projects' ReferencedProjects to solution - Recursively add projects' ReferencedProjects to solution + Agregar recursivamente ReferencedProjects de los proyectos a la solución .NET modify solution file command - .NET modify solution file command + Comando de .NET para modificar el archivo de solución The solution file to operate on. If not specified, the command will search the current directory for one. - The solution file to operate on. If not specified, the command will search the current directory for one. + El archivo de solución sobre el que se va a operar. Si no se especifica, el comando buscará uno en el directorio actual. SLN_FILE - SLN_FILE + SLN_FILE The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + El archivo de proyecto o solución donde operar. Si no se especifica un archivo, el comando buscará uno en el directorio actual. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Proyecto o solución o archivo de C# (programa basado en archivos) en el que se va a operar. Si no se especifica un archivo, el comando buscará en el directorio actual un proyecto o una solución. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROYECTO | SOLUCIÓN | ARCHIVO Source - Source + Origen The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. - The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. + Origen del paquete que se va a buscar. Puede pasar varias opciones '--source' para buscar varios orígenes de paquetes. Ejemplo: '--source https://api.nuget.org/v3/index.json'. Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. - Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. + Almacena los ensamblados especificados para la plataforma .NET. De forma predeterminada, estos se optimizarán para el tiempo de ejecución y la plataforma de destino. The target framework to store packages for. The target framework has to be specified in the project file. - The target framework to store packages for. The target framework has to be specified in the project file. + La plataforma de destino para la que se almacenan los paquetes. La plataforma de destino se debe especificar en el archivo de proyecto. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to store the given assemblies in. - The output directory to store the given assemblies in. + El directorio de salida en el que se almacenarán los ensamblados especificados. The target runtime to store packages for. - The target runtime to store packages for. + El entorno tiempo de ejecución de destino para el que se almacenan los paquetes. Specify a temporary directory for this command to download and extract NuGet packages (must be secure). - Specify a temporary directory for this command to download and extract NuGet packages (must be secure). + Especifique un directorio temporal para que este comando descargue y extraiga paquetes NuGet (debe ser seguro). Displays a summary of what would happen if the given command line were run if it would result in a template creation. - Displays a summary of what would happen if the given command line were run if it would result in a template creation. + Muestra un resumen de lo que sucede si se ejecuta la línea de comandos dada si se crea una plantilla. Forces content to be generated even if it would change existing files. - Forces content to be generated even if it would change existing files. + Fuerza la generación de contenido aunque cambie a los archivos existentes. The name for the output being created. If no name is specified, the name of the output directory is used. - The name for the output being created. If no name is specified, the name of the output directory is used. + Nombre de la salida que se va a crear. Si no se especifica ningún nombre, se usa el nombre del directorio de salida. Disables checking for the template package updates when instantiating a template. - Disables checking for the template package updates when instantiating a template. + Deshabilita la comprobación de las actualizaciones del paquete de plantillas al crear una plantilla de forma instantánea. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The configuration to use for running tests. The default for most projects is 'Debug'. - The configuration to use for running tests. The default for most projects is 'Debug'. + La configuración que se usará para ejecutar pruebas. El valor predeterminado para la mayoría de los proyectos es "Debug". The target framework to run tests for. The target framework must also be specified in the project file. - The target framework to run tests for. The target framework must also be specified in the project file. + La plataforma de destino para la que se ejecutan pruebas. La plataforma de destino se debe especificar en el archivo de proyecto. The target runtime to test for. - The target runtime to test for. + El tiempo de ejecución de destino para probar. Install or work with tools that extend the .NET experience. - Install or work with tools that extend the .NET experience. + Instale o trabaje con herramientas que mejoran la experiencia de uso de .NET. Executes a tool from source without permanently installing it. - Executes a tool from source without permanently installing it. + Ejecuta una herramienta desde el origen sin instalarla permanentemente. Add an additional NuGet package source to use during installation. - Add an additional NuGet package source to use during installation. + Agrega un origen de paquetes de NuGet para utilizar durante la instalación. ADDSOURCE - ADDSOURCE + ADDSOURCE Install global or local tool. Local tools are added to manifest and restored. - Install global or local tool. Local tools are added to manifest and restored. + Instalar herramienta global o local. Las herramientas locales se agregan al manifiesto y se restauran. The NuGet configuration file to use. - The NuGet configuration file to use. + Archivo de configuración de NuGet que debe usarse. FILE - FILE + ARCHIVO The target framework to install the tool for. - The target framework to install the tool for. + La plataforma de destino para la que se instala la herramienta. FRAMEWORK - FRAMEWORK + MARCO Install the tool for the current user. - Install the tool for the current user. + Instalar la herramienta para el usuario actual. Install the tool and add to the local tool manifest (default). - Install the tool and add to the local tool manifest (default). + Instalar la herramienta y agregar al manifiesto de la herramienta local (predeterminado). Path to the manifest file. - Path to the manifest file. + Ruta de acceso al archivo de manifiesto. PATH - PATH + PATH Replace all NuGet package sources to use during installation with these. - Replace all NuGet package sources to use during installation with these. + Reemplazar todos los orígenes de paquetes NuGet que se usarán durante la instalación por estos. SOURCE - SOURCE + ORIGEN The directory where the tool will be installed. The directory will be created if it does not exist. - The directory where the tool will be installed. The directory will be created if it does not exist. + El directorio donde se instalará la herramienta. Si no existe, se creará el directorio. PATH - PATH + PATH The version of the tool package to install. - The version of the tool package to install. + La versión del paquete de herramientas para instalar. VERSION - VERSION + VERSIÓN List tools installed globally or locally. - List tools installed globally or locally. + Mostrar las herramientas instaladas local o globalmente. The output format for the list of tools. - The output format for the list of tools. + Formato de salida de la lista de herramientas. List tools installed for the current user. - List tools installed for the current user. + Mostrar las herramientas instaladas para el usuario actual. List the tools installed in the local tool manifest. - List the tools installed in the local tool manifest. + Mostrar las herramientas instaladas en el manifiesto de la herramienta local. The NuGet Package Id of the tool to list - The NuGet Package Id of the tool to list + Id del paquete NuGet de la herramienta que se va a listar PACKAGE_ID - PACKAGE_ID + PACKAGE_ID The directory containing the tools to list. - The directory containing the tools to list. + El directorio que contiene las herramientas que se van a enumerar. Restore tools defined in the local tool manifest. - Restore tools defined in the local tool manifest. + Restaurar las herramientas definidas en el manifiesto de la herramienta local. Path to the manifest file. - Path to the manifest file. + Ruta de acceso al archivo de manifiesto. Arguments forwarded to the tool - Arguments forwarded to the tool + Argumentos reenviados a la herramienta Run a local tool. Note that this command cannot be used to run a global tool. - Run a local tool. Note that this command cannot be used to run a global tool. + Ejecute una herramienta local. Tenga en cuenta que este comando no se puede usar para ejecutar una herramienta global. Search dotnet tools in nuget.org - Search dotnet tools in nuget.org + Busca las herramientas dotnet en nuget.org. Include pre-release packages. - Include pre-release packages. + Incluir paquetes de versión preliminar. SEARCH_TERM - SEARCH_TERM + SEARCH_TERM Search term from package id or package description. Require at least one character. - Search term from package id or package description. Require at least one character. + Término de búsqueda del identificador del paquete o de la descripción del paquete. Se requiere al menos un carácter. Skip - Skip + Omitir The number of results to skip, for pagination. - The number of results to skip, for pagination. + Número de resultados que se van a omitir, para la paginación. Take - Take + Take The number of results to return, for pagination. - The number of results to return, for pagination. + Número de resultados que se van a devolver, para la paginación. Uninstall a global tool or local tool. - Uninstall a global tool or local tool. + Desinstalar una herramienta global o local. Uninstall the tool from the current user's tools directory. - Uninstall the tool from the current user's tools directory. + Desinstala la herramienta del directorio de herramientas del usuario actual. Uninstall the tool and remove it from the local tool manifest. - Uninstall the tool and remove it from the local tool manifest. + Desinstalar la herramienta y quitarla del manifiesto de la herramienta local. Path to the manifest file. - Path to the manifest file. + Ruta de acceso al archivo de manifiesto. The directory containing the tool to uninstall. - The directory containing the tool to uninstall. + El directorio que contiene la herramienta que se va a instalar. Update a global or local tool. - Update a global or local tool. + Actualizar una herramienta global o local. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + No se reconoce el comando o el argumento "{0}" Update all tools. - Update all tools. + Actualizar todas las herramientas. Controls whether updates should look for workload sets or the latest version of each individual manifest. - Controls whether updates should look for workload sets or the latest version of each individual manifest. + Controla si las actualizaciones deben buscar conjuntos de cargas de trabajo o la versión más reciente de cada manifiesto individual. Shut down the VB/C# compiler build server. - Shut down the VB/C# compiler build server. + Apaga el servidor de compilación del compilador de VB o C#. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + No se puede especificar --version cuando el argumento del paquete ya contiene una versión. {Locked="--version"} Verbosity - Verbosity + Nivel de detalle Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` - Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` + Muestra esta cantidad de detalles en la salida: 'normal', 'mínimo', 'detallado'. El valor predeterminado es "normal" Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Establece el nivel de detalle de MSBuild. Los valores permitidos son q[uiet], m[inimal], n[ormal], d[etailed] y diag[nostic]. Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. - Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. + Permite establecer el nivel de detalle. Los valores permitidos son q[uiet], m[inimal], n[ormal] y diag[nostic]. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX Removes workload components that may have been left behind from previous updates and uninstallations. - Removes workload components that may have been left behind from previous updates and uninstallations. + Quita los componentes de carga de trabajo que pueden haberse dejado de las actualizaciones y desinstalaciones anteriores. Install or work with workloads that extend the .NET experience. - Install or work with workloads that extend the .NET experience. + Instale o trabaje con cargas de trabajo que mejoran la experiencia de uso de .NET. Modify or display workload configuration values. To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" - Modify or display workload configuration values. -To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" + Modificar o mostrar los valores de configuración de la carga de trabajo. +Para mostrar un valor, especifique la opción de línea de comandos correspondiente sin proporcionar un valor. Por ejemplo: "dotnet workload config --update-mode" Start the elevated server process to facilitate MSI based installations. - Start the elevated server process to facilitate MSI based installations. + Inicie el proceso de servidor elevado para facilitar las instalaciones basadas en MSI. Shows a history of workload installation actions. - Shows a history of workload installation actions. + Muestra un historial de acciones de instalación de cargas de trabajo. The NuGet package ID of the workload to install. - The NuGet package ID of the workload to install. + El identificador del paquete NuGet de la carga de trabajo que se va a instalar. WORKLOAD_ID - WORKLOAD_ID + WORKLOAD_ID The text to search for in the IDs and descriptions of available workloads. - The text to search for in the IDs and descriptions of available workloads. + Texto que se buscará en los id. y las descripciones de las cargas de trabajo disponibles. SEARCH_STRING - SEARCH_STRING + SEARCH_STRING Display information about installed workloads. - Display information about installed workloads. + Mostrar información sobre las cargas de trabajo instaladas. Install one or more workloads. - Install one or more workloads. + Instale una o varias cargas de trabajo. The NuGet configuration file to use. - The NuGet configuration file to use. + Archivo de configuración de NuGet que debe usarse. FILE - FILE + ARCHIVO The NuGet package source to use during the restore. To specify multiple sources, repeat the option. - The NuGet package source to use during the restore. To specify multiple sources, repeat the option. + Origen del paquete NuGet que se va a usar durante la restauración. Para especificar varios orígenes, repita la opción. SOURCE - SOURCE + ORIGEN The version of the SDK. - The version of the SDK. + Versión del SDK. VERSION - VERSION + VERSIÓN List workloads available. - List workloads available. + Enumera las cargas de trabajo disponibles. Repair workload installations. - Repair workload installations. + Repara las instalaciones de cargas de trabajo. Restore workloads required for a project. - Restore workloads required for a project. + Restaure las cargas de trabajo necesarias para un proyecto. Search for available workloads. - Search for available workloads. + Permite buscar cargas de trabajo disponibles. A workload version to display or one or more workloads and their versions joined by the '@' character. - A workload version to display or one or more workloads and their versions joined by the '@' character. + Una versión de carga de trabajo para mostrar o una o varias cargas de trabajo y sus versiones unidas por el carácter "@". Uninstall one or more workloads. - Uninstall one or more workloads. + Desinstale una o varias cargas de trabajo. Update all installed workloads. - Update all installed workloads. + Actualice todas las cargas de trabajo instaladas. WORKLOAD_VERSION - WORKLOAD_VERSION + WORKLOAD_VERSION Output workload manifest versions associated with the provided workload version. - Output workload manifest versions associated with the provided workload version. + Versiones del manifiesto de carga de trabajo de salida asociadas a la versión de carga de trabajo proporcionada. Display the currently installed workload version. - Display the currently installed workload version. + Muestra la versión de la carga de trabajo que está instalada actualmente. Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Acepte todas las solicitudes de confirmación mediante "sí." The friendly name of the data collector to use for the test run. More info here: https://aka.ms/vstest-collect - The friendly name of the data collector to use for the test run. - More info here: https://aka.ms/vstest-collect + Nombre descriptivo del recopilador de datos que se usará para la serie de pruebas. + Más información aquí: https://aka.ms/vstest-collect DATA_COLLECTOR_NAME - DATA_COLLECTOR_NAME + DATA_COLLECTOR_NAME diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.fr.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.fr.xlf index 6a5a505079c8..d4bd6c8e3b51 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.fr.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.fr.xlf @@ -4,162 +4,162 @@ Only update advertising manifests. - Only update advertising manifests. + Mettre à jour uniquement les manifestes de publicité Add one or more projects to a solution file. - Add one or more projects to a solution file. + Ajoutez un ou plusieurs projets à un fichier solution. The paths to the projects to add to the solution. - The paths to the projects to add to the solution. + Chemins des projets à ajouter à la solution. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH The destination solution folder path to add the projects to. - The destination solution folder path to add the projects to. + Chemin de dossier solution de destination où les projets doivent être ajoutés. Allow package downgrade when installing a .NET tool package. - Allow package downgrade when installing a .NET tool package. + Autoriser le passage à une version antérieure du package lors de l’installation d’un package d’outils .NET. ARCH - ARCH + ARC The target architecture. - The target architecture. + L’architecture cible ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Le chemin des artefacts. Toutes les sorties du projet, y compris les sorties de build, de publication et de pack, iront dans des sous-dossiers sous le chemin spécifié. .NET Builder - .NET Builder + Générateur .NET The configuration to use for building the project. The default for most projects is 'Debug'. - The configuration to use for building the project. The default for most projects is 'Debug'. + Configuration à utiliser pour la génération du projet. La valeur par défaut pour la plupart des projets est 'Debug'. The target framework to build for. The target framework must also be specified in the project file. - The target framework to build for. The target framework must also be specified in the project file. + Framework cible pour lequel la génération est effectuée. Le framework cible doit également être spécifié dans le fichier projet. The output directory to place built artifacts in. - The output directory to place built artifacts in. + Répertoire de sortie dans lequel placer les artefacts générés. The target runtime to build for. - The target runtime to build for. + Runtime cible pour lequel la génération est effectuée. Interact with servers started from a build. - Interact with servers started from a build. + Interagissez avec les serveurs démarrés à partir d'une build. Shuts down build servers that are started from dotnet. By default, all servers are shut down. - Shuts down build servers that are started from dotnet. By default, all servers are shut down. + Arrête les serveurs de builds démarrés à partir de dotnet. Par défaut, tous les serveurs sont arrêtés. Cannot specify both the {0} and {1} arguments. - Cannot specify both the {0} and {1} arguments. + Impossible de spécifier à la fois les arguments {0} et {1}. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Échec de la résolution de l’identificateur d’exécution actuel Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + La spécification des options « -r |--Runtime » et « -a |--Arch » n’est pas prise en charge. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + La spécification des options « -r |--Runtime » et « os » n’est pas prise en charge. Causes clean to remove and uninstall all workload components from all SDK versions. - Causes clean to remove and uninstall all workload components from all SDK versions. + Entraîne la suppression et la désinstallation de tous les composants de charge de travail de toutes les versions du Kit de développement logiciel (SDK). .NET Clean Command - .NET Clean Command + Commande de nettoyage .NET OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The directory containing the build artifacts to clean. - The directory containing the build artifacts to clean. + Répertoire contenant les artefacts de build à nettoyer. The configuration to clean for. The default for most projects is 'Debug'. - The configuration to clean for. The default for most projects is 'Debug'. + Configuration pour laquelle le nettoyage est effectué. La valeur par défaut pour la plupart des projets est 'Debug'. Removes artifacts created for file-based apps - Removes artifacts created for file-based apps + Supprime les artefacts créés pour les applications basées sur des fichiers How many days an artifact folder needs to be unused in order to be removed - How many days an artifact folder needs to be unused in order to be removed + Nombre de jours pendant lesquels un dossier d’artefacts doit être inutilisé pour être supprimé Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Détermine les modifications sans réellement modifier le système de fichiers The target framework to clean for. The target framework must also be specified in the project file. - The target framework to clean for. The target framework must also be specified in the project file. + Framework cible pour lequel le nettoyage est effectué. Le framework cible doit également être spécifié dans le fichier projet. The target runtime to clean for. - The target runtime to clean for. + Runtime cible pour lequel le nettoyage est effectué. Enables collecting crash dump on expected as well as unexpected testhost exit. - Enables collecting crash dump on expected as well as unexpected testhost exit. + Active la collecte des données de vidage sur plantage en cas de sortie attendue et inattendue de testhost. @@ -174,22 +174,22 @@ The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downlo To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. Implies --blame. - Runs the tests in blame mode and collects a crash dump when the test host exits unexpectedly. This option depends on the version of .NET used, the type of error, and the operating system. + Exécute les tests en mode blame (responsabilité) et collecte un vidage sur incident lorsque l’hôte de test se ferme de manière inattendue. Cette option dépend de la version de .NET utilisée, du type d’erreur et du système d’exploitation. -For exceptions in managed code, a dump will be automatically collected on .NET 5.0 and later versions. It will generate a dump for testhost or any child process that also ran on .NET 5.0 and crashed. Crashes in native code will not generate a dump. This option works on Windows, macOS, and Linux. +Pour les exceptions dans le code managé, une copie de sauvegarde est automatiquement collectée sur .NET 5.0 et versions ultérieures. Cela génère une sauvegarde pour l’hôte de test ou tout processus enfant qui s’est également exécuté sur .NET 5.0 et s’est arrêté. Les blocages dans le code natif ne génèrent pas de vidage. Cette option fonctionne sur Windows, macOS et Linux. -Crash dumps in native code, or when targetting .NET Framework, or .NET Core 3.1 and earlier versions, can only be collected on Windows, by using Procdump. A directory that contains procdump.exe and procdump64.exe must be in the PATH or PROCDUMP_PATH environment variable. +Les vidages sur incident dans du code natif, ou lors du ciblage de .NET Framework, ou .NET Core 3.1 et versions antérieures, peuvent uniquement être collectés sur Windows, à l’aide de Procdump. Un répertoire qui contient procdump.exe et procdump64.exe doit se trouver dans la variable d’environnement PATH ou PROCDUMP_PATH. -The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downloads/procdump +Les outils peuvent être téléchargés ici : https://docs.microsoft.com/sysinternals/downloads/procdump -To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. +Pour collecter un vidage sur incident à partir d’une application native exécutée sur .NET 5.0 ou version ultérieure, l’utilisation de Procdump peut être forcée en définissant la variable d’environnement VSTEST_DUMP_FORCEPROCDUMP sur 1. -Implies --blame. +Implique --blame. The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. - The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. + Type de vidage sur incident à collecter. Les valeurs prises en charge sont 'Complet' (par défaut) et 'Mini'. Implique --blame-crash. @@ -207,30 +207,30 @@ Example: Timeout the test run when a test takes more than 20 minutes and collect hang dump. dotnet test --blame-hang-timeout 20min - Runs the tests in blame mode. This option is helpful in isolating problematic tests that cause the test host to crash or hang, but it does not create a memory dump by default. + Exécute les tests en mode blame (responsabilité). Cette option permet d'isoler les tests problématiques à l'origine d'un plantage ou d'un blocage sur l'hôte de test, mais cela ne crée pas de vidage de mémoire par défaut. -When a crash is detected, it creates an sequence file in TestResults/guid/guid_Sequence.xml that captures the order of tests that were run before the crash. +Quand un plantage est détecté, un fichier de séquence est créé dans TestResults/guid/guid_Sequence.xml pour capturer l'ordre des tests exécutés avant le plantage. -Based on the additional settings, hang dump or crash dump can also be collected. +En fonction de paramètres supplémentaires, des données de vidage sur blocage ou de vidage sur plantage peuvent également être collectées. -Example: - Timeout the test run when test takes more than the default timeout of 1 hour, and collect crash dump when the test host exits unexpectedly. - (Crash dumps require additional setup, see below.) +Exemple : + Définissez le délai d'expiration de la série de tests quand les tests prennent plus de temps que le délai par défaut (1 heure), et collectez les données de vidage sur plantage quand l'hôte de test se ferme de manière inattendue. + (Les vidages sur plantage nécessitent une configuration supplémentaire, comme vous pouvez le voir ci-dessous.) dotnet test --blame-hang --blame-crash -Example: - Timeout the test run when a test takes more than 20 minutes and collect hang dump. - dotnet test --blame-hang-timeout 20min +Exemple : + Définissez le délai d'expiration de la série de tests quand un test prend plus de 20 minutes, et collectez les données de vidage sur blocage. + dotnet test --blame-hang-timeout 20 min Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. - Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. + Exécutez les tests en mode blame (responsabilité) et activez la collecte des données de vidage sur blocage quand le test dépasse le délai d'expiration spécifié. The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. - The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. + Type de vidage sur incident à collecter. Les valeurs prises en charge sont 'Complet' (par défaut), 'Mini' et 'Aucun'. Quand 'Aucun' est utilisé, l’hôte de test se termine à l’expiration du délai d’attente, mais aucune copie de sauvegarde n’est collectée. Implique --blame-hang. @@ -238,67 +238,67 @@ Example: The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, For MSTest before 2.2.4, the timeout is used for all testcases. - Per-test timeout, after which hang dump is triggered and the testhost process is terminated. Default is 1h. -The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. -When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, -For MSTest before 2.2.4, the timeout is used for all testcases. + Délai d’expiration par test, après celui-ci, le vidage de blocage est déclenché et le processus hôte de test est terminé. La valeur par défaut est 1h. +La valeur du délai d’attente est spécifiée au format suivant : 1,5 h/ 90 m / 5 400 / 54 000 000 ms. Si aucune unité n'est utilisée (par exemple 5 400 000), la valeur est supposée être en millisecondes. +Lorsqu’elle est utilisée avec des tests pilotés par les données, le comportement du délai d’attente dépend de l’adaptateur de test utilisé. Pour xUnit, NUnit et MSTest 2.2.4+ le délai d’expiration est renouvelé après chaque cas de test, +Pour MSTest avant la version 2.2.4, le délai d’expiration est utilisé pour tous les cas de test. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + Chemin du fichier config NuGet à utiliser. Nécessite l'option '--outdated', '--deprecated' ou '--vulnerable'. Specifies a testconfig.json file. - Specifies a testconfig.json file. + Spécifie un fichier testconfig.json. FILE - FILE + FILE The NuGet configuration file to use. - The NuGet configuration file to use. + Fichier de configuration NuGet à utiliser. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE Use current runtime as the target runtime. - Use current runtime as the target runtime. + Utilisez le runtime actuel en tant que runtime cible. Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. - Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. + Liste les packages qui ont été dépréciés. Impossible à combiner avec les options '--vulnerable' ou '--outdated'. Output directory of the diagnostic logging. If not specified the file will be generated inside the default 'TestResults' directory. - Output directory of the diagnostic logging. -If not specified the file will be generated inside the default 'TestResults' directory. + Répertoire de sortie de la journalisation des diagnostics. +S’il n’est pas spécifié, le fichier est généré dans le répertoire « TestResults » par défaut. DIAGNOSTIC_DIR - DIAGNOSTIC_DIR + DIAGNOSTIC_DIR Prevent restoring multiple projects in parallel. - Prevent restoring multiple projects in parallel. + Empêche la restauration de plusieurs projets en parallèle. @@ -312,11 +312,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Définit la valeur d’une variable d’environnement. +Crée la variable si elle n’existe pas, et la remplace si elle existe. +Vous pouvez spécifier cet argument plusieurs fois pour fournir plusieurs variables. -Examples: +Exemples : -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -326,74 +326,74 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" EXPRESSION - EXPRESSION + EXPRESSION Path to the file-based program. - Path to the file-based program. + Chemin vers le programme basé sur des fichiers. Force all dependencies to be resolved even if the last restore was successful. This is equivalent to deleting project.assets.json. - Force all dependencies to be resolved even if the last restore was successful. -This is equivalent to deleting project.assets.json. + Forcez la résolution de toutes les dépendances même si la dernière restauration a réussi. +Cela équivaut à supprimer project.assets.json. Specifies the output format type for the list packages command. - Specifies the output format type for the list packages command. + Spécifie le type de format de sortie pour la commande list packages. Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. + Prenez en compte uniquement les packages avec un numéro de version majeure correspondant quand vous recherchez des packages plus récents. Nécessite l'option '--outdated'. Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. + Prenez en compte uniquement les packages avec des numéros de version majeure et mineure correspondants quand vous recherchez des packages plus récents. Nécessite l'option '--outdated'. Treat package source failures as warnings. - Treat package source failures as warnings. + Considérez les échecs de la source du package comme des avertissements. Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. - Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. + Incluez les fichiers PDB et les fichiers sources. Les fichiers sources vont dans le dossier 'src' du package NuGet résultant. Include packages with symbols in addition to regular packages in output directory. - Include packages with symbols in addition to regular packages in output directory. + Incluez les packages avec des symboles en plus des packages classiques dans le répertoire de sortie. List the discovered tests instead of running the tests. - List the discovered tests instead of running the tests. + Listez les tests découverts au lieu d'exécuter les tests. LOCK_FILE_PATH - LOCK_FILE_PATH + LOCK_FILE_PATH Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. - Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. + Emplacement de sortie où le fichier de verrouillage du projet est écrit. Par défaut, le chemin est « PROJECT_ROOT\packages.lock.json ». Don't allow updating project lock file. - Don't allow updating project lock file. + Ne pas autoriser la mise à jour du fichier de verrouillage du projet. @@ -402,223 +402,223 @@ This is equivalent to deleting project.assets.json. Log in trx format using a unique file name: --logger trx Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" See https://aka.ms/vstest-report for more information on logger arguments. - The logger to use for test results. - Examples: - Log in trx format using a unique file name: --logger trx - Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" - See https://aka.ms/vstest-report for more information on logger arguments. + Journaliseur à utiliser pour les résultats des tests. + Exemples : + Journal au format trx avec un nom de fichier unique : --logger trx + Journal au format trx avec le nom de fichier spécifié : --logger "trx;LogFileName=<TestResults.trx>" + Pour plus d'informations sur les arguments du journaliseur, consultez https://aka.ms/vstest-report. LOGGER - LOGGER + LOGGER The max number of test modules that can run in parallel. - The max number of test modules that can run in parallel. + Nombre maximal de modules de test qui peuvent s’exécuter en parallèle. Specifies the minimum number of tests that are expected to run. - Specifies the minimum number of tests that are expected to run. + Spécifie le nombre minimal de tests censés s’exécuter. Disable ANSI output. - Disable ANSI output. + Désactivez la sortie ANSI. Do not build the project before testing. Implies --no-restore. - Do not build the project before testing. Implies --no-restore. + Ne pas générer le projet avant les tests. Implique --no-restore. Do not build the project before packing. Implies --no-restore. - Do not build the project before packing. Implies --no-restore. + Ne pas générer le projet avant la compression. Implique --no-restore. Do not cache packages and http requests. - Do not cache packages and http requests. + Ne mettez pas en cache les packages et les requêtes HTTP. Do not restore project-to-project references and only restore the specified project. - Do not restore project-to-project references and only restore the specified project. + Ne restaurez pas les références de projet à projet, et restaurez uniquement le projet spécifié. Disable Http Caching for packages. - Disable Http Caching for packages. + Désactiver la mise en cache HTTP pour les packages. Disable progress reporting. - Disable progress reporting. + Désactiver les rapports d'avancement. Do not restore before running the command. - Do not restore before running the command. + Ne pas restaurer avant d’exécuter la commande. NUMBER - NUMBER + NUMBER Force conversion even if there are malformed directives. - Force conversion even if there are malformed directives. + Forcer la conversion même s’il existe des directives incorrectes. Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. - Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. + Liste les packages qui ont versions plus récentes. Impossible à combiner avec les options '--deprecated' ou '--vulnerable'. The output directory to place built artifacts in. - The output directory to place built artifacts in. + Répertoire de sortie dans lequel placer les artefacts générés. Specifies the version of machine-readable output. Requires the '--format json' option. - Specifies the version of machine-readable output. Requires the '--format json' option. + Spécifie la version de la sortie lisible par l’ordinateur. Nécessite l’option « --format json ». PACKAGE_NAME - PACKAGE_NAME + PACKAGE_NAME PACKAGE_DIR - PACKAGE_DIR + PACKAGE_DIR The directory to restore packages to. - The directory to restore packages to. + Répertoire de restauration des packages. PACKAGES_DIR - PACKAGES_DIR + PACKAGES_DIR The directory to restore packages to. - The directory to restore packages to. + Répertoire de restauration des packages. LOG_FILE - LOG_FILE + LOG_FILE RESULTS_DIR - RESULTS_DIR + RESULTS_DIR Enable verbose logging to the specified file. - Enable verbose logging to the specified file. + Activez la journalisation détaillée dans le fichier spécifié. Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. - Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. + Prenez en compte les packages avec des préversions quand vous recherchez des packages plus récents. Nécessite l'option '--outdated'. Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Définit le chemin d’accès du fichier de projet à exécuter. Utiliser le chemin du fichier projet ou celui du répertoire contenant ce fichier. Si rien n’est spécifié, la valeur par défaut est le répertoire actif. Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Définit le chemin d’accès du projet ou du fichier solution à tester. Utiliser le chemin du fichier projet ou celui du répertoire contenant ce fichier. Si rien n’est spécifié, la valeur par défaut est le répertoire actif. PROJECT_OR_SOLUTION_PATH - PROJECT_OR_SOLUTION_PATH + PROJECT_OR_SOLUTION_PATH Forces restore to reevaluate all dependencies even if a lock file already exists. - Forces restore to reevaluate all dependencies even if a lock file already exists. + Force la restauration à réévaluer toutes les dépendances, même s'il existe déjà un fichier de verrouillage. The directory where the test results will be placed. The specified directory will be created if it does not exist. - The directory where the test results will be placed. -The specified directory will be created if it does not exist. + Répertoire où les résultats des tests vont être placés. +Le répertoire spécifié est créé, s'il n'existe pas déjà. ROOT_PATH - ROOT_PATH + ROOT_PATH RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER The target runtime to restore packages for. - The target runtime to restore packages for. + Runtime cible pour lequel la restauration des packages est effectuée. Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. - Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. + Définissez l'indicateur de maintenance dans le package. Pour plus d'informations, consultez https://aka.ms/nupkgservicing. The settings file to use when running tests. - The settings file to use when running tests. + Fichier de paramètres à utiliser durant l'exécution des tests. SETTINGS_FILE - SETTINGS_FILE + SETTINGS_FILE Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. - Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. + Définit le chemin d’accès du fichier solution à tester. Utiliser le chemin du fichier solution ou celui du répertoire contenant ce fichier. Si rien n’est spécifié, la valeur par défaut est le répertoire actif. SOLUTION_PATH - SOLUTION_PATH + SOLUTION_PATH SOURCE - SOURCE + SOURCE The NuGet package source to use for the restore. - The NuGet package source to use for the restore. + Source de package NuGet à utiliser pour la restauration. ADAPTER_PATH - ADAPTER_PATH + ADAPTER_PATH The path to the custom adapters to use for the test run. - The path to the custom adapters to use for the test run. + Chemin des adaptateurs personnalisés à utiliser pour la série de tests. @@ -629,18 +629,18 @@ The specified directory will be created if it does not exist. Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" See https://aka.ms/vstest-filtering for more information on filtering support. - Run tests that match the given expression. - Examples: - Run tests with priority set to 1: --filter "Priority = 1" - Run a test with the specified full name: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" - Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" - See https://aka.ms/vstest-filtering for more information on filtering support. + Permet d'exécuter les tests qui correspondent à l'expression indiquée. + Exemples : + Exécuter les tests de priorité 1 : --filter "Priority = 1" + Exécuter un test avec le nom complet spécifié : --filter "FullyQualifiedName=Namespace.ClassName.MethodName" + Exécuter les tests qui contiennent le nom spécifié : --ffilter "FullyQualifiedName~Namespace.Class" + Pour plus d'informations sur la prise en charge du filtrage, consultez https://aka.ms/vstest-filtering. EXPRESSION - EXPRESSION + EXPRESSION @@ -655,827 +655,827 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Définit la valeur d'une variable d'environnement. +Crée la variable si elle n'existe pas, et la remplace si elle existe. +Cela entraîne l'exécution forcée des tests dans un processus isolé. +Vous pouvez spécifier cet argument plusieurs fois pour fournir plusieurs variables. -Examples: +Exemples : -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="valeur avec des espaces" +-e VARIABLE="valeur;séparée;par;des;points;virgules" -e VAR1=abc -e VAR2=def -e VAR3=ghi Run tests for the specified test modules. - Run tests for the specified test modules. + Exécutez les tests pour les modules de test spécifiés. The test modules have the specified root directory. - The test modules have the specified root directory. + Les modules de test ont le répertoire racine spécifié. Verbosity of test output. - Verbosity of test output. + Verbosité de la sortie de test. Lists transitive and top-level packages. - Lists transitive and top-level packages. + Liste les packages transitifs et de niveau supérieur. Test runner '{0}' is not supported. - Test runner '{0}' is not supported. + Le test runner « {0} » n’est pas pris en charge. Enables project lock file to be generated and used with restore. - Enables project lock file to be generated and used with restore. + Permet au fichier de verrouillage du projet d'être généré et utilisé avec la restauration. VERSION - VERSION + VERSION The version of the package to add. - The version of the package to add. + Version du package à ajouter. Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Définissez la valeur de la propriété $(VersionSuffix) à utiliser durant la génération du projet. Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. - Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. + Liste les packages qui ont vulnérabilités. Impossible à combiner avec les options '--deprecated' ou '--outdated'. The SDK command to launch online help for. - The SDK command to launch online help for. + Commande de kit SDK pour laquelle l'aide en ligne est lancée. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Permet à la commande de s'arrêter et d'attendre une entrée ou une action de l'utilisateur (par exemple pour effectuer une authentification). The command name of the tool to run. - The command name of the tool to run. + Nom de commande de l'outil à exécuter. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME The device identifier to use for running the application. - The device identifier to use for running the application. + L’identifiant de l’appareil à utiliser pour exécuter l’application. DEVICE - DEVICE + APPAREIL The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). - The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). + Chemin de l’application basée sur des fichiers à exécuter (peut également être transmis en tant que premier argument s’il n’existe pas de projet dans le répertoire courant). FILE_PATH - FILE_PATH + FILE_PATH The name of the launch profile (if any) to use when launching the application. - The name of the launch profile (if any) to use when launching the application. + Nom du profil de lancement (le cas échéant) à utiliser au lancement de l'application. LAUNCH_PROFILE - LAUNCH_PROFILE + LAUNCH_PROFILE List available devices for running the application. - List available devices for running the application. + Lister les appareils disponibles pour exécuter l’application. Do not build the project before running. Implies --no-restore. - Do not build the project before running. Implies --no-restore. + Ne pas générer le projet avant l'exécution. Implique --no-restore. {Locked="--no-restore"} Skip up to date checks and always build the program before running. - Skip up to date checks and always build the program before running. + Ignorez les vérifications à jour et générez toujours le programme avant de l’exécuter. Do not use arguments specified in launch profile to run the application. - Do not use arguments specified in launch profile to run the application. + N’utilisez pas les arguments spécifiés dans le profil de lancement pour exécuter l’application. Do not attempt to use launchSettings.json or [app].run.json to configure the application. - Do not attempt to use launchSettings.json or [app].run.json to configure the application. + N’essayez pas d’utiliser launchSettings.json ou [app].run.json pour configurer l’application. {Locked="launchSettings.json"}{Locked=".run.json"} PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Permet d'installer les packages de préversion. Creates an alias for instantiate command with a certain set of arguments. - Creates an alias for instantiate command with a certain set of arguments. + Crée un alias pour instancier la commande avec un certain ensemble d’arguments. Displays defined aliases. - Displays defined aliases. + Affiche les alias définis. Creates or displays defined aliases. - Creates or displays defined aliases. + Crée ou affiche des alias définis. Provides the details for specified template package. The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. - - Provides the details for specified template package. - The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. + + Fournit les détails du package de modèle spécifié. + La commande vérifie si le package est installé localement, s'il n'a pas été trouvé, il recherche les flux NuGet configurés. NuGet package ID or path to folder or NuGet package to install. To install the NuGet package of certain version, use <package ID>::<version>. - NuGet package ID or path to folder or NuGet package to install. -To install the NuGet package of certain version, use <package ID>::<version>. + ID de package NuGet ou chemin d’accès au dossier ou au package NuGet à installer. +Pour installer le package NuGet d’une certaine version, utilisez <package ID>::<version>. Installs a template package. - Installs a template package. + Installe un package de modèle. A short name of the template to create. - A short name of the template to create. + Nom court du modèle à créer Template specific options to use. - Template specific options to use. + Options spécifiques au modèle à utiliser Instantiates a template with given short name. An alias of 'dotnet new <template name>'. - Instantiates a template with given short name. An alias of 'dotnet new <template name>'. + Instancie un modèle avec le nom court donné. Alias de « dotnet new <template name> ». do not translate 'dotnet new <template name>' Checks the currently installed template packages for updates. - Checks the currently installed template packages for updates. + Consulte les packages de modèles actuellement installés pour les mises à jour. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Si ce paramètre est spécifié, seuls les modèles correspondant au nom sont affichés. Lists templates containing the specified template name. If no name is specified, lists all templates. - Lists templates containing the specified template name. If no name is specified, lists all templates. + Répertorie les modèles contenant le nom de modèle spécifié. Si aucun nom n’est spécifié, répertorie tous les modèles. Template Instantiation Commands for .NET CLI. - Template Instantiation Commands for .NET CLI. + Commandes d'instanciation de modèle pour .NET CLI If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Si ce paramètre est spécifié, seuls les modèles correspondant au nom sont affichés. Searches for the templates on NuGet.org. - Searches for the templates on NuGet.org. + Recherche les modèles sur NuGet.org. NuGet package ID (without version) or path to folder to uninstall. If command is specified without the argument, it lists all the template packages installed. - NuGet package ID (without version) or path to folder to uninstall. -If command is specified without the argument, it lists all the template packages installed. + ID de package NuGet (sans version) ou chemin d’accès au dossier à désinstaller. +Si la commande est spécifiée sans l’argument, elle répertorie tous les packages de modèles installés. Uninstalls a template package. - Uninstalls a template package. + Désinstalle un package de modèle. Checks the currently installed template packages for update, and install the updates. - Checks the currently installed template packages for update, and install the updates. + Consulte les packages de modèles actuellement installés pour la mise à jour et installez les mises à jour. Only checks for updates and display the template packages to be updated without applying update. - Only checks for updates and display the template packages to be updated without applying update. + Recherche uniquement les mises à jour et affichez les packages de modèles à mettre à jour sans appliquer la mise à jour. Unrecognized command or argument(s): {0}. - Unrecognized command or argument(s): {0}. + Commande ou argument non reconnu : {0} {0} - wrong token or comma-separated tokens (if multiple). Each token is enclosed with single quotes: 'token'. FRAMEWORK - FRAMEWORK + FRAMEWORK ConfigFile - ConfigFile + ConfigFile The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior - The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior + Le fichier config NuGet. Si ce fichier est spécifié, seuls ses paramètres sont utilisés. S’il n’est pas spécifié, la hiérarchie des fichiers config du répertoire actif est utilisée. Pour plus d’informations, consultez https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior CONFIGURATION - CONFIGURATION + CONFIGURATION DUMP_TYPE - DUMP_TYPE + DUMP_TYPE Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed - Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed + Créez un manifeste d'outil si aucun n'est trouvé lors de l'installation de l'outil. Pour plus d'informations sur la localisation des manifestes, voir https://aka.ms/dotnet/tools/create-manifest-if-needed Use current runtime as the target runtime. - Use current runtime as the target runtime. + Utilisez le runtime actuel en tant que runtime cible. Show detail result of the query. - Show detail result of the query. + Afficher le résultat détaillé de la requête. Package identifier - Package identifier + Identificateur de paquet Enables diagnostic output. - Enables diagnostic output. + Active la sortie des diagnostics. Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Forcez la commande à ignorer tous les serveurs de build persistants. Disables evaluating project context using MSBuild. - Disables evaluating project context using MSBuild. + Désactive l'évaluation du contexte du projet à l'aide de MSBuild. If present, prevents templates bundled in the SDK from being presented. - If present, prevents templates bundled in the SDK from being presented. + S'il est présent, empêche la présentation des modèles regroupés dans le SDK. .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. + Commande de test .NET pour Microsoft.Testing.Platform (activée via le fichier « global.json »). Cela prend uniquement en charge Microsoft.Testing.Platform et ne prend pas en charge VSTest. Pour plus d'informations, consultez https://aka.ms/dotnet-test. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. + Commande de test .NET pour VSTest. Pour utiliser Microsoft.Testing.Platform, optez pour la commande basée sur Microsoft.Testing.Platform via global.json. Pour plus d'informations, consultez https://aka.ms/dotnet-test. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} DIRECTORY - DIRECTORY + RÉPERTOIRE Download packages needed to install a workload to a folder that can be used for offline installation. - Download packages needed to install a workload to a folder that can be used for offline installation. + Télécharger les packages nécessaires à l’installation d’une charge de travail dans un dossier utilisable pour une installation hors connexion. Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. - Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. + Exiger que le terme de recherche corresponde exactement au nom du package. Entraîne l’omission des options « --take » et « --skip ». The file-based app to operate on. - The file-based app to operate on. + Application basée sur des fichiers sur laquelle effectuer des opérations. Format - Format + Format Format the output accordingly. Either `table`, or `json`. The default value is `table`. - Format the output accordingly. Either `table`, or `json`. The default value is `table`. + Mettre en forme la sortie en conséquence. Soit « table », soit « json ». La valeur par défaut est « table ». Changes the format of outputted workload versions. Can take 'json' or 'list' - Changes the format of outputted workload versions. Can take 'json' or 'list' + Modifie le format des versions de charge de travail générées. Accepte « json » ou « list » FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Publiez votre application en tant qu'application dépendante du framework. Un runtime .NET compatible doit être installé sur la machine cible pour exécuter votre application. FRAMEWORK_VERSION - FRAMEWORK_VERSION + FRAMEWORK_VERSION The Microsoft.NETCore.App package version that will be used to run the assemblies. - The Microsoft.NETCore.App package version that will be used to run the assemblies. + Version du package Microsoft.NETCore.App à utiliser pour exécuter les assemblys. DIRECTORY - DIRECTORY + RÉPERTOIRE Complete the operation from cache (offline). - Complete the operation from cache (offline). + Effectuer l'opération à partir du cache (hors connexion). Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. - Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. + Mettre à jour les charges de travail vers une version précédente spécifiée par l’argument. Utiliser l'« historique de charge de travail dotnet » pour afficher les enregistrements d’historique de charge de travail disponibles. Include workloads installed with earlier SDK versions in update. - Include workloads installed with earlier SDK versions in update. + Ajoutez les charges de travail installées avec les versions postérieures du SDK dans le mise à jour. Update workloads based on specified rollback definition file. - Update workloads based on specified rollback definition file. + Mettez à jour les charges de travail en fonction du fichier de définition de restauration spécifié. DUMP_TYPE - DUMP_TYPE + DUMP_TYPE TIMESPAN - TIMESPAN + TIMESPAN .NET CLI help utility - .NET CLI help utility + Utilitaire d'aide .NET CLI Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. - Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. + Mettre à jour les versions de charge de travail spécifiées dans l’historique sans modifier les charges de travail installées. Les charges de travail actuellement installées seront mises à jour pour correspondre à la version d’historique spécifiée. Place project in root of the solution, rather than creating a solution folder. - Place project in root of the solution, rather than creating a solution folder. + Place le projet à la racine de la solution, au lieu de créer un dossier solution. Allow prerelease workload manifests. - Allow prerelease workload manifests. + Autorisez les manifestes de la charge de travail préliminaire. Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Mise en forme incorrecte des variables d’environnement : {0} WORKING_DIR - WORKING_DIR + WORKING_DIR The working directory used by the command to execute. - The working directory used by the command to execute. + Répertoire de travail utilisé par la commande pour s'exécuter. Invalid version string: {0} - Invalid version string: {0} + Chaîne de version non valide : {0} LEVEL - LEVEL + LEVEL List all projects in a solution file. - List all projects in a solution file. + Listez tous les projets d'un fichier solution. Disables checking if the template meets the constraints to be run. - Disables checking if the template meets the constraints to be run. + Désactive la vérification si le modèle répond aux contraintes à exécuter. Display solution folder paths. - Display solution folder paths. + Afficher les chemins d'accès aux dossiers de solutions. Shut down the MSBuild build server. - Shut down the MSBuild build server. + Arrêtez le serveur de builds MSBuild. MANIFEST - MANIFEST + MANIFEST The path to a target manifest file that contains the list of packages to be excluded from the publish step. - The path to a target manifest file that contains the list of packages to be excluded from the publish step. + Chemin d'un fichier manifeste cible contenant la liste des packages à exclure de l'étape de publication. Generate a .slnx file from a .sln file. - Generate a .slnx file from a .sln file. + Générez un fichier .slnx à partir d’un fichier .sln. .NET Add Command - .NET Add Command + Commande d'ajout .NET List references or packages of a .NET project. - List references or packages of a .NET project. + Listez les références ou les packages d'un projet .NET. .NET Remove Command - .NET Remove Command + Commande de suppression .NET Do not build the project before publishing. Implies --no-restore. - Do not build the project before publishing. Implies --no-restore. + Ne pas générer le projet avant la publication. Implique --no-restore. Do not build project-to-project references and only build the specified project. - Do not build project-to-project references and only build the specified project. + Ne générez pas les références de projet à projet, et générez uniquement le projet spécifié. Do not use incremental building. - Do not use incremental building. + N'utilisez pas de génération incrémentielle. Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + N'affiche pas la bannière de démarrage ni le message de copyright. Do not restore the project before building. - Do not restore the project before building. + Ne restaurez pas le projet avant la génération. OS - OS + Système d'exploitation Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). - Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). + La spécification de l'option de manifeste d'outils (--tool-manifest) est valide uniquement avec l'option locale (--local ou la valeur par défaut). The target operating system. - The target operating system. + Le système d'exploitation cible Specifies a NuGet source to use. - Specifies a NuGet source to use. + Spécifie une source NuGet à utiliser. Filters the templates based on the template author. - Filters the templates based on the template author. + Filtre les modèles en fonction de l'auteur du modèle. Filters the templates based on baseline defined in the template. - Filters the templates based on baseline defined in the template. + Filtre les modèles en fonction de la ligne de base définie dans le modèle. Specifies the columns to display in the output. - Specifies the columns to display in the output. + Spécifie les colonnes à afficher dans la sortie. Displays all columns in the output. - Displays all columns in the output. + Affiche toutes les colonnes dans la sortie. Allows to pause execution in order to attach to the process for debug purposes. - Allows to pause execution in order to attach to the process for debug purposes. + Permet de suspendre l’exécution afin de s’attacher au processus à des fins de débogage. Sets custom settings location. - Sets custom settings location. + Définit l’emplacement des paramètres personnalisés. If specified, removes the template cache prior to command execution. - If specified, removes the template cache prior to command execution. + Si ce paramètre est spécifié, supprime le cache de modèles avant l’exécution de la commande. If specified, resets the settings prior to command execution. - If specified, resets the settings prior to command execution. + Si ce paramètre est spécifié, réinitialise les paramètres avant l’exécution de la commande. If specified, shows the template engine config prior to command execution. - If specified, shows the template engine config prior to command execution. + Si ce paramètre est spécifié, affiche la configuration du moteur de modèle avant l’exécution de la commande. If specified, the settings will be not preserved on file system. - If specified, the settings will be not preserved on file system. + Si ce paramètre est spécifié, les paramètres ne sont pas conservés sur le système de fichiers. Allows installing template packages from the specified sources even if they would override a template package from another source. - Allows installing template packages from the specified sources even if they would override a template package from another source. + Permet d’installer des packages de modèles à partir des sources spécifiées, même si elles remplaceraient un package de modèle à partir d’une autre source. Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Permet à la commande de s'arrêter et d'attendre une entrée ou une action de l'utilisateur (par exemple pour effectuer une authentification). Filters templates based on language. - Filters templates based on language. + Filtre les modèles en fonction de la langue. Location to place the generated output. - Location to place the generated output. + Emplacement pour la sortie générée. Filters the templates based on NuGet package ID. - Filters the templates based on NuGet package ID. + Filtre les modèles en fonction de l’ID de package NuGet. The project that should be used for context evaluation. - The project that should be used for context evaluation. + Projet à utiliser pour l’évaluation du contexte Filters the templates based on the tag. - Filters the templates based on the tag. + Filtre les modèles en fonction de la balise. Filters templates based on available types. Predefined values are "project" and "item". - Filters templates based on available types. Predefined values are "project" and "item". + Filtre les modèles en fonction des types disponibles. Les valeurs prédéfinies sont « Projet » et « élément ». project and item should not be translated Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. - Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. + Les options '--outdated', '--deprecated' et '--vulnerable' ne peuvent pas être combinées. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR .NET Core NuGet Package Packer - .NET Core NuGet Package Packer + Compresseur de package NuGet .NET Core OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place built packages in. - The output directory to place built packages in. + Répertoire de sortie dans lequel placer les packages générés. VERSION - VERSION + VERSION The version of the package to create - The version of the package to create + Version du package à créer The configuration to use for building the package. The default is 'Release'. - The configuration to use for building the package. The default is 'Release'. + Configuration à utiliser pour la génération du package. La valeur par défaut est « Release ». Add a NuGet package reference to the project. - Add a NuGet package reference to the project. + Ajoutez une référence de package NuGet au projet. FRAMEWORK - FRAMEWORK + FRAMEWORK Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Ajoutez la référence uniquement en cas de ciblage d'un framework spécifique. Add the reference without performing restore preview and compatibility check. - Add the reference without performing restore preview and compatibility check. + Ajoutez la référence sans effectuer d'aperçu de restauration ni de vérification de compatibilité. SOURCE - SOURCE + SOURCE The NuGet package source to use during the restore. - The NuGet package source to use during the restore. + Source de package NuGet à utiliser durant la restauration. Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Référence de package sous la forme d’un identificateur de package tel que « {0} » ou d’un identificateur de package et d’une version séparés par « @ », comme « {0}@{1} ». Package reference id and version must not be null. - Package reference id and version must not be null. + L’ID et la version de référence du package ne doivent pas être nuls. List all package references of the project or solution. - List all package references of the project or solution. + Listez toutes les références de package du projet ou de la solution. FRAMEWORK | FRAMEWORK\RID - FRAMEWORK | FRAMEWORK\RID + FRAMEWORK | FRAMEWORK\RID Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. - Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. + Choisit un framework pour afficher ses packages. Utilisez l'option plusieurs fois selon le nombre de frameworks. SOURCE - SOURCE + SOURCE The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + Sources NuGet à utiliser durant la recherche de packages plus récents. Nécessite l'option '--outdated', '--deprecated' ou '--vulnerable'. Package reference - Package reference + Référence de package Remove a NuGet package reference from the project. - Remove a NuGet package reference from the project. + Retirez une référence de package NuGet du projet. The package reference to remove. - The package reference to remove. + Référence de package à supprimer. Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. - Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. + Recherche dans une ou plusieurs sources de packages les packages qui correspondent à un terme de recherche. Si aucune source n’est spécifiée, toutes les sources définies dans NuGet.Config sont utilisées. Include prerelease packages. - Include prerelease packages. + Inclure les packages de préversion. SearchTerm - SearchTerm + SearchTerm Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. - Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. + Terme de recherche pour filtrer les noms de package, les descriptions et les balises. Utilisé comme valeur littérale. Exemple : « recherche de package dotnet some.package ». Voir aussi « --exact-match ». Skip - Skip + Ignorer Number of results to skip, to allow pagination. Default 0. - Number of results to skip, to allow pagination. Default 0. + Nombre de résultats à ignorer pour autoriser la pagination. Valeur par défaut 0. Take - Take + Take Number of results to return. Default 20. - Number of results to return. Default 20. + Nombre de résultats à retourner. Valeur par défaut 20. Only print the list of links to download without downloading. - Only print the list of links to download without downloading. + Imprimer uniquement la liste des liens à télécharger sans télécharger. @@ -1508,15 +1508,15 @@ If command is specified without the argument, it lists all the template packages dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 - 'dotnet workload search version' has three functions depending on its argument: - 1. If no argument is specified, it outputs a list of the latest released workload versions from this feature band. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + « dotnet workload search version » a trois fonctions en fonction de son argument : + 1. Si aucun argument n’est spécifié, il génère une liste des dernières versions de charge de travail publiées à partir de cette bande de fonctionnalités. Prend l’option --take pour spécifier le nombre à fournir et --format pour modifier le format. + Exemple : dotnet workload search version --take 2 --format json [{"workloadVersion":"9.0.201"},{"workloadVersion":"9.0.200.1"}] - 2. If a workload version is provided as an argument, it outputs a table of various workloads and their versions for the specified workload version. Takes the --format option to alter the output format. - Example: + 2. Si une version de charge de travail est fournie en tant qu’argument, elle génère une table de différentes charges de travail et de leurs versions pour la version de charge de travail spécifiée. Prend l’option --format pour modifier le format de sortie. + Exemple : dotnet workload search version 9.0.201 - Workload manifest ID Manifest feature band Manifest Version + ID du manifeste de la charge de travail Manifeste de la bande de caractéristiques Version du manifeste ------------------------------------------------------------------------------------------------ microsoft.net.workload.emscripten.current 9.0.100-rc.1 9.0.0-rc.1.24430.3 microsoft.net.workload.emscripten.net6 9.0.100-rc.1 9.0.0-rc.1.24430.3 @@ -1532,8 +1532,8 @@ If command is specified without the argument, it lists all the template packages microsoft.net.workload.mono.toolchain.net6 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net7 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net8 9.0.100-rc.1 9.0.0-rc.1.24431.7 - 3. If one or more workloads are provided along with their versions (by joining them with the '@' character), it outputs workload versions that match the provided versions. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 3. Si une ou plusieurs charges de travail sont fournies avec leurs versions (en les joignant avec le caractère « @ »), elle génère des versions de charge de travail qui correspondent aux versions fournies. Prend l’option --take pour spécifier le nombre à fournir et --format pour modifier le format. + Exemple : dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 @@ -1541,775 +1541,775 @@ If command is specified without the argument, it lists all the template packages The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Fichier projet à traiter. Si aucun fichier n'est spécifié, la commande en recherche un dans le répertoire actif. Convert a file-based program to a project-based program. - Convert a file-based program to a project-based program. + Convertissez un programme basé sur des fichiers en programme basé sur un projet. Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Détermine les modifications sans réellement modifier le système de fichiers PROJECT_MANIFEST - PROJECT_MANIFEST + PROJECT_MANIFEST The XML file that contains the list of packages to be stored. - The XML file that contains the list of packages to be stored. + Fichier XML qui contient la liste des packages à stocker. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Application basée sur des fichiers C# ou fichier projet sur laquelle effectuer des opérations. Si aucun fichier n’est spécifié, la commande recherche un fichier projet dans le répertoire actuel. PROJECT | FILE - PROJECT | FILE + FICHIER | PROJET Publisher for the .NET Platform - Publisher for the .NET Platform + Éditeur pour la plateforme .NET The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. - The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. + Configuration pour lequel publier. La valeur par défaut est « Release » pour les projets NET 8.0 et versions ultérieures, mais « Debug » pour les projets plus anciens. The target framework to publish for. The target framework has to be specified in the project file. - The target framework to publish for. The target framework has to be specified in the project file. + Framework cible pour lequel la publication est effectuée. Le framework cible doit être spécifié dans le fichier projet. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place the published artifacts in. - The output directory to place the published artifacts in. + Répertoire de sortie dans lequel placer les artefacts publiés. The target runtime to publish for. This is used when creating a self-contained deployment. The default is to publish a framework-dependent application. - The target runtime to publish for. This is used when creating a self-contained deployment. -The default is to publish a framework-dependent application. + Runtime ciblé par la publication. Ceci est utilisé quand vous créez un déploiement autonome. +La valeur par défaut est de publier une application dépendante du framework. Shut down the Razor build server. - Shut down the Razor build server. + Arrêtez le serveur de builds Razor. Add a project-to-project reference to the project. - Add a project-to-project reference to the project. + Ajoutez une référence projet à projet au projet. Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Ajoutez la référence uniquement en cas de ciblage d'un framework spécifique. The paths to the projects to add as references. - The paths to the projects to add as references. + Chemins des projets à ajouter en tant que références. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH List all project-to-project references of the project. - List all project-to-project references of the project. + Listez toutes les références projet à projet du projet. Remove a project-to-project reference from the project. - Remove a project-to-project reference from the project. + Retirez une référence projet à projet du projet. Remove the reference only when targeting a specific framework. - Remove the reference only when targeting a specific framework. + Supprimez la référence uniquement en cas de ciblage d'un framework spécifique. The paths to the referenced projects to remove. - The paths to the referenced projects to remove. + Chemins des projets référencés à supprimer. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Remove one or more projects from a solution file. - Remove one or more projects from a solution file. + Supprimez un ou plusieurs projets d'un fichier solution. The project paths or names to remove from the solution. - The project paths or names to remove from the solution. + Les chemins ou noms de projet à supprimer de la solution. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Required command was not provided. - Required command was not provided. + La commande nécessaire n'a pas été fournie. .NET dependency restorer - .NET dependency restorer + Programme de restauration de dépendances .NET Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. - Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. + Autorisez un outil .NET à être restauré par progression vers des versions plus récentes du runtime .NET si le runtime qu’il cible n’est pas installé. .NET Run Command - .NET Run Command + Commande d'exécution .NET The configuration to run for. The default for most projects is 'Debug'. - The configuration to run for. The default for most projects is 'Debug'. + Configuration pour laquelle l'exécution est effectuée. La valeur par défaut pour la plupart des projets est 'Debug'. The target framework to run for. The target framework must also be specified in the project file. - The target framework to run for. The target framework must also be specified in the project file. + Framework cible pour lequel l'exécution est effectuée. Le framework cible doit également être spécifié dans le fichier projet. The target runtime to run for. - The target runtime to run for. + Runtime cible à exécuter. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Activez la sortie des diagnostics. Display the command schema as JSON. - Display the command schema as JSON. + Affichez le schéma de commande au format JSON. .NET SDK Command - .NET SDK Command + Commande du kit SDK .NET .NET SDK Check Command - .NET SDK Check Command + Commande de vérification du kit SDK .NET The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Les options '--self-contained' et '--no-self-contained' ne peuvent pas être utilisées ensemble. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Publiez le runtime .NET avec votre application afin que le runtime n’ait pas besoin d’être installé sur l’ordinateur cible. +La valeur par défaut est « false ». Toutefois, lorsque vous ciblez .NET 7 ou une version antérieure, la valeur par défaut est « true » si un identificateur d’exécution est spécifié. Skip updating the workload manifests. - Skip updating the workload manifests. + Ignorer la mise à jour des manifestes de charge de travail. Skip the optimization phase. - Skip the optimization phase. + Ignorez la phase d'optimisation. Skip signature verification of workload packages and installers. - Skip signature verification of workload packages and installers. + Ignorez la vérification de signature des packages de charge de travail et des programmes d’installation. Skip creating symbol files which can be used for profiling the optimized assemblies. - Skip creating symbol files which can be used for profiling the optimized assemblies. + Ignorez la création de fichiers de symboles pour le profilage des assemblys optimisés. Recursively add projects' ReferencedProjects to solution - Recursively add projects' ReferencedProjects to solution + Ajouter de manière récursive les ReferencedProjects des projets à la solution .NET modify solution file command - .NET modify solution file command + Commande .NET Modifier un fichier solution The solution file to operate on. If not specified, the command will search the current directory for one. - The solution file to operate on. If not specified, the command will search the current directory for one. + Fichier solution à utiliser. Si aucun fichier n'est spécifié, la commande en recherche un dans le répertoire actif. SLN_FILE - SLN_FILE + SLN_FILE The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Fichier projet ou solution à utiliser. Si vous ne spécifiez pas de fichier, la commande en recherche un dans le répertoire actuel. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Le fichier projet ou solution ou fichier C# (programme basé sur un fichier) à utiliser. Si aucun fichier n'est spécifié, la commande recherche un projet ou une solution dans le répertoire actuel. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJECT | SOLUTION | FICHIER Source - Source + Source The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. - The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. + Source du package à rechercher. Vous pouvez passer plusieurs options `--Source` pour rechercher plusieurs sources de package. Exemple : `--source https://api.nuget.org/v3/index.json`. Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. - Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. + Stocke les assemblys spécifiés pour la plateforme .NET. Par défaut, ceux-ci sont optimisés pour le runtime et le framework cible. The target framework to store packages for. The target framework has to be specified in the project file. - The target framework to store packages for. The target framework has to be specified in the project file. + Framework cible pour lequel le stockage des packages est effectué. Le framework cible doit être spécifié dans le fichier projet. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to store the given assemblies in. - The output directory to store the given assemblies in. + Répertoire de sortie dans lequel stocker les assemblys spécifiés. The target runtime to store packages for. - The target runtime to store packages for. + Runtime cible pour lequel le stockage des packages est effectué. Specify a temporary directory for this command to download and extract NuGet packages (must be secure). - Specify a temporary directory for this command to download and extract NuGet packages (must be secure). + Spécifiez un répertoire temporaire pour que cette commande télécharge et extrait les packages NuGet (doit être sécurisé). Displays a summary of what would happen if the given command line were run if it would result in a template creation. - Displays a summary of what would happen if the given command line were run if it would result in a template creation. + Affiche un résumé de ce qui se passerait si la ligne de commande donnée était exécutée si cela aboutissait à la création d’un modèle. Forces content to be generated even if it would change existing files. - Forces content to be generated even if it would change existing files. + Force la création du contenu même si cela modifie des fichiers existants. The name for the output being created. If no name is specified, the name of the output directory is used. - The name for the output being created. If no name is specified, the name of the output directory is used. + Le nom de la sortie est en cours de création. Si aucun nom n’est spécifié, le nom du répertoire de sortie est utilisé. Disables checking for the template package updates when instantiating a template. - Disables checking for the template package updates when instantiating a template. + Désactive la vérification des mises à jour du package de modèles lors de l’instanciation d’un modèle. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The configuration to use for running tests. The default for most projects is 'Debug'. - The configuration to use for running tests. The default for most projects is 'Debug'. + Configuration à utiliser pour l'exécution des tests. La valeur par défaut pour la plupart des projets est 'Debug'. The target framework to run tests for. The target framework must also be specified in the project file. - The target framework to run tests for. The target framework must also be specified in the project file. + Framework cible pour lequel les tests sont exécutés. Le framework cible doit également être spécifié dans le fichier projet. The target runtime to test for. - The target runtime to test for. + Runtime cible à tester. Install or work with tools that extend the .NET experience. - Install or work with tools that extend the .NET experience. + Installez ou utilisez des outils qui étendent l'expérience .NET. Executes a tool from source without permanently installing it. - Executes a tool from source without permanently installing it. + Exécute un outil à partir de la source sans l’installer définitivement. Add an additional NuGet package source to use during installation. - Add an additional NuGet package source to use during installation. + Ajoutez une source de package NuGet supplémentaire à utiliser durant l'installation. ADDSOURCE - ADDSOURCE + ADDSOURCE Install global or local tool. Local tools are added to manifest and restored. - Install global or local tool. Local tools are added to manifest and restored. + Installe un outil global ou local. Les outils locaux sont ajoutés au manifeste, puis restaurés. The NuGet configuration file to use. - The NuGet configuration file to use. + Fichier de configuration NuGet à utiliser. FILE - FILE + FICHIER The target framework to install the tool for. - The target framework to install the tool for. + Framework cible pour lequel l'outil doit être installé. FRAMEWORK - FRAMEWORK + FRAMEWORK Install the tool for the current user. - Install the tool for the current user. + Installe l'outil pour l'utilisateur actuel. Install the tool and add to the local tool manifest (default). - Install the tool and add to the local tool manifest (default). + Installe l'outil et l'ajoute au manifeste d'outils locaux (par défaut). Path to the manifest file. - Path to the manifest file. + Chemin du fichier manifeste. PATH - PATH + CHEMIN Replace all NuGet package sources to use during installation with these. - Replace all NuGet package sources to use during installation with these. + Remplacer toutes les sources de package NuGet à utiliser pendant l’installation par celles-ci. SOURCE - SOURCE + SOURCE The directory where the tool will be installed. The directory will be created if it does not exist. - The directory where the tool will be installed. The directory will be created if it does not exist. + Répertoire où l'outil va être installé. Ce répertoire est créé, s'il n'existe pas déjà. PATH - PATH + CHEMIN The version of the tool package to install. - The version of the tool package to install. + Version du package d'outils à installer. VERSION - VERSION + VERSION List tools installed globally or locally. - List tools installed globally or locally. + Liste les outils installés globalement ou localement. The output format for the list of tools. - The output format for the list of tools. + Format de sortie de la liste des outils. List tools installed for the current user. - List tools installed for the current user. + Liste les outils installés pour l'utilisateur actuel. List the tools installed in the local tool manifest. - List the tools installed in the local tool manifest. + Liste les outils installés dans le manifeste d'outils locaux. The NuGet Package Id of the tool to list - The NuGet Package Id of the tool to list + L'ID de package NuGet de l'outil à répertorier PACKAGE_ID - PACKAGE_ID + PACKAGE_ID The directory containing the tools to list. - The directory containing the tools to list. + Répertoire contenant les outils à lister. Restore tools defined in the local tool manifest. - Restore tools defined in the local tool manifest. + Restaure les outils définis dans le manifeste d'outils locaux. Path to the manifest file. - Path to the manifest file. + Chemin du fichier manifeste. Arguments forwarded to the tool - Arguments forwarded to the tool + Arguments transmis à l'outil Run a local tool. Note that this command cannot be used to run a global tool. - Run a local tool. Note that this command cannot be used to run a global tool. + Exécuter un outil local. Notez que cette commande ne peut pas être utilisée pour exécuter un outil global. Search dotnet tools in nuget.org - Search dotnet tools in nuget.org + Rechercher les outils dotnet dans nuget.org Include pre-release packages. - Include pre-release packages. + Inclure des packages en préversion. SEARCH_TERM - SEARCH_TERM + SEARCH_TERM Search term from package id or package description. Require at least one character. - Search term from package id or package description. Require at least one character. + Rechercher un terme à partir de l'ID de package ou de la description du package. Nécessite au moins un caractère. Skip - Skip + Ignorer The number of results to skip, for pagination. - The number of results to skip, for pagination. + Nombre de résultats à ignorer pour la pagination. Take - Take + Take The number of results to return, for pagination. - The number of results to return, for pagination. + Nombre de résultats à retourner pour la pagination. Uninstall a global tool or local tool. - Uninstall a global tool or local tool. + Désinstalle un outil global ou un outil local. Uninstall the tool from the current user's tools directory. - Uninstall the tool from the current user's tools directory. + Désinstallez l'outil du répertoire des outils de l'utilisateur actuel. Uninstall the tool and remove it from the local tool manifest. - Uninstall the tool and remove it from the local tool manifest. + Désinstalle l'outil et le supprime du manifeste d'outils locaux. Path to the manifest file. - Path to the manifest file. + Chemin du fichier manifeste. The directory containing the tool to uninstall. - The directory containing the tool to uninstall. + Répertoire contenant l'outil à désinstaller. Update a global or local tool. - Update a global or local tool. + Met à jour un outil global ou local. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Commande ou argument non reconnu : '{0}' Update all tools. - Update all tools. + Mettez à jour tous les outils. Controls whether updates should look for workload sets or the latest version of each individual manifest. - Controls whether updates should look for workload sets or the latest version of each individual manifest. + Contrôle si les mises à jour doivent rechercher des ensembles de charge de travail ou la dernière version de chaque manifeste individuel. Shut down the VB/C# compiler build server. - Shut down the VB/C# compiler build server. + Arrêtez le serveur de builds du compilateur VB/C#. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Impossible de spécifier --version lorsque l’argument de package contient déjà une version. {Locked="--version"} Verbosity - Verbosity + Verbosité Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` - Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` + Afficher cette quantité de détails dans la sortie : `normal`, `minimal`, `détaillé`. La valeur par défaut est `normal` Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Définissez le niveau de verbosité MSBuild. Les valeurs autorisées sont q[uiet], m[inimal], n[ormal], d[etailed] et diag[nostic]. Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. - Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. + Définit le niveau de détail. Les valeurs autorisées sont q[uiet], m[inimal], n[ormal] et diag[nostic]. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX Removes workload components that may have been left behind from previous updates and uninstallations. - Removes workload components that may have been left behind from previous updates and uninstallations. + Supprime les composants de charge de travail qui ont peut-être été laissés en arrière des mises à jour et désinstallations précédentes. Install or work with workloads that extend the .NET experience. - Install or work with workloads that extend the .NET experience. + Installez ou utilisez des charges de travail qui étendent l'expérience .NET. Modify or display workload configuration values. To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" - Modify or display workload configuration values. -To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" + Modifiez ou affichez les valeurs de configuration de la charge de travail. +Pour afficher une valeur, spécifiez l’option de ligne de commande correspondante sans fournir de valeur. Par exemple : « dotnet workload config --update-mode » Start the elevated server process to facilitate MSI based installations. - Start the elevated server process to facilitate MSI based installations. + Démarrez le processus du serveur avec élévation de privilèges pour faciliter les installations basées sur MSI. Shows a history of workload installation actions. - Shows a history of workload installation actions. + Affiche un historique des actions d’installation de charge de travail. The NuGet package ID of the workload to install. - The NuGet package ID of the workload to install. + ID de package NuGet de la charge de travail à installer. WORKLOAD_ID - WORKLOAD_ID + WORKLOAD_ID The text to search for in the IDs and descriptions of available workloads. - The text to search for in the IDs and descriptions of available workloads. + Texte à rechercher dans les ID et descriptions des charges de travail disponibles. SEARCH_STRING - SEARCH_STRING + SEARCH_STRING Display information about installed workloads. - Display information about installed workloads. + Affichez des informations sur les charges de travail installées. Install one or more workloads. - Install one or more workloads. + Installez une ou plusieurs charges de travail. The NuGet configuration file to use. - The NuGet configuration file to use. + Fichier de configuration NuGet à utiliser. FILE - FILE + FICHIER The NuGet package source to use during the restore. To specify multiple sources, repeat the option. - The NuGet package source to use during the restore. To specify multiple sources, repeat the option. + Source de package NuGet à utiliser pendant la restauration. Pour spécifier plusieurs sources, répétez l’option. SOURCE - SOURCE + SOURCE The version of the SDK. - The version of the SDK. + Version du kit SDK. VERSION - VERSION + VERSION List workloads available. - List workloads available. + Lister les charges de travail disponibles. Repair workload installations. - Repair workload installations. + Réparez les installations de charge de travail. Restore workloads required for a project. - Restore workloads required for a project. + Restaurez les charges de travail nécessaires à un projet. Search for available workloads. - Search for available workloads. + Recherchez les charges de travail disponibles. A workload version to display or one or more workloads and their versions joined by the '@' character. - A workload version to display or one or more workloads and their versions joined by the '@' character. + Version de charge de travail à afficher ou une ou plusieurs charges de travail et leurs versions jointes par le caractère « @ ». Uninstall one or more workloads. - Uninstall one or more workloads. + Désinstallez une ou plusieurs charges de travail. Update all installed workloads. - Update all installed workloads. + Mettez à jour toutes les charges de travail installées. WORKLOAD_VERSION - WORKLOAD_VERSION + WORKLOAD_VERSION Output workload manifest versions associated with the provided workload version. - Output workload manifest versions associated with the provided workload version. + Affiche le manifeste de charge de travail associé à la version de charge de travail fournie. Display the currently installed workload version. - Display the currently installed workload version. + Affichez la version de charge de travail actuellement installée. Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Acceptez toutes les invites de confirmation en utilisant « oui ». The friendly name of the data collector to use for the test run. More info here: https://aka.ms/vstest-collect - The friendly name of the data collector to use for the test run. - More info here: https://aka.ms/vstest-collect + Nom convivial du collecteur de données à utiliser pour la série de tests. + Plus d'informations ici : https://aka.ms/vstest-collect DATA_COLLECTOR_NAME - DATA_COLLECTOR_NAME + DATA_COLLECTOR_NAME diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.it.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.it.xlf index 6d8219e96281..cc1e9ed361a0 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.it.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.it.xlf @@ -4,162 +4,162 @@ Only update advertising manifests. - Only update advertising manifests. + Aggiornare solo i manifesti pubblicitari. Add one or more projects to a solution file. - Add one or more projects to a solution file. + Consente di aggiungere uno o più progetti a un file di soluzione. The paths to the projects to add to the solution. - The paths to the projects to add to the solution. + Percorsi dei progetti da aggiungere alla soluzione. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH The destination solution folder path to add the projects to. - The destination solution folder path to add the projects to. + Percorso della cartella della soluzione di destinazione in cui aggiungere i progetti. Allow package downgrade when installing a .NET tool package. - Allow package downgrade when installing a .NET tool package. + Consente il downgrade del pacchetto durante l'installazione di un pacchetto di strumenti .NET. ARCH - ARCH + ARCH The target architecture. - The target architecture. + Architettura di destinazione. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Percorso degli artefatti. Tutto l'output del progetto, inclusi l'output di compilazione, pubblicazione e pacchetto, verrà inserito nelle sottocartelle nel percorso specificato. .NET Builder - .NET Builder + Generatore .NET The configuration to use for building the project. The default for most projects is 'Debug'. - The configuration to use for building the project. The default for most projects is 'Debug'. + Configurazione da usare per compilare il progetto. L'impostazione predefinita per la maggior parte dei progetti è 'Debug'. The target framework to build for. The target framework must also be specified in the project file. - The target framework to build for. The target framework must also be specified in the project file. + Framework di destinazione per cui eseguire la compilazione. Il framework di destinazione deve essere specificato anche nel file di progetto. The output directory to place built artifacts in. - The output directory to place built artifacts in. + Directory di output in cui inserire gli artefatti compilati. The target runtime to build for. - The target runtime to build for. + Runtime di destinazione per cui eseguire la compilazione. Interact with servers started from a build. - Interact with servers started from a build. + Interagisce con server avviati da una compilazione. Shuts down build servers that are started from dotnet. By default, all servers are shut down. - Shuts down build servers that are started from dotnet. By default, all servers are shut down. + Arresta i server di compilazione avviati da dotnet. Per impostazione predefinita, vengono arrestati tutti i server. Cannot specify both the {0} and {1} arguments. - Cannot specify both the {0} and {1} arguments. + Non è possibile specificare entrambi gli argomenti {0} e {1}. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + La risoluzione dell'identificatore di runtime corrente non è riuscita. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + La specifica di entrambe le opzioni `-r|--runtime` and `-a|--arch` non è supportata. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + La specifica di entrambe le opzioni `-r|--runtime` e `-os` non è supportata. Causes clean to remove and uninstall all workload components from all SDK versions. - Causes clean to remove and uninstall all workload components from all SDK versions. + Provoca la rimozione e la disinstallazione di tutti i componenti del carico di lavoro da tutte le versioni dell'SDK. .NET Clean Command - .NET Clean Command + Comando di pulizia .NET OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The directory containing the build artifacts to clean. - The directory containing the build artifacts to clean. + Directory contenente gli artefatti della compilazione da pulire. The configuration to clean for. The default for most projects is 'Debug'. - The configuration to clean for. The default for most projects is 'Debug'. + Configurazione per cui eseguire la pulizia. L'impostazione predefinita per la maggior parte dei progetti è 'Debug'. Removes artifacts created for file-based apps - Removes artifacts created for file-based apps + Rimuove gli artefatti creati per le app basate su file How many days an artifact folder needs to be unused in order to be removed - How many days an artifact folder needs to be unused in order to be removed + Quanti giorni deve rimanere inutilizzata una cartella di artefatti affinché possa essere rimossa Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Determina le modifiche senza modificare effettivamente il file system The target framework to clean for. The target framework must also be specified in the project file. - The target framework to clean for. The target framework must also be specified in the project file. + Framework di destinazione per cui eseguire la pulizia. Il framework di destinazione deve essere specificato anche nel file di progetto. The target runtime to clean for. - The target runtime to clean for. + Runtime di destinazione per cui eseguire la pulizia. Enables collecting crash dump on expected as well as unexpected testhost exit. - Enables collecting crash dump on expected as well as unexpected testhost exit. + Abilita la raccolta del dump di arresto anomalo in caso di chiusura prevista e imprevista dell'host di test. @@ -174,22 +174,22 @@ The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downlo To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. Implies --blame. - Runs the tests in blame mode and collects a crash dump when the test host exits unexpectedly. This option depends on the version of .NET used, the type of error, and the operating system. + Esegue i test in modalità di segnalazione errore e raccoglie un dump di arresto anomalo quando l'host di test si chiude in modo imprevisto. Questa opzione dipende dalla versione di .NET usata, dal tipo di errore e dal sistema operativo. -For exceptions in managed code, a dump will be automatically collected on .NET 5.0 and later versions. It will generate a dump for testhost or any child process that also ran on .NET 5.0 and crashed. Crashes in native code will not generate a dump. This option works on Windows, macOS, and Linux. +Per le eccezioni nel codice gestito, un dump verrà raccolto automaticamente in .NET 5.0 e versioni successive. Verrà generato un dump per host di test o qualsiasi processo figlio eseguito in .NET 5.0 e che si è arrestato in modo anomalo. Gli arresti anomali nel codice nativo non genereranno un dump. Questa opzione funziona in Windows, macOS e Linux. -Crash dumps in native code, or when targetting .NET Framework, or .NET Core 3.1 and earlier versions, can only be collected on Windows, by using Procdump. A directory that contains procdump.exe and procdump64.exe must be in the PATH or PROCDUMP_PATH environment variable. +Dump di arresto anomalo nel codice nativo o durante la destinazione a .NET Framework, o .NET Core 3.1 e versioni precedenti, possono essere raccolti solo in Windows usando Procdump. Una directory che contiene procdump.exe e procdump64.exe deve trovarsi nella variabile di ambiente PATH o PROCDUMP_PATH. -The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downloads/procdump +Gli strumenti possono essere scaricati qui: https://docs.microsoft.com/sysinternals/downloads/procdump -To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. +Per raccogliere un dump di arresto anomalo da un'applicazione nativa in esecuzione in .NET 5.0 o versioni successive, è possibile forzare l'uso di Procdump impostando la variabile di ambiente VSTEST_DUMP_FORCEPROCDUMP su 1. Implies --blame. The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. - The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. + Tipo di dump di arresto anomalo da raccogliere. I valori supportati sono completi (impostazione predefinita) e mini. Implica --blame-crash. @@ -207,30 +207,30 @@ Example: Timeout the test run when a test takes more than 20 minutes and collect hang dump. dotnet test --blame-hang-timeout 20min - Runs the tests in blame mode. This option is helpful in isolating problematic tests that cause the test host to crash or hang, but it does not create a memory dump by default. + Esegue i test in modalità di segnalazione errore. Questa opzione è utile per isolare test problematici che causano l'arresto anomalo o il blocco dell'host di test, ma non crea un dump della memoria per impostazione predefinita. -When a crash is detected, it creates an sequence file in TestResults/guid/guid_Sequence.xml that captures the order of tests that were run before the crash. +Quando viene rilevato un arresto anomalo, crea un file sequenziale in TestResults/guid/guid_Sequence.xml che acquisisce l'ordine dei test eseguiti prima dell'arresto anomalo. -Based on the additional settings, hang dump or crash dump can also be collected. +In base alle impostazioni aggiuntive, può essere acquisito anche un dump di blocco o un dump di arresto anomalo. -Example: - Timeout the test run when test takes more than the default timeout of 1 hour, and collect crash dump when the test host exits unexpectedly. - (Crash dumps require additional setup, see below.) +Esempio: + Timeout dell'esecuzione del test quando il test impiega più del timeout predefinito di 1 ora e raccolta del dump di arresto anomalo quando l'host di test esce in maniera imprevista. + (I dump di arresto anomalo richiedono una configurazione aggiuntiva; vedi sotto.) dotnet test --blame-hang --blame-crash -Example: - Timeout the test run when a test takes more than 20 minutes and collect hang dump. +Esempio: + Timeout dell'esecuzione dei test quando un test impiega più di 20 minuti e raccolta del dump di blocco. dotnet test --blame-hang-timeout 20min Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. - Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. + Esegue i test in modalità di segnalazione errore e abilita la raccolta del dump di blocco quando il test supera il timeout specificato. The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. - The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. + Tipo di dump di arresto anomalo da raccogliere. I valori supportati sono completi (impostazione predefinita), mini e nessuno. Quando si usa 'none', l'host di test viene terminato in caso di timeout, ma non viene raccolto alcun dump. Implica --blame-hang. @@ -238,67 +238,67 @@ Example: The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, For MSTest before 2.2.4, the timeout is used for all testcases. - Per-test timeout, after which hang dump is triggered and the testhost process is terminated. Default is 1h. -The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. -When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, -For MSTest before 2.2.4, the timeout is used for all testcases. + Timeout per test dopo il quale viene attivato il dump di blocco e il processo dell'host di test viene terminato. L'impostazione predefinita è 1 ora. +Il valore di timeout viene specificato nel formato seguente: 1,5 ore / 90 m / 5400 s / 5400000 ms. Quando non viene usata alcuna unità (ad es. 5400000), si presuppone che il valore sia in millisecondi. +Se viene usato insieme a test basati sui dati, il comportamento del timeout dipende dall'adattatore di test usato. Per xUnit e NUnit e MSTest 2.2.4+, il timeout viene rinnovato dopo ogni test case, +Per MSTest anteriore a 2.2.4, il timeout viene usato per tutti i test case. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + Percorso del file config NuGet da usare. Richiede l'opzione '--outdated', '--deprecated' o '--vulnerable'. Specifies a testconfig.json file. - Specifies a testconfig.json file. + Specifica un file testconfig.json. FILE - FILE + FILE The NuGet configuration file to use. - The NuGet configuration file to use. + File di configurazione NuGet da usare. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE Use current runtime as the target runtime. - Use current runtime as the target runtime. + Usa il runtime corrente come runtime di destinazione. Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. - Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. + Elenca i pacchetti che sono stati deprecati. Non può essere combinato con l'opzione '--vulnerable' o '--outdated'. Output directory of the diagnostic logging. If not specified the file will be generated inside the default 'TestResults' directory. - Output directory of the diagnostic logging. -If not specified the file will be generated inside the default 'TestResults' directory. + Directory di output della registrazione diagnostica. +Se non specificato, il file verrà generato all'interno della directory 'TestResults' predefinita. DIAGNOSTIC_DIR - DIAGNOSTIC_DIR + DIAGNOSTIC_DIR Prevent restoring multiple projects in parallel. - Prevent restoring multiple projects in parallel. + Impedisce il ripristino di più progetti in parallelo. @@ -312,88 +312,88 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Imposta il valore di una variabile di ambiente. +Crea la variabile se non esiste e la sostituisce se esiste. +È possibile specificare più volte l'argomento per fornire più variabili. -Examples: +Esempi: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="valore con spazi" +-e VARIABLE="valore;delimitato da;punti e virgola" -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NAME="VALORE" EXPRESSION - EXPRESSION + EXPRESSION Path to the file-based program. - Path to the file-based program. + Percorso del programma basato su file. Force all dependencies to be resolved even if the last restore was successful. This is equivalent to deleting project.assets.json. - Force all dependencies to be resolved even if the last restore was successful. -This is equivalent to deleting project.assets.json. + Forza la risoluzione di tutte le dipendenze anche se l'ultimo ripristino non è riuscito. +Equivale a eliminare project.assets.json. Specifies the output format type for the list packages command. - Specifies the output format type for the list packages command. + Specificare il tipo di formato di output per il comando list packages. Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. + Prende in considerazione solo i pacchetti con il numero di versione principale corrispondente quando si cercano i pacchetti più recenti. Richiede l'opzione '--outdated'. Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. + Prende in considerazione solo i pacchetti con i numeri di versione principale e secondaria corrispondenti quando si cercano i pacchetti più recenti. Richiede l'opzione '--outdated'. Treat package source failures as warnings. - Treat package source failures as warnings. + Considera gli errori di origine pacchetto come avvisi. Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. - Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. + Include i PDB e i file di origine. I file di origine vengono inseriti nella cartella 'src' nel pacchetto NuGet risultante. Include packages with symbols in addition to regular packages in output directory. - Include packages with symbols in addition to regular packages in output directory. + Include i pacchetti con simboli in aggiunta a quelli normali nella directory di output. List the discovered tests instead of running the tests. - List the discovered tests instead of running the tests. + Elenca i testi individuati invece di eseguirli. LOCK_FILE_PATH - LOCK_FILE_PATH + LOCK_FILE_PATH Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. - Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. + Percorso di output in cui viene scritto il file di blocco del progetto. Per impostazione predefinita è 'RADICE_PROGETTO\packages.lock.json'. Don't allow updating project lock file. - Don't allow updating project lock file. + Non consentire l'aggiornamento del file di blocco del progetto. @@ -402,223 +402,223 @@ This is equivalent to deleting project.assets.json. Log in trx format using a unique file name: --logger trx Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" See https://aka.ms/vstest-report for more information on logger arguments. - The logger to use for test results. - Examples: - Log in trx format using a unique file name: --logger trx - Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" - See https://aka.ms/vstest-report for more information on logger arguments. + Logger da usare per i risultati dei test. + Esempi: + Log in formato trx con nome file univoco: --logger trx + Log in formato trx con il nome file specificato: --logger "trx;LogFileName=<TestResults.trx>" + Per altre informazioni sugli argomenti del logger, vedere https://aka.ms/vstest-report. LOGGER - LOGGER + LOGGER The max number of test modules that can run in parallel. - The max number of test modules that can run in parallel. + Numero massimo di moduli di test che possono essere eseguiti in parallelo. Specifies the minimum number of tests that are expected to run. - Specifies the minimum number of tests that are expected to run. + Specifica il numero minimo dei test che si prevede saranno eseguiti. Disable ANSI output. - Disable ANSI output. + Disabilita l'output ANSI. Do not build the project before testing. Implies --no-restore. - Do not build the project before testing. Implies --no-restore. + Non compila il progetto prima del test. Implica --no-restore. Do not build the project before packing. Implies --no-restore. - Do not build the project before packing. Implies --no-restore. + Non compila il progetto prima della creazione del pacchetto. Implica --no-restore. Do not cache packages and http requests. - Do not cache packages and http requests. + Non memorizza nella cache pacchetti e richieste HTTP. Do not restore project-to-project references and only restore the specified project. - Do not restore project-to-project references and only restore the specified project. + Non ripristina i riferimenti P2P (da progetto a progetto) e ripristina solo il progetto specificato. Disable Http Caching for packages. - Disable Http Caching for packages. + Disabilitare la memorizzazione nella cache HTTP per i pacchetti. Disable progress reporting. - Disable progress reporting. + Disabilita i report sullo stato. Do not restore before running the command. - Do not restore before running the command. + Non ripristinare prima di eseguire il comando. NUMBER - NUMBER + NUMBER Force conversion even if there are malformed directives. - Force conversion even if there are malformed directives. + Forza la conversione anche in presenza di direttive non valide. Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. - Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. + Elenca i pacchetti con versioni più recenti. Non può essere combinato con l'opzione '--deprecated' o '--vulnerable'. The output directory to place built artifacts in. - The output directory to place built artifacts in. + Directory di output in cui inserire gli artefatti compilati. Specifies the version of machine-readable output. Requires the '--format json' option. - Specifies the version of machine-readable output. Requires the '--format json' option. + Specifica la versione dell'output leggibile dal computer. Richiede l'opzione '--format json'. PACKAGE_NAME - PACKAGE_NAME + PACKAGE_NAME PACKAGE_DIR - PACKAGE_DIR + PACKAGE_DIR The directory to restore packages to. - The directory to restore packages to. + Directory in cui ripristinare i pacchetti. PACKAGES_DIR - PACKAGES_DIR + PACKAGES_DIR The directory to restore packages to. - The directory to restore packages to. + Directory in cui ripristinare i pacchetti. LOG_FILE - LOG_FILE + LOG_FILE RESULTS_DIR - RESULTS_DIR + RESULTS_DIR Enable verbose logging to the specified file. - Enable verbose logging to the specified file. + Abilita la registrazione dettagliata nel file specificato. Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. - Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. + Prende in considerazione i pacchetti con versioni preliminari quando si cercano i pacchetti più recenti. Richiede l'opzione '--outdated'. Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Definisce il percorso del file progetto da eseguire. Usare il percorso del file progetto o della directory che contiene il file progetto. Se non specificato, per impostazione predefinita viene usata la directory corrente. Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Definisce il percorso del file progetto o soluzione da testare. Usare il percorso del file progetto o della directory che contiene il file progetto. Se non specificato, per impostazione predefinita viene usata la directory corrente. PROJECT_OR_SOLUTION_PATH - PROJECT_OR_SOLUTION_PATH + PROJECT_OR_SOLUTION_PATH Forces restore to reevaluate all dependencies even if a lock file already exists. - Forces restore to reevaluate all dependencies even if a lock file already exists. + Forza restore a valutare di nuovo tutte le dipendenze anche se esiste già un file di blocco. The directory where the test results will be placed. The specified directory will be created if it does not exist. - The directory where the test results will be placed. -The specified directory will be created if it does not exist. + Directory in cui verranno inseriti i risultati del test. +Se non esiste, la directory specificata verrà creata. ROOT_PATH - ROOT_PATH + ROOT_PATH RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER The target runtime to restore packages for. - The target runtime to restore packages for. + Runtime di destinazione per cui ripristinare i pacchetti. Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. - Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. + Imposta il flag serviceable nel pacchetto. Per altre informazioni, vedere https://aka.ms/nupkgservicing. The settings file to use when running tests. - The settings file to use when running tests. + File di impostazioni da usare durante l'esecuzione dei test. SETTINGS_FILE - SETTINGS_FILE + SETTINGS_FILE Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. - Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. + Definisce il percorso del file soluzione da testare. Usare il percorso del file soluzione o della directory che contiene il file soluzione. Se non specificato, per impostazione predefinita viene usata la directory corrente. SOLUTION_PATH - SOLUTION_PATH + SOLUTION_PATH SOURCE - SOURCE + SOURCE The NuGet package source to use for the restore. - The NuGet package source to use for the restore. + Origine pacchetto NuGet da usare per il ripristino. ADAPTER_PATH - ADAPTER_PATH + ADAPTER_PATH The path to the custom adapters to use for the test run. - The path to the custom adapters to use for the test run. + Percorso degli adattatori personalizzati da usare per l'esecuzione dei test. @@ -629,18 +629,18 @@ The specified directory will be created if it does not exist. Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" See https://aka.ms/vstest-filtering for more information on filtering support. - Run tests that match the given expression. - Examples: - Run tests with priority set to 1: --filter "Priority = 1" - Run a test with the specified full name: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" - Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" - See https://aka.ms/vstest-filtering for more information on filtering support. + Esegui i test corrispondenti all'espressione specificata. + Esempi: + Esegui i test con priorità impostata su 1: --filter "Priority = 1" + Esegui un test con il nome completo specificato: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" + Esegui i test che contengono il nome specificato: --filter "FullyQualifiedName~Namespace.Class" + Per altre informazioni sul supporto dei filtri, veid https://aka.ms/vstest-filtering. EXPRESSION - EXPRESSION + EXPRESSION @@ -655,827 +655,827 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Imposta il valore di una variabile di ambiente. +Crea la variabile se non esiste e la sostituisce se esiste. +In questo modo forza l'esecuzione dei test in un processo isolato. +È possibile specificare più volte questo argomento per fornire più variabili. -Examples: +Esempi: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="valore con spazi" +-e VARIABLE="valore;delimitato da;punti e virgola" -e VAR1=abc -e VAR2=def -e VAR3=ghi Run tests for the specified test modules. - Run tests for the specified test modules. + Esegui i test per i moduli di test specificati. The test modules have the specified root directory. - The test modules have the specified root directory. + I moduli di test hanno la directory radice specificata. Verbosity of test output. - Verbosity of test output. + Dettaglio dell'output di test. Lists transitive and top-level packages. - Lists transitive and top-level packages. + Elenca i pacchetti transitivi e di primo livello. Test runner '{0}' is not supported. - Test runner '{0}' is not supported. + Il Test Runner '{0}' non è supportato. Enables project lock file to be generated and used with restore. - Enables project lock file to be generated and used with restore. + Abilita il file di blocco del progetto da generare e usare con restore. VERSION - VERSION + VERSION The version of the package to add. - The version of the package to add. + Versione del pacchetto da aggiungere. Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Consente di impostare il valore della proprietà $(VersionSuffix) da usare durante la compilazione del progetto. Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. - Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. + Elenca i pacchetti che presentano vulnerabilità note. Non può essere combinato con l'opzione '--deprecated' o '--outdated'. The SDK command to launch online help for. - The SDK command to launch online help for. + Comando dell'SDK per cui avviare la Guida. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Consente al comando di arrestare l'esecuzione e attendere l'input o l'azione dell'utente, ad esempio per completare l'autenticazione. The command name of the tool to run. - The command name of the tool to run. + Nome del comando dello strumento da eseguire. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME The device identifier to use for running the application. - The device identifier to use for running the application. + Identificatore del dispositivo da usare per eseguire l'applicazione. DEVICE - DEVICE + DISPOSITIVO The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). - The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). + Percorso dell'app basata su file da eseguire (può essere passato anche come primo argomento se non è presente alcun progetto nella directory corrente). FILE_PATH - FILE_PATH + FILE_PATH The name of the launch profile (if any) to use when launching the application. - The name of the launch profile (if any) to use when launching the application. + Nome dell'eventuale profilo di avvio da usare all'avvio dell'applicazione. LAUNCH_PROFILE - LAUNCH_PROFILE + LAUNCH_PROFILE List available devices for running the application. - List available devices for running the application. + Elencare i dispositivi disponibili per l'esecuzione dell'applicazione. Do not build the project before running. Implies --no-restore. - Do not build the project before running. Implies --no-restore. + Non compila il progetto prima dell'esecuzione. Implica --no-restore. {Locked="--no-restore"} Skip up to date checks and always build the program before running. - Skip up to date checks and always build the program before running. + Ignora i controlli aggiornati e compila sempre il programma prima dell'esecuzione. Do not use arguments specified in launch profile to run the application. - Do not use arguments specified in launch profile to run the application. + Non usare gli argomenti specificati nel profilo di avvio per eseguire l'applicazione. Do not attempt to use launchSettings.json or [app].run.json to configure the application. - Do not attempt to use launchSettings.json or [app].run.json to configure the application. + Evitare di usare launchSettings.json o [app].run.json per configurare l'applicazione. {Locked="launchSettings.json"}{Locked=".run.json"} PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Consente l'installazione di pacchetti non definitivi. Creates an alias for instantiate command with a certain set of arguments. - Creates an alias for instantiate command with a certain set of arguments. + Crea un alias per creare un'istanza del comando con un determinato set di argomenti. Displays defined aliases. - Displays defined aliases. + Visualizza gli alias definiti. Creates or displays defined aliases. - Creates or displays defined aliases. + Crea o visualizza gli alias definiti. Provides the details for specified template package. The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. - - Provides the details for specified template package. - The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. + + Fornisce i dettagli per il pacchetto di modelli specificato. + Il comando verifica se il pacchetto è installato localmente, se non è stato trovato, esegue la ricerca nei feed NuGet configurati. NuGet package ID or path to folder or NuGet package to install. To install the NuGet package of certain version, use <package ID>::<version>. - NuGet package ID or path to folder or NuGet package to install. -To install the NuGet package of certain version, use <package ID>::<version>. + ID pacchetto NuGet o percorso della cartella o del pacchetto NuGet da installare. +Per installare il pacchetto NuGet di una determinata versione, usare <package ID>::<version>. Installs a template package. - Installs a template package. + Installa un pacchetto di origine o di modelli. A short name of the template to create. - A short name of the template to create. + Nome breve del modello da creare. Template specific options to use. - Template specific options to use. + Opzioni specifiche del modello da usare. Instantiates a template with given short name. An alias of 'dotnet new <template name>'. - Instantiates a template with given short name. An alias of 'dotnet new <template name>'. + Creare un'istanza di un modello con il nome breve specificato. Alias di 'dotnet new <template name>'. do not translate 'dotnet new <template name>' Checks the currently installed template packages for updates. - Checks the currently installed template packages for updates. + Controllare i pacchetti di modelli attualmente installati per gli aggiornamenti. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Se specificato, verranno visualizzati solo i modelli corrispondenti al nome. Lists templates containing the specified template name. If no name is specified, lists all templates. - Lists templates containing the specified template name. If no name is specified, lists all templates. + Elenca i modelli contenenti il nome di modello specificato. Se non è stato specificato alcun nome, elenca tutti i modelli. Template Instantiation Commands for .NET CLI. - Template Instantiation Commands for .NET CLI. + Comandi di istanza dei modelli per .NET CLI. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Se specificato, verranno visualizzati solo i modelli corrispondenti al nome. Searches for the templates on NuGet.org. - Searches for the templates on NuGet.org. + Cerca i modelli in NuGet.org. NuGet package ID (without version) or path to folder to uninstall. If command is specified without the argument, it lists all the template packages installed. - NuGet package ID (without version) or path to folder to uninstall. -If command is specified without the argument, it lists all the template packages installed. + ID pacchetto NuGet (senza versione) o percorso della cartella da disinstallare. +Se il comando è specificato senza l'argomento, vengono elencati tutti i pacchetti modello installati. Uninstalls a template package. - Uninstalls a template package. + Disinstalla un pacchetto di origine o di modelli. Checks the currently installed template packages for update, and install the updates. - Checks the currently installed template packages for update, and install the updates. + Verificare i pacchetti di modelli attualmente installati per l'aggiornamento e installare gli aggiornamenti. Only checks for updates and display the template packages to be updated without applying update. - Only checks for updates and display the template packages to be updated without applying update. + Controlla solo la disponibilità di aggiornamenti e visualizza i pacchetti di modelli da aggiornare senza applicare l'aggiornamento. Unrecognized command or argument(s): {0}. - Unrecognized command or argument(s): {0}. + Il comando o l'argomento {0} non è stato riconosciuto. {0} - wrong token or comma-separated tokens (if multiple). Each token is enclosed with single quotes: 'token'. FRAMEWORK - FRAMEWORK + FRAMEWORK ConfigFile - ConfigFile + ConfigFile The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior - The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior + File di configurazione NuGet. Se è specificato, verranno usate solo le impostazioni di questo file. Se non è specificato, verrà usata la gerarchia dei file di configurazione della directory corrente. Per altre informazioni, vedere https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior CONFIGURATION - CONFIGURATION + CONFIGURATION DUMP_TYPE - DUMP_TYPE + DUMP_TYPE Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed - Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed + Creare un manifesto dello strumento se non ne viene trovato uno durante l'installazione dello strumento. Per informazioni sulla posizione dei manifesti, vedere https://aka.ms/dotnet/tools/create-manifest-if-needed Use current runtime as the target runtime. - Use current runtime as the target runtime. + Usa il runtime corrente come runtime di destinazione. Show detail result of the query. - Show detail result of the query. + Mostra il risultato in dettaglio della query. Package identifier - Package identifier + Identificatore pacchetto Enables diagnostic output. - Enables diagnostic output. + Abilita l'output di diagnostica. Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Forza il comando a ignorare tutti i server di compilazione persistenti. Disables evaluating project context using MSBuild. - Disables evaluating project context using MSBuild. + Disabilita la valutazione del contesto del progetto con MSBuild. If present, prevents templates bundled in the SDK from being presented. - If present, prevents templates bundled in the SDK from being presented. + Se presente, impedisce la presentazione dei modelli forniti in bundle nell'SDK. .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. + Comando di test .NET per Microsoft.Testing.Platform (attivato tramite il file 'global.json'). Supporta solo Microsoft.Testing.Platform e non VSTest. Per altre informazioni, vedere https://aka.ms/dotnet-test. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. + Comando di test .NET per VSTest. Per usare Microsoft.Testing.Platform, attivare il comando basato su Microsoft.Testing.Platform tramite global.json. Per altre informazioni, vedere https://aka.ms/dotnet-test. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} DIRECTORY - DIRECTORY + DIRECTORY Download packages needed to install a workload to a folder that can be used for offline installation. - Download packages needed to install a workload to a folder that can be used for offline installation. + Scaricare i pacchetti necessari per installare un carico di lavoro in una cartella che può essere usata per l'installazione offline. Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. - Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. + Richiedere che il termine di ricerca corrisponda esattamente al nome del pacchetto. Consente di ignorare le opzioni `--take` e `--skip`. The file-based app to operate on. - The file-based app to operate on. + L'app basata su file su cui eseguire operazioni. Format - Format + Formato Format the output accordingly. Either `table`, or `json`. The default value is `table`. - Format the output accordingly. Either `table`, or `json`. The default value is `table`. + Formattare l'output in modo appropriato. 'table' o 'json'. Il valore predefinito è 'table'. Changes the format of outputted workload versions. Can take 'json' or 'list' - Changes the format of outputted workload versions. Can take 'json' or 'list' + Modifica il formato delle versioni del carico di lavoro di output. Può accettare 'json' o 'list' FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Pubblicare l'applicazione come applicazione dipendente dal framework. Per eseguire l'applicazione, è necessario installare un runtime .NET compatibile nel computer di destinazione. FRAMEWORK_VERSION - FRAMEWORK_VERSION + FRAMEWORK_VERSION The Microsoft.NETCore.App package version that will be used to run the assemblies. - The Microsoft.NETCore.App package version that will be used to run the assemblies. + Versione del pacchetto Microsoft.NETCore.App che verrà usata per eseguire gli assembly. DIRECTORY - DIRECTORY + DIRECTORY Complete the operation from cache (offline). - Complete the operation from cache (offline). + Completa l'operazione dalla cache (offline). Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. - Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. + Aggiornare i carichi di lavoro a una versione precedente specificata dall'argomento. Usare la 'cronologia del carico di lavoro dotnet' per visualizzare i record della cronologia del carico di lavoro disponibili. Include workloads installed with earlier SDK versions in update. - Include workloads installed with earlier SDK versions in update. + Includere nell'aggiornamento i carichi di lavoro installati con le versioni SDK precedenti. Update workloads based on specified rollback definition file. - Update workloads based on specified rollback definition file. + Aggiornare i carichi di lavoro in base al file di definizione di ripristino dello stato precedente specificato. DUMP_TYPE - DUMP_TYPE + DUMP_TYPE TIMESPAN - TIMESPAN + TIMESPAN .NET CLI help utility - .NET CLI help utility + Utilità della Guida dell'interfaccia della riga di comando .NET Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. - Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. + Eseguire l'aggiornamento alle versioni del carico di lavoro specificate nella cronologia senza modificare i carichi di lavoro installati. I carichi di lavoro attualmente installati verranno aggiornati in modo che corrispondano alla versione della cronologia specificata. Place project in root of the solution, rather than creating a solution folder. - Place project in root of the solution, rather than creating a solution folder. + Inserisce il progetto nella radice della soluzione invece di creare una cartella soluzione. Allow prerelease workload manifests. - Allow prerelease workload manifests. + Consenti i manifesti del carico di lavoro preliminari. Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Variabili di ambiente formattate in modo non corretto: {0} WORKING_DIR - WORKING_DIR + WORKING_DIR The working directory used by the command to execute. - The working directory used by the command to execute. + Directory di lavoro usata dal comando da eseguire. Invalid version string: {0} - Invalid version string: {0} + Stringa di versione non valida: {0} LEVEL - LEVEL + LEVEL List all projects in a solution file. - List all projects in a solution file. + Elenca tutti i progetti presenti in un file di soluzione. Disables checking if the template meets the constraints to be run. - Disables checking if the template meets the constraints to be run. + Disabilita il controllo se il modello soddisfa i vincoli per l'esecuzione. Display solution folder paths. - Display solution folder paths. + Visualizza i percorsi della cartella della soluzione. Shut down the MSBuild build server. - Shut down the MSBuild build server. + Arresta il server di compilazione di MSBuild. MANIFEST - MANIFEST + MANIFEST The path to a target manifest file that contains the list of packages to be excluded from the publish step. - The path to a target manifest file that contains the list of packages to be excluded from the publish step. + Percorso di un file manifesto di destinazione che contiene l'elenco di pacchetti da escludere dal passaggio di pubblicazione. Generate a .slnx file from a .sln file. - Generate a .slnx file from a .sln file. + Genera un file .slnx da un file .sln. .NET Add Command - .NET Add Command + Comando Aggiungi .NET List references or packages of a .NET project. - List references or packages of a .NET project. + Elenca i riferimenti o i pacchetti di un progetto .NET. .NET Remove Command - .NET Remove Command + Comando Rimuovi .NET Do not build the project before publishing. Implies --no-restore. - Do not build the project before publishing. Implies --no-restore. + Non compila il progetto prima della pubblicazione. Implica --no-restore. Do not build project-to-project references and only build the specified project. - Do not build project-to-project references and only build the specified project. + Non compila i riferimenti P2P (da progetto a progetto) e compila solo il progetto specificato. Do not use incremental building. - Do not use incremental building. + Non usa la compilazione incrementale. Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Evita la visualizzazione del messaggio di avvio o di copyright. Do not restore the project before building. - Do not restore the project before building. + Non ripristina il progetto prima della compilazione. OS - OS + Sistema operativo Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). - Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). + La specifica dell'opzione tool-manifest (--tool-manifest) è valida solo con l'opzione local (--local o impostazione predefinita). The target operating system. - The target operating system. + Sistema operativo di destinazione. Specifies a NuGet source to use. - Specifies a NuGet source to use. + Specifica un'origine NuGet da usare. Filters the templates based on the template author. - Filters the templates based on the template author. + Filtra i modelli in base all’autore del modello. Filters the templates based on baseline defined in the template. - Filters the templates based on baseline defined in the template. + Filtra i modelli in base alla baseline definita nel modello. Specifies the columns to display in the output. - Specifies the columns to display in the output. + Specifica le colonne da visualizzare nell'output. Displays all columns in the output. - Displays all columns in the output. + Visualizza tutte le colonne nell'output. Allows to pause execution in order to attach to the process for debug purposes. - Allows to pause execution in order to attach to the process for debug purposes. + Consente di sospendere l'esecuzione per connettersi al processo a scopo di debug. Sets custom settings location. - Sets custom settings location. + Imposta il percorso delle impostazioni personalizzate. If specified, removes the template cache prior to command execution. - If specified, removes the template cache prior to command execution. + Se specificato, rimuove la cache dei modelli prima dell'esecuzione del comando. If specified, resets the settings prior to command execution. - If specified, resets the settings prior to command execution. + Se specificato, reimposta le impostazioni prima dell'esecuzione del comando. If specified, shows the template engine config prior to command execution. - If specified, shows the template engine config prior to command execution. + Se specificato, mostra la configurazione del motore del modello prima dell'esecuzione del comando. If specified, the settings will be not preserved on file system. - If specified, the settings will be not preserved on file system. + Se specificato, le impostazioni non verranno mantenute in file system. Allows installing template packages from the specified sources even if they would override a template package from another source. - Allows installing template packages from the specified sources even if they would override a template package from another source. + Consente di installare pacchetti di modelli dalle origini specificate anche se sovrascrivessero un pacchetto di modelli da un'altra origine. Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Consente al comando di arrestare l'esecuzione e attendere l'input o l'azione dell'utente, ad esempio per completare l'autenticazione. Filters templates based on language. - Filters templates based on language. + Filtra i modelli in base al linguaggio. Location to place the generated output. - Location to place the generated output. + Percorso in cui inserire l'output generato. Filters the templates based on NuGet package ID. - Filters the templates based on NuGet package ID. + Filtra i modelli basati sull'ID pacchetto NuGet. Si applica a--search. The project that should be used for context evaluation. - The project that should be used for context evaluation. + Progetto da usare per la valutazione del contesto. Filters the templates based on the tag. - Filters the templates based on the tag. + Filtra i modelli in base al tag. Filters templates based on available types. Predefined values are "project" and "item". - Filters templates based on available types. Predefined values are "project" and "item". + Filtra i modelli in base ai tipi disponibili. I valori predefiniti sono "Progetto" e "Elemento". project and item should not be translated Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. - Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. + Non è possibile combinare le opzioni '--outdated', '--deprecated' e '--vulnerable'. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR .NET Core NuGet Package Packer - .NET Core NuGet Package Packer + Strumento di creazione pacchetti NuGet di .NET Core OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place built packages in. - The output directory to place built packages in. + Directory di output in cui inserire i pacchetti compilati. VERSION - VERSION + VERSIONE The version of the package to create - The version of the package to create + La versione del pacchetto da creare The configuration to use for building the package. The default is 'Release'. - The configuration to use for building the package. The default is 'Release'. + Configurazione da usare per la compilazione del pacchetto. Il valore predefinito è 'Release'. Add a NuGet package reference to the project. - Add a NuGet package reference to the project. + Aggiunge un riferimento al pacchetto NuGet al progetto. FRAMEWORK - FRAMEWORK + FRAMEWORK Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Aggiunge il riferimento solo se destinato a un framework specifico. Add the reference without performing restore preview and compatibility check. - Add the reference without performing restore preview and compatibility check. + Aggiunge il riferimento senza eseguire l'anteprima di restore e la verifica della compatibilità. SOURCE - SOURCE + SOURCE The NuGet package source to use during the restore. - The NuGet package source to use during the restore. + Origine pacchetto NuGet da usare durante il ripristino. Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Riferimento al pacchetto sotto forma di identificatore di pacchetto, ad esempio '{0}', oppure identificatore e versione di pacchetto separati da '@', ad esempio '{0}@{1}'. Package reference id and version must not be null. - Package reference id and version must not be null. + L'ID e la versione del riferimento al pacchetto non possono essere null. List all package references of the project or solution. - List all package references of the project or solution. + Elenca tutti i riferimenti al pacchetto del progetto o della soluzione. FRAMEWORK | FRAMEWORK\RID - FRAMEWORK | FRAMEWORK\RID + FRAMEWORK | FRAMEWORK\RID Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. - Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. + Consente di scegliere un framework per mostrarne i pacchetti. Usare l'opzione più volte in caso di framework multipli. SOURCE - SOURCE + SOURCE The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + Origini NuGet da usare quando si cercano i pacchetti più recenti. Richiede l'opzione '--outdated', '--deprecated' o '--vulnerable'. Package reference - Package reference + Riferimento al pacchetto Remove a NuGet package reference from the project. - Remove a NuGet package reference from the project. + Rimuove un riferimento al pacchetto NuGet dal progetto. The package reference to remove. - The package reference to remove. + Riferimento al pacchetto da rimuovere. Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. - Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. + Cerca in una o più origini pacchetti per pacchetti che corrispondono a un termine di ricerca. Se non vengono specificate origini, vengono usate tutte le origini definite in NuGet.Config. Include prerelease packages. - Include prerelease packages. + Includi pacchetti pre-release. SearchTerm - SearchTerm + SearchTerm Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. - Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. + Termine di ricerca per filtrare i nomi dei pacchetti, le descrizioni e i tag. Usato come valore letterale. Esempio: `dotnet package search some.package`. Vedere anche `--exact-match`. Skip - Skip + Ignora Number of results to skip, to allow pagination. Default 0. - Number of results to skip, to allow pagination. Default 0. + Numero di risultati da ignorare, per consentire la paginazione. Impostazione predefinita 0. Take - Take + Includi Number of results to return. Default 20. - Number of results to return. Default 20. + Numero di risultati da restituire. Impostazione predefinita 20. Only print the list of links to download without downloading. - Only print the list of links to download without downloading. + Stampa solo l'elenco dei collegamenti da scaricare senza scaricarlo. @@ -1508,15 +1508,15 @@ If command is specified without the argument, it lists all the template packages dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 - 'dotnet workload search version' has three functions depending on its argument: - 1. If no argument is specified, it outputs a list of the latest released workload versions from this feature band. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 'dotnet workload search version' ha tre funzioni in base al suo argomento: + 1. Se non viene specificato alcun argomento, restituisce un elenco delle versioni del carico di lavoro più recenti di questa fascia di funzionalità. Accetta l'opzione --take per specificare quante fornirne e --format per modificare il formato. + Esempio: dotnet workload search version --take 2 --format json [{"workloadVersion":"9.0.201"},{"workloadVersion":"9.0.200.1"}] - 2. If a workload version is provided as an argument, it outputs a table of various workloads and their versions for the specified workload version. Takes the --format option to alter the output format. - Example: + 2. Se viene fornita una versione del carico di lavoro come argomento, restituisce una tabella con i vari carichi di lavoro e le loro versioni per la versione del carico di lavoro specificata. Accetta l'opzione --format per modificare il formato di output. + Esempio: dotnet workload search version 9.0.201 - Workload manifest ID Manifest feature band Manifest Version + ID manifesto carico di lavoro Fascia di funzionalità manifesto Versione manifesto ------------------------------------------------------------------------------------------------ microsoft.net.workload.emscripten.current 9.0.100-rc.1 9.0.0-rc.1.24430.3 microsoft.net.workload.emscripten.net6 9.0.100-rc.1 9.0.0-rc.1.24430.3 @@ -1532,8 +1532,8 @@ If command is specified without the argument, it lists all the template packages microsoft.net.workload.mono.toolchain.net6 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net7 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net8 9.0.100-rc.1 9.0.0-rc.1.24431.7 - 3. If one or more workloads are provided along with their versions (by joining them with the '@' character), it outputs workload versions that match the provided versions. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 3. Se vengono forniti uno o più carichi di lavoro insieme alle loro versioni (unendoli con il carattere "@"), restituisce le versioni del carico di lavoro che corrispondono alle versioni fornite. Accetta l'opzione --take per specificare quanti fornirne e --format per modificare il formato. + Esempio: dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 @@ -1541,775 +1541,775 @@ If command is specified without the argument, it lists all the template packages The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + File di progetto su cui intervenire. Se non si specifica un file, il comando ne cercherà uno nella directory corrente. Convert a file-based program to a project-based program. - Convert a file-based program to a project-based program. + Converti un programma basato su file in un programma basato su progetto. Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Determina le modifiche senza modificare effettivamente il file system PROJECT_MANIFEST - PROJECT_MANIFEST + PROJECT_MANIFEST The XML file that contains the list of packages to be stored. - The XML file that contains the list of packages to be stored. + File XML che contiene l'elenco di pacchetti da archiviare. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Il file di progetto o l'app basata su file C# su cui eseguire operazioni. Se non si specifica un file, il comando cercherà un progetto o una soluzione nella directory corrente. PROJECT | FILE - PROJECT | FILE + FILE DI | PROGETTO Publisher for the .NET Platform - Publisher for the .NET Platform + Editore per la piattaforma .NET The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. - The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. + Configurazione per la pubblicazione. Il valore predefinito per i progetti NET 8.0 e versioni successive è 'Release', ma per i progetti meno recenti è 'Debug'. The target framework to publish for. The target framework has to be specified in the project file. - The target framework to publish for. The target framework has to be specified in the project file. + Framework di destinazione per cui eseguire la pubblicazione. Il framework di destinazione deve essere specificato nel file di progetto. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place the published artifacts in. - The output directory to place the published artifacts in. + Directory di output in cui inserire gli artefatti pubblicati. The target runtime to publish for. This is used when creating a self-contained deployment. The default is to publish a framework-dependent application. - The target runtime to publish for. This is used when creating a self-contained deployment. -The default is to publish a framework-dependent application. + Runtime di destinazione per cui eseguire la pubblicazione. Viene usato durante la creazione di un pacchetto di distribuzione autonomo. +Per impostazione predefinita, viene generato un pacchetto dipendente dal framework. Shut down the Razor build server. - Shut down the Razor build server. + Arresta il server di compilazione di Razor. Add a project-to-project reference to the project. - Add a project-to-project reference to the project. + Aggiunge un riferimento P2P (da progetto a progetto) al progetto. Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Aggiunge il riferimento solo se destinato a un framework specifico. The paths to the projects to add as references. - The paths to the projects to add as references. + Percorsi dei progetti da aggiungere come riferimenti. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH List all project-to-project references of the project. - List all project-to-project references of the project. + Elenca tutti i riferimenti P2P (da progetto a progetto) del progetto. Remove a project-to-project reference from the project. - Remove a project-to-project reference from the project. + Rimuove un riferimento P2P (da progetto a progetto) dal progetto. Remove the reference only when targeting a specific framework. - Remove the reference only when targeting a specific framework. + Rimuove il riferimento solo se destinato a un framework specifico. The paths to the referenced projects to remove. - The paths to the referenced projects to remove. + Percorsi dei progetti di riferimento da rimuovere. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Remove one or more projects from a solution file. - Remove one or more projects from a solution file. + Consente di rimuovere uno o più progetti da un file di soluzione. The project paths or names to remove from the solution. - The project paths or names to remove from the solution. + I percorsi o nomi progetto da rimuovere dalla soluzione. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Required command was not provided. - Required command was not provided. + Il comando obbligatorio non è stato specificato. .NET dependency restorer - .NET dependency restorer + Utilità di ripristino dipendenze .NET Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. - Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. + Consente a uno strumento .NET di eseguire il roll forward alle versioni più recenti del runtime .NET se il runtime di destinazione non è installato. .NET Run Command - .NET Run Command + Comando esecuzione .NET The configuration to run for. The default for most projects is 'Debug'. - The configuration to run for. The default for most projects is 'Debug'. + Configurazione da usare per l'esecuzione. L'impostazione predefinita per la maggior parte dei progetti è 'Debug'. The target framework to run for. The target framework must also be specified in the project file. - The target framework to run for. The target framework must also be specified in the project file. + Framework di destinazione da usare per l'esecuzione. Il framework di destinazione deve essere specificato anche nel file di progetto. The target runtime to run for. - The target runtime to run for. + Runtime di destinazione per l'esecuzione. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Abilita l'output di diagnostica. Display the command schema as JSON. - Display the command schema as JSON. + Visualizza lo schema del comando in formato JSON. .NET SDK Command - .NET SDK Command + Comando SDK .NET .NET SDK Check Command - .NET SDK Check Command + Comando per controllo disponibilità .NET SDK The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Non è possibile usare contemporaneamente le opzioni '--self-contained' e ‘--no-self-contained'. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Pubblicare il runtime .NET con l'applicazione in modo che non sia necessario installare il runtime nel computer di destinazione. +Il valore predefinito è 'false'. Tuttavia, quando la destinazione è .NET 7 o una versione inferiore, il valore predefinito è 'true' se viene specificato un identificatore di runtime. Skip updating the workload manifests. - Skip updating the workload manifests. + Salta l'aggiornamento dei manifesti del carico di lavoro. Skip the optimization phase. - Skip the optimization phase. + Ignora la fase di ottimizzazione. Skip signature verification of workload packages and installers. - Skip signature verification of workload packages and installers. + Ignora la verifica della firma dei pacchetti e dei programmi di installazione del carico di lavoro. Skip creating symbol files which can be used for profiling the optimized assemblies. - Skip creating symbol files which can be used for profiling the optimized assemblies. + Non crea i file di simboli che è possibile usare per la profilatura degli assembly ottimizzati. Recursively add projects' ReferencedProjects to solution - Recursively add projects' ReferencedProjects to solution + Aggiungi in modo ricorsivo i progetti ReferencedProjects alla soluzione .NET modify solution file command - .NET modify solution file command + Comando Modifica file di soluzione .NET The solution file to operate on. If not specified, the command will search the current directory for one. - The solution file to operate on. If not specified, the command will search the current directory for one. + File di soluzione su cui intervenire. Se non si specifica un file, il comando ne cercherà uno nella directory corrente. SLN_FILE - SLN_FILE + SLN_FILE The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + File di progetto o di soluzione su cui intervenire. Se non si specifica un file, il comando ne cercherà uno nella directory corrente. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Il progetto o la soluzione o il file C# (programma basato su file) su cui eseguire operazioni. Se non si specifica un file, il comando cercherà un progetto o una soluzione nella directory corrente. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJECT | SOLUTION | FILE Source - Source + Origine The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. - The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. + Origine del pacchetto in cui eseguire la ricerca. È possibile passare più opzioni `--source' per cercare più origini pacchetti. Esempio: `--source https://api.nuget.org/v3/index.json`. Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. - Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. + Consente di archiviare gli assembly specificati per la piattaforma .NET. Per impostazione predefinita, gli assembly verranno ottimizzati per il framework e il runtime di destinazione. The target framework to store packages for. The target framework has to be specified in the project file. - The target framework to store packages for. The target framework has to be specified in the project file. + Framework di destinazione per cui archiviare i pacchetti. Il framework di destinazione deve essere specificato nel file di progetto. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to store the given assemblies in. - The output directory to store the given assemblies in. + Directory di output in cui archiviare gli assembly specificati. The target runtime to store packages for. - The target runtime to store packages for. + Runtime di destinazione per cui archiviare i pacchetti. Specify a temporary directory for this command to download and extract NuGet packages (must be secure). - Specify a temporary directory for this command to download and extract NuGet packages (must be secure). + Specificare una directory temporanea per questo comando per scaricare ed estrarre i pacchetti NuGet (deve essere protetta). Displays a summary of what would happen if the given command line were run if it would result in a template creation. - Displays a summary of what would happen if the given command line were run if it would result in a template creation. + Visualizza un riepilogo di ciò che accadrebbe se la riga di comando specificata venisse eseguita se il risultato fosse la creazione di un modello. Forces content to be generated even if it would change existing files. - Forces content to be generated even if it would change existing files. + Impone la generazione del contenuto anche se i file esistenti venissero modificati. The name for the output being created. If no name is specified, the name of the output directory is used. - The name for the output being created. If no name is specified, the name of the output directory is used. + Nome dell'output da creare. Se non viene specificato alcun nome, verrà usato il nome della directory di output. Disables checking for the template package updates when instantiating a template. - Disables checking for the template package updates when instantiating a template. + Disabilita il controllo degli aggiornamenti del pacchetto di modelli durante la creazione di un'istanza di un modello. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The configuration to use for running tests. The default for most projects is 'Debug'. - The configuration to use for running tests. The default for most projects is 'Debug'. + Configurazione da usare per eseguire i test. L'impostazione predefinita per la maggior parte dei progetti è 'Debug'. The target framework to run tests for. The target framework must also be specified in the project file. - The target framework to run tests for. The target framework must also be specified in the project file. + Framework di destinazione per cui eseguire i test. Il framework di destinazione deve essere specificato anche nel file di progetto. The target runtime to test for. - The target runtime to test for. + Runtime di destinazione per cui eseguire il test. Install or work with tools that extend the .NET experience. - Install or work with tools that extend the .NET experience. + Consente di installare o usare strumenti che estendono l'esperienza .NET. Executes a tool from source without permanently installing it. - Executes a tool from source without permanently installing it. + Esegue uno strumento dall'origine senza installarlo permanentemente. Add an additional NuGet package source to use during installation. - Add an additional NuGet package source to use during installation. + Aggiunge un'altra origine pacchetto NuGet da usare durante l'installazione. ADDSOURCE - ADDSOURCE + ADDSOURCE Install global or local tool. Local tools are added to manifest and restored. - Install global or local tool. Local tools are added to manifest and restored. + Installa lo strumento globale o locale. Gli strumenti locali vengono aggiunti al manifesto e ripristinati. The NuGet configuration file to use. - The NuGet configuration file to use. + File di configurazione NuGet da usare. FILE - FILE + FILE The target framework to install the tool for. - The target framework to install the tool for. + Framework di destinazione per cui installare lo strumento. FRAMEWORK - FRAMEWORK + FRAMEWORK Install the tool for the current user. - Install the tool for the current user. + Installa lo strumento per l'utente corrente. Install the tool and add to the local tool manifest (default). - Install the tool and add to the local tool manifest (default). + Installa lo strumento e lo aggiunge al manifesto degli strumenti locale (impostazione predefinita). Path to the manifest file. - Path to the manifest file. + Percorso del file manifesto. PATH - PATH + PATH Replace all NuGet package sources to use during installation with these. - Replace all NuGet package sources to use during installation with these. + Sostituire tutte le origini del pacchetto NuGet da usare durante l'installazione con queste. SOURCE - SOURCE + ORIGINE The directory where the tool will be installed. The directory will be created if it does not exist. - The directory where the tool will be installed. The directory will be created if it does not exist. + Directory in cui verrà installato lo strumento. Se non esiste già, verrà creata. PATH - PATH + PATH The version of the tool package to install. - The version of the tool package to install. + Versione del pacchetto dello strumento da installare. VERSION - VERSION + VERSIONE List tools installed globally or locally. - List tools installed globally or locally. + Elenca gli strumenti installati a livello globale o locale. The output format for the list of tools. - The output format for the list of tools. + Formato di output per l'elenco di strumenti. List tools installed for the current user. - List tools installed for the current user. + Elenca gli strumenti installati per l'utente corrente. List the tools installed in the local tool manifest. - List the tools installed in the local tool manifest. + Elenca gli strumenti installati nel manifesto degli strumenti locale. The NuGet Package Id of the tool to list - The NuGet Package Id of the tool to list + ID del pacchetto NuGet dello strumento da elencare. PACKAGE_ID - PACKAGE_ID + PACKAGE_ID The directory containing the tools to list. - The directory containing the tools to list. + Directory contenente gli strumenti da elencare. Restore tools defined in the local tool manifest. - Restore tools defined in the local tool manifest. + Ripristina gli strumenti definiti nel manifesto degli strumenti locale. Path to the manifest file. - Path to the manifest file. + Percorso del file manifesto. Arguments forwarded to the tool - Arguments forwarded to the tool + Argomenti inviati allo strumento Run a local tool. Note that this command cannot be used to run a global tool. - Run a local tool. Note that this command cannot be used to run a global tool. + Eseguire uno strumento locale. Si noti che questo comando non può essere utilizzato per eseguire uno strumento globale. Search dotnet tools in nuget.org - Search dotnet tools in nuget.org + Cerca negli strumenti dotnet in nuget.org Include pre-release packages. - Include pre-release packages. + Includi pacchetti pre-release. SEARCH_TERM - SEARCH_TERM + SEARCH_TERM Search term from package id or package description. Require at least one character. - Search term from package id or package description. Require at least one character. + Termine di ricerca incluso nell'ID pacchetto o nella descrizione del pacchetto. È richiesto almeno un carattere. Skip - Skip + Ignora The number of results to skip, for pagination. - The number of results to skip, for pagination. + Numero di risultati da ignorare per l'impaginazione. Take - Take + Includi The number of results to return, for pagination. - The number of results to return, for pagination. + Numero di risultati da restituire per l'impaginazione. Uninstall a global tool or local tool. - Uninstall a global tool or local tool. + Disinstalla uno strumento globale o locale. Uninstall the tool from the current user's tools directory. - Uninstall the tool from the current user's tools directory. + Disinstalla lo strumento dalla directory degli strumenti dell'utente corrente. Uninstall the tool and remove it from the local tool manifest. - Uninstall the tool and remove it from the local tool manifest. + Disinstalla lo strumento e lo rimuove dal manifesto degli strumenti locale. Path to the manifest file. - Path to the manifest file. + Percorso del file manifesto. The directory containing the tool to uninstall. - The directory containing the tool to uninstall. + Directory contenente lo strumento da disinstallare. Update a global or local tool. - Update a global or local tool. + Aggiornare uno strumento globale o locale. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Il comando o l'argomento '{0}' non è stato riconosciuto Update all tools. - Update all tools. + Aggiorna tutti gli strumenti. Controls whether updates should look for workload sets or the latest version of each individual manifest. - Controls whether updates should look for workload sets or the latest version of each individual manifest. + Controlla se gli aggiornamenti devono cercare i set di carichi di lavoro o la versione più recente di ogni singolo manifesto. Shut down the VB/C# compiler build server. - Shut down the VB/C# compiler build server. + Arresta il server di compilazione del compilatore VB/C#. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Non è possibile specificare --version se l'argomento del pacchetto contiene già una versione. {Locked="--version"} Verbosity - Verbosity + Livello di dettaglio Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` - Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` + Visualizzare la quantità di dettagli nell'output: `normale`, `minimo`, `dettagliato`. L'impostazione predefinita è `normale` Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Consente di impostare il livello di dettaglio di MSBuild. I valori consentiti sono q[uiet], m[inimal], n[ormal], d[etailed] e diag[nostic]. Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. - Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. + Consente di impostare il livello di dettaglio. I valori consentiti sono q[uiet], m[inimal], n[ormal] e diag[nostic]. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX Removes workload components that may have been left behind from previous updates and uninstallations. - Removes workload components that may have been left behind from previous updates and uninstallations. + Rimuove i componenti del carico di lavoro che potrebbero essere stati lasciati indietro da aggiornamenti e disinstallazioni precedenti. Install or work with workloads that extend the .NET experience. - Install or work with workloads that extend the .NET experience. + Consente di installare o usare carichi di lavoro che estendono l'esperienza .NET. Modify or display workload configuration values. To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" - Modify or display workload configuration values. -To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" + Modifica o visualizza i valori di configurazione del carico di lavoro. +Per visualizzare un valore, specifica l'opzione della riga di comando corrispondente senza fornire un valore. Ad esempio: "dotnet workload config --update-mode" Start the elevated server process to facilitate MSI based installations. - Start the elevated server process to facilitate MSI based installations. + Avviare il processo server con privilegi elevati per semplificare le installazioni basate su MSI. Shows a history of workload installation actions. - Shows a history of workload installation actions. + Mostra una cronologia delle azioni di installazione del carico di lavoro. The NuGet package ID of the workload to install. - The NuGet package ID of the workload to install. + ID pacchetto NuGet del carico di lavoro da installare. WORKLOAD_ID - WORKLOAD_ID + WORKLOAD_ID The text to search for in the IDs and descriptions of available workloads. - The text to search for in the IDs and descriptions of available workloads. + Testo da cercare negli ID e nelle descrizioni dei carichi di lavoro disponibili. SEARCH_STRING - SEARCH_STRING + SEARCH_STRING Display information about installed workloads. - Display information about installed workloads. + Visualizzare informazioni sui carichi di lavoro installati. Install one or more workloads. - Install one or more workloads. + Installare uno o più carichi di lavoro. The NuGet configuration file to use. - The NuGet configuration file to use. + File di configurazione NuGet da usare. FILE - FILE + FILE The NuGet package source to use during the restore. To specify multiple sources, repeat the option. - The NuGet package source to use during the restore. To specify multiple sources, repeat the option. + Origine del pacchetto NuGet da usare durante il ripristino. Per specificare più origini, ripetere l'opzione. SOURCE - SOURCE + ORIGINE The version of the SDK. - The version of the SDK. + Versione dell'SDK. VERSION - VERSION + VERSIONE List workloads available. - List workloads available. + Elenca i carichi di lavoro disponibili. Repair workload installations. - Repair workload installations. + Ripara le installazioni del carico di lavoro. Restore workloads required for a project. - Restore workloads required for a project. + Ripristina i carichi di lavoro richiesti per il progetto. Search for available workloads. - Search for available workloads. + Cercare carichi di lavoro disponibili. A workload version to display or one or more workloads and their versions joined by the '@' character. - A workload version to display or one or more workloads and their versions joined by the '@' character. + Una versione del carico di lavoro da visualizzare oppure uno o più carichi di lavoro e le relative versioni unite dal carattere '@'. Uninstall one or more workloads. - Uninstall one or more workloads. + Disinstallare uno o più carichi di lavoro. Update all installed workloads. - Update all installed workloads. + Aggiornare tutti i carichi di lavoro installati. WORKLOAD_VERSION - WORKLOAD_VERSION + WORKLOAD_VERSION Output workload manifest versions associated with the provided workload version. - Output workload manifest versions associated with the provided workload version. + Versioni del manifesto del carico di lavoro di output associate alla versione del carico di lavoro fornita. Display the currently installed workload version. - Display the currently installed workload version. + Visualizza la versione del carico di lavoro attualmente installata. Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Accetta tutte le richieste di conferma con "yes". The friendly name of the data collector to use for the test run. More info here: https://aka.ms/vstest-collect - The friendly name of the data collector to use for the test run. - More info here: https://aka.ms/vstest-collect + Nome descrittivo dell'agente di raccolta dati da usare per l'esecuzione dei test. + Per altre informazioni, vedere: https://aka.ms/vstest-collect DATA_COLLECTOR_NAME - DATA_COLLECTOR_NAME + DATA_COLLECTOR_NAME diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.ja.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.ja.xlf index 1f8d81c906d3..b20ed25e35ce 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.ja.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.ja.xlf @@ -4,162 +4,162 @@ Only update advertising manifests. - Only update advertising manifests. + 広告マニフェストのみを更新します。 Add one or more projects to a solution file. - Add one or more projects to a solution file. + 1 つ以上のプロジェクトをソリューション ファイルに追加します。 The paths to the projects to add to the solution. - The paths to the projects to add to the solution. + ソリューションに追加するプロジェクトへのパス。 PROJECT_PATH - PROJECT_PATH + PROJECT_PATH The destination solution folder path to add the projects to. - The destination solution folder path to add the projects to. + プロジェクトの追加先のソリューション フォルダー パス。 Allow package downgrade when installing a .NET tool package. - Allow package downgrade when installing a .NET tool package. + .NET ツール パッケージのインストール時にパッケージのダウングレードを許可します。 ARCH - ARCH + ARCH The target architecture. - The target architecture. + ターゲット アーキテクチャ。 ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + 成果物のパス。ビルド、発行、パック出力などのプロジェクトからの出力はすべて、指定されたパスの下のサブフォルダーに格納されます。 .NET Builder - .NET Builder + .NET ビルダー The configuration to use for building the project. The default for most projects is 'Debug'. - The configuration to use for building the project. The default for most projects is 'Debug'. + プロジェクトのビルドに使用する構成。ほとんどのプロジェクトで、既定値は 'Debug' です。 The target framework to build for. The target framework must also be specified in the project file. - The target framework to build for. The target framework must also be specified in the project file. + ビルドする対象のターゲット フレームワーク。ターゲット フレームワークはプロジェクト ファイルでも指定する必要があります。 The output directory to place built artifacts in. - The output directory to place built artifacts in. + ビルド成果物を配置する出力ディレクトリ。 The target runtime to build for. - The target runtime to build for. + ビルドする対象のターゲット ランタイム。 Interact with servers started from a build. - Interact with servers started from a build. + ビルドから開始されたサーバーとやり取りします。 Shuts down build servers that are started from dotnet. By default, all servers are shut down. - Shuts down build servers that are started from dotnet. By default, all servers are shut down. + dotnet から起動されたビルド サーバーをシャットダウンします。既定では、すべてのサーバーがシャットダウンされます。 Cannot specify both the {0} and {1} arguments. - Cannot specify both the {0} and {1} arguments. + {0} 引数と {1} 引数の両方を指定することはできません。 Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + 現在のランタイム識別子を解決できませんでした。 Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + `-r|--runtime` および `-a|--arch` オプションの両方を指定することはサポートされていません。 Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + `-r|--runtime` および `-os` オプションの両方を指定することはサポートされていません。 Causes clean to remove and uninstall all workload components from all SDK versions. - Causes clean to remove and uninstall all workload components from all SDK versions. + すべての SDK バージョンからすべてのワークロード コンポーネントをクリーンに削除およびアンインストールします。 .NET Clean Command - .NET Clean Command + .NET Clean コマンド OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The directory containing the build artifacts to clean. - The directory containing the build artifacts to clean. + クリーンするビルド成果物を含むディレクトリ。 The configuration to clean for. The default for most projects is 'Debug'. - The configuration to clean for. The default for most projects is 'Debug'. + クリーンする対象の構成。大部分のプロジェクトで、既定値は 'Debug' です。 Removes artifacts created for file-based apps - Removes artifacts created for file-based apps + ファイルベースのアプリ用に作成された成果物を削除します How many days an artifact folder needs to be unused in order to be removed - How many days an artifact folder needs to be unused in order to be removed + 成果物フォルダーが削除されるためには、何日間未使用である必要がありますか Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + ファイル システムを実際に変更せずに変更を決定します The target framework to clean for. The target framework must also be specified in the project file. - The target framework to clean for. The target framework must also be specified in the project file. + クリーンする対象のターゲット フレームワーク。ターゲット フレームワークはプロジェクト ファイルでも指定する必要があります。 The target runtime to clean for. - The target runtime to clean for. + クリーンする対象のターゲット ランタイム。 Enables collecting crash dump on expected as well as unexpected testhost exit. - Enables collecting crash dump on expected as well as unexpected testhost exit. + TestHost の予期されるおよび予期されない終了時にクラッシュ ダンプを収集することを有効にします。 @@ -174,22 +174,22 @@ The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downlo To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. Implies --blame. - Runs the tests in blame mode and collects a crash dump when the test host exits unexpectedly. This option depends on the version of .NET used, the type of error, and the operating system. + テスト ホストが予期せず終了したときに、変更履歴モードでテストを実行し、クラッシュ ダンプを収集します。このオプションは、使用されている .NET のバージョン、エラーの種類、オペレーティング システムによって異なります。 -For exceptions in managed code, a dump will be automatically collected on .NET 5.0 and later versions. It will generate a dump for testhost or any child process that also ran on .NET 5.0 and crashed. Crashes in native code will not generate a dump. This option works on Windows, macOS, and Linux. +マネージド コードの例外の場合、ダンプは .NET 5.0 以降のバージョンで自動的に収集されます。testhost または同じく .NET 5.0 で実行されクラッシュした任意の子プロセスのダンプが生成されます。ネイティブ コードのクラッシュではダンプは生成されません。このオプションは、Windows、macOS、Linux で動作します。 -Crash dumps in native code, or when targetting .NET Framework, or .NET Core 3.1 and earlier versions, can only be collected on Windows, by using Procdump. A directory that contains procdump.exe and procdump64.exe must be in the PATH or PROCDUMP_PATH environment variable. +ネイティブ コードのクラッシュ ダンプ、または .NET Framework または .NET Core 3.1 以前のバージョンを対象とするクラッシュ ダンプの場合は、Procdump を使用して Windows でのみ収集できます。procdump.exe と procdump64.exe を含むディレクトリは、PATH または PROCDUMP_PATH 環境変数に存在する必要があります。 -The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downloads/procdump +ツールは次の場所からダウンロードできます: https://docs.microsoft.com/sysinternals/downloads/procdump -To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. +.NET 5.0 以降で実行中のネイティブ アプリケーションからクラッシュ ダンプを収集するには、VSTEST_DUMP_FORCEPROCDUMP 環境変数を 1 に設定して Procdump の使用を強制できます。 -Implies --blame. +--blame が暗黙的に指定されます。 The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. - The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. + 収集されるクラッシュ ダンプの種類。サポート対象の値はフル (既定) とミニです。--blame-crash を示します。 @@ -207,30 +207,30 @@ Example: Timeout the test run when a test takes more than 20 minutes and collect hang dump. dotnet test --blame-hang-timeout 20min - Runs the tests in blame mode. This option is helpful in isolating problematic tests that cause the test host to crash or hang, but it does not create a memory dump by default. + 変更履歴モードでテストを実行します。このオプションは、テスト ホストがクラッシュまたはハングする問題のあるテストを分離するのに役立ちますが、既定ではメモリ ダンプは作成されません。 -When a crash is detected, it creates an sequence file in TestResults/guid/guid_Sequence.xml that captures the order of tests that were run before the crash. +クラッシュが検出されると、クラッシュ前に実行されたテストの順序をキャプチャしたシーケンス ファイルが TestResults/guid/guid_Sequence.xml に作成されます。 -Based on the additional settings, hang dump or crash dump can also be collected. +追加の設定に基づいて、ハング ダンプまたはクラッシュ ダンプを収集することもできます。 -Example: - Timeout the test run when test takes more than the default timeout of 1 hour, and collect crash dump when the test host exits unexpectedly. - (Crash dumps require additional setup, see below.) +例: + テストが既定のタイムアウト時間である 1 時間を超える場合にテストの実行をタイムアウトし、テスト ホストが予期せず終了したときにクラッシュ ダンプを収集します。 + (クラッシュ ダンプには追加のセットアップが必要です。以下を参照してください。) dotnet test --blame-hang --blame-crash -Example: - Timeout the test run when a test takes more than 20 minutes and collect hang dump. +例: + テストが 20 分を超える場合にテストの実行をタイムアウトし、ハング ダンプを収集します。 dotnet test --blame-hang-timeout 20min Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. - Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. + 変更履歴モードでテストを実行し、テストが指定されたタイムアウトを超えたときにハング ダンプを収集するのを可能にします。 The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. - The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. + 収集するクラッシュ ダンプの種類。サポート対象の値はフル (既定)、ミニ、なしです。[なし] を使用した場合、ホストのテストはタイムアウト時に終了しますが、ダンプは収集されません。--blame-hang を暗黙的に指定します。 @@ -238,67 +238,67 @@ Example: The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, For MSTest before 2.2.4, the timeout is used for all testcases. - Per-test timeout, after which hang dump is triggered and the testhost process is terminated. Default is 1h. -The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. -When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, -For MSTest before 2.2.4, the timeout is used for all testcases. + テストごとのタイムアウト。れを経過すると、ハング ダンプがトリガーされ、testhost プロセスが中止されます。既定値は 1h (1 時間) です。 +タイムアウト値は次の形式で指定します: 1.5h / 90m / 5400s / 5400000ms。単位が使用されていない場合 (例: 5400000)、値は ms (ミリ秒) 単位と見なされます。 +データ ドリブン テストと共に使用すると、タイムアウトの動作は使用するテスト アダプターによって異なります。xUnit、NUnit、MSTest 2.2.4 以降の場合、タイムアウトはテスト ケースの後に毎回更新されます、 +2.2.4 より前の MSTest の場合、タイムアウトはすべてのテストケースで使用されます。 CONFIG_FILE - CONFIG_FILE + CONFIG_FILE The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + 使用する NuGet config ファイルのパス。'--outdated'、'--deprecated'、または '--vulnerable' のオプションが必要です。 Specifies a testconfig.json file. - Specifies a testconfig.json file. + testconfig.json ファイルを指定します。 FILE - FILE + FILE The NuGet configuration file to use. - The NuGet configuration file to use. + 使用する NuGet 構成ファイル。 CONFIG_FILE - CONFIG_FILE + CONFIG_FILE Use current runtime as the target runtime. - Use current runtime as the target runtime. + 現在のランタイムをターゲット ランタイムとして使用します。 Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. - Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. + 非推奨化されたパッケージを一覧表示します。'--vulnerable' または '--outdated' オプションと組み合わせることはできません。 Output directory of the diagnostic logging. If not specified the file will be generated inside the default 'TestResults' directory. - Output directory of the diagnostic logging. -If not specified the file will be generated inside the default 'TestResults' directory. + 診断ログの出力ディレクトリ。 +指定しない場合、ファイルは既定の 'TestResults' ディレクトリ内に生成されます。 DIAGNOSTIC_DIR - DIAGNOSTIC_DIR + DIAGNOSTIC_DIR Prevent restoring multiple projects in parallel. - Prevent restoring multiple projects in parallel. + 複数のプロジェクトを並行して復元できないようにします。 @@ -312,11 +312,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + 環境変数の値を設定します。 +変数が存在しない場合は作成され、存在する場合はオーバーライドされます。 +この引数は、複数の変数を指定するために複数回指定できます。 -Examples: +例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -326,74 +326,74 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" EXPRESSION - EXPRESSION + EXPRESSION Path to the file-based program. - Path to the file-based program. + ファイル ベースのプログラムへのパス。 Force all dependencies to be resolved even if the last restore was successful. This is equivalent to deleting project.assets.json. - Force all dependencies to be resolved even if the last restore was successful. -This is equivalent to deleting project.assets.json. + 最後に行われた復元が成功した場合でも、強制的にすべての依存関係が解決されます。 +これは、project.assets.json を削除することと同じです。 Specifies the output format type for the list packages command. - Specifies the output format type for the list packages command. + list packages コマンドの出力形式の種類を指定します。 Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. + 新しいパッケージを検索するときにメジャー バージョン番号が一致するパッケージのみを検討します。'--outdated' オプションが必要です。 Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. + 新しいパッケージを検索するときにメジャーとマイナーのバージョン番号が一致するパッケージのみを検討します。'--outdated' オプションが必要です。 Treat package source failures as warnings. - Treat package source failures as warnings. + パッケージ ソース エラーを警告として処理します。 Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. - Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. + PDB とソース ファイルを含めます。ソース ファイルは、結果の nuget パッケージの 'src' フォルダーに移ります。 Include packages with symbols in addition to regular packages in output directory. - Include packages with symbols in addition to regular packages in output directory. + 通常のパッケージに加えてシンボルを含むパッケージを出力ディレクトリに含めます。 List the discovered tests instead of running the tests. - List the discovered tests instead of running the tests. + テストを実行する代わりに、検出されたテストを一覧表示します。 LOCK_FILE_PATH - LOCK_FILE_PATH + LOCK_FILE_PATH Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. - Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. + プロジェクト ロック ファイルの書き込み先の出力場所。既定では、これは 'PROJECT_ROOT\packages.lock.json' です。 Don't allow updating project lock file. - Don't allow updating project lock file. + プロジェクト ロック ファイルの更新は許可されません。 @@ -402,223 +402,223 @@ This is equivalent to deleting project.assets.json. Log in trx format using a unique file name: --logger trx Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" See https://aka.ms/vstest-report for more information on logger arguments. - The logger to use for test results. - Examples: - Log in trx format using a unique file name: --logger trx - Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" - See https://aka.ms/vstest-report for more information on logger arguments. + テスト結果に使用するロガー。 + 例: + 一意のファイル名を使用する trx 形式のログ: --logger trx + 指定されたファイル名を使用する trx 形式のログ: --logger "trx;LogFileName=<TestResults.trx>" + ロガーの引数に関する詳細情報は、https://aka.ms/vstest-report を参照してください。 LOGGER - LOGGER + LOGGER The max number of test modules that can run in parallel. - The max number of test modules that can run in parallel. + 並列で実行できるテスト モジュールの最大数。 Specifies the minimum number of tests that are expected to run. - Specifies the minimum number of tests that are expected to run. + 実行する必要があるテストの最小数を指定します。 Disable ANSI output. - Disable ANSI output. + ANSI 出力を無効にします。 Do not build the project before testing. Implies --no-restore. - Do not build the project before testing. Implies --no-restore. + テストする前にプロジェクトをビルドしないでください。--no-restore を意味します。 Do not build the project before packing. Implies --no-restore. - Do not build the project before packing. Implies --no-restore. + パックする前にプロジェクトをビルドしないでください。--no-restore を意味します。 Do not cache packages and http requests. - Do not cache packages and http requests. + パッケージと HTTP 要求はキャッシュしません。 Do not restore project-to-project references and only restore the specified project. - Do not restore project-to-project references and only restore the specified project. + プロジェクト間参照を復元せず、指定したプロジェクトだけを復元します。 Disable Http Caching for packages. - Disable Http Caching for packages. + パッケージの HTTP キャッシュを無効にします。 Disable progress reporting. - Disable progress reporting. + 進行状況レポートを無効にします。 Do not restore before running the command. - Do not restore before running the command. + コマンドを実行する前に復元しないでください。 NUMBER - NUMBER + NUMBER Force conversion even if there are malformed directives. - Force conversion even if there are malformed directives. + 形式に誤りがあるディレクティブがある場合でも、強制的に変換します。 Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. - Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. + 新しいバージョンのパッケージを一覧表示します。'--deprecated' または '--vulnerable' オプションと組み合わせることはできません。 The output directory to place built artifacts in. - The output directory to place built artifacts in. + ビルド成果物を配置する出力ディレクトリ。 Specifies the version of machine-readable output. Requires the '--format json' option. - Specifies the version of machine-readable output. Requires the '--format json' option. + コンピューターが読み取り可能な出力のバージョンを指定します。'--format json' オプションが必要です。 PACKAGE_NAME - PACKAGE_NAME + PACKAGE_NAME PACKAGE_DIR - PACKAGE_DIR + PACKAGE_DIR The directory to restore packages to. - The directory to restore packages to. + パッケージの復元先のディレクトリ。 PACKAGES_DIR - PACKAGES_DIR + PACKAGES_DIR The directory to restore packages to. - The directory to restore packages to. + パッケージの復元先のディレクトリ。 LOG_FILE - LOG_FILE + LOG_FILE RESULTS_DIR - RESULTS_DIR + RESULTS_DIR Enable verbose logging to the specified file. - Enable verbose logging to the specified file. + 指定したファイルに対する詳細ロギングを有効にします。 Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. - Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. + 新しいパッケージを検索するときにプレリリース バージョンのパッケージを検討します。'--outdated' オプションが必要です。 Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + 実行するプロジェクト ファイルのパスを定義します。プロジェクト ファイルへのパス、またはプロジェクト ファイルを含むディレクトリへのパスを使用します。指定しない場合は、既定で現在のディレクトリに設定されます。 Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + テストするプロジェクト ファイルまたはソリューション ファイルのパスを定義します。プロジェクト ファイルへのパス、またはプロジェクト ファイルを含むディレクトリへのパスを使用します。指定しない場合は、既定で現在のディレクトリに設定されます。 PROJECT_OR_SOLUTION_PATH - PROJECT_OR_SOLUTION_PATH + PROJECT_OR_SOLUTION_PATH Forces restore to reevaluate all dependencies even if a lock file already exists. - Forces restore to reevaluate all dependencies even if a lock file already exists. + ロック ファイルが既に存在する場合でも、すべての依存関係を再評価するように強制的に復元します。 The directory where the test results will be placed. The specified directory will be created if it does not exist. - The directory where the test results will be placed. -The specified directory will be created if it does not exist. + テスト結果が配置されるディレクトリ。 +指定したディレクトリが存在しない場合は、作成されます。 ROOT_PATH - ROOT_PATH + ROOT_PATH RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER The target runtime to restore packages for. - The target runtime to restore packages for. + パッケージを復元するターゲット ランタイム。 Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. - Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. + パッケージに処理可能なフラグを設定します。詳細については、https://aka.ms/nupkgservicing をご覧ください。 The settings file to use when running tests. - The settings file to use when running tests. + テスト実行時に使用する設定ファイル。 SETTINGS_FILE - SETTINGS_FILE + SETTINGS_FILE Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. - Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. + テストするソリューション ファイルのパスを定義します。ソリューション ファイルへのパス、またはソリューション ファイルを含むディレクトリへのパスを使用します。指定しない場合は、既定で現在のディレクトリに設定されます。 SOLUTION_PATH - SOLUTION_PATH + SOLUTION_PATH SOURCE - SOURCE + SOURCE The NuGet package source to use for the restore. - The NuGet package source to use for the restore. + 復元のために使用する NuGet パッケージ ソース。 ADAPTER_PATH - ADAPTER_PATH + ADAPTER_PATH The path to the custom adapters to use for the test run. - The path to the custom adapters to use for the test run. + テストの実行に使用するカスタム アダプターへのパス。 @@ -629,18 +629,18 @@ The specified directory will be created if it does not exist. Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" See https://aka.ms/vstest-filtering for more information on filtering support. - Run tests that match the given expression. - Examples: - Run tests with priority set to 1: --filter "Priority = 1" - Run a test with the specified full name: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" - Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" - See https://aka.ms/vstest-filtering for more information on filtering support. + 指定された式に一致するテストを実行します。 + 例: + 優先度を 1 に設定してテストを実行します: --filter "Priority = 1" + 指定したフル ネームでテストを実行する: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" + 指定した名前を含むテストを実行する: --filter "FullyQualifiedName~Namespace.Class" + フィルター処理のサポートの詳細については、https://aka.ms/vstest-filtering をご覧ください。 EXPRESSION - EXPRESSION + EXPRESSION @@ -655,12 +655,12 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + 環境変数の値を設定します。 +変数が存在しない場合は作成され、存在する場合はオーバーライドされます。 +これにより、テストは強制的に分離プロセスで実行されます。 +この引数は、複数の変数を指定するために複数回指定できます。 -Examples: +例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -670,812 +670,812 @@ Examples: Run tests for the specified test modules. - Run tests for the specified test modules. + 指定されたテスト モジュールのテストを実行します。 The test modules have the specified root directory. - The test modules have the specified root directory. + テスト モジュールには、ルート ディレクトリが指定されています。 Verbosity of test output. - Verbosity of test output. + テスト出力の詳細。 Lists transitive and top-level packages. - Lists transitive and top-level packages. + 推移的なパッケージと最上位レベルのパッケージを一覧表示します。 Test runner '{0}' is not supported. - Test runner '{0}' is not supported. + テスト ランナー '{0}' はサポートされていません。 Enables project lock file to be generated and used with restore. - Enables project lock file to be generated and used with restore. + プロジェクト ロック ファイルを生成して復元で使用できるようにします。 VERSION - VERSION + VERSION The version of the package to add. - The version of the package to add. + 追加するパッケージのバージョン。 Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + プロジェクトをビルドするときに使用する $(VersionSuffix) プロパティの値を設定します。 Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. - Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. + 既知の脆弱性を持つパッケージを一覧表示します。'--deprecated' または '--outdated' オプションと組み合わせることはできません。 The SDK command to launch online help for. - The SDK command to launch online help for. + オンライン ヘルプを起動する SDK コマンド。 COMMAND_NAME - COMMAND_NAME + COMMAND_NAME Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + コマンドを停止して、ユーザーの入力またはアクション (認証の完了など) を待機できるようにします。 The command name of the tool to run. - The command name of the tool to run. + 実行するツールのコマンド名。 COMMAND_NAME - COMMAND_NAME + COMMAND_NAME The device identifier to use for running the application. - The device identifier to use for running the application. + アプリケーション実行のために使用するデバイスの識別子です。 DEVICE - DEVICE + デバイス The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). - The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). + 実行するファイル ベースのアプリへのパス (現在のディレクトリにプロジェクトがない場合は、最初の引数として渡すこともできます)。 FILE_PATH - FILE_PATH + FILE_PATH The name of the launch profile (if any) to use when launching the application. - The name of the launch profile (if any) to use when launching the application. + アプリケーションを起動するときに使用する起動プロファイルの名前 (存在する場合)。 LAUNCH_PROFILE - LAUNCH_PROFILE + LAUNCH_PROFILE List available devices for running the application. - List available devices for running the application. + アプリケーションの実行について使用可能なデバイスを一覧表示します。 Do not build the project before running. Implies --no-restore. - Do not build the project before running. Implies --no-restore. + 実行する前にプロジェクトをビルドしないでください。--no-restore を意味します。 {Locked="--no-restore"} Skip up to date checks and always build the program before running. - Skip up to date checks and always build the program before running. + 最新状態チェックをスキップし、実行する前に常にプログラムをビルドします。 Do not use arguments specified in launch profile to run the application. - Do not use arguments specified in launch profile to run the application. + 起動プロファイルで指定された引数を使用してアプリケーションを実行しないでください。 Do not attempt to use launchSettings.json or [app].run.json to configure the application. - Do not attempt to use launchSettings.json or [app].run.json to configure the application. + launchSettings.json または [app].run.json を使用してアプリケーションを構成しないでください。 {Locked="launchSettings.json"}{Locked=".run.json"} PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + プレリリース パッケージのインストールを許可します。 Creates an alias for instantiate command with a certain set of arguments. - Creates an alias for instantiate command with a certain set of arguments. + 特定の引数セットを使用してコマンドにインスタンスを作成するためのエイリアスを作成します。 Displays defined aliases. - Displays defined aliases. + 定義されたエイリアスを表示します。 Creates or displays defined aliases. - Creates or displays defined aliases. + 定義されたエイリアスを作成または表示します。 Provides the details for specified template package. The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. - - Provides the details for specified template package. - The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. + + 指定されたテンプレート パッケージの詳細情報を提供します。 + このコマンドは、パッケージがローカルにインストールされているかどうかを確認します。パッケージが見つからなかった場合は、構成済みの NuGet フィードが検索されます。 NuGet package ID or path to folder or NuGet package to install. To install the NuGet package of certain version, use <package ID>::<version>. - NuGet package ID or path to folder or NuGet package to install. -To install the NuGet package of certain version, use <package ID>::<version>. + NuGet パッケージ ID、フォルダーのパス、またはインストールする NuGet パッケージ。 +特定のバージョンの NuGet パッケージをインストールするには、<package ID>::<version> を使用します。 Installs a template package. - Installs a template package. + テンプレート パッケージをインストールします。 A short name of the template to create. - A short name of the template to create. + 作成するテンプレートの短い名前。 Template specific options to use. - Template specific options to use. + 使用するテンプレート固有のオプション。 Instantiates a template with given short name. An alias of 'dotnet new <template name>'. - Instantiates a template with given short name. An alias of 'dotnet new <template name>'. + 指定された短い名前のテンプレートをインスタンス化します。'dotnet new <template name>' のエイリアス。 do not translate 'dotnet new <template name>' Checks the currently installed template packages for updates. - Checks the currently installed template packages for updates. + 更新のために現在インストールされているテンプレート パッケージを確認してください。 If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + 指定した場合、その名前に一致するテンプレートのみが表示されます。 Lists templates containing the specified template name. If no name is specified, lists all templates. - Lists templates containing the specified template name. If no name is specified, lists all templates. + 指定されたテンプレート名を含むテンプレートを一覧表示します。名前を指定しない場合、すべてのテンプレートが一覧表示されます。 Template Instantiation Commands for .NET CLI. - Template Instantiation Commands for .NET CLI. + .NET CLI のテンプレート インスタンス化コマンド。 If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + 指定した場合、その名前に一致するテンプレートのみが表示されます。 Searches for the templates on NuGet.org. - Searches for the templates on NuGet.org. + NuGet.org 上のテンプレートを検索します。 NuGet package ID (without version) or path to folder to uninstall. If command is specified without the argument, it lists all the template packages installed. - NuGet package ID (without version) or path to folder to uninstall. -If command is specified without the argument, it lists all the template packages installed. + NuGet パッケージ ID (バージョンなし) またはアンインストールするフォルダーへのパス。 +引数なしでコマンドを指定した場合、インストールされているすべてのテンプレート パッケージが一覧表示されます。 Uninstalls a template package. - Uninstalls a template package. + テンプレート パッケージをアンインストールします。 Checks the currently installed template packages for update, and install the updates. - Checks the currently installed template packages for update, and install the updates. + 更新のために現在インストールされているテンプレート パッケージを確認し、更新プログラムをインストールしてください。 Only checks for updates and display the template packages to be updated without applying update. - Only checks for updates and display the template packages to be updated without applying update. + 更新プログラムを確認し、更新プログラムを適用せずに更新されたテンプレート パッケージのみを表示します。 Unrecognized command or argument(s): {0}. - Unrecognized command or argument(s): {0}. + 認識されないコマンドまたは引数: {0}。 {0} - wrong token or comma-separated tokens (if multiple). Each token is enclosed with single quotes: 'token'. FRAMEWORK - FRAMEWORK + FRAMEWORK ConfigFile - ConfigFile + ConfigFile The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior - The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior + NuGet 構成ファイル。指定した場合、このファイルの設定のみが使用されます。指定しない場合、現在のディレクトリの構成ファイルの階層が使用されます。詳細については、https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior を参照してください。 CONFIGURATION - CONFIGURATION + CONFIGURATION DUMP_TYPE - DUMP_TYPE + DUMP_TYPE Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed - Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed + ツールのインストール中にツール マニフェスト見つからない場合は作成します。マニフェストの場所については、https://aka.ms/dotnet/tools/create-manifest-if-needed を参照してください Use current runtime as the target runtime. - Use current runtime as the target runtime. + 現在のランタイムをターゲット ランタイムとして使用します。 Show detail result of the query. - Show detail result of the query. + クエリの詳細な結果を表示します。 Package identifier - Package identifier + パッケージ識別子 Enables diagnostic output. - Enables diagnostic output. + 診断出力を有効にします。 Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + 永続的なビルド サーバーがそのコマンドで無視されるようにします。 Disables evaluating project context using MSBuild. - Disables evaluating project context using MSBuild. + MSBuild を使用してプロジェクト コンテキストの評価を無効にします。 If present, prevents templates bundled in the SDK from being presented. - If present, prevents templates bundled in the SDK from being presented. + SDK にバンドルされているテンプレートがある場合にそれらが表示されないようにします。 .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. + Microsoft.Testing.Platform 用の .NET テスト コマンド ('global.json' ファイルでオプトイン済み)。これは Microsoft.Testing.Platform のみをサポートしており、VSTest には対応していません。詳細については、https://aka.ms/dotnet-test をご覧ください。 {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. + VSTest 用の .NET テスト コマンド。Microsoft.Testing.Platform を使用するには、global.json ファイルで Microsoft.Testing.Platform ベースのコマンドにオプトインしてください。詳細については、https://aka.ms/dotnet-test をご覧ください。 {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} DIRECTORY - DIRECTORY + ディレクトリ Download packages needed to install a workload to a folder that can be used for offline installation. - Download packages needed to install a workload to a folder that can be used for offline installation. + ワークロードのインストールに必要なパッケージをフォルダーにダウンロードし、オフライン インストールに使用できるようにします。 Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. - Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. + 検索語句とパッケージ名の完全一致を要求します。'--take' オプションと '--skip' オプションが無視されます。 The file-based app to operate on. - The file-based app to operate on. + 操作するファイル ベースのアプリ。 Format - Format + 形式 Format the output accordingly. Either `table`, or `json`. The default value is `table`. - Format the output accordingly. Either `table`, or `json`. The default value is `table`. + それに応じて出力をフォーマットします。'table' または 'json'。既定値は 'table' です。 Changes the format of outputted workload versions. Can take 'json' or 'list' - Changes the format of outputted workload versions. Can take 'json' or 'list' + 出力されるワークロード バージョンの形式を変更します。'json' または 'list' を指定できます FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + アプリケーションをフレームワーク依存アプリケーションとして公開します。アプリケーションを実行するには、対象のコンピューターで互換性のある .NET ランタイムをインストールする必要があります。 FRAMEWORK_VERSION - FRAMEWORK_VERSION + FRAMEWORK_VERSION The Microsoft.NETCore.App package version that will be used to run the assemblies. - The Microsoft.NETCore.App package version that will be used to run the assemblies. + アセンブリの実行に使用される Microsoft.NETCore.App パッケージのバージョン。 DIRECTORY - DIRECTORY + ディレクトリ Complete the operation from cache (offline). - Complete the operation from cache (offline). + キャッシュから操作を完了します (オフライン)。 Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. - Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. + 引数で指定された以前のバージョンにワークロードを更新します。使用可能なワークロード履歴レコードを表示するには、'dotnet workload history' を使用します。 Include workloads installed with earlier SDK versions in update. - Include workloads installed with earlier SDK versions in update. + 以前の SDK バージョンでインストールされたワークロードを更新プログラムに含めます。 Update workloads based on specified rollback definition file. - Update workloads based on specified rollback definition file. + 指定されたロールバック定義ファイルに基づいてワークロードを更新します。 DUMP_TYPE - DUMP_TYPE + DUMP_TYPE TIMESPAN - TIMESPAN + TIMESPAN .NET CLI help utility - .NET CLI help utility + .NET CLI ヘルプ ユーティリティ Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. - Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. + インストールされているワークロードを変更せずに、履歴で指定されたワークロード バージョンに更新します。現在インストールされているワークロードは、指定された履歴バージョンと一致するように更新されます。 Place project in root of the solution, rather than creating a solution folder. - Place project in root of the solution, rather than creating a solution folder. + ソリューション フォルダーを作成するのではなく、プロジェクトをソリューションのルートに配置します。 Allow prerelease workload manifests. - Allow prerelease workload manifests. + プレリリースのワークロード マニフェストを許可します。 Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + 不適切な形式の環境変数です: {0} WORKING_DIR - WORKING_DIR + WORKING_DIR The working directory used by the command to execute. - The working directory used by the command to execute. + 実行のためにコマンドで使用される作業ディレクトリ。 Invalid version string: {0} - Invalid version string: {0} + バージョン文字列が無効です: {0} LEVEL - LEVEL + LEVEL List all projects in a solution file. - List all projects in a solution file. + ソリューション ファイル内のすべてのプロジェクトを一覧表示します。 Disables checking if the template meets the constraints to be run. - Disables checking if the template meets the constraints to be run. + テンプレートが実行する制約を満たしているかの確認を無効にします。 Display solution folder paths. - Display solution folder paths. + ソリューション フォルダーのパスを表示します。 Shut down the MSBuild build server. - Shut down the MSBuild build server. + MSBuild ビルド サーバーをシャットダウンします。 MANIFEST - MANIFEST + MANIFEST The path to a target manifest file that contains the list of packages to be excluded from the publish step. - The path to a target manifest file that contains the list of packages to be excluded from the publish step. + 公開ステップから除外されるパッケージのリストを含むターゲット マニフェスト ファイルへのパス。 Generate a .slnx file from a .sln file. - Generate a .slnx file from a .sln file. + .sln ファイルから .slnx ファイルを生成します。 .NET Add Command - .NET Add Command + .NET Add コマンド List references or packages of a .NET project. - List references or packages of a .NET project. + .NET プロジェクトの参照またはパッケージを一覧表示します。 .NET Remove Command - .NET Remove Command + .NET Remove コマンド Do not build the project before publishing. Implies --no-restore. - Do not build the project before publishing. Implies --no-restore. + 公開する前にプロジェクトをビルドしないでください。--no-restore を意味します。 Do not build project-to-project references and only build the specified project. - Do not build project-to-project references and only build the specified project. + プロジェクト間参照をビルドせず、指定したプロジェクトだけをビルドします。 Do not use incremental building. - Do not use incremental building. + インクリメンタル ビルドを使用しません。 Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + 著作権情報を表示しません。 Do not restore the project before building. - Do not restore the project before building. + ビルドする前にプロジェクトを復元しません。 OS - OS + OS Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). - Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). + ツール マニフェスト オプション (--tool-manifest) の指定は、ローカル オプション (--local または既定) でのみ有効です。 The target operating system. - The target operating system. + ターゲット オペレーティング システム。 Specifies a NuGet source to use. - Specifies a NuGet source to use. + 使用する NuGet ソースを指定します。 Filters the templates based on the template author. - Filters the templates based on the template author. + テンプレート作成者に基づいてテンプレートのフィルター処理を行います。 Filters the templates based on baseline defined in the template. - Filters the templates based on baseline defined in the template. + テンプレートで定義されたベースラインに基づいてテンプレートをフィルター処理します。 Specifies the columns to display in the output. - Specifies the columns to display in the output. + 列を指定して出力に表示します。 Displays all columns in the output. - Displays all columns in the output. + 出力にすべての列を表示します。 Allows to pause execution in order to attach to the process for debug purposes. - Allows to pause execution in order to attach to the process for debug purposes. + デバッグ目的でプロセスにアタッチするために、実行を一時停止することができます。 Sets custom settings location. - Sets custom settings location. + カスタム設定の場所を設定します。 If specified, removes the template cache prior to command execution. - If specified, removes the template cache prior to command execution. + 指定した場合、コマンドの実行前にテンプレート キャッシュを削除します。 If specified, resets the settings prior to command execution. - If specified, resets the settings prior to command execution. + 指定した場合、コマンドを実行する前に設定がリセットされます。 If specified, shows the template engine config prior to command execution. - If specified, shows the template engine config prior to command execution. + 指定した場合、コマンドの実行前にテンプレート エンジン構成を表示します。 If specified, the settings will be not preserved on file system. - If specified, the settings will be not preserved on file system. + 指定した場合、設定はファイル システムに保存されません。 Allows installing template packages from the specified sources even if they would override a template package from another source. - Allows installing template packages from the specified sources even if they would override a template package from another source. + 指定されたソースからテンプレート パッケージが、別のソースからのテンプレート パッケージをオーバーライドする場合でも、インストールできます。 Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + コマンドを停止して、ユーザーの入力またはアクション (認証の完了など) を待機できるようにします。 Filters templates based on language. - Filters templates based on language. + 言語に基づいてテンプレートをフィルターします。 Location to place the generated output. - Location to place the generated output. + 生成された出力を配置する場所。 Filters the templates based on NuGet package ID. - Filters the templates based on NuGet package ID. + NuGet パッケージ ID に基づいてテンプレートをフィルターします。 The project that should be used for context evaluation. - The project that should be used for context evaluation. + コンテキストの評価に使用する必要があるプロジェクトです。 Filters the templates based on the tag. - Filters the templates based on the tag. + タグに基づいてテンプレートのフィルター処理を行います。 Filters templates based on available types. Predefined values are "project" and "item". - Filters templates based on available types. Predefined values are "project" and "item". + 使用可能な種類に基づいてテンプレートをフィルターします。定義済みの値は、"プロジェクト" と "項目" です。 project and item should not be translated Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. - Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. + オプション '--outdated'、'--deprecated'、'--vulnerable' を組み合わせることはできません。 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR .NET Core NuGet Package Packer - .NET Core NuGet Package Packer + .NET Core NuGet パッケージ パッカー OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place built packages in. - The output directory to place built packages in. + ビルドしたパッケージを配置する出力ディレクトリ。 VERSION - VERSION + バージョン The version of the package to create - The version of the package to create + 作成するパッケージのバージョン The configuration to use for building the package. The default is 'Release'. - The configuration to use for building the package. The default is 'Release'. + パッケージのビルドに使用する構成。既定値は 'Release' です。 Add a NuGet package reference to the project. - Add a NuGet package reference to the project. + プロジェクトに NuGet パッケージ参照を追加します。 FRAMEWORK - FRAMEWORK + FRAMEWORK Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + 特定のフレームワークを対象とする場合にのみ参照を追加します。 Add the reference without performing restore preview and compatibility check. - Add the reference without performing restore preview and compatibility check. + 復元のプレビューや互換性チェックを行わずに参照を追加します。 SOURCE - SOURCE + SOURCE The NuGet package source to use during the restore. - The NuGet package source to use during the restore. + 復元中に使用する NuGet パッケージ ソース。 Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + '{0}' のようなパッケージ ID の形式のパッケージ参照、または '{0}@{1}' のように '@' で区切られたパッケージ ID とバージョンです。 Package reference id and version must not be null. - Package reference id and version must not be null. + パッケージ参照 ID とバージョンを null 値にすることはできません。 List all package references of the project or solution. - List all package references of the project or solution. + プロジェクトまたはソリューションのすべてのパッケージ参照を一覧表示します。 FRAMEWORK | FRAMEWORK\RID - FRAMEWORK | FRAMEWORK\RID + FRAMEWORK | FRAMEWORK\RID Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. - Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. + パッケージを表示するフレームワークを選択します。複数のフレームワークに対してはこのオプションを複数回使用します。 SOURCE - SOURCE + SOURCE The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + 新しいパッケージを検索するときに使用する NuGet ソース。'--outdated'、'--deprecated'、または '--vulnerable' のオプションが必要です。 Package reference - Package reference + パッケージ参照 Remove a NuGet package reference from the project. - Remove a NuGet package reference from the project. + プロジェクトから NuGet パッケージ参照を削除します。 The package reference to remove. - The package reference to remove. + 削除するパッケージ参照。 Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. - Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. + 検索語句に一致するパッケージを 1 つ以上のパッケージ ソースで検索します。ソースが指定されていない場合、NuGet.Config で定義されているすべてのソースが使用されます。 Include prerelease packages. - Include prerelease packages. + プレリリース パッケージが含まれます。 SearchTerm - SearchTerm + SearchTerm Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. - Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. + パッケージ名、説明、タグをフィルター処理する検索用語。リテラル値として使用されます。例: 'dotnet package search some.package'。'--exact-match' も参照してください。 Skip - Skip + スキップ Number of results to skip, to allow pagination. Default 0. - Number of results to skip, to allow pagination. Default 0. + 改ページ位置の自動修正を許可するためにスキップする結果の数。既定値は 0 です。 Take - Take + 取得 Number of results to return. Default 20. - Number of results to return. Default 20. + 返される結果の数。既定値は 20 です。 Only print the list of links to download without downloading. - Only print the list of links to download without downloading. + ダウンロードするリンクの一覧をダウンロードせず、印刷だけを行います。 @@ -1508,15 +1508,15 @@ If command is specified without the argument, it lists all the template packages dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 - 'dotnet workload search version' has three functions depending on its argument: - 1. If no argument is specified, it outputs a list of the latest released workload versions from this feature band. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 'dotnet workload search version' には、引数に応じて次の 3 つの機能があります: + 1. 引数が指定されていない場合は、この機能バンドからリリースされた最新のワークロード バージョンの一覧が出力されます。--take オプションを指定して提供する数を指定し、--format を指定して形式を変更します。 + 例: dotnet workload search version --take 2 --format json [{"workloadVersion":"9.0.201"},{"workloadVersion":"9.0.200.1"}] - 2. If a workload version is provided as an argument, it outputs a table of various workloads and their versions for the specified workload version. Takes the --format option to alter the output format. - Example: + 2. 引数としてワークロード バージョンを指定すると、指定されたワークロード バージョンのさまざまなワークロードとそのバージョンの表が出力されます。--format オプションを指定して出力形式を変更します。 + 例: dotnet workload search version 9.0.201 - Workload manifest ID Manifest feature band Manifest Version + ワークロード マニフェスト ID マニフェスト機能バンド マニフェスト バージョン ------------------------------------------------------------------------------------------------ microsoft.net.workload.emscripten.current 9.0.100-rc.1 9.0.0-rc.1.24430.3 microsoft.net.workload.emscripten.net6 9.0.100-rc.1 9.0.0-rc.1.24430.3 @@ -1532,8 +1532,8 @@ If command is specified without the argument, it lists all the template packages microsoft.net.workload.mono.toolchain.net6 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net7 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net8 9.0.100-rc.1 9.0.0-rc.1.24431.7 - 3. If one or more workloads are provided along with their versions (by joining them with the '@' character), it outputs workload versions that match the provided versions. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 3. 1 つ以上のワークロードをバージョンと共に ('@' 文字で結合して) 指定すると、指定されたバージョンに一致するワークロード バージョンが出力されます。--take オプションを指定して提供する数を指定し、--format を指定して形式を変更します。 + 例: dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 @@ -1541,775 +1541,775 @@ If command is specified without the argument, it lists all the template packages The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + 操作するプロジェクト ファイル。ファイルを指定しない場合、コマンドによって現在のディレクトリから検索されます。 Convert a file-based program to a project-based program. - Convert a file-based program to a project-based program. + ファイルベースのプログラムをプロジェクトベースのプログラムに変換します。 Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + ファイル システムを実際に変更せずに変更を決定します PROJECT_MANIFEST - PROJECT_MANIFEST + PROJECT_MANIFEST The XML file that contains the list of packages to be stored. - The XML file that contains the list of packages to be stored. + 格納されるパッケージのリストを含む XML ファイル。 The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + 操作するプロジェクト ファイルまたは C# ファイル ベースのアプリ。ファイルが指定されていない場合、コマンドは現在のディレクトリでプロジェクト ファイルを検索します。 PROJECT | FILE - PROJECT | FILE + プロジェクト | ファイル Publisher for the .NET Platform - Publisher for the .NET Platform + .NET Platform 用パブリッシャー The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. - The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. + 発行する構成。既定値は、NET 8.0 以降のプロジェクトの場合は 'Release' ですが、旧プロジェクトの場合は 'Debug' です。 The target framework to publish for. The target framework has to be specified in the project file. - The target framework to publish for. The target framework has to be specified in the project file. + 公開する対象のターゲット フレームワーク。ターゲット フレームワークはプロジェクト ファイルで指定する必要があります。 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place the published artifacts in. - The output directory to place the published artifacts in. + 公開された成果物を配置する出力ディレクトリ。 The target runtime to publish for. This is used when creating a self-contained deployment. The default is to publish a framework-dependent application. - The target runtime to publish for. This is used when creating a self-contained deployment. -The default is to publish a framework-dependent application. + 公開するターゲット ランタイムです。自己完結型の配置を作成するときに使用されます。 +既定では、フレームワークに依存したアプリケーションが公開されます。 Shut down the Razor build server. - Shut down the Razor build server. + Razor ビルド サーバーをシャットダウンします。 Add a project-to-project reference to the project. - Add a project-to-project reference to the project. + プロジェクト間参照をプロジェクトに追加します。 Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + 特定のフレームワークを対象とする場合にのみ参照を追加します。 The paths to the projects to add as references. - The paths to the projects to add as references. + 参照として追加するプロジェクトへのパス。 PROJECT_PATH - PROJECT_PATH + PROJECT_PATH List all project-to-project references of the project. - List all project-to-project references of the project. + プロジェクトのすべてのプロジェクト間参照をリストします。 Remove a project-to-project reference from the project. - Remove a project-to-project reference from the project. + プロジェクト間参照をプロジェクトから削除します。 Remove the reference only when targeting a specific framework. - Remove the reference only when targeting a specific framework. + 特定のフレームワークを対象とする場合にのみ参照を削除します。 The paths to the referenced projects to remove. - The paths to the referenced projects to remove. + 削除する参照されたプロジェクトへのパス。 PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Remove one or more projects from a solution file. - Remove one or more projects from a solution file. + 1 つ以上のプロジェクトをソリューション ファイルから削除します。 The project paths or names to remove from the solution. - The project paths or names to remove from the solution. + ソリューションから削除するプロジェクトパスまたは名前。 PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Required command was not provided. - Required command was not provided. + 必要なコマンドが指定されませんでした。 .NET dependency restorer - .NET dependency restorer + .NET 依存関係復元ツール Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. - Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. + 対象となるランタイムがインストールされていない場合、.NET ツールが新しいバージョンの .NET ランタイムにロールフォワードできるようにします。 .NET Run Command - .NET Run Command + .NET Run コマンド The configuration to run for. The default for most projects is 'Debug'. - The configuration to run for. The default for most projects is 'Debug'. + 実行する対象の構成。大部分のプロジェクトで、既定値は 'Debug' です。 The target framework to run for. The target framework must also be specified in the project file. - The target framework to run for. The target framework must also be specified in the project file. + 実行する対象のターゲット フレームワーク。ターゲット フレームワークはプロジェクト ファイルでも指定する必要があります。 The target runtime to run for. - The target runtime to run for. + 実行対象のターゲット ランタイム。 RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + 診断出力を有効にします。 Display the command schema as JSON. - Display the command schema as JSON. + コマンド スキーマを JSON として表示します。 .NET SDK Command - .NET SDK Command + .NET SDK コマンド .NET SDK Check Command - .NET SDK Check Command + .NET SDK のチェック コマンド The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + '--self-contained' と '--no-self-contained' オプションは同時に使用できません。 {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + アプリケーションと一緒に .NET ランタイムを発行して、ランタイムをターゲット マシンにインストールする必要がないようにします。 +既定値は 'false' です。しかし、.NET 7 以前が対象の場合、ランタイム識別子が指定されていれば、既定値は 'true' です。 Skip updating the workload manifests. - Skip updating the workload manifests. + ワークロード マニフェストの更新をスキップします。 Skip the optimization phase. - Skip the optimization phase. + 最適化フェーズをスキップします。 Skip signature verification of workload packages and installers. - Skip signature verification of workload packages and installers. + ワークロード パッケージとインストーラーの署名の認証をスキップします。 Skip creating symbol files which can be used for profiling the optimized assemblies. - Skip creating symbol files which can be used for profiling the optimized assemblies. + 最適化されたアセンブリのプロファイルに使用できるシンボル ファイルの作成をスキップします。 Recursively add projects' ReferencedProjects to solution - Recursively add projects' ReferencedProjects to solution + プロジェクトの ReferencedProjects をソリューションに再帰的に追加します .NET modify solution file command - .NET modify solution file command + .NET ソリューション ファイルを変更するコマンド The solution file to operate on. If not specified, the command will search the current directory for one. - The solution file to operate on. If not specified, the command will search the current directory for one. + 操作するソリューション ファイル。指定しない場合、コマンドによって現在のディレクトリから検索されます。 SLN_FILE - SLN_FILE + SLN_FILE The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + 利用するプロジェクト ファイルまたはソリューション ファイル。指定しない場合、コマンドは現在のディレクトリを検索します。 PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + 操作するプロジェクトまたはソリューションまたは C# (ファイル ベースのプログラム) ファイル。ファイルが指定されていない場合、コマンドは現在のディレクトリでプロジェクトまたはソリューションを検索します。 PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + プロジェクト | 解決策 | ファイル Source - Source + ソース The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. - The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. + 検索するパッケージ ソース。複数の '--source' オプションを渡して、複数のパッケージ ソースを検索できます。例: '--source https://api.nuget.org/v3/index.json'。 Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. - Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. + .NET Platform の指定されたアセンブリを格納します。既定では、これらはターゲットのランタイムとフレームワーク用に最適化されます。 The target framework to store packages for. The target framework has to be specified in the project file. - The target framework to store packages for. The target framework has to be specified in the project file. + パッケージを格納するターゲット フレームワーク。ターゲット フレームワークはプロジェクト ファイルで指定する必要があります。 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to store the given assemblies in. - The output directory to store the given assemblies in. + 指定されたアセンブリを格納する出力ディレクトリ。 The target runtime to store packages for. - The target runtime to store packages for. + パッケージを格納するターゲット ランタイム。 Specify a temporary directory for this command to download and extract NuGet packages (must be secure). - Specify a temporary directory for this command to download and extract NuGet packages (must be secure). + このコマンドに NuGet パッケージをダウンロードして抽出するための一時ディレクトリを指定します (セキュリティで保護する必要があります)。 Displays a summary of what would happen if the given command line were run if it would result in a template creation. - Displays a summary of what would happen if the given command line were run if it would result in a template creation. + 指定されたコマンドラインがテンプレートを実行した場合に発生する結果の概要を表示します。 Forces content to be generated even if it would change existing files. - Forces content to be generated even if it would change existing files. + 既存のファイルが変更された場合でも、コンテンツを強制的に生成します。 The name for the output being created. If no name is specified, the name of the output directory is used. - The name for the output being created. If no name is specified, the name of the output directory is used. + 作成される出力の名前です。名前を指定しない場合は、出力ディレクトリの名前が使用されます。 Disables checking for the template package updates when instantiating a template. - Disables checking for the template package updates when instantiating a template. + テンプレートをインスタンス化する場合に、テンプレート パッケージの更新の確認を無効にします。 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The configuration to use for running tests. The default for most projects is 'Debug'. - The configuration to use for running tests. The default for most projects is 'Debug'. + テストの実行に使用する構成。ほとんどのプロジェクトで、既定値は 'Debug' です。 The target framework to run tests for. The target framework must also be specified in the project file. - The target framework to run tests for. The target framework must also be specified in the project file. + テストを実行する対象のターゲット フレームワーク。ターゲット フレームワークはプロジェクト ファイルでも指定する必要があります。 The target runtime to test for. - The target runtime to test for. + テスト対象のターゲット ランタイム。 Install or work with tools that extend the .NET experience. - Install or work with tools that extend the .NET experience. + .NET のエクスペリエンスを向上するツールをインストールするか、使用します。 Executes a tool from source without permanently installing it. - Executes a tool from source without permanently installing it. + ツールを永続的にインストールすることなく、ソースから実行します。 Add an additional NuGet package source to use during installation. - Add an additional NuGet package source to use during installation. + インストール中に使用する他の NuGet パッケージ ソースを追加します。 ADDSOURCE - ADDSOURCE + ADDSOURCE Install global or local tool. Local tools are added to manifest and restored. - Install global or local tool. Local tools are added to manifest and restored. + グローバルまたはローカルのツールをインストールします。ローカル ツールはマニフェストに追加され、復元されます。 The NuGet configuration file to use. - The NuGet configuration file to use. + 使用する NuGet 構成ファイル。 FILE - FILE + ファイル The target framework to install the tool for. - The target framework to install the tool for. + ツールをインストールするターゲット フレームワーク。 FRAMEWORK - FRAMEWORK + FRAMEWORK Install the tool for the current user. - Install the tool for the current user. + 現在のユーザーに対してツールをインストールします。 Install the tool and add to the local tool manifest (default). - Install the tool and add to the local tool manifest (default). + ツールをインストールし、ローカル ツール マニフェスト (既定値) に追加します。 Path to the manifest file. - Path to the manifest file. + マニフェスト ファイルへのパス。 PATH - PATH + PATH Replace all NuGet package sources to use during installation with these. - Replace all NuGet package sources to use during installation with these. + インストール中に使用するすべての NuGet パッケージ ソースをこれらに置き換えます。 SOURCE - SOURCE + ソース The directory where the tool will be installed. The directory will be created if it does not exist. - The directory where the tool will be installed. The directory will be created if it does not exist. + ツールがインストールされるディレクトリ。このディレクトリが存在しない場合は、作成されます。 PATH - PATH + PATH The version of the tool package to install. - The version of the tool package to install. + インストールするツール パッケージのバージョン。 VERSION - VERSION + バージョン List tools installed globally or locally. - List tools installed globally or locally. + グローバルまたはローカルにインストールされているツールを一覧表示します。 The output format for the list of tools. - The output format for the list of tools. + ツールの一覧の出力形式。 List tools installed for the current user. - List tools installed for the current user. + 現在のユーザーに対してインストールされているツールを一覧表示します。 List the tools installed in the local tool manifest. - List the tools installed in the local tool manifest. + ローカル ツール マニフェストにインストールされているツールを一覧表示します。 The NuGet Package Id of the tool to list - The NuGet Package Id of the tool to list + リストするツールの NuGet パッケージ ID PACKAGE_ID - PACKAGE_ID + PACKAGE_ID The directory containing the tools to list. - The directory containing the tools to list. + 一覧表示するツールが入っているディレクトリ。 Restore tools defined in the local tool manifest. - Restore tools defined in the local tool manifest. + ローカル ツール マニフェストで定義されているツールを復元します。 Path to the manifest file. - Path to the manifest file. + マニフェスト ファイルへのパス。 Arguments forwarded to the tool - Arguments forwarded to the tool + ツールに渡された引数 Run a local tool. Note that this command cannot be used to run a global tool. - Run a local tool. Note that this command cannot be used to run a global tool. + ローカル ツールを実行します。このコマンドを使用してグローバル ツールを実行することはできません。 Search dotnet tools in nuget.org - Search dotnet tools in nuget.org + nuget.org で dotnet ツールを検索します Include pre-release packages. - Include pre-release packages. + プレリリース パッケージが含まれます。 SEARCH_TERM - SEARCH_TERM + SEARCH_TERM Search term from package id or package description. Require at least one character. - Search term from package id or package description. Require at least one character. + パッケージ ID またはパッケージの説明から語句を検索します。少なくとも 1 文字が必要です。 Skip - Skip + スキップ The number of results to skip, for pagination. - The number of results to skip, for pagination. + 改ページ位置の自動修正のためにスキップする結果の数。 Take - Take + 取得 The number of results to return, for pagination. - The number of results to return, for pagination. + 改ページ位置の自動修正のために返す結果の数。 Uninstall a global tool or local tool. - Uninstall a global tool or local tool. + グローバル ツールまたはローカル ツールをアンインストールします。 Uninstall the tool from the current user's tools directory. - Uninstall the tool from the current user's tools directory. + 現在のユーザーのツール ディレクトリからツールをアンインストールします。 Uninstall the tool and remove it from the local tool manifest. - Uninstall the tool and remove it from the local tool manifest. + ツールをアンインストールし、ローカル ツール マニフェストから削除します。 Path to the manifest file. - Path to the manifest file. + マニフェスト ファイルへのパス。 The directory containing the tool to uninstall. - The directory containing the tool to uninstall. + アンインストールするツールが入っているディレクトリ。 Update a global or local tool. - Update a global or local tool. + グローバルまたはローカル ツールを更新します。 Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + 認識されないコマンドまたは引数 '{0}' Update all tools. - Update all tools. + すべてのツールを更新する。 Controls whether updates should look for workload sets or the latest version of each individual manifest. - Controls whether updates should look for workload sets or the latest version of each individual manifest. + 更新プログラムでワークロード セットを検索するか、各個別マニフェストの最新バージョンを検索するかを制御します。 Shut down the VB/C# compiler build server. - Shut down the VB/C# compiler build server. + VB/C# コンパイラ ビルド サーバーをシャットダウンします。 Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + パッケージ引数が既にバージョンを含んでいる場合は、--version を指定できません。 {Locked="--version"} Verbosity - Verbosity + 詳細 Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` - Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` + 以下の詳細の量を出力に表示します: 'normal'、'minimal'、'detailed'。既定値は 'normal' です Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + MSBuild の詳細レベルを設定します。使用可能な値: q[uiet]、m[inimal]、n[ormal]、d[etailed]、diag[nostic]。 Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. - Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. + 詳細レベルを設定します。許可されている値: q[uiet]、m[inimal]、n[ormal]、diag[nostic]。 VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX Removes workload components that may have been left behind from previous updates and uninstallations. - Removes workload components that may have been left behind from previous updates and uninstallations. + 以前の更新プログラムとアンインストールで取り残された可能性のあるワークロード コンポーネントを削除します。 Install or work with workloads that extend the .NET experience. - Install or work with workloads that extend the .NET experience. + .NET のエクスペリエンスを向上するワークロードをインストールするか、使用します。 Modify or display workload configuration values. To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" - Modify or display workload configuration values. -To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" + ワークロード構成値を変更または表示します。 +値を表示するには、値を指定せずに対応するコマンド ライン オプションを指定します。 例: "dotnet workload config --update-mode" Start the elevated server process to facilitate MSI based installations. - Start the elevated server process to facilitate MSI based installations. + 昇格された特権のサーバー プロセスを開始して、MSI ベースのインストールを促進します。 Shows a history of workload installation actions. - Shows a history of workload installation actions. + ワークロードのインストール操作の履歴を表示します。 The NuGet package ID of the workload to install. - The NuGet package ID of the workload to install. + インストールするワークロードの NuGet パッケージ ID。 WORKLOAD_ID - WORKLOAD_ID + WORKLOAD_ID The text to search for in the IDs and descriptions of available workloads. - The text to search for in the IDs and descriptions of available workloads. + 使用可能なワークロードの ID と説明で検索するテキスト。 SEARCH_STRING - SEARCH_STRING + SEARCH_STRING Display information about installed workloads. - Display information about installed workloads. + インストールされているワークロードに関する情報を表示します。 Install one or more workloads. - Install one or more workloads. + 1 つ以上のワークロードをインストールします。 The NuGet configuration file to use. - The NuGet configuration file to use. + 使用する NuGet 構成ファイル。 FILE - FILE + ファイル The NuGet package source to use during the restore. To specify multiple sources, repeat the option. - The NuGet package source to use during the restore. To specify multiple sources, repeat the option. + 復元中に使用する NuGet パッケージ ソース。複数のソースを指定するには、オプションを繰り返します。 SOURCE - SOURCE + ソース The version of the SDK. - The version of the SDK. + SDK のバージョンです。 VERSION - VERSION + バージョン List workloads available. - List workloads available. + 使用可能なワークロードを一覧表示します。 Repair workload installations. - Repair workload installations. + ワークロード インストールを修復します。 Restore workloads required for a project. - Restore workloads required for a project. + プロジェクトに必要なワークロードを復元します。 Search for available workloads. - Search for available workloads. + 使用可能なワークロードを検索します。 A workload version to display or one or more workloads and their versions joined by the '@' character. - A workload version to display or one or more workloads and their versions joined by the '@' character. + 表示するワークロードのバージョン、または '@' 文字で結合された 1 つ以上のワークロードとそのバージョン。 Uninstall one or more workloads. - Uninstall one or more workloads. + 1 つ以上のワークロードをアンインストールします。 Update all installed workloads. - Update all installed workloads. + インストールされたすべてのワークロードを更新します。 WORKLOAD_VERSION - WORKLOAD_VERSION + WORKLOAD_VERSION Output workload manifest versions associated with the provided workload version. - Output workload manifest versions associated with the provided workload version. + 指定されたワークロード バージョンに関連付けられたワークロード マニフェストのバージョンを出力します。 Display the currently installed workload version. - Display the currently installed workload version. + 現在インストールされているワークロードのバージョンを表示します。 Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + [はい] を使用して、すべての確認プロンプトを受け入れます。 The friendly name of the data collector to use for the test run. More info here: https://aka.ms/vstest-collect - The friendly name of the data collector to use for the test run. - More info here: https://aka.ms/vstest-collect + テストの実行に使用するデータ コレクターのフレンドリ名。 + 詳細情報: https://aka.ms/vstest-collect DATA_COLLECTOR_NAME - DATA_COLLECTOR_NAME + DATA_COLLECTOR_NAME diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.ko.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.ko.xlf index 5d38a080f07c..bc0e53257cbb 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.ko.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.ko.xlf @@ -4,162 +4,162 @@ Only update advertising manifests. - Only update advertising manifests. + 광고 매니페스트만 업데이트합니다. Add one or more projects to a solution file. - Add one or more projects to a solution file. + 솔루션 파일에 하나 이상의 프로젝트를 추가합니다. The paths to the projects to add to the solution. - The paths to the projects to add to the solution. + 솔루션에 추가할 프로젝트의 경로입니다. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH The destination solution folder path to add the projects to. - The destination solution folder path to add the projects to. + 프로젝트를 추가하려는 대상 솔루션 폴더 경로입니다. Allow package downgrade when installing a .NET tool package. - Allow package downgrade when installing a .NET tool package. + .NET 도구 패키지를 설치할 때 패키지 다운그레이드를 허용합니다. ARCH - ARCH + ARCH The target architecture. - The target architecture. + 대상 아키텍처입니다. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + 아티팩트 경로입니다. 빌드, 게시 및 팩 출력을 포함한 프로젝트의 모든 출력이 지정된 경로 아래의 하위 폴더로 이동합니다. .NET Builder - .NET Builder + .NET 작성기 The configuration to use for building the project. The default for most projects is 'Debug'. - The configuration to use for building the project. The default for most projects is 'Debug'. + 프로젝트 빌드에 사용할 구성입니다. 대부분의 프로젝트에서 기본값은 'Debug'입니다. The target framework to build for. The target framework must also be specified in the project file. - The target framework to build for. The target framework must also be specified in the project file. + 빌드할 대상 프레임워크입니다. 대상 프레임워크는 프로젝트 파일에도 지정되어야 합니다. The output directory to place built artifacts in. - The output directory to place built artifacts in. + 빌드된 아티팩트를 배치할 출력 디렉터리입니다. The target runtime to build for. - The target runtime to build for. + 빌드할 대상 런타임입니다. Interact with servers started from a build. - Interact with servers started from a build. + 서버와 상호 작용이 빌드에서 시작되었습니다. Shuts down build servers that are started from dotnet. By default, all servers are shut down. - Shuts down build servers that are started from dotnet. By default, all servers are shut down. + dotnet에서 시작한 빌드 서버를 종료합니다. 기본적으로 모든 서버가 종료됩니다. Cannot specify both the {0} and {1} arguments. - Cannot specify both the {0} and {1} arguments. + {0} 인수와 {1} 인수를 모두 지정할 수 없습니다. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + 현재 런타임 식별자를 확인하지 못했습니다. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + `-r|--runtime` 및 `-a|--arch` 옵션을 모두 지정하는 것은 지원되지 않습니다. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + `-r|--runtime` 및 `-os` 옵션을 모두 지정하는 것은 지원되지 않습니다. Causes clean to remove and uninstall all workload components from all SDK versions. - Causes clean to remove and uninstall all workload components from all SDK versions. + 정리를 수행하여 모든 SDK 버전에서 모든 워크로드 구성 요소를 제거합니다. .NET Clean Command - .NET Clean Command + .NET 정리 명령 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The directory containing the build artifacts to clean. - The directory containing the build artifacts to clean. + 정리할 빌드 아티팩트를 포함하는 디렉터리입니다. The configuration to clean for. The default for most projects is 'Debug'. - The configuration to clean for. The default for most projects is 'Debug'. + 정리할 구성입니다. 대부분의 프로젝트에서 기본값은 'Debug'입니다. Removes artifacts created for file-based apps - Removes artifacts created for file-based apps + 파일 기반 앱에 대해 만든 아티팩트 제거 How many days an artifact folder needs to be unused in order to be removed - How many days an artifact folder needs to be unused in order to be removed + 아티팩트 폴더를 제거하기 위해 사용하지 않아야 하는 일 수 Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + 파일 시스템을 실제로 수정하지 않고 변경 내용을 결정합니다. The target framework to clean for. The target framework must also be specified in the project file. - The target framework to clean for. The target framework must also be specified in the project file. + 정리할 대상 프레임워크입니다. 대상 프레임워크는 프로젝트 파일에도 지정되어야 합니다. The target runtime to clean for. - The target runtime to clean for. + 정리할 대상 런타임입니다. Enables collecting crash dump on expected as well as unexpected testhost exit. - Enables collecting crash dump on expected as well as unexpected testhost exit. + 예상된 테스트 호스트 종료와 예기치 않은 테스트 호스트 종료 시 크래시 덤프 수집을 사용하도록 설정합니다. @@ -174,22 +174,22 @@ The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downlo To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. Implies --blame. - Runs the tests in blame mode and collects a crash dump when the test host exits unexpectedly. This option depends on the version of .NET used, the type of error, and the operating system. + 테스트를 블레임 모드로 실행하고 테스트 호스트가 예기치 않게 종료되면 크래시 덤프를 수집합니다. 이 옵션은 사용된 .NET 버전, 오류 유형, 운영 체제에 따라 달라집니다. -For exceptions in managed code, a dump will be automatically collected on .NET 5.0 and later versions. It will generate a dump for testhost or any child process that also ran on .NET 5.0 and crashed. Crashes in native code will not generate a dump. This option works on Windows, macOS, and Linux. +관리 코드 예외의 경우 .NET 5.0 이상 버전에서 덤프가 자동으로 수집됩니다. 역시 .NET 5.0에서 실행되어 작동이 중단된 testhost 또는 자식 프로세스에 대한 덤프를 생성합니다. 네이티브 코드의 크래시는 덤프를 생성하지 않습니다. 이 옵션은 Windows, macOS, Linux에서 작동합니다. -Crash dumps in native code, or when targetting .NET Framework, or .NET Core 3.1 and earlier versions, can only be collected on Windows, by using Procdump. A directory that contains procdump.exe and procdump64.exe must be in the PATH or PROCDUMP_PATH environment variable. +네이티브 코드의 크래시 덤프나 .NET Framework 또는 .NET Core 3.1 이하 버전을 대상으로 하는 경우 Procdump를 사용하여 Windows에서만 수집할 수 있습니다. procdump.exe 및 procdump64.exe가 포함된 디렉터리는 PATH 또는 PROCDUMP_PATH 환경 변수에 있어야 합니다. -The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downloads/procdump +도구는 다음 페이지에서 다운로드할 수 있습니다. https://docs.microsoft.com/sysinternals/downloads/procdump -To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. +.NET 5.0 이상에서 실행되는 네이티브 애플리케이션에서 크래시 덤프를 수집하려면 VSTEST_DUMP_FORCEPROCDUMP 환경 변수를 1로 설정하여 Procdump를 강제로 사용할 수 있습니다. -Implies --blame. +--blame을 의미합니다. The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. - The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. + 수집할 크래시 덤프의 유형입니다. 지원되는 값은 full(기본값) 및 mini입니다. --blame-crash를 의미합니다. @@ -207,30 +207,30 @@ Example: Timeout the test run when a test takes more than 20 minutes and collect hang dump. dotnet test --blame-hang-timeout 20min - Runs the tests in blame mode. This option is helpful in isolating problematic tests that cause the test host to crash or hang, but it does not create a memory dump by default. + 테스트를 블레임 모드로 실행합니다. 이 옵션은 테스트 호스트의 크래시 또는 중단을 유발하는 문제 있는 테스트를 격리하는 데 유용하지만 기본적으로 메모리 덤프를 생성하지는 않습니다. -When a crash is detected, it creates an sequence file in TestResults/guid/guid_Sequence.xml that captures the order of tests that were run before the crash. +크래시가 탐지되면 크래시 전에 실행된 테스트의 순서를 캡처하는 시퀀스 파일이 TestResults/guid/guid_Sequence.xml에 생성됩니다. -Based on the additional settings, hang dump or crash dump can also be collected. +추가 설정에 따라 중단 덤프 또는 크래시 덤프가 수집될 수도 있습니다. -Example: - Timeout the test run when test takes more than the default timeout of 1 hour, and collect crash dump when the test host exits unexpectedly. - (Crash dumps require additional setup, see below.) +예: + 테스트에 걸리는 시간이 기본 시간 제한인 1시간보다 길면 테스트 실행이 시간 초과되고, 테스트 호스트가 예기치 않게 종료되면 크래시 덤프를 수집합니다. + (크래시 덤프에는 추가 설정이 필요합니다. 아래를 참조하세요.) dotnet test --blame-hang --blame-crash -Example: - Timeout the test run when a test takes more than 20 minutes and collect hang dump. +예: + 테스트에 걸리는 시간이 20분보다 길면 테스트 실행이 시간 초과되고 중단 덤프를 수집합니다. dotnet test --blame-hang-timeout 20min Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. - Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. + 테스트를 블레임 모드로 실행하고 테스트가 지정된 시간제한을 초과하는 경우 중단 덤프 수집을 사용하도록 설정합니다. The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. - The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. + 수집할 크래시 덤프의 유형입니다. 지원되는 값은 full(기본값), mini, none입니다. 'none'이 사용된 경우 테스트 호스트가 시간 초과될 때 종료되지만 덤프는 수집되지 않습니다. --blame-hang을 의미합니다. @@ -238,67 +238,67 @@ Example: The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, For MSTest before 2.2.4, the timeout is used for all testcases. - Per-test timeout, after which hang dump is triggered and the testhost process is terminated. Default is 1h. -The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. -When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, -For MSTest before 2.2.4, the timeout is used for all testcases. + 중단 덤프가 트리거되고 테스트 호스트 프로세스가 종료되는 테스트별 시간 제한입니다. 기본값은 1h입니다. +이 시간 제한 값은 1.5h/90m/5400s/5400000ms 형식으로 지정됩니다. 단위가 사용되지 않는 경우(예: 5400000) 값은 밀리초 단위로 간주됩니다. +데이터 기반 테스트와 함께 사용하는 경우 시간제한 동작은 사용되는 테스트 어댑터에 따라 달라집니다. xUnit, NUnit, MSTest 2.2.4 이상의 경우 테스트 사례마다 시간 제한이 갱신됩니다. +MSTest 2.2.4 이전의 경우 시간 제한은 모든 테스트케이스에 사용됩니다. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + 사용할 NuGet 구성 파일의 경로입니다. '--outdated', '--deprecated' 또는 '--vulnerable' 옵션이 필요합니다. Specifies a testconfig.json file. - Specifies a testconfig.json file. + testconfig.json 파일을 지정합니다. FILE - FILE + FILE The NuGet configuration file to use. - The NuGet configuration file to use. + 사용할 NuGet 구성 파일입니다. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE Use current runtime as the target runtime. - Use current runtime as the target runtime. + 현재 런타임을 대상 런타임으로 사용합니다. Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. - Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. + 사용되지 않는 패키지를 나열합니다. '--vulnerable' 또는 '--outdated' 옵션과 함께 사용할 수 없습니다. Output directory of the diagnostic logging. If not specified the file will be generated inside the default 'TestResults' directory. - Output directory of the diagnostic logging. -If not specified the file will be generated inside the default 'TestResults' directory. + 진단 로깅의 출력 디렉터리입니다. +지정하지 않으면 파일이 기본 'TestResults' 디렉터리 내에 생성됩니다. DIAGNOSTIC_DIR - DIAGNOSTIC_DIR + DIAGNOSTIC_DIR Prevent restoring multiple projects in parallel. - Prevent restoring multiple projects in parallel. + 여러 프로젝트를 병렬로 복원하지 않습니다. @@ -312,11 +312,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + 환경 변수의 값을 설정합니다. +변수가 없는 경우 변수를 만들고, 변수가 있으면 재정의합니다. +이 인수를 여러 번 지정하여 여러 변수를 제공할 수 있습니다. -Examples: +예: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -326,74 +326,74 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" EXPRESSION - EXPRESSION + EXPRESSION Path to the file-based program. - Path to the file-based program. + 파일 기반 프로그램의 경로입니다. Force all dependencies to be resolved even if the last restore was successful. This is equivalent to deleting project.assets.json. - Force all dependencies to be resolved even if the last restore was successful. -This is equivalent to deleting project.assets.json. + 마지막 복원이 성공적인 경우에도 모든 종속성을 확인합니다. +project.assets.json을 삭제하는 것과 동일합니다. Specifies the output format type for the list packages command. - Specifies the output format type for the list packages command. + 목록 패키지 명령의 출력 형식 유형을 지정합니다. Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. + 최신 패키지를 검색할 때 주 버전 번호가 일치하는 패키지만 고려합니다. '--outdated' 옵션이 필요합니다. Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. + 최신 패키지를 검색할 때 주 버전 번호와 부 버전 번호가 일치하는 패키지만 고려합니다. '--outdated' 옵션이 필요합니다. Treat package source failures as warnings. - Treat package source failures as warnings. + 패키지 소스 오류를 경고로 처리합니다. Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. - Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. + PDB 및 소스 파일을 포함합니다. 소스 파일이 결과 nuget 패키지의 'src' 폴더로 이동합니다. Include packages with symbols in addition to regular packages in output directory. - Include packages with symbols in addition to regular packages in output directory. + 일반 패키지 외에 기호가 포함된 패키지를 출력 디렉터리에 포함합니다. List the discovered tests instead of running the tests. - List the discovered tests instead of running the tests. + 테스트 실행 대신 검색한 테스트를 나열합니다. LOCK_FILE_PATH - LOCK_FILE_PATH + LOCK_FILE_PATH Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. - Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. + 프로젝트 잠금 파일이 작성되는 출력 위치입니다. 기본적으로 'PROJECT_ROOT\packages.lock.json'입니다. Don't allow updating project lock file. - Don't allow updating project lock file. + 프로젝트 잠금 파일 업데이트를 허용하지 않습니다. @@ -402,223 +402,223 @@ This is equivalent to deleting project.assets.json. Log in trx format using a unique file name: --logger trx Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" See https://aka.ms/vstest-report for more information on logger arguments. - The logger to use for test results. - Examples: - Log in trx format using a unique file name: --logger trx - Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" - See https://aka.ms/vstest-report for more information on logger arguments. + 테스트 결과에 사용할 로거입니다. + 예: + 고유한 파일 이름을 사용하여 trx 형식으로 기록합니다. --logger trx + 지정된 파일 이름을 사용하여 trx 형식으로 기록합니다. --logger "trx;LogFileName=<TestResults.trx>" + 로거 인수에 대한 자세한 내용은 https://aka.ms/vstest-report를 참조하세요. LOGGER - LOGGER + LOGGER The max number of test modules that can run in parallel. - The max number of test modules that can run in parallel. + 병렬로 실행할 수 있는 최대 테스트 모듈 수입니다. Specifies the minimum number of tests that are expected to run. - Specifies the minimum number of tests that are expected to run. + 실행될 것으로 예상되는 최소 테스트 수를 지정합니다. Disable ANSI output. - Disable ANSI output. + ANSI 출력을 비활성화합니다. Do not build the project before testing. Implies --no-restore. - Do not build the project before testing. Implies --no-restore. + 테스트하기 전에 프로젝트를 빌드하지 않습니다. 복원 없음을 의미합니다. Do not build the project before packing. Implies --no-restore. - Do not build the project before packing. Implies --no-restore. + 압축하기 전에 프로젝트를 빌드하지 않습니다. 복원 없음을 의미합니다. Do not cache packages and http requests. - Do not cache packages and http requests. + 패키지 및 http 요청을 캐시하지 않습니다. Do not restore project-to-project references and only restore the specified project. - Do not restore project-to-project references and only restore the specified project. + p2p(프로젝트 간) 참조를 복원하지 않고 지정한 프로젝트만 복원합니다. Disable Http Caching for packages. - Disable Http Caching for packages. + 패키지에 대해 HTTP 캐싱을 사용하지 않도록 설정합니다. Disable progress reporting. - Disable progress reporting. + 진행률 보고를 비활성화합니다. Do not restore before running the command. - Do not restore before running the command. + 명령을 실행하기 전에 복원하지 마세요. NUMBER - NUMBER + NUMBER Force conversion even if there are malformed directives. - Force conversion even if there are malformed directives. + 잘못된 형식의 지시문이 있는 경우에도 강제로 변환합니다. Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. - Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. + 최신 버전이 포함된 패키지를 나열합니다. '--deprecated' 또는 '--vulnerable' 옵션과 함께 사용할 수 없습니다. The output directory to place built artifacts in. - The output directory to place built artifacts in. + 빌드된 아티팩트를 배치할 출력 디렉터리입니다. Specifies the version of machine-readable output. Requires the '--format json' option. - Specifies the version of machine-readable output. Requires the '--format json' option. + 컴퓨터에서 읽을 수 있는 출력의 버전을 지정합니다. '--format json' 옵션이 필요합니다. PACKAGE_NAME - PACKAGE_NAME + PACKAGE_NAME PACKAGE_DIR - PACKAGE_DIR + PACKAGE_DIR The directory to restore packages to. - The directory to restore packages to. + 패키지를 복원할 디렉터리입니다. PACKAGES_DIR - PACKAGES_DIR + PACKAGES_DIR The directory to restore packages to. - The directory to restore packages to. + 패키지를 복원할 디렉터리입니다. LOG_FILE - LOG_FILE + LOG_FILE RESULTS_DIR - RESULTS_DIR + RESULTS_DIR Enable verbose logging to the specified file. - Enable verbose logging to the specified file. + 지정한 파일에 대해 자세한 정보 로깅을 사용합니다. Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. - Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. + 최신 패키지를 검색할 때 시험판 버전이 있는 패키지를 고려합니다. '--outdated' 옵션이 필요합니다. Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + 실행할 프로젝트 파일의 경로를 정의합니다. 프로젝트 파일의 경로 또는 프로젝트 파일이 포함된 디렉터리의 경로를 사용합니다. 지정하지 않으면 기본적으로 현재 디렉터리가 사용됩니다. Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + 테스트할 프로젝트 또는 솔루션 파일의 경로를 정의합니다. 프로젝트 파일의 경로 또는 프로젝트 파일이 포함된 디렉터리의 경로를 사용합니다. 지정하지 않으면 기본적으로 현재 디렉터리가 사용됩니다. PROJECT_OR_SOLUTION_PATH - PROJECT_OR_SOLUTION_PATH + PROJECT_OR_SOLUTION_PATH Forces restore to reevaluate all dependencies even if a lock file already exists. - Forces restore to reevaluate all dependencies even if a lock file already exists. + 잠금 파일이 이미 존재하는 경우에도 모든 종속성을 다시 평가하기 위해 복원합니다. The directory where the test results will be placed. The specified directory will be created if it does not exist. - The directory where the test results will be placed. -The specified directory will be created if it does not exist. + 테스트 결과를 배치할 디렉터리입니다. +지정한 디렉터리가 존재하지 않는 경우 생성됩니다. ROOT_PATH - ROOT_PATH + ROOT_PATH RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER The target runtime to restore packages for. - The target runtime to restore packages for. + 패키지를 복원할 대상 런타임입니다. Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. - Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. + 패키지에서 서비스 가능 플래그를 설정합니다. 자세한 내용은 https://aka.ms/nupkgservicing을 참조하세요. The settings file to use when running tests. - The settings file to use when running tests. + 테스트를 실행할 때 사용할 설정 파일입니다. SETTINGS_FILE - SETTINGS_FILE + SETTINGS_FILE Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. - Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. + 테스트할 솔루션 파일의 경로를 정의합니다. 솔루션 파일의 경로 또는 솔루션 파일이 포함된 디렉터리의 경로를 사용합니다. 지정하지 않으면 기본적으로 현재 디렉터리가 사용됩니다. SOLUTION_PATH - SOLUTION_PATH + SOLUTION_PATH SOURCE - SOURCE + SOURCE The NuGet package source to use for the restore. - The NuGet package source to use for the restore. + 복원에 사용할 NuGet 패키지 소스입니다. ADAPTER_PATH - ADAPTER_PATH + ADAPTER_PATH The path to the custom adapters to use for the test run. - The path to the custom adapters to use for the test run. + 테스트 실행에 사용할 사용자 지정 어댑터의 경로입니다. @@ -629,18 +629,18 @@ The specified directory will be created if it does not exist. Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" See https://aka.ms/vstest-filtering for more information on filtering support. - Run tests that match the given expression. - Examples: - Run tests with priority set to 1: --filter "Priority = 1" - Run a test with the specified full name: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" - Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" - See https://aka.ms/vstest-filtering for more information on filtering support. + 지정된 식과 일치하는 테스트를 실행합니다. + 예: + 우선순위가 1로 설정된 테스트 실행: --filter "Priority = 1" + 지정된 전체 이름이 있는 테스트 실행: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" + 지정된 이름을 포함하는 테스트 실행: --filter "FullyQualifiedName~Namespace.Class" + 필터링 지원에 대한 자세한 내용은 https://aka.ms/vstest-filtering을 참조하세요. EXPRESSION - EXPRESSION + EXPRESSION @@ -655,12 +655,12 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + 환경 변수의 값을 설정합니다. +변수가 없는 경우 변수를 만들고, 변수가 있으면 재정의합니다. +이는 테스트가 격리된 프로세스에서 강제로 실행되도록 합니다. +이 인수를 여러 번 지정하여 여러 변수를 제공할 수 있습니다. -Examples: +예: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -670,812 +670,812 @@ Examples: Run tests for the specified test modules. - Run tests for the specified test modules. + 지정된 테스트 모듈에 대한 테스트를 실행합니다. The test modules have the specified root directory. - The test modules have the specified root directory. + 테스트 모듈에 지정된 루트 디렉터리가 있습니다. Verbosity of test output. - Verbosity of test output. + 테스트 출력의 세부 정보 표시입니다. Lists transitive and top-level packages. - Lists transitive and top-level packages. + 전이적 패키지 및 최상위 패키지를 나열합니다. Test runner '{0}' is not supported. - Test runner '{0}' is not supported. + Test Runner '{0}'은(는) 지원되지 않습니다. Enables project lock file to be generated and used with restore. - Enables project lock file to be generated and used with restore. + 복원에 사용되고 생성될 프로젝트 잠금 파일을 사용합니다. VERSION - VERSION + VERSION The version of the package to add. - The version of the package to add. + 추가할 패키지의 버전입니다. Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + 프로젝트를 빌드할 때 사용할 $(VersionSuffix) 속성의 값을 설정합니다. Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. - Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. + 알려진 취약성이 있는 패키지를 나열합니다. '--deprecated' 또는 '--outdated' 옵션과 함께 사용할 수 없습니다. The SDK command to launch online help for. - The SDK command to launch online help for. + 온라인 도움말을 시작하는 SDK 명령입니다. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + 명령을 중지하고 사용자 입력 또는 작업을 기다리도록 허용합니다(예: 인증 완료). The command name of the tool to run. - The command name of the tool to run. + 실행할 도구의 명령 이름입니다. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME The device identifier to use for running the application. - The device identifier to use for running the application. + 애플리케이션 실행에 사용할 디바이스 식별자입니다. DEVICE - DEVICE + 디바이스 The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). - The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). + 실행할 파일 기반 앱의 경로입니다(현재 디렉터리에 프로젝트가 없는 경우 첫 번째 인수로도 전달할 수 있습니다). FILE_PATH - FILE_PATH + FILE_PATH The name of the launch profile (if any) to use when launching the application. - The name of the launch profile (if any) to use when launching the application. + 애플리케이션을 시작할 때 사용하는 시작 프로필(있는 경우)의 이름입니다. LAUNCH_PROFILE - LAUNCH_PROFILE + LAUNCH_PROFILE List available devices for running the application. - List available devices for running the application. + 애플리케이션을 실행할 수 있는 디바이스를 나열합니다. Do not build the project before running. Implies --no-restore. - Do not build the project before running. Implies --no-restore. + 실행하기 전에 프로젝트를 빌드하지 않습니다. --no-restore 의미합니다. {Locked="--no-restore"} Skip up to date checks and always build the program before running. - Skip up to date checks and always build the program before running. + 최신 검사를 건너뛰고 실행하기 전에 항상 프로그램을 빌드합니다. Do not use arguments specified in launch profile to run the application. - Do not use arguments specified in launch profile to run the application. + 시작 프로필에 지정된 인수를 사용하여 애플리케이션을 실행하지 마세요. Do not attempt to use launchSettings.json or [app].run.json to configure the application. - Do not attempt to use launchSettings.json or [app].run.json to configure the application. + launchSettings.json 또는 [app].run.json을 사용하여 애플리케이션을 구성하지 마세요. {Locked="launchSettings.json"}{Locked=".run.json"} PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + 시험판 패키지를 설치할 수 있습니다. Creates an alias for instantiate command with a certain set of arguments. - Creates an alias for instantiate command with a certain set of arguments. + 특정 인수 집합을 사용하여 명령을 인스턴스화하기 위한 별칭을 만듭니다. Displays defined aliases. - Displays defined aliases. + 정의된 별칭을 표시합니다. Creates or displays defined aliases. - Creates or displays defined aliases. + 정의된 별칭을 만들거나 표시합니다. Provides the details for specified template package. The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. - - Provides the details for specified template package. - The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. + + 지정된 템플릿 패키지에 대한 세부 정보를 제공합니다. + 명령은 패키지가 로컬로 설치되어 있는지, 패키지가 없으면 구성된 NuGet 피드를 검색하는지 확인합니다. NuGet package ID or path to folder or NuGet package to install. To install the NuGet package of certain version, use <package ID>::<version>. - NuGet package ID or path to folder or NuGet package to install. -To install the NuGet package of certain version, use <package ID>::<version>. + 설치할 NuGet 패키지 ID 또는 폴더 또는 NuGet 패키지의 경로입니다. +특정 버전의 NuGet 패키지를 설치하려면 <package ID>::<version>을 사용하세요. Installs a template package. - Installs a template package. + 템플릿 패키지를 설치합니다. A short name of the template to create. - A short name of the template to create. + 만들 템플릿의 짧은 이름입니다. Template specific options to use. - Template specific options to use. + 사용할 템플릿별 옵션입니다. Instantiates a template with given short name. An alias of 'dotnet new <template name>'. - Instantiates a template with given short name. An alias of 'dotnet new <template name>'. + 주어진 짧은 이름으로 템플릿을 인스턴스화합니다. 'dotnet new <template name>'의 별칭입니다. do not translate 'dotnet new <template name>' Checks the currently installed template packages for updates. - Checks the currently installed template packages for updates. + 현재 설치된 템플릿 패키지에서 업데이트를 확인하세요. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + 지정한 경우 이름과 일치하는 템플릿만 표시됩니다. Lists templates containing the specified template name. If no name is specified, lists all templates. - Lists templates containing the specified template name. If no name is specified, lists all templates. + 지정된 템플릿 이름이 포함된 템플릿을 나열합니다. 이름을 지정하지 않으면 모든 템플릿을 나열합니다. Template Instantiation Commands for .NET CLI. - Template Instantiation Commands for .NET CLI. + .NET CLI에 대한 템플릿 인스턴스화 명령입니다. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + 지정한 경우 이름과 일치하는 템플릿만 표시됩니다. Searches for the templates on NuGet.org. - Searches for the templates on NuGet.org. + NuGet.org에서 템플릿을 검색합니다. NuGet package ID (without version) or path to folder to uninstall. If command is specified without the argument, it lists all the template packages installed. - NuGet package ID (without version) or path to folder to uninstall. -If command is specified without the argument, it lists all the template packages installed. + NuGet 패키지 ID(버전 없음) 또는 제거할 폴더 경로입니다. +인수 없이 명령을 지정하면 설치된 모든 템플릿 패키지가 나열됩니다. Uninstalls a template package. - Uninstalls a template package. + 템플릿 패키지를 제거합니다. Checks the currently installed template packages for update, and install the updates. - Checks the currently installed template packages for update, and install the updates. + 현재 설치된 템플릿 패키지에서 업데이트를 확인하고 업데이트를 설치합니다. Only checks for updates and display the template packages to be updated without applying update. - Only checks for updates and display the template packages to be updated without applying update. + 업데이트를 적용하지 않고 업데이트를 확인하고 업데이트할 템플릿 패키지만 표시합니다. Unrecognized command or argument(s): {0}. - Unrecognized command or argument(s): {0}. + 인식할 수 없는 명령 또는 인수: {0}. {0} - wrong token or comma-separated tokens (if multiple). Each token is enclosed with single quotes: 'token'. FRAMEWORK - FRAMEWORK + FRAMEWORK ConfigFile - ConfigFile + ConfigFile The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior - The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior + NuGet 구성 파일. 지정한 경우 이 파일의 설정만 사용됩니다. 지정하지 않은 경우 현재 디렉터리의 구성 파일 계층 구조가 사용됩니다. 자세한 내용은 https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior를 참조하세요. CONFIGURATION - CONFIGURATION + CONFIGURATION DUMP_TYPE - DUMP_TYPE + DUMP_TYPE Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed - Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed + 도구 설치 중에 도구 매니페스트를 찾을 수 없는 경우 도구 매니페스트를 만드세요. 매니페스트의 위치는 https://aka.ms/dotnet/tools/create-manifest-if-needed를 참조하세요. Use current runtime as the target runtime. - Use current runtime as the target runtime. + 현재 런타임을 대상 런타임으로 사용합니다. Show detail result of the query. - Show detail result of the query. + 쿼리의 세부 결과를 표시합니다. Package identifier - Package identifier + 패키지 식별자 Enables diagnostic output. - Enables diagnostic output. + 진단 출력을 사용하도록 설정합니다. Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + 모든 영구 빌드 서버를 무시하도록 명령을 강제 실행합니다. Disables evaluating project context using MSBuild. - Disables evaluating project context using MSBuild. + MSBuild를 사용하여 프로젝트 컨텍스트 평가를 사용하지 않도록 설정합니다. If present, prevents templates bundled in the SDK from being presented. - If present, prevents templates bundled in the SDK from being presented. + 있는 경우 SDK에 번들로 제공되는 템플릿이 표시되지 않도록 합니다. .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. + Microsoft.Testing.Platform용 .NET 테스트 명령입니다('global.json' 파일을 통해 옵트인). 이는 Microsoft.Testing.Platform만 지원하며 VSTest를 지원하지 않습니다. 자세한 내용은 https://aka.ms/dotnet-test를 참조하세요. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. + VSTest에 대한 .NET 테스트 명령입니다. Microsoft.Testing.Platform을 사용하려면 global.json을 통해 Microsoft.Testing.Platform 기반 명령을 옵트인합니다. 자세한 내용은 https://aka.ms/dotnet-test를 참조하세요. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} DIRECTORY - DIRECTORY + 디렉터리 Download packages needed to install a workload to a folder that can be used for offline installation. - Download packages needed to install a workload to a folder that can be used for offline installation. + 오프라인 설치에 사용할 수 있는 폴더에 워크로드를 설치하는 데 필요한 패키지를 다운로드합니다. Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. - Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. + 검색 용어가 패키지 이름과 정확히 일치해야 합니다. '--take' 및 '--skip' 옵션을 무시합니다. The file-based app to operate on. - The file-based app to operate on. + 작동할 파일 기반 앱입니다. Format - Format + 형식 Format the output accordingly. Either `table`, or `json`. The default value is `table`. - Format the output accordingly. Either `table`, or `json`. The default value is `table`. + 출력의 서식을 적절하게 지정하세요. 'table' 또는 'json'입니다. 기본값은 'table'입니다. Changes the format of outputted workload versions. Can take 'json' or 'list' - Changes the format of outputted workload versions. Can take 'json' or 'list' + 출력된 워크로드 버전의 형식을 변경합니다. 'json' 또는 'list'를 사용할 수 있습니다. FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + 애플리케이션을 프레임워크 종속 애플리케이션으로 게시합니다. 애플리케이션을 실행하려면 호환되는 .NET 런타임이 대상 시스템에 설치되어 있어야 합니다. FRAMEWORK_VERSION - FRAMEWORK_VERSION + FRAMEWORK_VERSION The Microsoft.NETCore.App package version that will be used to run the assemblies. - The Microsoft.NETCore.App package version that will be used to run the assemblies. + 어셈블리를 실행하는 데 사용되는 Microsoft.NETCore.App 패키지 버전입니다. DIRECTORY - DIRECTORY + 디렉터리 Complete the operation from cache (offline). - Complete the operation from cache (offline). + 캐시에서 작업을 완료합니다(오프라인). Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. - Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. + 인수에 지정된 이전 버전으로 워크로드를 업데이트합니다. 'dotnet 워크로드 기록'을 사용하여 사용 가능한 워크로드 기록 레코드를 확인합니다. Include workloads installed with earlier SDK versions in update. - Include workloads installed with earlier SDK versions in update. + 업데이트에 이전 SDK 버전과 함께 설치된 워크로드를 포함합니다. Update workloads based on specified rollback definition file. - Update workloads based on specified rollback definition file. + 지정된 롤백 정의 파일을 기반으로 워크로드를 업데이트합니다. DUMP_TYPE - DUMP_TYPE + DUMP_TYPE TIMESPAN - TIMESPAN + TIMESPAN .NET CLI help utility - .NET CLI help utility + .NET CLI 도움말 유틸리티 Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. - Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. + 설치된 워크로드를 변경하지 않고 기록에 지정된 워크로드 버전으로 업데이트합니다. 현재 설치된 워크로드는 지정된 기록 버전과 일치하도록 업데이트됩니다. Place project in root of the solution, rather than creating a solution folder. - Place project in root of the solution, rather than creating a solution folder. + 솔루션 폴더를 만드는 대신, 솔루션의 루트에 프로젝트를 배치하세요. Allow prerelease workload manifests. - Allow prerelease workload manifests. + 시험판 워크로드 매니페스트를 허용합니다. Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + 형식이 잘못된 환경 변수: {0} WORKING_DIR - WORKING_DIR + WORKING_DIR The working directory used by the command to execute. - The working directory used by the command to execute. + 실행할 명령에서 사용하는 작업 디렉터리입니다. Invalid version string: {0} - Invalid version string: {0} + 잘못된 버전 문자열: {0} LEVEL - LEVEL + LEVEL List all projects in a solution file. - List all projects in a solution file. + 솔루션 파일의 프로젝트를 모두 나열합니다. Disables checking if the template meets the constraints to be run. - Disables checking if the template meets the constraints to be run. + 템플릿이 실행할 제약 조건을 충족하는지 여부를 확인하지 않습니다. Display solution folder paths. - Display solution folder paths. + 솔루션 폴더 경로를 표시합니다. Shut down the MSBuild build server. - Shut down the MSBuild build server. + MSBuild 빌드 서버를 종료합니다. MANIFEST - MANIFEST + MANIFEST The path to a target manifest file that contains the list of packages to be excluded from the publish step. - The path to a target manifest file that contains the list of packages to be excluded from the publish step. + 게시 단계에서 제외할 패키지 목록이 들어 있는 대상 매니페스트 파일의 경로입니다. Generate a .slnx file from a .sln file. - Generate a .slnx file from a .sln file. + .sln 파일에서 .slnx 파일을 생성합니다. .NET Add Command - .NET Add Command + .NET 추가 명령 List references or packages of a .NET project. - List references or packages of a .NET project. + .NET 프로젝트의 참조 또는 패키지를 나열합니다. .NET Remove Command - .NET Remove Command + .NET 제거 명령 Do not build the project before publishing. Implies --no-restore. - Do not build the project before publishing. Implies --no-restore. + 게시하기 전에 프로젝트를 빌드하지 않습니다. 복원 없음을 의미합니다. Do not build project-to-project references and only build the specified project. - Do not build project-to-project references and only build the specified project. + p2p(프로젝트 간) 참조를 빌드하지 않고 지정한 프로젝트만 빌드합니다. Do not use incremental building. - Do not use incremental building. + 증분 빌드를 사용하지 않습니다. Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + 시작 배너 또는 저작권 메시지를 표시하지 않습니다. Do not restore the project before building. - Do not restore the project before building. + 빌드하기 전에 프로젝트를 복원하지 마세요. OS - OS + OS Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). - Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). + 도구 매니페스트 옵션(--tool-manifest) 지정은 로컬 옵션(--local 또는 기본값)에만 유효합니다. The target operating system. - The target operating system. + 대상 운영 체제입니다. Specifies a NuGet source to use. - Specifies a NuGet source to use. + 사용할 NuGet 소스를 지정합니다. Filters the templates based on the template author. - Filters the templates based on the template author. + 템플릿 작성자를 기반으로 템플릿을 필터링합니다. Filters the templates based on baseline defined in the template. - Filters the templates based on baseline defined in the template. + 템플릿에 정의된 기준에 따라 템플릿을 필터링합니다. Specifies the columns to display in the output. - Specifies the columns to display in the output. + 출력에 표시할 열을 지정합니다. Displays all columns in the output. - Displays all columns in the output. + 출력의 모든 열을 표시합니다. Allows to pause execution in order to attach to the process for debug purposes. - Allows to pause execution in order to attach to the process for debug purposes. + 디버그 목적으로 프로세스에 연결하기 위해 실행을 일시 중지할 수 있습니다. Sets custom settings location. - Sets custom settings location. + 사용자 지정 설정 위치를 설정합니다. If specified, removes the template cache prior to command execution. - If specified, removes the template cache prior to command execution. + 지정한 경우 명령을 실행하기 전에 템플릿 캐시를 제거합니다. If specified, resets the settings prior to command execution. - If specified, resets the settings prior to command execution. + 지정한 경우 명령을 실행하기 전에 설정을 다시 설정합니다. If specified, shows the template engine config prior to command execution. - If specified, shows the template engine config prior to command execution. + 지정한 경우 명령을 실행하기 전에 템플릿 엔진 구성을 표시합니다. If specified, the settings will be not preserved on file system. - If specified, the settings will be not preserved on file system. + 이 설정을 지정하면 파일 시스템에서 설정이 유지되지 않습니다. Allows installing template packages from the specified sources even if they would override a template package from another source. - Allows installing template packages from the specified sources even if they would override a template package from another source. + 지정된 원본에서 템플릿 패키지를 다른 원본에서 재정의하더라도 템플릿 패키지를 설치할 수 있습니다. Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + 명령을 중지하고 사용자 입력 또는 작업을 기다리도록 허용합니다(예: 인증 완료). Filters templates based on language. - Filters templates based on language. + 언어를 기준으로 템플릿을 필터링합니다. Location to place the generated output. - Location to place the generated output. + 생성된 출력을 배치할 위치입니다. Filters the templates based on NuGet package ID. - Filters the templates based on NuGet package ID. + NuGet 패키지 ID를 기준으로 템플릿을 필터링합니다. The project that should be used for context evaluation. - The project that should be used for context evaluation. + 컨텍스트 평가에 사용해야 하는 프로젝트입니다. Filters the templates based on the tag. - Filters the templates based on the tag. + 태그를 기준으로 템플릿을 필터링합니다. Filters templates based on available types. Predefined values are "project" and "item". - Filters templates based on available types. Predefined values are "project" and "item". + 사용 가능한 유형에 따라 템플릿을 필터링합니다. 미리 정의된 값은 "프로젝트"및 "항목"입니다. project and item should not be translated Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. - Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. + '--outdated', '--deprecated' 및 '--vulnerable' 옵션은 함께 사용할 수 없습니다. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR .NET Core NuGet Package Packer - .NET Core NuGet Package Packer + .NET Core NuGet 패키지 패커 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place built packages in. - The output directory to place built packages in. + 빌드된 패키지를 배치할 출력 디렉터리입니다. VERSION - VERSION + VERSION The version of the package to create - The version of the package to create + 생성할 패키지의 버전 The configuration to use for building the package. The default is 'Release'. - The configuration to use for building the package. The default is 'Release'. + 패키지를 빌드하는 데 사용할 구성입니다. 기본값은 'Release'입니다. Add a NuGet package reference to the project. - Add a NuGet package reference to the project. + 프로젝트에 NuGet 패키지 참조를 추가합니다. FRAMEWORK - FRAMEWORK + FRAMEWORK Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + 특정 프레임워크를 대상으로 지정할 때에만 참조를 추가합니다. Add the reference without performing restore preview and compatibility check. - Add the reference without performing restore preview and compatibility check. + 미리 보기 복원 및 호환성 검사를 수행하지 않고 참조를 추가합니다. SOURCE - SOURCE + SOURCE The NuGet package source to use during the restore. - The NuGet package source to use during the restore. + 복원 중 사용할 NuGet 패키지 소스입니다. Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + '{0}'과 같은 패키지 식별자 또는 '{0}@{1}'과 같이 '@'로 구분된 패키지 식별자 및 버전 형식의 패키지 참조입니다. Package reference id and version must not be null. - Package reference id and version must not be null. + 패키지 참조 ID와 버전은 null이 아니어야 합니다. List all package references of the project or solution. - List all package references of the project or solution. + 프로젝트 또는 솔루션의 모든 패키지 참조를 나열합니다. FRAMEWORK | FRAMEWORK\RID - FRAMEWORK | FRAMEWORK\RID + FRAMEWORK | FRAMEWORK\RID Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. - Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. + 프레임워크를 선택하여 패키지를 표시합니다. 여러 프레임워크의 경우 옵션을 여러 번 사용합니다. SOURCE - SOURCE + SOURCE The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + 최신 패키지를 검색할 때 사용하는 NuGet 소스입니다. '--outdated', '--deprecated' 또는 '--vulnerable' 옵션이 필요합니다. Package reference - Package reference + 패키지 참조 Remove a NuGet package reference from the project. - Remove a NuGet package reference from the project. + 프로젝트에서 NuGet 패키지 참조를 제거합니다. The package reference to remove. - The package reference to remove. + 제거할 패키지 참조입니다. Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. - Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. + 하나 이상의 패키지 원본에서 검색어와 일치하는 패키지를 검색합니다. 원본을 지정하지 않으면 NuGet.Config에 정의된 모든 원본이 사용됩니다. Include prerelease packages. - Include prerelease packages. + 시험판 패키지를 포함합니다. SearchTerm - SearchTerm + SearchTerm Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. - Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. + 용어를 검색하여 패키지 이름, 설명 및 태그를 필터링합니다. 리터럴 값으로 사용됩니다. 예: 'dotnet package search some.package'. `--exact-match`도 확인합니다. Skip - Skip + 건너뛰기 Number of results to skip, to allow pagination. Default 0. - Number of results to skip, to allow pagination. Default 0. + 페이지 매김을 허용하기 위해 건너뛸 결과 수입니다. 기본값 0. Take - Take + 가져오기 Number of results to return. Default 20. - Number of results to return. Default 20. + 반환할 결과 수입니다. 기본값 20. Only print the list of links to download without downloading. - Only print the list of links to download without downloading. + 다운로드할 링크 목록을 다운로드하지 않고 인쇄만 합니다. @@ -1508,15 +1508,15 @@ If command is specified without the argument, it lists all the template packages dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 - 'dotnet workload search version' has three functions depending on its argument: - 1. If no argument is specified, it outputs a list of the latest released workload versions from this feature band. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 'dotnet workload search version'에는 인수에 따라 세 가지 기능이 있습니다. + 1. 인수를 지정하지 않으면 이 기능 밴드에서 릴리스된 최신 워크로드 버전 목록을 출력합니다. --take 옵션을 사용하여 얼마나 제공할지 지정하고 --format을 사용하여 형식을 변경합니다. + 예: dotnet workload search version --take 2 --format json [{"workloadVersion":"9.0.201"},{"workloadVersion":"9.0.200.1"}] - 2. If a workload version is provided as an argument, it outputs a table of various workloads and their versions for the specified workload version. Takes the --format option to alter the output format. - Example: + 2. 특정 워크로드 버전이 인수로 제공되는 경우 지정된 워크로드 버전에 대한 다양한 워크로드 및 해당 버전의 테이블을 출력합니다. --format 옵션을 사용하여 출력 형식을 변경합니다. + 예: dotnet workload search version 9.0.201 - Workload manifest ID Manifest feature band Manifest Version + 워크로드 매니페스트 ID 매니페스트 기능 밴드 매니페스트 버전 ------------------------------------------------------------------------------------------------ microsoft.net.workload.emscripten.current 9.0.100-rc.1 9.0.0-rc.1.24430.3 microsoft.net.workload.emscripten.net6 9.0.100-rc.1 9.0.0-rc.1.24430.3 @@ -1532,8 +1532,8 @@ If command is specified without the argument, it lists all the template packages microsoft.net.workload.mono.toolchain.net6 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net7 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net8 9.0.100-rc.1 9.0.0-rc.1.24431.7 - 3. If one or more workloads are provided along with their versions (by joining them with the '@' character), it outputs workload versions that match the provided versions. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 3. 하나 이상의 워크로드가 해당 버전과 함께 제공되는 경우('@' 문자와 조인하여) 제공된 버전과 일치하는 워크로드 버전을 출력합니다. 하나 이상의 워크로드가 해당 버전과 함께 제공되는 경우('@' 문자와 조인하여) 제공된 버전과 일치하는 워크로드 버전을 출력합니다. --take 옵션을 사용하여 얼마나 제공할지 지정하고 --format을 사용하여 형식을 변경합니다. + 예: dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 @@ -1541,775 +1541,775 @@ If command is specified without the argument, it lists all the template packages The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + 수행할 프로젝트 파일입니다. 파일을 지정하지 않으면 명령이 현재 디렉터리에서 파일을 검색합니다. Convert a file-based program to a project-based program. - Convert a file-based program to a project-based program. + 파일 기반 프로그램을 프로젝트 기반 프로그램으로 변환합니다. Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + 파일 시스템을 실제로 수정하지 않고 변경 내용을 결정합니다. PROJECT_MANIFEST - PROJECT_MANIFEST + PROJECT_MANIFEST The XML file that contains the list of packages to be stored. - The XML file that contains the list of packages to be stored. + 저장될 패키지 목록을 포함하는 XML 파일입니다. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + 작업할 프로젝트 파일 또는 C# 파일 기반 앱입니다. 파일을 지정하지 않으면 명령이 현재 디렉터리에서 프로젝트 파일을 검색합니다. PROJECT | FILE - PROJECT | FILE + 프로젝트 | 파일 Publisher for the .NET Platform - Publisher for the .NET Platform + .NET 플랫폼용 게시자입니다. The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. - The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. + 게시할 구성입니다. 기본값은 NET 8.0 프로젝트의 경우 'Release'이지만, 이전 프로젝트의 경우 'Debug'입니다. The target framework to publish for. The target framework has to be specified in the project file. - The target framework to publish for. The target framework has to be specified in the project file. + 게시할 대상 프레임워크입니다. 대상 프레임워크는 프로젝트 파일에서 지정해야 합니다. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place the published artifacts in. - The output directory to place the published artifacts in. + 게시된 아티팩트를 배치할 출력 디렉터리입니다. The target runtime to publish for. This is used when creating a self-contained deployment. The default is to publish a framework-dependent application. - The target runtime to publish for. This is used when creating a self-contained deployment. -The default is to publish a framework-dependent application. + 게시할 대상 런타임입니다. 자체 포함 배포를 만들 때 사용됩니다. +기본값은 프레임워크 종속 애플리케이션을 게시하는 것입니다. Shut down the Razor build server. - Shut down the Razor build server. + Razor 빌드 서버를 종료합니다. Add a project-to-project reference to the project. - Add a project-to-project reference to the project. + 프로젝트에 프로젝트 간 참조를 추가합니다. Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + 특정 프레임워크를 대상으로 지정할 때에만 참조를 추가합니다. The paths to the projects to add as references. - The paths to the projects to add as references. + 참조로 추가할 프로젝트의 경로입니다. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH List all project-to-project references of the project. - List all project-to-project references of the project. + 프로젝트의 모든 프로젝트 간 참조를 나열합니다. Remove a project-to-project reference from the project. - Remove a project-to-project reference from the project. + 프로젝트에서 프로젝트 간 참조를 제거합니다. Remove the reference only when targeting a specific framework. - Remove the reference only when targeting a specific framework. + 특정 프레임워크를 대상으로 지정할 때에만 참조를 제거합니다. The paths to the referenced projects to remove. - The paths to the referenced projects to remove. + 제거할 참조된 프로젝트의 경로입니다. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Remove one or more projects from a solution file. - Remove one or more projects from a solution file. + 솔루션 파일에서 하나 이상의 프로젝트를 제거합니다. The project paths or names to remove from the solution. - The project paths or names to remove from the solution. + 솔루션에서 제거할 프로젝트 경로 또는 이름입니다. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Required command was not provided. - Required command was not provided. + 필수 명령을 제공하지 않았습니다. .NET dependency restorer - .NET dependency restorer + .NET 의존성 복원 도구 Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. - Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. + 대상으로 하는 런타임이 설치되지 않은 경우 .NET 도구가 최신 버전의 .NET 런타임으로 롤포워드하도록 허용합니다. .NET Run Command - .NET Run Command + .NET 실행 명령 The configuration to run for. The default for most projects is 'Debug'. - The configuration to run for. The default for most projects is 'Debug'. + 실행할 구성입니다. 대부분의 프로젝트에서 기본값은 'Debug'입니다. The target framework to run for. The target framework must also be specified in the project file. - The target framework to run for. The target framework must also be specified in the project file. + 실행할 대상 프레임워크입니다. 대상 프레임워크는 프로젝트 파일에도 지정되어야 합니다. The target runtime to run for. - The target runtime to run for. + 실행할 대상 런타임입니다. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + 진단 출력을 사용합니다. Display the command schema as JSON. - Display the command schema as JSON. + 명령 스키마를 JSON으로 표시합니다. .NET SDK Command - .NET SDK Command + .NET SDK 명령 .NET SDK Check Command - .NET SDK Check Command + .NET SDK 확인 명령 The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + '--self-contained' 및 '--no-self-contained' 옵션은 함께 사용할 수 없습니다. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + 대상 컴퓨터에 런타임을 설치할 필요가 없도록 애플리케이션과 함께 .NET 런타임을 게시합니다. +기본값은 'false'입니다. 그러나 .NET 7 이하를 대상으로 하고 런타임 식별자를 지정하는 경우 기본값은 'true'입니다. Skip updating the workload manifests. - Skip updating the workload manifests. + 워크로드 매니페스트 업데이트 건너뛰기 Skip the optimization phase. - Skip the optimization phase. + 최적화 단계를 건너뜁니다. Skip signature verification of workload packages and installers. - Skip signature verification of workload packages and installers. + 워크로드 패키지 및 설치 관리자의 서명 확인을 건너뜁니다. Skip creating symbol files which can be used for profiling the optimized assemblies. - Skip creating symbol files which can be used for profiling the optimized assemblies. + 최적화된 어셈블리 프로파일링에 대해 사용할 수 있는 기호 파일 만들기를 건너뜁니다. Recursively add projects' ReferencedProjects to solution - Recursively add projects' ReferencedProjects to solution + 프로젝트의 ReferencedProjects를 솔루션에 재귀적으로 추가 .NET modify solution file command - .NET modify solution file command + .NET 솔루션 파일 수정 명령 The solution file to operate on. If not specified, the command will search the current directory for one. - The solution file to operate on. If not specified, the command will search the current directory for one. + 수행할 솔루션 파일입니다. 파일을 지정하지 않으면 명령이 현재 디렉터리에서 파일을 검색합니다. SLN_FILE - SLN_FILE + SLN_FILE The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + 수행할 프로젝트 또는 솔루션 파일입니다. 파일을 지정하지 않으면 명령이 현재 디렉토리에서 파일을 검색합니다. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + 작업할 프로젝트 또는 솔루션 또는 C#(파일 기반 프로그램) 파일입니다. 파일을 지정하지 않으면 명령이 현재 디렉터리에서 프로젝트 또는 솔루션을 검색합니다. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJECT | SOLUTION | FILE Source - Source + 원본 The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. - The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. + 검색할 패키지 원본입니다. 여러 '--source' 옵션을 전달하여 여러 패키지 원본을 검색할 수 있습니다. 예: '--source https://api.nuget.org/v3/index.json'. Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. - Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. + .NET 플랫폼에 대해 지정된 어셈블리를 저장합니다. 기본적으로 대상 런타임 및 프레임워크에 대해 최적화됩니다. The target framework to store packages for. The target framework has to be specified in the project file. - The target framework to store packages for. The target framework has to be specified in the project file. + 패키지를 저장할 대상 프레임워크입니다. 대상 프레임워크는 프로젝트 파일에서 지정해야 합니다. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to store the given assemblies in. - The output directory to store the given assemblies in. + 지정된 어셈블리를 저장할 출력 디렉터리입니다. The target runtime to store packages for. - The target runtime to store packages for. + 패키지를 저장할 대상 런타임입니다. Specify a temporary directory for this command to download and extract NuGet packages (must be secure). - Specify a temporary directory for this command to download and extract NuGet packages (must be secure). + NuGet 패키지를 다운로드하고 추출하려면 이 명령의 임시 디렉터리를 지정합니다(보안이 있어야 합니다). Displays a summary of what would happen if the given command line were run if it would result in a template creation. - Displays a summary of what would happen if the given command line were run if it would result in a template creation. + 템플릿이 생성될 경우 주어진 명령 줄이 실행되면 어떤 일이 발생하는지에 대한 요약을 표시합니다. Forces content to be generated even if it would change existing files. - Forces content to be generated even if it would change existing files. + 기존 파일을 변경하더라도 콘텐츠를 강제로 생성합니다. The name for the output being created. If no name is specified, the name of the output directory is used. - The name for the output being created. If no name is specified, the name of the output directory is used. + 생성 중인 출력의 이름입니다. 이름을 지정하지 않으면 출력 디렉터리의 이름이 사용됩니다. Disables checking for the template package updates when instantiating a template. - Disables checking for the template package updates when instantiating a template. + 템플릿을 인스턴스화할 때 템플릿 패키지 업데이트 확인을 사용하지 않도록 설정합니다. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The configuration to use for running tests. The default for most projects is 'Debug'. - The configuration to use for running tests. The default for most projects is 'Debug'. + 테스트 실행에 사용할 구성입니다. 대부분의 프로젝트에서 기본값은 'Debug'입니다. The target framework to run tests for. The target framework must also be specified in the project file. - The target framework to run tests for. The target framework must also be specified in the project file. + 테스트를 실행할 대상 프레임워크입니다. 대상 프레임워크는 프로젝트 파일에도 지정되어야 합니다. The target runtime to test for. - The target runtime to test for. + 테스트할 대상 런타임입니다. Install or work with tools that extend the .NET experience. - Install or work with tools that extend the .NET experience. + .NET 환경을 확장하는 도구를 설치하거나 도구로 작업합니다. Executes a tool from source without permanently installing it. - Executes a tool from source without permanently installing it. + 영구적으로 설치하지 않고 원본에서 도구를 실행합니다. Add an additional NuGet package source to use during installation. - Add an additional NuGet package source to use during installation. + 설치 중 사용할 추가 NuGet 패키지 소스를 추가합니다. ADDSOURCE - ADDSOURCE + ADDSOURCE Install global or local tool. Local tools are added to manifest and restored. - Install global or local tool. Local tools are added to manifest and restored. + 전역 또는 로컬 도구를 설치합니다. 로컬 도구는 매니페스트에 추가되고 복원됩니다. The NuGet configuration file to use. - The NuGet configuration file to use. + 사용할 NuGet 구성 파일입니다. FILE - FILE + FILE The target framework to install the tool for. - The target framework to install the tool for. + 도구를 설치할 대상 프레임워크입니다. FRAMEWORK - FRAMEWORK + FRAMEWORK Install the tool for the current user. - Install the tool for the current user. + 현재 사용자에 대해 도구를 설치합니다. Install the tool and add to the local tool manifest (default). - Install the tool and add to the local tool manifest (default). + 도구를 설치하고 로컬 도구 매니페스트에 추가합니다(기본값). Path to the manifest file. - Path to the manifest file. + 매니페스트 파일 경로입니다. PATH - PATH + PATH Replace all NuGet package sources to use during installation with these. - Replace all NuGet package sources to use during installation with these. + 설치 중에 사용할 모든 NuGet 패키지 원본을 이러한 패키지 원본으로 바꿉니다. SOURCE - SOURCE + SOURCE The directory where the tool will be installed. The directory will be created if it does not exist. - The directory where the tool will be installed. The directory will be created if it does not exist. + 도구를 설치할 디렉터리입니다. 디렉터리가 존재하지 않는 경우 생성됩니다. PATH - PATH + PATH The version of the tool package to install. - The version of the tool package to install. + 설치할 도구 패키지 버전입니다. VERSION - VERSION + VERSION List tools installed globally or locally. - List tools installed globally or locally. + 전역으로 또는 로컬로 설치된 도구를 나열합니다. The output format for the list of tools. - The output format for the list of tools. + 도구 목록의 출력 형식입니다. List tools installed for the current user. - List tools installed for the current user. + 현재 사용자에 대해 설치된 도구를 나열합니다. List the tools installed in the local tool manifest. - List the tools installed in the local tool manifest. + 로컬 도구 매니페스트에 설치된 도구를 나열합니다. The NuGet Package Id of the tool to list - The NuGet Package Id of the tool to list + 나열할 도구의 NuGet 패키지 ID PACKAGE_ID - PACKAGE_ID + PACKAGE_ID The directory containing the tools to list. - The directory containing the tools to list. + 나열할 도구를 포함하는 디렉터리입니다. Restore tools defined in the local tool manifest. - Restore tools defined in the local tool manifest. + 로컬 도구 매니페스트에 정의된 도구를 복원합니다. Path to the manifest file. - Path to the manifest file. + 매니페스트 파일 경로입니다. Arguments forwarded to the tool - Arguments forwarded to the tool + 도구에 전달된 인수 Run a local tool. Note that this command cannot be used to run a global tool. - Run a local tool. Note that this command cannot be used to run a global tool. + 로컬 도구를 실행합니다. 이 명령은 전역 도구를 실행하는 데 사용할 수 없습니다. Search dotnet tools in nuget.org - Search dotnet tools in nuget.org + nuget.org에서 dotnet 도구 검색 Include pre-release packages. - Include pre-release packages. + 시험판 패키지를 포함합니다. SEARCH_TERM - SEARCH_TERM + SEARCH_TERM Search term from package id or package description. Require at least one character. - Search term from package id or package description. Require at least one character. + 패키지 ID 또는 패키지 설명에서 가져온 검색어입니다. 1자 이상이어야 합니다. Skip - Skip + 건너뛰기 The number of results to skip, for pagination. - The number of results to skip, for pagination. + 페이지 매김을 위해 건너뛸 결과 수입니다. Take - Take + 가져오기 The number of results to return, for pagination. - The number of results to return, for pagination. + 페이지 매김을 위해 반환할 결과 수입니다. Uninstall a global tool or local tool. - Uninstall a global tool or local tool. + 전역 도구 또는 로컬 도구를 제거합니다. Uninstall the tool from the current user's tools directory. - Uninstall the tool from the current user's tools directory. + 현재 사용자의 도구 디렉터리에서 도구를 제거합니다. Uninstall the tool and remove it from the local tool manifest. - Uninstall the tool and remove it from the local tool manifest. + 도구를 제거하고 로컬 도구 매니페스트에서 제거합니다. Path to the manifest file. - Path to the manifest file. + 매니페스트 파일 경로입니다. The directory containing the tool to uninstall. - The directory containing the tool to uninstall. + 제거할 도구를 포함하는 디렉터리입니다. Update a global or local tool. - Update a global or local tool. + 전역 또는 로컬 도구를 업데이트합니다. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + 인식할 수 없는 명령 또는 인수 '{0}' Update all tools. - Update all tools. + 모든 도구를 업데이트합니다. Controls whether updates should look for workload sets or the latest version of each individual manifest. - Controls whether updates should look for workload sets or the latest version of each individual manifest. + 업데이트에서 워크로드 집합을 찾을지 또는 각 개별 매니페스트의 최신 버전을 찾을지 여부를 제어합니다. Shut down the VB/C# compiler build server. - Shut down the VB/C# compiler build server. + VB/C# 컴파일러 빌드 서버를 종료합니다. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + 패키지 인수에 이미 버전이 포함되어 있을 때는 --version을 지정할 수 없습니다. {Locked="--version"} Verbosity - Verbosity + 세부 정보 표시 Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` - Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` + 출력에 'normal', 'minimal', 'detailed'의 세부 정보 정도를 표시합니다. 기본값은 'normal'입니다. Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + MSBuild 세부 정보 표시 수준을 설정합니다. 허용되는 값은 q[uiet], m[inimal], n[ormal], d[etailed] 및 diag[nostic]입니다. Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. - Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. + 세부 정보 표시 수준을 설정합니다. 허용되는 값은 q[uiet], m[inimal], n[ormal] 및 diag[nostic]입니다. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX Removes workload components that may have been left behind from previous updates and uninstallations. - Removes workload components that may have been left behind from previous updates and uninstallations. + 이전 업데이트 및 제거에서 남아 있을 수 있는 워크로드 구성 요소를 제거합니다. Install or work with workloads that extend the .NET experience. - Install or work with workloads that extend the .NET experience. + .NET 환경을 확장하는 워크로드를 설치하거나 워크로드로 작업합니다. Modify or display workload configuration values. To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" - Modify or display workload configuration values. -To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" + 워크로드 구성 값을 수정하거나 표시합니다. +값을 표시하려면 값을 제공하지 않고 해당 명령줄 옵션을 지정합니다. 예: "dotnet workload config --update-mode" Start the elevated server process to facilitate MSI based installations. - Start the elevated server process to facilitate MSI based installations. + MSI 기반 설치를 용이하게 하도록 관리자 권한 서버 프로세스를 시작합니다. Shows a history of workload installation actions. - Shows a history of workload installation actions. + 워크로드 설치 작업의 기록을 표시합니다. The NuGet package ID of the workload to install. - The NuGet package ID of the workload to install. + 설치할 워크로드의 NuGet 패키지 ID입니다. WORKLOAD_ID - WORKLOAD_ID + WORKLOAD_ID The text to search for in the IDs and descriptions of available workloads. - The text to search for in the IDs and descriptions of available workloads. + ID에서 검색할 텍스트 및 사용 가능한 워크로드에 대한 설명입니다. SEARCH_STRING - SEARCH_STRING + SEARCH_STRING Display information about installed workloads. - Display information about installed workloads. + 설치된 워크로드에 대한 정보를 표시합니다. Install one or more workloads. - Install one or more workloads. + 하나 이상의 워크로드를 설치합니다. The NuGet configuration file to use. - The NuGet configuration file to use. + 사용할 NuGet 구성 파일입니다. FILE - FILE + FILE The NuGet package source to use during the restore. To specify multiple sources, repeat the option. - The NuGet package source to use during the restore. To specify multiple sources, repeat the option. + 복원 중에 사용할 NuGet 패키지 원본입니다. 여러 원본을 지정하려면 옵션을 반복합니다. SOURCE - SOURCE + SOURCE The version of the SDK. - The version of the SDK. + SDK의 버전입니다. VERSION - VERSION + VERSION List workloads available. - List workloads available. + 사용 가능한 워크로드를 나열합니다. Repair workload installations. - Repair workload installations. + 워크로드 설치를 복구합니다. Restore workloads required for a project. - Restore workloads required for a project. + 프로젝트에 필요한 워크로드를 복원합니다. Search for available workloads. - Search for available workloads. + 사용 가능한 워크로드를 검색합니다. A workload version to display or one or more workloads and their versions joined by the '@' character. - A workload version to display or one or more workloads and their versions joined by the '@' character. + 표시할 워크로드 버전 또는 '@' 문자로 결합된 하나 이상의 워크로드와 해당 버전입니다. Uninstall one or more workloads. - Uninstall one or more workloads. + 하나 이상의 워크로드를 제거합니다. Update all installed workloads. - Update all installed workloads. + 설치된 모든 워크로드를 업데이트합니다. WORKLOAD_VERSION - WORKLOAD_VERSION + WORKLOAD_VERSION Output workload manifest versions associated with the provided workload version. - Output workload manifest versions associated with the provided workload version. + 제공된 워크로드 버전과 연결된 워크로드 매니페스트 버전을 출력합니다. Display the currently installed workload version. - Display the currently installed workload version. + 현재 설치된 워크로드 버전을 표시합니다. Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + "예"를 사용하여 모든 확인 프롬프트를 수락합니다. The friendly name of the data collector to use for the test run. More info here: https://aka.ms/vstest-collect - The friendly name of the data collector to use for the test run. - More info here: https://aka.ms/vstest-collect + 테스트 실행에 사용할 데이터 수집기의 이름입니다. + 자세한 정보: https://aka.ms/vstest-collect DATA_COLLECTOR_NAME - DATA_COLLECTOR_NAME + DATA_COLLECTOR_NAME diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.pl.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.pl.xlf index ddcdbcdfc9f2..10ae81bb4723 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.pl.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.pl.xlf @@ -4,162 +4,162 @@ Only update advertising manifests. - Only update advertising manifests. + Aktualizuj tylko manifesty reklam. Add one or more projects to a solution file. - Add one or more projects to a solution file. + Dodaj co najmniej jeden projekt do pliku rozwiązania. The paths to the projects to add to the solution. - The paths to the projects to add to the solution. + Ścieżki do projektów, które mają zostać dodane do rozwiązania. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH The destination solution folder path to add the projects to. - The destination solution folder path to add the projects to. + Ścieżka folderu rozwiązania docelowego określająca lokalizację dodawanych projektów. Allow package downgrade when installing a .NET tool package. - Allow package downgrade when installing a .NET tool package. + Zezwalaj na obniżanie wersji pakietu podczas instalowania pakietu narzędzi .NET. ARCH - ARCH + ARCH The target architecture. - The target architecture. + Architektura docelowa. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Ścieżka artefaktów. Wszystkie dane wyjściowe z projektu, w tym dane wyjściowe kompilacji, publikowania i pakowania, będą trafiać do podfolderów w określonej ścieżce. .NET Builder - .NET Builder + Konstruktor platformy .NET The configuration to use for building the project. The default for most projects is 'Debug'. - The configuration to use for building the project. The default for most projects is 'Debug'. + Konfiguracja do użycia na potrzeby kompilacji projektu. W przypadku większości projektów ustawienie domyślne to „Debugowanie”. The target framework to build for. The target framework must also be specified in the project file. - The target framework to build for. The target framework must also be specified in the project file. + Platforma docelowa kompilacji. Platforma docelowa musi być również określona w pliku projektu. The output directory to place built artifacts in. - The output directory to place built artifacts in. + Katalog wyjściowy, w którym mają zostać umieszczone skompilowane artefakty. The target runtime to build for. - The target runtime to build for. + Docelowe środowisko uruchomieniowe kompilacji. Interact with servers started from a build. - Interact with servers started from a build. + Interakcja z serwerami uruchomionymi z poziomu kompilacji. Shuts down build servers that are started from dotnet. By default, all servers are shut down. - Shuts down build servers that are started from dotnet. By default, all servers are shut down. + Zamyka serwery kompilacji, które zostały uruchomione z poziomu polecenia dotnet. Domyślnie zamykane są wszystkie serwery. Cannot specify both the {0} and {1} arguments. - Cannot specify both the {0} and {1} arguments. + Nie można określić zarówno argumentu {0}, jak i {1}. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Rozpoznawanie bieżącego identyfikatora środowiska uruchomieniowego nie powiodło się. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Określanie opcji „-r|--runtime” i „-a|--arch” nie jest obsługiwane. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Określanie opcji „-r|--runtime” i „-os” nie jest obsługiwane. Causes clean to remove and uninstall all workload components from all SDK versions. - Causes clean to remove and uninstall all workload components from all SDK versions. + Powoduje usunięcie i odinstalowanie wszystkich składników obciążenia ze wszystkich wersji zestawu SDK. .NET Clean Command - .NET Clean Command + Polecenie clean platformy .NET OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The directory containing the build artifacts to clean. - The directory containing the build artifacts to clean. + Katalog zawierający artefakty kompilacji do oczyszczenia. The configuration to clean for. The default for most projects is 'Debug'. - The configuration to clean for. The default for most projects is 'Debug'. + Konfiguracja, dla której ma być wykonane czyszczenie. W przypadku większości projektów ustawienie domyślne to „Debugowanie”. Removes artifacts created for file-based apps - Removes artifacts created for file-based apps + Usuwa artefakty utworzone dla aplikacji opartych na plikach How many days an artifact folder needs to be unused in order to be removed - How many days an artifact folder needs to be unused in order to be removed + Ile dni folder artefaktów musi pozostawać nieużywany, aby został usunięty Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Określa zmiany bez faktycznej modyfikacji systemu plików The target framework to clean for. The target framework must also be specified in the project file. - The target framework to clean for. The target framework must also be specified in the project file. + Platforma docelowa czyszczenia. Platforma docelowa musi być również określona w pliku projektu. The target runtime to clean for. - The target runtime to clean for. + Docelowe środowisko uruchomieniowe czyszczenia. Enables collecting crash dump on expected as well as unexpected testhost exit. - Enables collecting crash dump on expected as well as unexpected testhost exit. + Włącza zbieranie zrzutów awaryjnych po oczekiwanym i nieoczekiwanym zakończenia działania przez host testowy. @@ -174,22 +174,22 @@ The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downlo To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. Implies --blame. - Runs the tests in blame mode and collects a crash dump when the test host exits unexpectedly. This option depends on the version of .NET used, the type of error, and the operating system. + Uruchamia testy w trybie blame i zbiera zrzut awaryjny, gdy host testowy nieoczekiwanie kończy działanie. Ta opcja zależy od używanej wersji platformy .NET, typu błędu, i systemu operacyjnego. -For exceptions in managed code, a dump will be automatically collected on .NET 5.0 and later versions. It will generate a dump for testhost or any child process that also ran on .NET 5.0 and crashed. Crashes in native code will not generate a dump. This option works on Windows, macOS, and Linux. +W przypadku wyjątków w kodzie zarządzanym zrzut zostanie automatycznie zebrany na platformie .NET 5.0 i nowszych wersjach. Spowoduje to wygenerowanie zrzutu dla hosta testowego lub dowolnego procesu podrzędnego, który również został uruchomiony na platformie .NET 5.0 i uległ awarii. Awarie w kodzie natywnym nie wygenerują zrzutu. Ta opcja działa w systemach Windows, macOS, i Linux. -Crash dumps in native code, or when targetting .NET Framework, or .NET Core 3.1 and earlier versions, can only be collected on Windows, by using Procdump. A directory that contains procdump.exe and procdump64.exe must be in the PATH or PROCDUMP_PATH environment variable. +Zrzuty awaryjne w kodzie natywnym, lub w przypadku platformy .NET Framework lub .NET Core 3.1 i starszych wersji, mogą być zbierane tylko w systemie Windows przy użyciu narzędzia Procdump. Katalog zawierający pliki procdump.exe i procdump64.exe musi znajdować się w zmiennej środowiskowej PATH lub PROCDUMP_PATH. -The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downloads/procdump +Narzędzia można pobrać tutaj: https://docs.microsoft.com/sysinternals/downloads/procdump -To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. +Aby zebrać zrzut awaryjny z aplikacji natywnej działającej na platformie .NET 5.0 lub nowszej wersji, użycie elementu Procdump można wymusić, ustawiając zmienną środowiskową VSTEST_DUMP_FORCEPROCDUMP na wartość 1. -Implies --blame. +Wymaga polecenia --blame. The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. - The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. + Typ zrzutu awaryjnego do zebrania. Obsługiwane wartości są pełne (domyślne) i mini. Implikuje --blame-crash. @@ -207,30 +207,30 @@ Example: Timeout the test run when a test takes more than 20 minutes and collect hang dump. dotnet test --blame-hang-timeout 20min - Runs the tests in blame mode. This option is helpful in isolating problematic tests that cause the test host to crash or hang, but it does not create a memory dump by default. + Uruchamia testy w trybie blame. Ta opcja jest pomocna w izolowaniu problematycznych testów, które powodują awarię lub zawieszanie się hosta testowego, ale domyślnie nie tworzy zrzutu pamięci. -When a crash is detected, it creates an sequence file in TestResults/guid/guid_Sequence.xml that captures the order of tests that were run before the crash. +Gdy zostanie wykryta awaria, tworzy plik sekwencji w lokalizacji TestResults/guid/guid_Sequence.xml, który przechwytuje kolejność testów uruchomionych przed awarią. -Based on the additional settings, hang dump or crash dump can also be collected. +Na podstawie dodatkowych ustawień może być również zbierany zrzut stanu zawieszenia lub zrzut awaryjny. -Example: - Timeout the test run when test takes more than the default timeout of 1 hour, and collect crash dump when the test host exits unexpectedly. - (Crash dumps require additional setup, see below.) +Przykład: + Spowodowanie przekroczenia limitu czasu przebiegu testu, gdy test trwa dłużej niż domyślny limit czasu (1 godzina), i zebranie zrzutu awaryjnego, gdy host testowy nieoczekiwanie zakończy działanie. + (Zrzuty awaryjne wymagają dodatkowej konfiguracji; zobacz poniżej). dotnet test --blame-hang --blame-crash -Example: - Timeout the test run when a test takes more than 20 minutes and collect hang dump. +Przykład: + Spowodowanie przekroczenia limitu czasu przebiegu testu, gdy test trwa dłużej niż 20 minut, i zebranie zrzutu zawieszenia. dotnet test --blame-hang-timeout 20min Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. - Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. + Uruchamia testy w trybie blame i włącza zbieranie zrzutów w stanie zawieszenia, gdy test przekroczy podany limit czasu. The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. - The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. + Typ zrzutu awaryjnego do zebrania. Obsługiwane wartości są pełne (domyślne), mini i żadne. Gdy jest używana wartość „none”, host testowy jest przerywany po przekroczeniu limitu czasu, ale nie jest zbierany zrzut. Implikuje --blame-hang. @@ -238,67 +238,67 @@ Example: The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, For MSTest before 2.2.4, the timeout is used for all testcases. - Per-test timeout, after which hang dump is triggered and the testhost process is terminated. Default is 1h. -The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. -When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, -For MSTest before 2.2.4, the timeout is used for all testcases. + Przekroczono limit czasu na test, po którym jest wyzwalany zrzut zawieszenia, a działanie procesu na hoście testowym jest kończone. Wartość domyślna to 1 godz. +Wartość limitu czasu jest określana w następującym formacie: 1,5 godz. / 90 min / 5400 s / 5 400 000 ms. Jeśli nie jest używana żadna jednostka (np. 5 400 000), przyjmuje się, że wartość jest wyrażona w milisekundach. +W przypadku użycia razem z testami opartymi na danych zachowanie limitu czasu zależy od użytego adaptera testowego. W przypadku struktur xUnit, NUnit i MSTest w wersji 2.2.4+ limit czasu jest odnawiany po każdym przypadku testowym, +W przypadku platformy MSTest w wersji wcześniejszej niż 2.2.4 limit czasu jest używany dla wszystkich przypadków testowych. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + Ścieżka do pliku konfiguracji NuGet do użycia. Wymaga opcji „--outdated”, „--deprecated” lub „--vulnerable”. Specifies a testconfig.json file. - Specifies a testconfig.json file. + Określa plik testconfig.json. FILE - FILE + FILE The NuGet configuration file to use. - The NuGet configuration file to use. + Plik konfiguracji programu NuGet do użycia. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE Use current runtime as the target runtime. - Use current runtime as the target runtime. + Użyj bieżącego środowiska uruchomieniowego jako docelowego środowiska uruchomieniowego. Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. - Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. + Wyświetla pakiety, które są przestarzałe. Nie można łączyć z opcją „--vulnerable” ani „--outdated”. Output directory of the diagnostic logging. If not specified the file will be generated inside the default 'TestResults' directory. - Output directory of the diagnostic logging. -If not specified the file will be generated inside the default 'TestResults' directory. + Katalog wyjściowy rejestrowania diagnostycznego. +W katalogu domyślnym „TestResults” zostanie wygenerowany plik, jeśli nie został określony. DIAGNOSTIC_DIR - DIAGNOSTIC_DIR + DIAGNOSTIC_DIR Prevent restoring multiple projects in parallel. - Prevent restoring multiple projects in parallel. + Nie zezwalaj na równoległe przywracanie wielu projektów. @@ -312,88 +312,88 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Ustawia wartość zmiennej środowiskowej. +Jeśli zmienna nie istnieje, tworzy ją, a jeśli istnieje, przesłania. +Ten argument można określić wiele razy w celu podania wielu zmiennych. -Examples: +Przykłady: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARABLE=”wartość ze spacjami” +-e VARABLE=”wartości;rozdzielone;średnikami” -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NAZWA="WARTOŚĆ" EXPRESSION - EXPRESSION + EXPRESSION Path to the file-based program. - Path to the file-based program. + Ścieżka do programu opartego na plikach. Force all dependencies to be resolved even if the last restore was successful. This is equivalent to deleting project.assets.json. - Force all dependencies to be resolved even if the last restore was successful. -This is equivalent to deleting project.assets.json. + Wymuś rozstrzygnięcie wszystkich zależności nawet w przypadku, gdy ostatnie przywracanie się powiodło. +Jest to równoważne usunięciu pliku project.assets.json. Specifies the output format type for the list packages command. - Specifies the output format type for the list packages command. + Określa typ formatu wyjściowego polecenia pakietów listy. Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. + Podczas wyszukiwania nowszych pakietów uwzględniaj tylko pakiety ze zgodnym numerem wersji głównej. Wymaga opcji „--outdated”. Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. + Podczas wyszukiwania nowszych pakietów uwzględniaj tylko pakiety ze zgodnym numerem wersji głównej i pomocniczej. Wymaga opcji „--outdated”. Treat package source failures as warnings. - Treat package source failures as warnings. + Traktuj niepowodzenia źródła pakietów jako ostrzeżenia. Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. - Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. + Dołącz pliki PDB i pliki źródłowe. Pliki źródłowe zostaną umieszczone w folderze „src” w wynikowym pakiecie NuGet. Include packages with symbols in addition to regular packages in output directory. - Include packages with symbols in addition to regular packages in output directory. + Dołącz pakiety z symbolami oprócz regularnych pakietów w folderze wyjściowym. List the discovered tests instead of running the tests. - List the discovered tests instead of running the tests. + Wyświetl listę odnalezionych testów zamiast uruchamiać testy. LOCK_FILE_PATH - LOCK_FILE_PATH + LOCK_FILE_PATH Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. - Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. + Lokalizacja danych wyjściowych, w której zapisywany jest plik blokady projektu. Domyślnie jest to „PROJECT_ROOT\packages.lock.json”. Don't allow updating project lock file. - Don't allow updating project lock file. + Nie zezwalaj na aktualizowanie pliku blokady projektu. @@ -402,223 +402,223 @@ This is equivalent to deleting project.assets.json. Log in trx format using a unique file name: --logger trx Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" See https://aka.ms/vstest-report for more information on logger arguments. - The logger to use for test results. - Examples: - Log in trx format using a unique file name: --logger trx - Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" - See https://aka.ms/vstest-report for more information on logger arguments. + Rejestrator do użycia na potrzeby wyników testów. + Przykłady: + Rejestruj w formacie trx z użyciem unikatowej nazwy pliku: --logger trx + Rejestruj w formacie trx z użyciem podanej nazwy pliku: --logger "trx;LogFileName=<TestResults.trx>" + Zobacz https://aka.ms/vstest-report, aby uzyskać więcej informacji na temat argumentów rejestratora. LOGGER - LOGGER + LOGGER The max number of test modules that can run in parallel. - The max number of test modules that can run in parallel. + Maksymalna liczba modułów testowych, które mogą być uruchamiane równolegle. Specifies the minimum number of tests that are expected to run. - Specifies the minimum number of tests that are expected to run. + Określa minimalną liczbę testów, które mają zostać uruchomione. Disable ANSI output. - Disable ANSI output. + Wyłącz dane wyjściowe ANSI. Do not build the project before testing. Implies --no-restore. - Do not build the project before testing. Implies --no-restore. + Nie kompiluj tego projektu przed testowaniem. Powoduje przyjęcie, że podano parametr --no-restore. Do not build the project before packing. Implies --no-restore. - Do not build the project before packing. Implies --no-restore. + Nie kompiluj tego projektu przed pakowaniem. Powoduje przyjęcie, że podano parametr --no-restore. Do not cache packages and http requests. - Do not cache packages and http requests. + Nie przechowuj w pamięci podręcznej pakietów ani żądań HTTP. Do not restore project-to-project references and only restore the specified project. - Do not restore project-to-project references and only restore the specified project. + Nie przywracaj odwołań między projektami i przywróć tylko określony projekt. Disable Http Caching for packages. - Disable Http Caching for packages. + Wyłącz buforowanie HTTP dla pakietów. Disable progress reporting. - Disable progress reporting. + Wyłącz raportowanie postępu. Do not restore before running the command. - Do not restore before running the command. + Nie przywracaj przed uruchomieniem polecenia. NUMBER - NUMBER + NUMER Force conversion even if there are malformed directives. - Force conversion even if there are malformed directives. + Wymuś konwersję, nawet jeśli istnieją źle sformułowane dyrektywy. Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. - Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. + Wyświetla pakiety, które mają nowszą wersję. Nie można łączyć z opcją „--deprecated” ani „--vulnerable”. The output directory to place built artifacts in. - The output directory to place built artifacts in. + Katalog wyjściowy, w którym mają zostać umieszczone skompilowane artefakty. Specifies the version of machine-readable output. Requires the '--format json' option. - Specifies the version of machine-readable output. Requires the '--format json' option. + Określa wersję danych wyjściowych z możliwością odczytu przez maszynę. Wymaga opcji „--format json”. PACKAGE_NAME - PACKAGE_NAME + PACKAGE_NAME PACKAGE_DIR - PACKAGE_DIR + PACKAGE_DIR The directory to restore packages to. - The directory to restore packages to. + Katalog, w którym zostaną przywrócone pakiety. PACKAGES_DIR - PACKAGES_DIR + PACKAGES_DIR The directory to restore packages to. - The directory to restore packages to. + Katalog, w którym zostaną przywrócone pakiety. LOG_FILE - LOG_FILE + LOG_FILE RESULTS_DIR - RESULTS_DIR + RESULTS_DIR Enable verbose logging to the specified file. - Enable verbose logging to the specified file. + Włącz pełne rejestrowanie w określonym pliku. Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. - Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. + Podczas wyszukiwania nowszych pakietów uwzględniaj pakiety z wersjami wstępnymi. Wymaga opcji „--outdated”. Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Określa ścieżkę do pliku projektu do uruchomienia. Użyj ścieżki do pliku projektu lub katalogu, w którym ten plik się znajduje. Jeśli nie zostanie określony, domyślnie będzie to bieżący katalog. Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Określa ścieżkę do pliku projektu lub rozwiązania do przetestowania. Użyj ścieżki do pliku projektu lub katalogu, w którym ten plik się znajduje. Jeśli nie zostanie określony, domyślnie będzie to bieżący katalog. PROJECT_OR_SOLUTION_PATH - PROJECT_OR_SOLUTION_PATH + PROJECT_OR_SOLUTION_PATH Forces restore to reevaluate all dependencies even if a lock file already exists. - Forces restore to reevaluate all dependencies even if a lock file already exists. + Wymusza przywrócenie w celu ponownego obliczenia wszystkich zależności, nawet jeśli plik blokady już istnieje. The directory where the test results will be placed. The specified directory will be created if it does not exist. - The directory where the test results will be placed. -The specified directory will be created if it does not exist. + Katalog, w którym będą umieszczane wyniki testów. +Jeśli określony katalog nie istnieje, zostanie utworzony. ROOT_PATH - ROOT_PATH + ROOT_PATH RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER The target runtime to restore packages for. - The target runtime to restore packages for. + Docelowe środowisko uruchomieniowe, dla którego mają zostać przywrócone pakiety. Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. - Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. + Ustaw w pakiecie flagę oznaczającą możliwość serwisowania. Aby uzyskać więcej informacji, zobacz https://aka.ms/nupkgservicing. The settings file to use when running tests. - The settings file to use when running tests. + Plik ustawień, który ma zostać użyty podczas uruchamiania testów. SETTINGS_FILE - SETTINGS_FILE + SETTINGS_FILE Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. - Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. + Określa ścieżkę do pliku rozwiązania do przetestowania. Użyj ścieżki do pliku rozwiązania lub katalogu, w którym ten plik się znajduje. Jeśli nie zostanie określony, domyślnie będzie to bieżący katalog. SOLUTION_PATH - SOLUTION_PATH + SOLUTION_PATH SOURCE - SOURCE + SOURCE The NuGet package source to use for the restore. - The NuGet package source to use for the restore. + Źródło pakietów NuGet do użycia na potrzeby przywracania. ADAPTER_PATH - ADAPTER_PATH + ADAPTER_PATH The path to the custom adapters to use for the test run. - The path to the custom adapters to use for the test run. + Ścieżka do niestandardowych adapterów, które mają być używane na potrzeby przebiegu testu. @@ -629,18 +629,18 @@ The specified directory will be created if it does not exist. Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" See https://aka.ms/vstest-filtering for more information on filtering support. - Run tests that match the given expression. - Examples: - Run tests with priority set to 1: --filter "Priority = 1" - Run a test with the specified full name: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" - Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" - See https://aka.ms/vstest-filtering for more information on filtering support. + Uruchom testy odpowiadające danemu wyrażeniu. + Przykłady: + Uruchom testy z priorytetem ustawionym na wartość 1: --filter "Priority = 1" + Uruchom test o określonej pełnej nazwie: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" + Uruchom testy zawierające określoną nazwę: --filter "FullyQualifiedName~Namespace.Class" + Aby uzyskać więcej informacji o obsłudze filtrowania, zobacz witrynę https://aka.ms/vstest-filtering. EXPRESSION - EXPRESSION + EXPRESSION @@ -655,827 +655,827 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Ustawia wartość zmiennej środowiskowej. +Jeśli zmienna nie istnieje, tworzy ją, a jeśli istnieje, przesłania. +Wymusi to uruchamianie testów w izolowanym procesie. +Ten argument można określić wiele razy w celu podania wielu wartości. -Examples: --e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" --e VAR1=abc -e VAR2=def -e VAR3=ghi +Przykłady: +-e ZMIENNA=abc +-e ZMIENNA="wartość ze spacjami" +-e ZMIENNA="wartości;rozdzielone;średnikami" +-e ZM1=abc -e ZM2=def -e ZM3=ghi Run tests for the specified test modules. - Run tests for the specified test modules. + Uruchom testy dla określonych modułów testowych. The test modules have the specified root directory. - The test modules have the specified root directory. + Moduły testowe mają określony katalog główny. Verbosity of test output. - Verbosity of test output. + Szczegółowość danych wyjściowych testu. Lists transitive and top-level packages. - Lists transitive and top-level packages. + Zwraca listę pakietów przejściowych i pakietów najwyższego poziomu. Test runner '{0}' is not supported. - Test runner '{0}' is not supported. + Moduł uruchamiający testy „{0}” nie jest obsługiwany. Enables project lock file to be generated and used with restore. - Enables project lock file to be generated and used with restore. + Umożliwia generowanie pliku blokady projektu i używanie go przy przywracaniu. VERSION - VERSION + VERSION The version of the package to add. - The version of the package to add. + Wersja pakietu do dodania. Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Ustaw wartość właściwości $(VersionSuffix) do użycia podczas kompilowania projektu. Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. - Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. + Wyświetla pakiety ze znanymi lukami w zabezpieczeniach. Nie można łączyć z opcją „--deprecated” ani „--outdated”. The SDK command to launch online help for. - The SDK command to launch online help for. + Polecenie zestawu SDK, dla którego ma zostać uruchomiona pomoc online. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Zezwala poleceniu na zatrzymanie działania i zaczekanie na wprowadzenie danych lub wykonanie akcji przez użytkownika (na przykład ukończenie uwierzytelniania). The command name of the tool to run. - The command name of the tool to run. + Nazwa polecenia narzędzia do uruchomienia. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME The device identifier to use for running the application. - The device identifier to use for running the application. + Identyfikator urządzenia, który ma być używany do uruchamiania aplikacji. DEVICE - DEVICE + URZĄDZENIE The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). - The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). + Ścieżka do aplikacji opartej na plikach do uruchomienia (można ją również przekazać jako pierwszy argument, jeśli w bieżącym katalogu nie ma projektu). FILE_PATH - FILE_PATH + FILE_PATH The name of the launch profile (if any) to use when launching the application. - The name of the launch profile (if any) to use when launching the application. + Nazwa profilu uruchamiania (jeśli istnieje), który ma być używany podczas uruchamiania aplikacji. LAUNCH_PROFILE - LAUNCH_PROFILE + LAUNCH_PROFILE List available devices for running the application. - List available devices for running the application. + Wyświetl listę dostępnych urządzeń do uruchamiania aplikacji. Do not build the project before running. Implies --no-restore. - Do not build the project before running. Implies --no-restore. + Nie kompiluj tego projektu przed uruchomieniem. Powoduje przyjęcie, że podano parametr --no-restore. {Locked="--no-restore"} Skip up to date checks and always build the program before running. - Skip up to date checks and always build the program before running. + Pomiń aktualne testy i zawsze kompiluj program przed uruchomieniem. Do not use arguments specified in launch profile to run the application. - Do not use arguments specified in launch profile to run the application. + Nie używaj argumentów określonych w profilu uruchamiania do uruchamiania aplikacji. Do not attempt to use launchSettings.json or [app].run.json to configure the application. - Do not attempt to use launchSettings.json or [app].run.json to configure the application. + Nie próbuj używać plików launchSettings.json ani [app].run.json do konfigurowania aplikacji. {Locked="launchSettings.json"}{Locked=".run.json"} PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Zezwala na instalowanie pakietów wersji wstępnych. Creates an alias for instantiate command with a certain set of arguments. - Creates an alias for instantiate command with a certain set of arguments. + Tworzy alias dla polecenia tworzenia wystąpienia z określonym zestawem argumentów. Displays defined aliases. - Displays defined aliases. + Wyświetla zdefiniowane aliasy. Creates or displays defined aliases. - Creates or displays defined aliases. + Tworzy lub wyświetla zdefiniowane aliasy. Provides the details for specified template package. The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. - - Provides the details for specified template package. - The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. + + Zawiera szczegółowe informacje dotyczące określonego pakietu szablonów. + Polecenie sprawdza, czy pakiet jest zainstalowany lokalnie, a jeśli nie został znaleziony, wyszukuje skonfigurowane kanały informacyjne NuGet. NuGet package ID or path to folder or NuGet package to install. To install the NuGet package of certain version, use <package ID>::<version>. - NuGet package ID or path to folder or NuGet package to install. -To install the NuGet package of certain version, use <package ID>::<version>. + Identyfikator pakietu NuGet lub ścieżka do folderu lub pakietu NuGet do zainstalowania. +Aby zainstalować pakiet NuGet określonej wersji, użyj <package ID>::<version>. Installs a template package. - Installs a template package. + Instaluje pakietu szablonów. A short name of the template to create. - A short name of the template to create. + Krótka nazwa szablonu do utworzenia. Template specific options to use. - Template specific options to use. + Opcje specyficzne dla szablonu do użycia. Instantiates a template with given short name. An alias of 'dotnet new <template name>'. - Instantiates a template with given short name. An alias of 'dotnet new <template name>'. + Tworzy wystąpienie szablonu o podanej krótkiej nazwie. Alias elementu „dotnet new <template name>”. do not translate 'dotnet new <template name>' Checks the currently installed template packages for updates. - Checks the currently installed template packages for updates. + Sprawdź aktualnie zainstalowane pakiety szablonów pod kątem aktualizacji. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Jeśli określono, wyświetlane będą tylko szablony zgodne z nazwą. Lists templates containing the specified template name. If no name is specified, lists all templates. - Lists templates containing the specified template name. If no name is specified, lists all templates. + Listy szablonów zawierające określoną nazwę szablonu. Jeśli nie określono żadnej nazwy, zostaną wyświetlone wszystkie szablony. Template Instantiation Commands for .NET CLI. - Template Instantiation Commands for .NET CLI. + Polecenia tworzenia wystąpienia szablonu dla interfejsu wiersza polecenia platformy .NET. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Jeśli określono, wyświetlane będą tylko szablony zgodne z nazwą. Searches for the templates on NuGet.org. - Searches for the templates on NuGet.org. + Wyszukuje szablony na stronie NuGet.org. NuGet package ID (without version) or path to folder to uninstall. If command is specified without the argument, it lists all the template packages installed. - NuGet package ID (without version) or path to folder to uninstall. -If command is specified without the argument, it lists all the template packages installed. + Identyfikator pakietu NuGet (bez wersji) lub ścieżka do folderu do odinstalowania. +Jeśli polecenie zostanie określone bez argumentu, zostanie wyświetlona lista wszystkich zainstalowanych pakietów szablonów. Uninstalls a template package. - Uninstalls a template package. + Umożliwia odinstalowanie pakietu szablonów. Checks the currently installed template packages for update, and install the updates. - Checks the currently installed template packages for update, and install the updates. + Sprawdź aktualnie zainstalowane pakiety szablonów pod kątem aktualizacji i zainstaluj te aktualizacje. Only checks for updates and display the template packages to be updated without applying update. - Only checks for updates and display the template packages to be updated without applying update. + Wyszukuje tylko aktualizacje i wyświetla pakiety szablonów do zaktualizowania bez stosowania aktualizacji. Unrecognized command or argument(s): {0}. - Unrecognized command or argument(s): {0}. + Nierozpoznane polecenie lub argument: {0} {0} - wrong token or comma-separated tokens (if multiple). Each token is enclosed with single quotes: 'token'. FRAMEWORK - FRAMEWORK + FRAMEWORK ConfigFile - ConfigFile + ConfigFile The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior - The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior + Plik konfiguracyjny pakietu NuGet. Jeśli jest określony, używane będą tylko ustawienia z tego pliku. Jeśli nie jest określony, używana będzie hierarchia plików konfiguracyjnych z bieżącego katalogu. Aby uzyskać więcej informacji, zobacz https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior CONFIGURATION - CONFIGURATION + CONFIGURATION DUMP_TYPE - DUMP_TYPE + DUMP_TYPE Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed - Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed + Utwórz manifest narzędzi, jeśli nie zostanie znaleziony podczas instalacji narzędzia. Aby uzyskać informacje o lokalizacji manifestów, zobacz https://aka.ms/dotnet/tools/create-manifest-if-needed Use current runtime as the target runtime. - Use current runtime as the target runtime. + Użyj bieżącego środowiska uruchomieniowego jako docelowego środowiska uruchomieniowego. Show detail result of the query. - Show detail result of the query. + Pokaż szczegółowy wynik zapytania. Package identifier - Package identifier + Identyfikator pakietu Enables diagnostic output. - Enables diagnostic output. + Włącza dane wyjściowe diagnostyki. Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Wymuś polecenie, aby zignorować wszystkie trwałe serwery kompilacji. Disables evaluating project context using MSBuild. - Disables evaluating project context using MSBuild. + Wyłącza ocenianie kontekstu projektu przy użyciu programu MSBuild. If present, prevents templates bundled in the SDK from being presented. - If present, prevents templates bundled in the SDK from being presented. + Jeśli istnieją, uniemożliwia prezentowanie szablonów dołączonych do zestawu SDK. .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. + Polecenie testowe platformy .NET dla elementu Microsoft.Testing.Platform (aktywowane przez plik „global.json”). Obsługuje tylko Microsoft.Testing.Platform i nie obsługuje VSTest. Aby uzyskać więcej informacji, zobacz https://aka.ms/dotnet-test. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. + Polecenie testowe platformy .NET dla narzędzia VSTest. Aby korzystać z platformy Microsoft.Testing.Platform, wyraź zgodę na użycie polecenia opartego na Microsoft.Testing.Platform za pośrednictwem pliku global.json. Aby uzyskać więcej informacji, zobacz https://aka.ms/dotnet-test. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} DIRECTORY - DIRECTORY + KATALOG Download packages needed to install a workload to a folder that can be used for offline installation. - Download packages needed to install a workload to a folder that can be used for offline installation. + Pobierz pakiety potrzebne do zainstalowania obciążenia w folderze, którego można użyć do instalacji w trybie offline. Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. - Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. + Wymagaj, aby wyszukiwany termin dokładnie odpowiadał nazwie pakietu. Powoduje ignorowanie opcji „--take” i „--skip”. The file-based app to operate on. - The file-based app to operate on. + Aplikacja oparta na plikach, na której ma działać. Format - Format + Formatuj Format the output accordingly. Either `table`, or `json`. The default value is `table`. - Format the output accordingly. Either `table`, or `json`. The default value is `table`. + Odpowiednio sformatuj dane wyjściowe. Element „table” lub „json”. Wartość domyślna to „table”. Changes the format of outputted workload versions. Can take 'json' or 'list' - Changes the format of outputted workload versions. Can take 'json' or 'list' + Zmienia format wersji obciążeń wyjściowych. Może przyjmować format „json” lub „list” FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Opublikuj aplikację jako aplikację zależną od frameworku. Aby można było uruchomić aplikację, na maszynie docelowej musi być zainstalowane zgodne środowisko uruchomieniowe platformy .NET. FRAMEWORK_VERSION - FRAMEWORK_VERSION + FRAMEWORK_VERSION The Microsoft.NETCore.App package version that will be used to run the assemblies. - The Microsoft.NETCore.App package version that will be used to run the assemblies. + Wersja pakietu Microsoft.NETCore.App, za pomocą której mają być uruchamiane zestawy. DIRECTORY - DIRECTORY + KATALOG Complete the operation from cache (offline). - Complete the operation from cache (offline). + Ukończ operację z pamięci podręcznej (offline). Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. - Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. + Zaktualizuj obciążenia do poprzedniej wersji określonej przez argument. Użyj opcji „historia obciążeń dotnet”, aby wyświetlić dostępne rekordy historii obciążeń. Include workloads installed with earlier SDK versions in update. - Include workloads installed with earlier SDK versions in update. + Uwzględnij obciążenia zainstalowane z wcześniejszymi wersjami zestawu SDK w aktualizacji. Update workloads based on specified rollback definition file. - Update workloads based on specified rollback definition file. + Zaktualizuj obciążenia na podstawie określonego pliku definicji wycofywania. DUMP_TYPE - DUMP_TYPE + DUMP_TYPE TIMESPAN - TIMESPAN + TIMESPAN .NET CLI help utility - .NET CLI help utility + Narzędzie pomocy interfejsu wiersza polecenia platformy .NET Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. - Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. + Zaktualizuj do wersji obciążenia określonych w historii bez zmieniania, które obciążenia są instalowane. Aktualnie zainstalowane obciążenia zostaną zaktualizowane w celu dopasowania do określonej wersji historii. Place project in root of the solution, rather than creating a solution folder. - Place project in root of the solution, rather than creating a solution folder. + Umieść projekt w katalogu głównym rozwiązania zamiast tworzyć folder rozwiązania. Allow prerelease workload manifests. - Allow prerelease workload manifests. + Zezwalaj na wstępnie wydane manifesty pakietów roboczych. Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Niepoprawnie sformatowane zmienne środowiskowe: {0} WORKING_DIR - WORKING_DIR + WORKING_DIR The working directory used by the command to execute. - The working directory used by the command to execute. + Katalog roboczy używany do wykonania polecenia. Invalid version string: {0} - Invalid version string: {0} + Nieprawidłowy ciąg wersji: {0} LEVEL - LEVEL + LEVEL List all projects in a solution file. - List all projects in a solution file. + Wyświetl listę wszystkich projektów w pliku rozwiązania. Disables checking if the template meets the constraints to be run. - Disables checking if the template meets the constraints to be run. + Wyłącza sprawdzanie, czy szablon spełnia ograniczenia do uruchomienia. Display solution folder paths. - Display solution folder paths. + Wyświetl ścieżki folderów rozwiązania. Shut down the MSBuild build server. - Shut down the MSBuild build server. + Zamknij serwer kompilacji MSBuild. MANIFEST - MANIFEST + MANIFEST The path to a target manifest file that contains the list of packages to be excluded from the publish step. - The path to a target manifest file that contains the list of packages to be excluded from the publish step. + Ścieżka do docelowego pliku manifestu zawierającego listę pakietów, które mają zostać wykluczone z kroku publikowania. Generate a .slnx file from a .sln file. - Generate a .slnx file from a .sln file. + Wygeneruj plik .slnx na podstawie pliku .sln. .NET Add Command - .NET Add Command + Polecenie add platformy .NET List references or packages of a .NET project. - List references or packages of a .NET project. + Lista odwołań lub pakietów projektu .NET. .NET Remove Command - .NET Remove Command + Polecenie remove platformy .NET Do not build the project before publishing. Implies --no-restore. - Do not build the project before publishing. Implies --no-restore. + Nie kompiluj tego projektu przed opublikowaniem. Powoduje przyjęcie, że podano parametr --no-restore. Do not build project-to-project references and only build the specified project. - Do not build project-to-project references and only build the specified project. + Nie kompiluj odwołań między projektami i kompiluj tylko określony projekt. Do not use incremental building. - Do not use incremental building. + Nie używaj kompilowania przyrostowego. Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Nie wyświetlaj baneru początkowego ani komunikatu o prawach autorskich. Do not restore the project before building. - Do not restore the project before building. + Nie przywracaj projektu przed kompilowaniem. OS - OS + System operacyjny Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). - Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). + Określenie opcji manifestu narzędzia (--tool-manifest) jest prawidłowe tylko z opcją lokalną (--local lub wartość domyślna). The target operating system. - The target operating system. + Docelowy system operacyjny. Specifies a NuGet source to use. - Specifies a NuGet source to use. + Określa źródło NuGet do użycia. Filters the templates based on the template author. - Filters the templates based on the template author. + Filtruje szablony na podstawie autora szablonu. Filters the templates based on baseline defined in the template. - Filters the templates based on baseline defined in the template. + Filtruje szablony na podstawie punktu odniesienia zdefiniowanego w szablonie. Specifies the columns to display in the output. - Specifies the columns to display in the output. + Określa kolumny do wyświetlenia w danych wyjściowych. Displays all columns in the output. - Displays all columns in the output. + Wyświetla wszystkie kolumny w danych wyjściowych. Allows to pause execution in order to attach to the process for debug purposes. - Allows to pause execution in order to attach to the process for debug purposes. + Umożliwia wstrzymanie wykonywania w celu dołączenia do procesu na potrzeby debugowania. Sets custom settings location. - Sets custom settings location. + Ustawia lokalizację ustawień niestandardowych. If specified, removes the template cache prior to command execution. - If specified, removes the template cache prior to command execution. + Jeśli określono, usuwa pamięć podręczną szablonu przed wykonaniem polecenia. If specified, resets the settings prior to command execution. - If specified, resets the settings prior to command execution. + Jeśli określono, resetuje ustawienia przed wykonaniem polecenia. If specified, shows the template engine config prior to command execution. - If specified, shows the template engine config prior to command execution. + Jeśli określono, wyświetla konfigurację aparatu szablonu przed wykonaniem polecenia. If specified, the settings will be not preserved on file system. - If specified, the settings will be not preserved on file system. + Jeśli określono, ustawienia nie będą zachowane w systemie plików. Allows installing template packages from the specified sources even if they would override a template package from another source. - Allows installing template packages from the specified sources even if they would override a template package from another source. + Umożliwia instalowanie pakietów szablonów z określonych źródeł, nawet jeśli zastąpiłyby one pakiet szablonów z innego źródła. Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Zezwala poleceniu na zatrzymanie działania i zaczekanie na wprowadzenie danych lub wykonanie akcji przez użytkownika (na przykład ukończenie uwierzytelniania). Filters templates based on language. - Filters templates based on language. + Filtruje szablony na podstawie języka. Location to place the generated output. - Location to place the generated output. + Lokalizacja, w której mają zostać umieszczone wygenerowane dane wyjściowe. Filters the templates based on NuGet package ID. - Filters the templates based on NuGet package ID. + Filtruje szablony na podstawie identyfikatora pakietu NuGet.. The project that should be used for context evaluation. - The project that should be used for context evaluation. + Projekt, który powinien być używany do oceny kontekstu. Filters the templates based on the tag. - Filters the templates based on the tag. + Filtruje szablony na podstawie tagu. Filters templates based on available types. Predefined values are "project" and "item". - Filters templates based on available types. Predefined values are "project" and "item". + Filtruje szablony na podstawie dostępnych typów. Wstępnie zdefiniowane wartości to „projekt”" i „element”. project and item should not be translated Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. - Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. + Nie można łączyć opcji „--outdated”, „--deprecated” i „--vulnerable”. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR .NET Core NuGet Package Packer - .NET Core NuGet Package Packer + Tworzenie pakietów NuGet w programie .NET Core OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place built packages in. - The output directory to place built packages in. + Katalog wyjściowy, w którym mają zostać umieszczone skompilowane pakiety. VERSION - VERSION + WERSJA The version of the package to create - The version of the package to create + Wersja pakietu do utworzenia The configuration to use for building the package. The default is 'Release'. - The configuration to use for building the package. The default is 'Release'. + Konfiguracja używana do kompilowania pakietu. Wartość domyślna to „Wersja”. Add a NuGet package reference to the project. - Add a NuGet package reference to the project. + Dodaj odwołanie do pakietu NuGet do projektu. FRAMEWORK - FRAMEWORK + FRAMEWORK Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Dodaj odwołanie tylko w przypadku określenia konkretnej platformy docelowej. Add the reference without performing restore preview and compatibility check. - Add the reference without performing restore preview and compatibility check. + Dodaj odwołanie bez tworzenia podglądu przywracania i sprawdzania zgodności. SOURCE - SOURCE + ŹRÓDŁO The NuGet package source to use during the restore. - The NuGet package source to use during the restore. + Źródło pakietów NuGet do użycia podczas przywracania. Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Odwołanie do pakietu w formie identyfikatora pakietu, takiego jak „{0}” lub identyfikatora pakietu i wersji, rozdzielonych znakiem „@”, np. „{0}@{1}”. Package reference id and version must not be null. - Package reference id and version must not be null. + Identyfikator odwołania i wersja pakietu nie mogą mieć wartości null. List all package references of the project or solution. - List all package references of the project or solution. + Zwróć listę wszystkich odwołań do pakietów w projekcie lub rozwiązaniu. FRAMEWORK | FRAMEWORK\RID - FRAMEWORK | FRAMEWORK\RID + FRAMEWORK | FRAMEWORK\RID Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. - Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. + Wybiera strukturę, aby wyświetlić jej pakiety. W przypadku wielu struktur użyj tej opcji wielokrotnie. SOURCE - SOURCE + ŹRÓDŁO The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + Źródła NuGet do użycia podczas wyszukiwania nowszych pakietów. Wymaga opcji „--outdated”, „--deprecated” lub „--vulnerable”. Package reference - Package reference + Odwołanie do pakietu Remove a NuGet package reference from the project. - Remove a NuGet package reference from the project. + Usuń odwołanie do pakietu NuGet z projektu. The package reference to remove. - The package reference to remove. + Odwołanie do pakietu do usunięcia. Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. - Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. + Wyszukuje co najmniej jedno źródło pakietów, które są zgodne z wyszukiwanym terminem. Jeśli nie określono żadnego źródła, zostaną użyte wszystkie źródła zdefiniowane w NuGet.Config. Include prerelease packages. - Include prerelease packages. + Uwzględnij pakiety wersji wstępnej. SearchTerm - SearchTerm + SearchTerm Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. - Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. + Wyszukaj termin, aby filtrować nazwy,opisy i tagi pakietów. Używane jako wartość literału. Przykład: „dotnet package search some.package”. Zobacz też „--exact-match”. Skip - Skip + Pomiń Number of results to skip, to allow pagination. Default 0. - Number of results to skip, to allow pagination. Default 0. + Liczba wyników do pominięcia, aby zezwolić na dzielenie na strony. Wartość domyślna to 0. Take - Take + Pobierz Number of results to return. Default 20. - Number of results to return. Default 20. + Liczba wyników do zwrócenia. Wartość domyślna to 20. Only print the list of links to download without downloading. - Only print the list of links to download without downloading. + Drukuj tylko listę linków do pobrania bez ich pobierania. @@ -1508,15 +1508,15 @@ If command is specified without the argument, it lists all the template packages dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 - 'dotnet workload search version' has three functions depending on its argument: - 1. If no argument is specified, it outputs a list of the latest released workload versions from this feature band. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + Polecenie „dotnet workload search version” ma trzy funkcje w zależności od argumentu: + 1. Jeśli nie zostanie określony żaden argument, wyświetla listę najnowszych wydanych wersji obciążenia z tego pasma funkcji. Stosuje opcję --take, aby określić, ile elementów należy podać, i polecenie --format, aby zmienić format. + Przykład: dotnet workload search version --take 2 --format json [{"workloadVersion":"9.0.201"},{"workloadVersion":"9.0.200.1"}] - 2. If a workload version is provided as an argument, it outputs a table of various workloads and their versions for the specified workload version. Takes the --format option to alter the output format. - Example: + 2. Jeśli wersja obciążenia jest podana jako argument, generuje tabelę różnych obciążeń i ich wersje dla określonej wersji obciążenia. Przyjmuje opcję --format, aby zmienić format danych wyjściowych. + Przykład: dotnet workload search version 9.0.201 - Workload manifest ID Manifest feature band Manifest Version + Identyfikator manifestu obciążenia Pasmo funkcji manifestu Wersja manifestu ------------------------------------------------------------------------------------------------ microsoft.net.workload.emscripten.current 9.0.100-rc.1 9.0.0-rc.1.24430.3 microsoft.net.workload.emscripten.net6 9.0.100-rc.1 9.0.0-rc.1.24430.3 @@ -1532,8 +1532,8 @@ If command is specified without the argument, it lists all the template packages microsoft.net.workload.mono.toolchain.net6 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net7 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net8 9.0.100-rc.1 9.0.0-rc.1.24431.7 - 3. If one or more workloads are provided along with their versions (by joining them with the '@' character), it outputs workload versions that match the provided versions. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 3. Jeśli co najmniej jedno obciążenie jest podane wraz z jego wersją (przez połączenie obciążeń za pomocą znaku „@”), generuje wersje obciążeń zgodne z podanymi wersjami. Stosuje opcję --take, aby określić, ile elementów należy podać, i polecenie --format, aby zmienić format. + Przykład: dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 @@ -1541,775 +1541,775 @@ If command is specified without the argument, it lists all the template packages The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Plik projektu, na którym ma zostać wykonana operacja. Jeśli nie określono pliku, polecenie przeszuka bieżący katalog pod jego kątem. Convert a file-based program to a project-based program. - Convert a file-based program to a project-based program. + Konwertuj program oparty na plikach na program oparty na projekcie. Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Określa zmiany bez faktycznej modyfikacji systemu plików PROJECT_MANIFEST - PROJECT_MANIFEST + PROJECT_MANIFEST The XML file that contains the list of packages to be stored. - The XML file that contains the list of packages to be stored. + Plik XML zawierający listę pakietów, które mają być przechowywane. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Plik projektu lub aplikacja oparta na plikach języka C#, na którym ma działać. Jeśli plik nie zostanie określony, polecenie wyszuka bieżący katalog w poszukiwaniu pliku projektu. PROJECT | FILE - PROJECT | FILE + PROJEKT | PLIK Publisher for the .NET Platform - Publisher for the .NET Platform + Wydawca dla platformy .NET. The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. - The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. + Konfiguracja do opublikowania. Wartość domyślna to „Wersja” dla projektów NET 8.0 i nowszych, ale „Debugowanie” dla starszych projektów. The target framework to publish for. The target framework has to be specified in the project file. - The target framework to publish for. The target framework has to be specified in the project file. + Platforma docelowa publikacji. Platforma docelowa musi być określona w pliku projektu. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place the published artifacts in. - The output directory to place the published artifacts in. + Katalog wyjściowy, w którym mają zostać umieszczone opublikowane artefakty. The target runtime to publish for. This is used when creating a self-contained deployment. The default is to publish a framework-dependent application. - The target runtime to publish for. This is used when creating a self-contained deployment. -The default is to publish a framework-dependent application. + Docelowe środowisko uruchomieniowe na potrzeby publikowania. Jest używane podczas tworzenia samodzielnego wdrożenia. +Domyślnie publikowana jest aplikacja zależna od struktury. Shut down the Razor build server. - Shut down the Razor build server. + Zamknij serwer kompilacji Razor. Add a project-to-project reference to the project. - Add a project-to-project reference to the project. + Dodaj odwołanie między projektami do projektu. Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Dodaj odwołanie tylko w przypadku określenia konkretnej platformy docelowej. The paths to the projects to add as references. - The paths to the projects to add as references. + Ścieżki do projektów, które mają zostać dodane jako odwołania. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH List all project-to-project references of the project. - List all project-to-project references of the project. + Wyświetl listę wszystkich odwołań między projektami w projekcie. Remove a project-to-project reference from the project. - Remove a project-to-project reference from the project. + Usuń odwołanie między projektami z projektu. Remove the reference only when targeting a specific framework. - Remove the reference only when targeting a specific framework. + Usuń odwołanie tylko w przypadku określenia konkretnej platformy docelowej. The paths to the referenced projects to remove. - The paths to the referenced projects to remove. + Ścieżki do przywoływanych projektów, które mają zostać usunięte. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Remove one or more projects from a solution file. - Remove one or more projects from a solution file. + Usuń co najmniej jeden projekt z pliku rozwiązania. The project paths or names to remove from the solution. - The project paths or names to remove from the solution. + Ścieżki projektu lub nazwy do usunięcia z rozwiązania. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Required command was not provided. - Required command was not provided. + Nie podano wymaganego polecenia. .NET dependency restorer - .NET dependency restorer + Przywracanie zależności platformy .NET Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. - Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. + Zezwalaj narzędziu środowiska .NET na przekazywanie do nowszych wersji środowiska uruchomieniowego .NET, jeśli docelowe środowiska uruchomieniowe nie są zainstalowane. .NET Run Command - .NET Run Command + Uruchamianie polecenia platformy .NET The configuration to run for. The default for most projects is 'Debug'. - The configuration to run for. The default for most projects is 'Debug'. + Konfiguracja, którą należy uruchomić. W przypadku większości projektów ustawienie domyślne to „Debugowanie”. The target framework to run for. The target framework must also be specified in the project file. - The target framework to run for. The target framework must also be specified in the project file. + Platforma docelowa uruchomienia. Platforma docelowa musi być również określona w pliku projektu. The target runtime to run for. - The target runtime to run for. + Docelowe środowisko uruchomieniowe na potrzeby przebiegu. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Włącz diagnostyczne dane wyjściowe. Display the command schema as JSON. - Display the command schema as JSON. + Wyświetl schemat polecenia jako kod JSON. .NET SDK Command - .NET SDK Command + Polecenie zestawu .NET SDK .NET SDK Check Command - .NET SDK Check Command + Polecenie sprawdzania zestawu .NET SDK The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Opcji „--self-contained” i „--no-self-contained” nie można używać razem. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Opublikuj środowisko uruchomieniowe platformy .NET z aplikacją, aby nie trzeba było instalować środowiska uruchomieniowego na maszynie docelowej. +Wartość domyślna to „false”. Jednak w przypadku, gdy docelową jest platforma .NET 7 lub jej niższa wersja wartością domyślną jest „true”, jeśli określono identyfikator środowiska uruchomieniowego. Skip updating the workload manifests. - Skip updating the workload manifests. + Pomiń aktualizowanie manifestów pakietu roboczego. Skip the optimization phase. - Skip the optimization phase. + Pomiń fazę optymalizacji. Skip signature verification of workload packages and installers. - Skip signature verification of workload packages and installers. + Pomiń weryfikację podpisu pakietów obciążeń i instalatorów. Skip creating symbol files which can be used for profiling the optimized assemblies. - Skip creating symbol files which can be used for profiling the optimized assemblies. + Pomiń tworzenie plików symboli, za pomocą których można profilować zoptymalizowane zestawy. Recursively add projects' ReferencedProjects to solution - Recursively add projects' ReferencedProjects to solution + Rekursywne dodawanie elementów ReferencedProjects projektów do rozwiązania .NET modify solution file command - .NET modify solution file command + Polecenie modyfikacji pliku rozwiązania dla platformy .NET The solution file to operate on. If not specified, the command will search the current directory for one. - The solution file to operate on. If not specified, the command will search the current directory for one. + Plik rozwiązania, na którym ma zostać wykonana operacja. Jeśli nie określono pliku, polecenie przeszuka bieżący katalog pod jego kątem. SLN_FILE - SLN_FILE + SLN_FILE The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Plik projektu lub rozwiązania, dla którego ma zostać wykonana operacja. Jeśli plik nie zostanie podany, polecenie wyszuka go w bieżącym katalogu. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Projekt lub rozwiązanie albo plik C# (program oparty na plikach), na którym ma być wykonana operacja. Jeśli plik nie zostanie określony, polecenie wyszuka bieżący katalog w poszukiwaniu projektu lub rozwiązania. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJEKT | ROZWIĄZANIE | PLIK Source - Source + Źródło The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. - The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. + Źródło pakietu do wyszukania. Możesz przekazać wiele opcji „--source”, aby przeszukać wiele źródeł pakietów. Przykład: „--source https://api.nuget.org/v3/index.json”. Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. - Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. + Przechowuje określone zestawy platformy .NET. Domyślnie są one optymalizowane pod kątem docelowego środowiska uruchomieniowego i platformy docelowej. The target framework to store packages for. The target framework has to be specified in the project file. - The target framework to store packages for. The target framework has to be specified in the project file. + Platforma docelowa, dla której mają być przechowywane pakiety. Platforma docelowa musi być określona w pliku projektu. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to store the given assemblies in. - The output directory to store the given assemblies in. + Katalog wyjściowy, w którym mają być przechowywane podane zestawy. The target runtime to store packages for. - The target runtime to store packages for. + Docelowe środowisko uruchomieniowe, dla którego mają być przechowywane pakiety. Specify a temporary directory for this command to download and extract NuGet packages (must be secure). - Specify a temporary directory for this command to download and extract NuGet packages (must be secure). + Określ katalog tymczasowy dla tego polecenia, aby pobrać i wyodrębnić pakiety NuGet (musi być bezpieczny). Displays a summary of what would happen if the given command line were run if it would result in a template creation. - Displays a summary of what would happen if the given command line were run if it would result in a template creation. + Wyświetla podsumowanie co się stanie, jeśli dany wiersz polecenia zostanie uruchomiony i jeśli to spowoduje utworzenie szablonu. Forces content to be generated even if it would change existing files. - Forces content to be generated even if it would change existing files. + Wymusza wygenerowanie zawartości nawet w przypadku zmiany istniejących plików. The name for the output being created. If no name is specified, the name of the output directory is used. - The name for the output being created. If no name is specified, the name of the output directory is used. + Nazwa tworzonych danych wyjściowych. Jeśli nie podano nazwy, zostanie użyta nazwa katalogu wyjściowego. Disables checking for the template package updates when instantiating a template. - Disables checking for the template package updates when instantiating a template. + Wyłącza sprawdzanie aktualizacji pakietu szablonów podczas tworzenia wystąpienia szablonu. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The configuration to use for running tests. The default for most projects is 'Debug'. - The configuration to use for running tests. The default for most projects is 'Debug'. + Konfiguracja do użycia na potrzeby uruchamiania testów. W przypadku większości projektów ustawienie domyślne to „Debugowanie”. The target framework to run tests for. The target framework must also be specified in the project file. - The target framework to run tests for. The target framework must also be specified in the project file. + Platforma docelowa, dla której mają być uruchamiane testy. Platforma docelowa musi być również określona w pliku projektu. The target runtime to test for. - The target runtime to test for. + Docelowe środowisko uruchomieniowe na potrzeby testowania. Install or work with tools that extend the .NET experience. - Install or work with tools that extend the .NET experience. + Zainstaluj lub pracuj z narzędziami, które rozszerzają środowisko .NET. Executes a tool from source without permanently installing it. - Executes a tool from source without permanently installing it. + Wykonuje narzędzie ze źródła bez trwałego instalowania go. Add an additional NuGet package source to use during installation. - Add an additional NuGet package source to use during installation. + Dodaj dodatkowe źródło pakietu NuGet do użycia podczas instalacji. ADDSOURCE - ADDSOURCE + ADDSOURCE Install global or local tool. Local tools are added to manifest and restored. - Install global or local tool. Local tools are added to manifest and restored. + Zainstaluj narzędzie globalne lub lokalne. Narzędzia lokalne są dodawane do manifestu i przywracane. The NuGet configuration file to use. - The NuGet configuration file to use. + Plik konfiguracji programu NuGet do użycia. FILE - FILE + PLIK The target framework to install the tool for. - The target framework to install the tool for. + Docelowa platforma, dla której ma zostać zainstalowane narzędzie. FRAMEWORK - FRAMEWORK + FRAMEWORK Install the tool for the current user. - Install the tool for the current user. + Zainstaluj narzędzie dla bieżącego użytkownika. Install the tool and add to the local tool manifest (default). - Install the tool and add to the local tool manifest (default). + Zainstaluj narzędzie, a następnie dodaj je do manifestu narzędzi lokalnych (ustawienie domyślne). Path to the manifest file. - Path to the manifest file. + Ścieżka do pliku manifestu. PATH - PATH + ŚCIEŻKA Replace all NuGet package sources to use during installation with these. - Replace all NuGet package sources to use during installation with these. + Zastąp je wszystkimi źródłami pakietów NuGet, które mają być używane podczas instalacji. SOURCE - SOURCE + ŹRÓDŁO The directory where the tool will be installed. The directory will be created if it does not exist. - The directory where the tool will be installed. The directory will be created if it does not exist. + Katalog, w którym zostanie zainstalowane narzędzie. Jeśli katalog nie istnieje, zostanie utworzony. PATH - PATH + ŚCIEŻKA The version of the tool package to install. - The version of the tool package to install. + Wersja pakietu narzędzia do zainstalowania. VERSION - VERSION + WERSJA List tools installed globally or locally. - List tools installed globally or locally. + Wyświetl listę narzędzi zainstalowanych globalnie lub lokalnie. The output format for the list of tools. - The output format for the list of tools. + Format wyjściowy listy narzędzi. List tools installed for the current user. - List tools installed for the current user. + Wyświetl listę narzędzi zainstalowanych dla bieżącego użytkownika. List the tools installed in the local tool manifest. - List the tools installed in the local tool manifest. + Wyświetl listę narzędzi zainstalowanych w manifeście narzędzi lokalnych. The NuGet Package Id of the tool to list - The NuGet Package Id of the tool to list + Identyfikator pakietu NuGet narzędzia do zaktualizowania. PACKAGE_ID - PACKAGE_ID + PACKAGE_ID The directory containing the tools to list. - The directory containing the tools to list. + Katalog zawierający narzędzia do wyświetlenia na liście. Restore tools defined in the local tool manifest. - Restore tools defined in the local tool manifest. + Przywróć narzędzia zdefiniowane w manifeście narzędzi lokalnych. Path to the manifest file. - Path to the manifest file. + Ścieżka do pliku manifestu. Arguments forwarded to the tool - Arguments forwarded to the tool + Argumenty przekazane do narzędzia Run a local tool. Note that this command cannot be used to run a global tool. - Run a local tool. Note that this command cannot be used to run a global tool. + Uruchom narzędzie lokalne. Pamiętaj, że tego polecenia nie można używać do uruchamiania narzędzia globalnego. Search dotnet tools in nuget.org - Search dotnet tools in nuget.org + Wyszukaj narzędzia dotnet w witrynie nuget.org Include pre-release packages. - Include pre-release packages. + Uwzględnij pakiety wersji wstępnej. SEARCH_TERM - SEARCH_TERM + SEARCH_TERM Search term from package id or package description. Require at least one character. - Search term from package id or package description. Require at least one character. + Wyszukaj termin na podstawie identyfikatora pakietu lub opisu pakietu. Wymagaj co najmniej jednego znaku. Skip - Skip + Pomiń The number of results to skip, for pagination. - The number of results to skip, for pagination. + Liczba wyników do pominięcia na potrzeby dzielenia na strony. Take - Take + Pobierz The number of results to return, for pagination. - The number of results to return, for pagination. + Liczba wyników do zwrócenia na potrzeby dzielenia na strony. Uninstall a global tool or local tool. - Uninstall a global tool or local tool. + Odinstaluj narzędzie globalne lub lokalne. Uninstall the tool from the current user's tools directory. - Uninstall the tool from the current user's tools directory. + Odinstaluj narzędzie z katalogu narzędzi bieżącego użytkownika. Uninstall the tool and remove it from the local tool manifest. - Uninstall the tool and remove it from the local tool manifest. + Odinstaluj narzędzie i usuń je z manifestu narzędzi lokalnych. Path to the manifest file. - Path to the manifest file. + Ścieżka do pliku manifestu. The directory containing the tool to uninstall. - The directory containing the tool to uninstall. + Katalog zawierający narzędzie do odinstalowania. Update a global or local tool. - Update a global or local tool. + Zaktualizuj narzędzie globalne lub lokalne. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Nierozpoznane polecenie lub argument „{0}” Update all tools. - Update all tools. + Zaktualizuj wszystkie narzędzia. Controls whether updates should look for workload sets or the latest version of each individual manifest. - Controls whether updates should look for workload sets or the latest version of each individual manifest. + Kontroluje, czy aktualizacje powinny szukać zestawów obciążeń, czy najnowszej wersji każdego pojedynczego manifestu. Shut down the VB/C# compiler build server. - Shut down the VB/C# compiler build server. + Zamknij serwer kompilacji kompilatora VB/C#. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Nie można określić parametru --version, jeśli argument pakietu zawiera już wersję. {Locked="--version"} Verbosity - Verbosity + Szczegółowość Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` - Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` + Wyświetl tę ilość szczegółów w danych wyjściowych: „normalne”, „minimalne”, „szczegółowe”. Wartość domyślna to „normalne”. Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Ustaw poziom szczegółowości programu MSBuild. Dopuszczalne wartości to: q[uiet], m[inimal], n[ormal], d[etailed] i diag[nostic]. Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. - Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. + Ustawia poziom szczegółowości. Dozwolone wartości to q[uiet], m[inimal], n[ormal] i diag[nostic]. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX Removes workload components that may have been left behind from previous updates and uninstallations. - Removes workload components that may have been left behind from previous updates and uninstallations. + Usuwa składniki obciążenia, które mogły zostać pominięte w poprzednich aktualizacjach i dezinstalacjach. Install or work with workloads that extend the .NET experience. - Install or work with workloads that extend the .NET experience. + Zainstaluj lub pracuj z obciążeniami, które rozszerzają środowisko .NET. Modify or display workload configuration values. To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" - Modify or display workload configuration values. -To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" + Modyfikuj lub wyświetlaj wartości konfiguracji obciążenia. +Aby wyświetlić wartość, należy podać odpowiednią opcję wiersza poleceń bez podawania wartości. Na przykład: „dotnet workload config --update-mode” Start the elevated server process to facilitate MSI based installations. - Start the elevated server process to facilitate MSI based installations. + Rozpocznij proces podwyższonego poziomu serwera, aby ułatwić instalacje oparte na funkcjach MSI. Shows a history of workload installation actions. - Shows a history of workload installation actions. + Pokazuje historię akcji instalacji obciążenia. The NuGet package ID of the workload to install. - The NuGet package ID of the workload to install. + Identyfikator pakietu NuGet obciążenia do zainstalowania. WORKLOAD_ID - WORKLOAD_ID + WORKLOAD_ID The text to search for in the IDs and descriptions of available workloads. - The text to search for in the IDs and descriptions of available workloads. + Tekst do wyszukania w identyfikatorach i opisach dostępnych obciążeń. SEARCH_STRING - SEARCH_STRING + SEARCH_STRING Display information about installed workloads. - Display information about installed workloads. + Wyświetl informacje o zainstalowanych obciążeniach. Install one or more workloads. - Install one or more workloads. + Zainstaluj co najmniej jedno obciążenie. The NuGet configuration file to use. - The NuGet configuration file to use. + Plik konfiguracji programu NuGet do użycia. FILE - FILE + PLIK The NuGet package source to use during the restore. To specify multiple sources, repeat the option. - The NuGet package source to use during the restore. To specify multiple sources, repeat the option. + Źródło pakietu NuGet do użycia podczas przywracania. Aby określić wiele źródeł, powtórz tę opcję. SOURCE - SOURCE + ŹRÓDŁO The version of the SDK. - The version of the SDK. + Wersja zestawu SDK. VERSION - VERSION + WERSJA List workloads available. - List workloads available. + Wyświetl listę dostępnych obciążeń. Repair workload installations. - Repair workload installations. + Napraw instalacje obciążeń. Restore workloads required for a project. - Restore workloads required for a project. + Przywróć obciążenia wymagane dla projektu. Search for available workloads. - Search for available workloads. + Wyszukaj dostępne obciążenia. A workload version to display or one or more workloads and their versions joined by the '@' character. - A workload version to display or one or more workloads and their versions joined by the '@' character. + Wersja obciążenia do wyświetlenia lub jedno lub więcej obciążeń i ich wersji połączonych znakiem „@”. Uninstall one or more workloads. - Uninstall one or more workloads. + Odinstaluj co najmniej jedno obciążenie. Update all installed workloads. - Update all installed workloads. + Aktualizuj wszystkie zainstalowane obciążenia. WORKLOAD_VERSION - WORKLOAD_VERSION + WERSJA_OBCIĄŻENIA Output workload manifest versions associated with the provided workload version. - Output workload manifest versions associated with the provided workload version. + Wersje manifestu obciążenia wyjściowego skojarzone z udostępnioną wersją obciążenia. Display the currently installed workload version. - Display the currently installed workload version. + Wyświetl aktualnie zainstalowaną wersję obciążenia. Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Zaakceptuj wszystkie monity o potwierdzenie, używając słowa „tak”. The friendly name of the data collector to use for the test run. More info here: https://aka.ms/vstest-collect - The friendly name of the data collector to use for the test run. - More info here: https://aka.ms/vstest-collect + Przyjazna nazwa modułu zbierającego dane do użycia dla przebiegu testu. + Więcej informacji można znaleźć tutaj: https://aka.ms/vstest-collect DATA_COLLECTOR_NAME - DATA_COLLECTOR_NAME + DATA_COLLECTOR_NAME diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.pt-BR.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.pt-BR.xlf index eb48206e521a..185f148a2610 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.pt-BR.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.pt-BR.xlf @@ -4,162 +4,162 @@ Only update advertising manifests. - Only update advertising manifests. + Atualizar somente manifestos de anúncio. Add one or more projects to a solution file. - Add one or more projects to a solution file. + Adicionar um ou mais projetos em um arquivo de solução. The paths to the projects to add to the solution. - The paths to the projects to add to the solution. + Os caminhos para os projetos a serem adicionados na solução. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH The destination solution folder path to add the projects to. - The destination solution folder path to add the projects to. + O caminho da pasta de solução de destino ao qual adicionar os projetos. Allow package downgrade when installing a .NET tool package. - Allow package downgrade when installing a .NET tool package. + Permitir downgrade de pacote ao instalar um pacote de ferramentas do .NET. ARCH - ARCH + ARCH The target architecture. - The target architecture. + A arquitetura de destino. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + O caminho dos artefatos. Toda a saída do projeto, incluindo compilação, publicação e saída do pacote, irá para subpastas no caminho especificado. .NET Builder - .NET Builder + Construtor do .NET The configuration to use for building the project. The default for most projects is 'Debug'. - The configuration to use for building the project. The default for most projects is 'Debug'. + A configuração a ser usada para compilar o projeto. O padrão para a maioria dos projetos é "Debug". The target framework to build for. The target framework must also be specified in the project file. - The target framework to build for. The target framework must also be specified in the project file. + A estrutura de destino na qual o build ocorrerá. A estrutura de destino também deve ser especificada no arquivo de projeto. The output directory to place built artifacts in. - The output directory to place built artifacts in. + O diretório de saída no qual os artefatos do build serão colocados. The target runtime to build for. - The target runtime to build for. + O runtime de destino no qual o build ocorrerá. Interact with servers started from a build. - Interact with servers started from a build. + Interagir com servidores iniciados de um build. Shuts down build servers that are started from dotnet. By default, all servers are shut down. - Shuts down build servers that are started from dotnet. By default, all servers are shut down. + Desliga os servidores de build que são iniciados do dotnet. Por padrão, todos os servidores são desligados. Cannot specify both the {0} and {1} arguments. - Cannot specify both the {0} and {1} arguments. + Não é possível especificar os argumentos {0} e {1}. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Falha ao resolver o identificador de tempo de execução atual. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Não há suporte para especificar as opções '-r |--runtime ' e '-a |--arch '. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Não há suporte para especificar as opções '-r |--runtime ' e '-a |--os '. Causes clean to remove and uninstall all workload components from all SDK versions. - Causes clean to remove and uninstall all workload components from all SDK versions. + Causa limpeza para remover e desinstalar todos os componentes da carga de trabalho de todas as versões do SDK. .NET Clean Command - .NET Clean Command + Comando Clean do .NET OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The directory containing the build artifacts to clean. - The directory containing the build artifacts to clean. + O diretório que contém os artefatos de compilação a serem limpos. The configuration to clean for. The default for most projects is 'Debug'. - The configuration to clean for. The default for most projects is 'Debug'. + A configuração para a qual a limpeza ocorrerá. O padrão para a maioria dos projetos é 'Debug'. Removes artifacts created for file-based apps - Removes artifacts created for file-based apps + Remove artefatos criados para aplicativos baseados em arquivo How many days an artifact folder needs to be unused in order to be removed - How many days an artifact folder needs to be unused in order to be removed + Quantos dias uma pasta de artefato precisa ficar sem uso para ser removida Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Determina alterações sem modificar o sistema de arquivos The target framework to clean for. The target framework must also be specified in the project file. - The target framework to clean for. The target framework must also be specified in the project file. + A estrutura de destino para a qual a limpeza ocorrerá. A estrutura de destino também precisa ser especificada no arquivo de projeto. The target runtime to clean for. - The target runtime to clean for. + O runtime de destino para o qual a limpeza ocorrerá. Enables collecting crash dump on expected as well as unexpected testhost exit. - Enables collecting crash dump on expected as well as unexpected testhost exit. + Habilita a coleta de despejo de memória nas saídas esperada e inesperada do host de teste. @@ -174,22 +174,22 @@ The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downlo To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. Implies --blame. - Runs the tests in blame mode and collects a crash dump when the test host exits unexpectedly. This option depends on the version of .NET used, the type of error, and the operating system. + Executa os testes no modo blame e coleta um despejo de memória quando o host de teste sai inesperadamente. Esta opção depende da versão do .NET utilizada, do tipo de erro e do sistema operacional. -For exceptions in managed code, a dump will be automatically collected on .NET 5.0 and later versions. It will generate a dump for testhost or any child process that also ran on .NET 5.0 and crashed. Crashes in native code will not generate a dump. This option works on Windows, macOS, and Linux. +Para exceções no código gerenciado, um despejo será coletado automaticamente no .NET 5.0 e versões posteriores. Ele gerará um despejo para testhost ou qualquer processo filho que também foi executado no .NET 5.0 e travou. Falhas no código nativo não gerarão um despejo. Esta opção funciona no Windows, macOS e Linux. -Crash dumps in native code, or when targetting .NET Framework, or .NET Core 3.1 and earlier versions, can only be collected on Windows, by using Procdump. A directory that contains procdump.exe and procdump64.exe must be in the PATH or PROCDUMP_PATH environment variable. +Os despejos de falha no código nativo ou ao direcionar o .NET Framework ou o .NET Core 3.1 e versões anteriores só podem ser coletados no Windows, usando o Procdump. Um diretório que contém procdump.exe e procdump64.exe deve estar na variável de ambiente PATH ou PROCDUMP_PATH. -The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downloads/procdump +As ferramentas podem ser baixadas aqui: https://docs.microsoft.com/sysinternals/downloads/procdump -To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. +Para coletar um despejo de memória de um aplicativo nativo em execução no .NET 5.0 ou posterior, o uso de Procdump pode ser forçado definindo a variável de ambiente VSTEST_DUMP_FORCEPROCDUMP como 1. -Implies --blame. +Implica --blame. The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. - The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. + O tipo de despejo de memória a ser coletado. Os valores com suporte são full (padrão) e mini. Implica --blame-crash. @@ -207,30 +207,30 @@ Example: Timeout the test run when a test takes more than 20 minutes and collect hang dump. dotnet test --blame-hang-timeout 20min - Runs the tests in blame mode. This option is helpful in isolating problematic tests that cause the test host to crash or hang, but it does not create a memory dump by default. + Executa os testes no modo blame. Essa opção é útil para isolar testes problemáticos que fazem com que o host de teste falhe ou falhe, mas não cria um despejo de memória por padrão. -When a crash is detected, it creates an sequence file in TestResults/guid/guid_Sequence.xml that captures the order of tests that were run before the crash. +Quando uma falha é detectada, ele cria um arquivo de sequência em TestResults/guid/guid_Sequence.xml que captura a ordem dos testes executados antes da falha. -Based on the additional settings, hang dump or crash dump can also be collected. +Com base nas configurações adicionais, o despejo de travamento ou despejo de memória também podem ser coletados. -Example: - Timeout the test run when test takes more than the default timeout of 1 hour, and collect crash dump when the test host exits unexpectedly. - (Crash dumps require additional setup, see below.) - dotnet test --blame-hang --blame-crash -Example: - Timeout the test run when a test takes more than 20 minutes and collect hang dump. - dotnet test --blame-hang-timeout 20min +Exemplo: + Tempo limite da execução do teste quando o teste leva mais do que o tempo limite padrão de 1 hora e coleta o despejo de memória quando o host de teste é encerrado inesperadamente. + (Os despejos de memória requerem configuração adicional, veja abaixo.) + teste dotnet --blame-hang --blame-crash +Exemplo: + Tempo limite da execução do teste quando um teste leva mais de 20 minutos e coleta despejo de travamento. + teste dotnet --blame-hang-timeout 20min Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. - Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. + Executar os testes no modo blame e habilitar a coleta de despejo de memória quando o teste exceder o tempo limite determinado. The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. - The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. + O tipo de despejo de memória a ser coletado. Os valores com suporte são full (padrão), mini e none. Quando “none” é usado, o host de teste é encerrado no tempo limite, mas nenhum despejo é coletado. Implica --blame-hang. @@ -238,67 +238,67 @@ Example: The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, For MSTest before 2.2.4, the timeout is used for all testcases. - Per-test timeout, after which hang dump is triggered and the testhost process is terminated. Default is 1h. -The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. -When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, -For MSTest before 2.2.4, the timeout is used for all testcases. + Tempo limite por teste, após o qual o despejo de travamento é disparado e o processo testhost é encerrado. O padrão é 1h. +O valor do tempo limite é especificado no seguinte formato: 1.5h / 90m / 5400s / 5400000ms. Quando nenhuma unidade é usada (por exemplo, 5400000), supõe-se que o valor esteja em milissegundos. +Quando usado junto com testes controlados por dados, o comportamento do tempo limite depende do adaptador de teste usado. Para xUnit, NUnit e MSTest 2.2.4+, o tempo limite é renovado após cada caso de teste, +Para MSTest antes de 2.2.4, o tempo limite é usado para todos os casos de teste. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + O caminho para o arquivo de configuração do NuGet a ser usado. Exige a opção '--outdated', '--deprecated' ou '--vulnerable'. Specifies a testconfig.json file. - Specifies a testconfig.json file. + Especifica um arquivo testconfig.json. FILE - FILE + FILE The NuGet configuration file to use. - The NuGet configuration file to use. + O arquivo de configuração do NuGet a ser usado. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE Use current runtime as the target runtime. - Use current runtime as the target runtime. + Usar o runtime atual como o runtime de destino. Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. - Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. + Lista os pacotes que foram preteridos. Não pode ser combinado com a opção '--vulnerable' nem com a opção '--outdated'. Output directory of the diagnostic logging. If not specified the file will be generated inside the default 'TestResults' directory. - Output directory of the diagnostic logging. -If not specified the file will be generated inside the default 'TestResults' directory. + Diretório de saída do registro em log de diagnóstico. +Se não for especificado, o arquivo será gerado dentro do diretório padrão "TestResults". DIAGNOSTIC_DIR - DIAGNOSTIC_DIR + DIAGNOSTIC_DIR Prevent restoring multiple projects in parallel. - Prevent restoring multiple projects in parallel. + Evite restaurar vários projetos em paralelo. @@ -312,88 +312,88 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Define o valor de uma variável de ambiente. +Cria a variável se ela não existir, substitui se existir. +Este argumento pode ser especificado várias vezes para fornecer múltiplas variáveis. -Examples: +Exemplos: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="valor com espaços" +-e VARIABLE="valor;separado por;ponto e vírgula" -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NAME="VALUE" EXPRESSION - EXPRESSION + EXPRESSION Path to the file-based program. - Path to the file-based program. + Caminho para o programa baseado em arquivo. Force all dependencies to be resolved even if the last restore was successful. This is equivalent to deleting project.assets.json. - Force all dependencies to be resolved even if the last restore was successful. -This is equivalent to deleting project.assets.json. + Force todas as dependências a serem resolvidas, mesmo que a última restauração tenha tido êxito. +Isso equivale a excluir o project.assets.json. Specifies the output format type for the list packages command. - Specifies the output format type for the list packages command. + Especifica o tipo de formato de saída para o comando list packages. Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. + Ao procurar pacotes mais novos, considerar apenas os pacotes com um número de versão principal correspondente. Requer a opção '--outdated'. Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. + Considerar apenas os pacotes com números de versão principal e secundária correspondentes ao procurar pacotes mais novos. Requer a opção '--outdated'. Treat package source failures as warnings. - Treat package source failures as warnings. + Tratar falhas de origem de pacote como avisos. Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. - Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. + Incluir os arquivos de origem e os PDBs. Os arquivos de origem vão para a pasta 'src' no pacote do nuget resultante. Include packages with symbols in addition to regular packages in output directory. - Include packages with symbols in addition to regular packages in output directory. + Inclua os pacotes com símbolos no diretório de saída, além dos pacotes regulares. List the discovered tests instead of running the tests. - List the discovered tests instead of running the tests. + Listar os testes detectados em vez de executar os testes. LOCK_FILE_PATH - LOCK_FILE_PATH + LOCK_FILE_PATH Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. - Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. + Local de saída, onde o arquivo de bloqueio projeto é gravado. Por padrão, isso é 'PROJECT_ROOT\packages.lock.json'. Don't allow updating project lock file. - Don't allow updating project lock file. + Não permitir atualizar o arquivo de bloqueio do projeto. @@ -402,223 +402,223 @@ This is equivalent to deleting project.assets.json. Log in trx format using a unique file name: --logger trx Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" See https://aka.ms/vstest-report for more information on logger arguments. - The logger to use for test results. - Examples: - Log in trx format using a unique file name: --logger trx - Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" - See https://aka.ms/vstest-report for more information on logger arguments. + O agente a ser usado para os resultados de teste. + Exemplos: + Registre em log no formato trx usando um nome de arquivo exclusivo: --logger trx + Registre em log no formato trx usando o nome de arquivo especificado: --logger "trx;LogFileName=<TestResults.trx>" + Confira https://aka.ms/vstest-report para obter mais informações sobre os argumentos do agente. LOGGER - LOGGER + LOGGER The max number of test modules that can run in parallel. - The max number of test modules that can run in parallel. + O número máximo de módulos de teste que podem ser executados em paralelo. Specifies the minimum number of tests that are expected to run. - Specifies the minimum number of tests that are expected to run. + Especifica o número mínimo de testes que devem ser executados. Disable ANSI output. - Disable ANSI output. + Desabilite a saída ANSI. Do not build the project before testing. Implies --no-restore. - Do not build the project before testing. Implies --no-restore. + Não compile o projeto antes de testar. Implica em --no-restore. Do not build the project before packing. Implies --no-restore. - Do not build the project before packing. Implies --no-restore. + Não compile o projeto antes de empacotar. Implica em --no-restore. Do not cache packages and http requests. - Do not cache packages and http requests. + Não armazenar pacotes e solicitações HTTP em cache. Do not restore project-to-project references and only restore the specified project. - Do not restore project-to-project references and only restore the specified project. + Não restaure referências de projeto para projeto e restaure somente o projeto especificado. Disable Http Caching for packages. - Disable Http Caching for packages. + Desabilitar Cache HTTP para pacotes. Disable progress reporting. - Disable progress reporting. + Desabilite o relatório de progresso. Do not restore before running the command. - Do not restore before running the command. + Não restaure antes de executar o comando. NUMBER - NUMBER + NUMBER Force conversion even if there are malformed directives. - Force conversion even if there are malformed directives. + Forçar conversão mesmo se houver diretivas malformadas. Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. - Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. + Lista os pacotes que têm versões mais recentes. Não pode ser combinado com a opção '--deprecated' nem com a opção '--vulnerable'. The output directory to place built artifacts in. - The output directory to place built artifacts in. + O diretório de saída no qual os artefatos do build serão colocados. Specifies the version of machine-readable output. Requires the '--format json' option. - Specifies the version of machine-readable output. Requires the '--format json' option. + Especifica a versão da saída legível pelo computador. Requer a opção '--format json'. PACKAGE_NAME - PACKAGE_NAME + PACKAGE_NAME PACKAGE_DIR - PACKAGE_DIR + PACKAGE_DIR The directory to restore packages to. - The directory to restore packages to. + O diretório no qual os pacotes serão restaurados. PACKAGES_DIR - PACKAGES_DIR + PACKAGES_DIR The directory to restore packages to. - The directory to restore packages to. + O diretório no qual os pacotes serão restaurados. LOG_FILE - LOG_FILE + LOG_FILE RESULTS_DIR - RESULTS_DIR + RESULTS_DIR Enable verbose logging to the specified file. - Enable verbose logging to the specified file. + Habilitar a criação de log detalhada no arquivo especificado. Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. - Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. + Ao procurar pacotes mais novos, considere pacotes com versões de pré-lançamento. Requer a opção '--outdated'. Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Define o caminho do arquivo de projeto a ser executado. Usar o caminho do arquivo de projeto ou o caminho do diretório que contém o arquivo de projeto. Se não for especificado, o padrão será o diretório atual. Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Define o caminho do arquivo de projeto ou de solução a ser testado. Usar o caminho do arquivo de projeto ou o caminho do diretório que contém o arquivo de projeto. Se não for especificado, o padrão será o diretório atual. PROJECT_OR_SOLUTION_PATH - PROJECT_OR_SOLUTION_PATH + CAMINHO_DO_PROJETO_OU_SOLUÇÃO Forces restore to reevaluate all dependencies even if a lock file already exists. - Forces restore to reevaluate all dependencies even if a lock file already exists. + Força a restauração para reavaliar todas as dependências, mesmo se já existir um arquivo de bloqueio. The directory where the test results will be placed. The specified directory will be created if it does not exist. - The directory where the test results will be placed. -The specified directory will be created if it does not exist. + O diretório no qual os resultados do teste serão colocados. +O diretório especificado será criado se ele ainda não existir. ROOT_PATH - ROOT_PATH + ROOT_PATH RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER The target runtime to restore packages for. - The target runtime to restore packages for. + O runtime de destino no qual os pacotes serão restaurados. Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. - Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. + Definir o sinalizador operacional no pacote. Para obter mais informações, confira https://aka.ms/nupkgservicing. The settings file to use when running tests. - The settings file to use when running tests. + O arquivo de configurações a ser usado ao executar os testes. SETTINGS_FILE - SETTINGS_FILE + SETTINGS_FILE Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. - Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. + Define o caminho do arquivo de solução a ser testado. Usar o caminho do arquivo de solução ou o caminho do diretório que contém o arquivo de solução. Se não for especificado, o padrão será o diretório atual. SOLUTION_PATH - SOLUTION_PATH + SOLUTION_PATH SOURCE - SOURCE + SOURCE The NuGet package source to use for the restore. - The NuGet package source to use for the restore. + A origem do pacote do NuGet a ser usada para a restauração. ADAPTER_PATH - ADAPTER_PATH + ADAPTER_PATH The path to the custom adapters to use for the test run. - The path to the custom adapters to use for the test run. + O caminho para os adaptadores personalizados a serem usados para a execução de teste. @@ -629,18 +629,18 @@ The specified directory will be created if it does not exist. Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" See https://aka.ms/vstest-filtering for more information on filtering support. - Run tests that match the given expression. - Examples: - Run tests with priority set to 1: --filter "Priority = 1" - Run a test with the specified full name: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" - Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" - See https://aka.ms/vstest-filtering for more information on filtering support. + Executar os testes que correspondem à expressão fornecida. + Exemplos: + Executar testes com a prioridade configurada para 1: --filter "Priority = 1" + Executar um teste com o nome completo especificado: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" + Executar testes que contêm o nome especificado: --filter "FullyQualifiedName~Namespace.Class" + Confira https://aka.ms/vstest-filtering para obter mais informações sobre o suporte para filtragem. EXPRESSION - EXPRESSION + EXPRESSION @@ -655,827 +655,827 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Define o valor de uma variável de ambiente. +Criará a variável quando ela não existir e a substituirá quando existir. +Isso forçará a execução dos testes em um processo isolado. +Esse argumento pode ser especificado várias vezes para fornecer várias variáveis. -Examples: +Exemplos: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="valor com espaços" +-e VARIABLE="valor;separado com;ponto e vírgula" -e VAR1=abc -e VAR2=def -e VAR3=ghi Run tests for the specified test modules. - Run tests for the specified test modules. + Execute testes para os módulos de teste especificados. The test modules have the specified root directory. - The test modules have the specified root directory. + Os módulos de teste têm o diretório raiz especificado. Verbosity of test output. - Verbosity of test output. + Detalhamento da saída do teste. Lists transitive and top-level packages. - Lists transitive and top-level packages. + Lista os pacotes de nível superior e transitivos. Test runner '{0}' is not supported. - Test runner '{0}' is not supported. + Não há suporte para o executor de teste "{0}". Enables project lock file to be generated and used with restore. - Enables project lock file to be generated and used with restore. + Permite que o arquivo de bloqueio do projeto seja gerado e usado com a restauração. VERSION - VERSION + VERSION The version of the package to add. - The version of the package to add. + A versão do pacote a ser adicionada. Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Definir o valor da propriedade $(VersionSuffix) a ser usado ao compilar o projeto. Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. - Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. + Lista os pacotes que têm vulnerabilidades conhecidas. Não pode ser combinado com a opção '--deprecated' nem com a opção '--outdated'. The SDK command to launch online help for. - The SDK command to launch online help for. + O comando do SDK para o qual a ajuda online será iniciada. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Permite que o comando seja interrompido e aguarde a ação ou entrada do usuário (por exemplo, para concluir a autenticação). The command name of the tool to run. - The command name of the tool to run. + O nome de comando da ferramenta a ser executada. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME The device identifier to use for running the application. - The device identifier to use for running the application. + O identificador de dispositivo a ser usado para executar o aplicativo. DEVICE - DEVICE + DISPOSITIVO The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). - The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). + O caminho para o aplicativo baseado em arquivo a ser executado (também pode ser passado como o primeiro argumento se não houver nenhum projeto no diretório atual). FILE_PATH - FILE_PATH + FILE_PATH The name of the launch profile (if any) to use when launching the application. - The name of the launch profile (if any) to use when launching the application. + O nome do perfil de inicialização (se houver) a ser usado ao iniciar o aplicativo. LAUNCH_PROFILE - LAUNCH_PROFILE + LAUNCH_PROFILE List available devices for running the application. - List available devices for running the application. + Listar os dispositivos disponíveis para executar o aplicativo. Do not build the project before running. Implies --no-restore. - Do not build the project before running. Implies --no-restore. + Não compile o projeto antes de executar. Implica em --no-restore. {Locked="--no-restore"} Skip up to date checks and always build the program before running. - Skip up to date checks and always build the program before running. + Ignore as verificações atualizadas e sempre compile o programa antes de executar. Do not use arguments specified in launch profile to run the application. - Do not use arguments specified in launch profile to run the application. + Não use argumentos especificados no perfil de inicialização para executar o aplicativo. Do not attempt to use launchSettings.json or [app].run.json to configure the application. - Do not attempt to use launchSettings.json or [app].run.json to configure the application. + Não tente usar launchSettings.json ou [app].run.json para configurar o aplicativo. {Locked="launchSettings.json"}{Locked=".run.json"} PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Permite a instalação de pacotes de pré-lançamento. Creates an alias for instantiate command with a certain set of arguments. - Creates an alias for instantiate command with a certain set of arguments. + Cria um alias para o comando instanciado com um determinado conjunto de argumentos. Displays defined aliases. - Displays defined aliases. + Exibe os aliases definidos. Creates or displays defined aliases. - Creates or displays defined aliases. + Cria ou exibe os aliases definidos. Provides the details for specified template package. The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. - - Provides the details for specified template package. - The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. + + Fornece os detalhes para o pacote de modelo especificado. + O comando verifica se o pacote está instalado localmente, caso não tenha sido encontrado, busca os feeds NuGet configurados. NuGet package ID or path to folder or NuGet package to install. To install the NuGet package of certain version, use <package ID>::<version>. - NuGet package ID or path to folder or NuGet package to install. -To install the NuGet package of certain version, use <package ID>::<version>. + ID do pacote NuGet ou caminho para a pasta ou pacote NuGet a ser instalado. +Para instalar o pacote NuGet de determinada versão, utilize <package ID>::<version>. Installs a template package. - Installs a template package. + Instala um pacote de modelos. A short name of the template to create. - A short name of the template to create. + Um nome curto do modelo a ser criado. Template specific options to use. - Template specific options to use. + Opções específicas do modelo a serem usados. Instantiates a template with given short name. An alias of 'dotnet new <template name>'. - Instantiates a template with given short name. An alias of 'dotnet new <template name>'. + Instancia um modelo com o nome abreviado fornecido. Um alias 'dotnet new <template name>'. do not translate 'dotnet new <template name>' Checks the currently installed template packages for updates. - Checks the currently installed template packages for updates. + Verifica se há atualizações para os pacotes de modelos instalados atualmente. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Se especificado, somente os modelos correspondentes ao nome serão mostrados. Lists templates containing the specified template name. If no name is specified, lists all templates. - Lists templates containing the specified template name. If no name is specified, lists all templates. + Lista os modelos que contêm o nome do modelo especificado. Se nenhum nome for especificado, lista todos os modelos. Template Instantiation Commands for .NET CLI. - Template Instantiation Commands for .NET CLI. + Comandos de Instanciação do Modelo da CLI para .NET. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Se especificado, somente os modelos correspondentes ao nome serão mostrados. Searches for the templates on NuGet.org. - Searches for the templates on NuGet.org. + Pesquisa os modelos em NuGet.org. NuGet package ID (without version) or path to folder to uninstall. If command is specified without the argument, it lists all the template packages installed. - NuGet package ID (without version) or path to folder to uninstall. -If command is specified without the argument, it lists all the template packages installed. + ID do pacote NuGet (sem versão) ou caminho para a pasta a ser desinstalada. +Se o comando for especificado sem o argumento, ele listará todos os pacotes de modelos instalados. Uninstalls a template package. - Uninstalls a template package. + Desinstala um pacote de modelos. Checks the currently installed template packages for update, and install the updates. - Checks the currently installed template packages for update, and install the updates. + Verifica os pacotes de modelos atualmente instalados para a atualização, e instala as atualizações. Only checks for updates and display the template packages to be updated without applying update. - Only checks for updates and display the template packages to be updated without applying update. + Somente verifica se há atualizações e exibe os pacotes de modelo a serem atualizados sem aplicar a atualização. Unrecognized command or argument(s): {0}. - Unrecognized command or argument(s): {0}. + Comando ou argumento(s) não reconhecido(s): {0}. {0} - wrong token or comma-separated tokens (if multiple). Each token is enclosed with single quotes: 'token'. FRAMEWORK - FRAMEWORK + ESTRUTURA ConfigFile - ConfigFile + ConfigFile The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior - The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior + O arquivo de configuração do NuGet. Se for especificado, somente as configurações desse arquivo serão usadas. Se não for especificado, a hierarquia de arquivos de configuração do diretório atual será usada. Para saber mais, acesse https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior CONFIGURATION - CONFIGURATION + CONFIGURATION DUMP_TYPE - DUMP_TYPE + DUMP_TYPE Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed - Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed + Crie um manifesto de ferramenta se nenhum for encontrado durante a instalação da ferramenta. Para obter informações sobre como os manifestos estão localizados, consulte https://aka.ms/dotnet/tools/create-manifest-if-needed Use current runtime as the target runtime. - Use current runtime as the target runtime. + Usar o runtime atual como o runtime de destino. Show detail result of the query. - Show detail result of the query. + Mostrar o resultado detalhado da consulta. Package identifier - Package identifier + Identificador do pacote Enables diagnostic output. - Enables diagnostic output. + Habilita a saída de diagnóstico. Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Force o comando a ignorar quaisquer servidores de compilação persistentes. Disables evaluating project context using MSBuild. - Disables evaluating project context using MSBuild. + Desabilita a avaliação do contexto do projeto usando o MSBuild. If present, prevents templates bundled in the SDK from being presented. - If present, prevents templates bundled in the SDK from being presented. + Se presente, impede que os modelos agrupados no SDK sejam apresentados. .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. + Comando de Teste .NET para Microsoft.Testing.Platform (aceito por meio do arquivo 'global.json'). Isso dá suporte apenas a Microsoft.Testing.Platform e não dá suporte a VSTest. Para obter mais informações, confira https://aka.ms/dotnet-test. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. + Comando de Teste .NET para VSTest. Para usar a Microsoft.Testing.Platform, faça a aceitação do comando baseado em Microsoft.Testing.Platform por meio do global.json. Para obter mais informações, confira https://aka.ms/dotnet-test. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} DIRECTORY - DIRECTORY + DIRETÓRIO Download packages needed to install a workload to a folder that can be used for offline installation. - Download packages needed to install a workload to a folder that can be used for offline installation. + Baixe os pacotes necessários para instalar uma carga de trabalho em uma pasta que pode ser usada para instalação offline. Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. - Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. + Requer que o termo de pesquisa corresponda exatamente ao nome do pacote. Faz com que as opções ''--take'' e ''--skip'' sejam ignoradas. The file-based app to operate on. - The file-based app to operate on. + O aplicativo baseado no arquivo a ser operado. Format - Format + Formato Format the output accordingly. Either `table`, or `json`. The default value is `table`. - Format the output accordingly. Either `table`, or `json`. The default value is `table`. + Formatar a saída adequadamente. ''table'' ou ''json''. O valor padrão é ''table''. Changes the format of outputted workload versions. Can take 'json' or 'list' - Changes the format of outputted workload versions. Can take 'json' or 'list' + Altera o formato das versões de carga de trabalho geradas. Pode usar 'json' ou 'list' FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Publique o seu aplicativo como um aplicativo dependente de estrutura. Um runtime do .NET compatível precisa ser instalado no computador de destino para executar o aplicativo. FRAMEWORK_VERSION - FRAMEWORK_VERSION + FRAMEWORK_VERSION The Microsoft.NETCore.App package version that will be used to run the assemblies. - The Microsoft.NETCore.App package version that will be used to run the assemblies. + A versão do pacote Microsoft.NETCore.App que será usada para executar os assemblies. DIRECTORY - DIRECTORY + DIRETÓRIO Complete the operation from cache (offline). - Complete the operation from cache (offline). + Concluir a operação do cache (offline). Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. - Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. + Atualizar cargas de trabalho para uma versão anterior especificada pelo argumento. Use o 'histórico de carga de trabalho dotnet' para ver os registros de histórico de carga de trabalho disponíveis. Include workloads installed with earlier SDK versions in update. - Include workloads installed with earlier SDK versions in update. + Inclua cargas de trabalho instaladas com versões anteriores do SDK na atualização. Update workloads based on specified rollback definition file. - Update workloads based on specified rollback definition file. + Atualizar cargas de trabalho com base no arquivo de definição de reversão especificado. DUMP_TYPE - DUMP_TYPE + DUMP_TYPE TIMESPAN - TIMESPAN + TIMESPAN .NET CLI help utility - .NET CLI help utility + Utilitário de ajuda da CLI do .NET Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. - Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. + Atualize para as versões de carga de trabalho especificadas no histórico sem alterar quais cargas de trabalho estão instaladas. As cargas de trabalho instaladas no momento serão atualizadas para corresponder à versão do histórico especificada. Place project in root of the solution, rather than creating a solution folder. - Place project in root of the solution, rather than creating a solution folder. + Coloque o projeto na raiz da solução, em vez de criar uma pasta da solução. Allow prerelease workload manifests. - Allow prerelease workload manifests. + Permitir manifestos de carga de trabalho de pré-lançamento. Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Variáveis de ambiente formatadas incorretamente: {0} WORKING_DIR - WORKING_DIR + WORKING_DIR The working directory used by the command to execute. - The working directory used by the command to execute. + O diretório de trabalho usado pelo comando para a execução. Invalid version string: {0} - Invalid version string: {0} + Cadeia de caracteres de versão inválida: {0} LEVEL - LEVEL + LEVEL List all projects in a solution file. - List all projects in a solution file. + Listar todos os projetos em um arquivo de solução. Disables checking if the template meets the constraints to be run. - Disables checking if the template meets the constraints to be run. + Desabilita a verificação se o modelo atende às restrições a serem executadas. Display solution folder paths. - Display solution folder paths. + Exibir caminhos de pasta da solução. Shut down the MSBuild build server. - Shut down the MSBuild build server. + Desligar o servidor de build do MSBuild. MANIFEST - MANIFEST + MANIFEST The path to a target manifest file that contains the list of packages to be excluded from the publish step. - The path to a target manifest file that contains the list of packages to be excluded from the publish step. + O caminho para um arquivo de manifesto de destino que contém a lista de pacotes a serem excluídos da etapa de publicação. Generate a .slnx file from a .sln file. - Generate a .slnx file from a .sln file. + Gere um arquivo .slnx de um arquivo .sln. .NET Add Command - .NET Add Command + Comando Add do .NET List references or packages of a .NET project. - List references or packages of a .NET project. + Listar referências ou pacotes de um projeto .NET. .NET Remove Command - .NET Remove Command + Comando Remover do .NET Do not build the project before publishing. Implies --no-restore. - Do not build the project before publishing. Implies --no-restore. + Não compile o projeto antes de publicar. Implica em --no-restore. Do not build project-to-project references and only build the specified project. - Do not build project-to-project references and only build the specified project. + Não criar referências de projeto para projeto e criar somente o projeto especificado. Do not use incremental building. - Do not use incremental building. + Não usar build incremental. Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Não exibe a faixa de inicialização ou a mensagem de direitos autorais. Do not restore the project before building. - Do not restore the project before building. + Não restaurar o projeto antes de compilar. OS - OS + SO Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). - Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). + A especificação da opção de manifesto da ferramenta (--tool-manifest) é válida somente com a opção local (--local ou o padrão). The target operating system. - The target operating system. + O sistema operacional de destino. Specifies a NuGet source to use. - Specifies a NuGet source to use. + Especifica uma fonte NuGet a ser usada. Filters the templates based on the template author. - Filters the templates based on the template author. + Filtra os modelos baseados no autor do modelo. Filters the templates based on baseline defined in the template. - Filters the templates based on baseline defined in the template. + Filtra os modelos com base na linha de base definida no modelo. Specifies the columns to display in the output. - Specifies the columns to display in the output. + Especifica as colunas a serem exibidas na saída. Displays all columns in the output. - Displays all columns in the output. + Exibe todas as colunas na saída. Allows to pause execution in order to attach to the process for debug purposes. - Allows to pause execution in order to attach to the process for debug purposes. + Permite pausar a execução a fim de anexar ao processo para fins de depuração. Sets custom settings location. - Sets custom settings location. + Define o local das configurações personalizadas. If specified, removes the template cache prior to command execution. - If specified, removes the template cache prior to command execution. + Se especificado, remove o cache do modelo antes da execução do comando. If specified, resets the settings prior to command execution. - If specified, resets the settings prior to command execution. + Se especificado, redefine as configurações antes da execução do comando. If specified, shows the template engine config prior to command execution. - If specified, shows the template engine config prior to command execution. + Se especificado, mostra a configuração do mecanismo de modelo antes da execução do comando. If specified, the settings will be not preserved on file system. - If specified, the settings will be not preserved on file system. + Se especificado, as configurações não serão preservadas no sistema de arquivos. Allows installing template packages from the specified sources even if they would override a template package from another source. - Allows installing template packages from the specified sources even if they would override a template package from another source. + Permite a instalação de pacotes de modelos a partir das fontes especificadas, mesmo que substituam um pacote de modelos a partir de outra fonte. Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Permite que o comando seja interrompido e aguarde a ação ou entrada do usuário (por exemplo, para concluir a autenticação). Filters templates based on language. - Filters templates based on language. + Filtra modelos com base no idioma. Location to place the generated output. - Location to place the generated output. + Local para colocar a saída gerada. Filters the templates based on NuGet package ID. - Filters the templates based on NuGet package ID. + Filtra os modelos com base na ID do pacote NuGet. The project that should be used for context evaluation. - The project that should be used for context evaluation. + O projeto que deve ser usado para avaliação de contexto. Filters the templates based on the tag. - Filters the templates based on the tag. + Filtra os modelos com base na marca. Filters templates based on available types. Predefined values are "project" and "item". - Filters templates based on available types. Predefined values are "project" and "item". + Filtra modelos com base em tipos disponíveis. Os valores predefinidos são "projeto" e "item". project and item should not be translated Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. - Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. + As opções '--outdated', '--deprecated' e '--vulnerable' não podem ser combinadas. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR .NET Core NuGet Package Packer - .NET Core NuGet Package Packer + Empacotador de Pacotes NuGet do .NET Core OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place built packages in. - The output directory to place built packages in. + O diretório de saída no qual os pacotes do build serão colocados. VERSION - VERSION + VERSÃO The version of the package to create - The version of the package to create + A versão do pacote a ser criado The configuration to use for building the package. The default is 'Release'. - The configuration to use for building the package. The default is 'Release'. + A configuração a ser usada para compilar o pacote. O padrão é 'Liberar'. Add a NuGet package reference to the project. - Add a NuGet package reference to the project. + Adicione uma referência do pacote do NuGet ao projeto. FRAMEWORK - FRAMEWORK + FRAMEWORK Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Adicionar a referência apenas ao direcionar a uma estrutura específica. Add the reference without performing restore preview and compatibility check. - Add the reference without performing restore preview and compatibility check. + Adicionar a referência sem executar a visualização da restauração e a verificação de compatibilidade. SOURCE - SOURCE + ORIGEM The NuGet package source to use during the restore. - The NuGet package source to use during the restore. + A origem do pacote do NuGet a ser usada durante a restauração. Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Referência de pacote na forma de um identificador de pacote como '{0}' ou identificador de pacote e versão separados por '@', como '{0}@{1}'. Package reference id and version must not be null. - Package reference id and version must not be null. + O ID e a versão da referência do pacote não podem ser nulos. List all package references of the project or solution. - List all package references of the project or solution. + Listar todas as referências de pacote do projeto ou da solução. FRAMEWORK | FRAMEWORK\RID - FRAMEWORK | FRAMEWORK\RID + FRAMEWORK | FRAMEWORK\RID Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. - Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. + Escolhe uma estrutura para mostrar seus pacotes. Use a opção várias vezes para várias estruturas. SOURCE - SOURCE + ORIGEM The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + As fontes do NuGet a serem usadas ao procurar pacotes mais recentes. Exige a opção '--outdated', '--deprecated' ou '--vulnerable'. Package reference - Package reference + Referência do pacote Remove a NuGet package reference from the project. - Remove a NuGet package reference from the project. + Remover uma referência do pacote do NuGet do projeto. The package reference to remove. - The package reference to remove. + A referência do pacote a ser removida. Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. - Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. + Pesquisa uma ou mais fontes de pacote em busca de pacotes que correspondam a um termo de pesquisa. Se nenhuma fonte for especificada, todas as fontes definidas no NuGet.Config serão usadas. Include prerelease packages. - Include prerelease packages. + Incluir pacotes de pré-lançamento. SearchTerm - SearchTerm + SearchTerm Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. - Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. + Termo de pesquisa para filtrar nomes, descrições e marcas do pacote. Usado como um valor literal. Exemplo: ''dotnet package search some.package''. Consulte também ''--exact-match''. Skip - Skip + Ignorar Number of results to skip, to allow pagination. Default 0. - Number of results to skip, to allow pagination. Default 0. + Número de resultados a serem ignorados, para permitir paginação. Padrão 0. Take - Take + Pegar Number of results to return. Default 20. - Number of results to return. Default 20. + O número de resultados a serem retornados. Padrão 20. Only print the list of links to download without downloading. - Only print the list of links to download without downloading. + Somente imprimir a lista de links para download sem baixá-la. @@ -1508,15 +1508,15 @@ If command is specified without the argument, it lists all the template packages dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 - 'dotnet workload search version' has three functions depending on its argument: - 1. If no argument is specified, it outputs a list of the latest released workload versions from this feature band. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + "dotnet workload search version" tem três funções dependendo de seu argumento: + 1. Se nenhum argumento for especificado, ele exibe uma lista das versões mais recentes das cargas de trabalho lançadas para esta faixa de recursos. Aceita a opção --take para especificar quantos fornecer e --format para alterar o formato. + Exemplo: dotnet workload search version --take 2 --format json [{"workloadVersion":"9.0.201"},{"workloadVersion":"9.0.200.1"}] - 2. If a workload version is provided as an argument, it outputs a table of various workloads and their versions for the specified workload version. Takes the --format option to alter the output format. - Example: + 2. Se uma versão de carga de trabalho for fornecida como argumento, ele exibe uma tabela com diversos cargas de trabalho e suas versões para a versão de carga de trabalho especificada. Aceita a opção --format para alterar o formato de saída. + Exemplo: dotnet workload search version 9.0.201 - Workload manifest ID Manifest feature band Manifest Version + ID do manifesto de carga de trabalho Faixa de recursos do manifesto Versão do manifesto ------------------------------------------------------------------------------------------------ microsoft.net.workload.emscripten.current 9.0.100-rc.1 9.0.0-rc.1.24430.3 microsoft.net.workload.emscripten.net6 9.0.100-rc.1 9.0.0-rc.1.24430.3 @@ -1532,8 +1532,8 @@ If command is specified without the argument, it lists all the template packages microsoft.net.workload.mono.toolchain.net6 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net7 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net8 9.0.100-rc.1 9.0.0-rc.1.24431.7 - 3. If one or more workloads are provided along with their versions (by joining them with the '@' character), it outputs workload versions that match the provided versions. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 3. Se um ou mais cargas de trabalho forem fornecidos juntamente com suas versões (unidos pelo caractere "@"), ele exibe as versões de cargas de trabalho que correspondem às versões fornecidas. Aceita a opção --take para especificar quantos fornecer e --format para alterar o formato. + Exemplo: dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 @@ -1541,775 +1541,775 @@ If command is specified without the argument, it lists all the template packages The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + O arquivo de projeto no qual operar. Se um arquivo não for especificado, o comando pesquisará um no diretório atual. Convert a file-based program to a project-based program. - Convert a file-based program to a project-based program. + Converta um programa baseado em arquivo em um programa baseado em projeto. Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Determina alterações sem modificar o sistema de arquivos PROJECT_MANIFEST - PROJECT_MANIFEST + PROJECT_MANIFEST The XML file that contains the list of packages to be stored. - The XML file that contains the list of packages to be stored. + O arquivo XML que contém a lista de pacotes a serem armazenados. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + O arquivo do projeto ou aplicativo baseado em arquivo C# a ser operado. Se um arquivo não for especificado, o comando pesquisará um arquivo de projeto no diretório atual. PROJECT | FILE - PROJECT | FILE + PROJETO | ARQUIVO Publisher for the .NET Platform - Publisher for the .NET Platform + Editor para a Plataforma .NET The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. - The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. + A configuração para a qual publicar. O padrão é 'Release' para projetos NET 8.0 e superiores, mas 'Debug' para projetos mais antigos. The target framework to publish for. The target framework has to be specified in the project file. - The target framework to publish for. The target framework has to be specified in the project file. + A estrutura de destino da publicação. A estrutura de destino precisa ser especificada no arquivo de projeto. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place the published artifacts in. - The output directory to place the published artifacts in. + O diretório de saída no qual os artefatos publicados serão colocados. The target runtime to publish for. This is used when creating a self-contained deployment. The default is to publish a framework-dependent application. - The target runtime to publish for. This is used when creating a self-contained deployment. -The default is to publish a framework-dependent application. + O runtime de destino a ser publicado. Isto é usado quando estiver criando um deployment auto-contido. +O padrão é publicar uma aplicação dependente de framework. Shut down the Razor build server. - Shut down the Razor build server. + Desligar o servidor de build do Razor. Add a project-to-project reference to the project. - Add a project-to-project reference to the project. + Adicione uma referência de projeto a projeto ao projeto. Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Adicionar a referência apenas ao direcionar a uma estrutura específica. The paths to the projects to add as references. - The paths to the projects to add as references. + Os caminhos para os projetos a serem adicionados como referências. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH List all project-to-project references of the project. - List all project-to-project references of the project. + Listar todas as referências de projeto a projeto do projeto. Remove a project-to-project reference from the project. - Remove a project-to-project reference from the project. + Remova uma referência de projeto a projeto do projeto. Remove the reference only when targeting a specific framework. - Remove the reference only when targeting a specific framework. + Remover a referência apenas ao direcionar a uma estrutura específica. The paths to the referenced projects to remove. - The paths to the referenced projects to remove. + Os caminhos para os projetos referenciados a serem removidos. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Remove one or more projects from a solution file. - Remove one or more projects from a solution file. + Remover um ou mais projetos de um arquivo de solução. The project paths or names to remove from the solution. - The project paths or names to remove from the solution. + Os caminhos ou nomes de projeto a serem removidos da solução. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Required command was not provided. - Required command was not provided. + O comando necessário não foi fornecido. .NET dependency restorer - .NET dependency restorer + Restaurador de dependência do .NET Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. - Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. + Permitir que uma ferramenta .NET seja revertida para versões mais recentes do runtime do .NET se o runtime ao qual ela se destina não estiver instalado. .NET Run Command - .NET Run Command + Comando Run do .NET The configuration to run for. The default for most projects is 'Debug'. - The configuration to run for. The default for most projects is 'Debug'. + A configuração para a qual a execução ocorrerá. O padrão para a maioria dos projetos é 'Debug'. The target framework to run for. The target framework must also be specified in the project file. - The target framework to run for. The target framework must also be specified in the project file. + A estrutura de destino para a qual a execução ocorrerá. A estrutura de destino também precisa ser especificada no arquivo de projeto. The target runtime to run for. - The target runtime to run for. + O runtime de destino a ser executado. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Habilitar saída de diagnóstico. Display the command schema as JSON. - Display the command schema as JSON. + Exibir o esquema do comando em JSON. .NET SDK Command - .NET SDK Command + Comando do SDK do .NET .NET SDK Check Command - .NET SDK Check Command + Comando de Verificação do SDK do .NET The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + As opções '--self-contained' e '--no-self-contained' não podem ser usadas juntas. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Publique o tempo de execução do .NET junto com sua aplicação para que o tempo de execução não precise ser instalado na máquina de destino. +O padrão é "false." No entanto, ao direcionar para .NET 7 ou inferior, o padrão é "true" se um identificador de tempo de execução for especificado. Skip updating the workload manifests. - Skip updating the workload manifests. + Ignorar a atualização dos manifestos de carga de trabalho. Skip the optimization phase. - Skip the optimization phase. + Ignorar a fase de otimização. Skip signature verification of workload packages and installers. - Skip signature verification of workload packages and installers. + Ignorar a verificação de assinatura de pacotes de carga de trabalho e instaladores. Skip creating symbol files which can be used for profiling the optimized assemblies. - Skip creating symbol files which can be used for profiling the optimized assemblies. + Ignorar a criação de arquivos de símbolo que podem ser usados para criar o perfil de assemblies otimizados. Recursively add projects' ReferencedProjects to solution - Recursively add projects' ReferencedProjects to solution + Adicionar recursivamente ReferencedProjects dos projetos à solução .NET modify solution file command - .NET modify solution file command + Comando para modificar o arquivo de solução do .NET The solution file to operate on. If not specified, the command will search the current directory for one. - The solution file to operate on. If not specified, the command will search the current directory for one. + O arquivo de solução no qual a operação ocorrerá. Se não for especificado, o comando pesquisará um arquivo de solução no diretório atual. SLN_FILE - SLN_FILE + SLN_FILE The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + O arquivo de solução ou projeto para operar. Se um arquivo não for especificado, o comando pesquisará um no diretório atual. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + O projeto, solução ou arquivo C# (programa baseado em arquivo) para operar. Se um arquivo não for especificado, o comando buscará na pasta atual por um projeto ou solução. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJETO | SOLUÇÃO | ARQUIVO Source - Source + Fonte The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. - The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. + A origem do pacote a ser pesquisada. Você pode passar várias opções de fonte para pesquisar várias fontes de pacote. Exemplo: '--source https://api.nuget.org/v3/index.json'. Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. - Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. + Armazena os assemblies especificados para a Plataforma .NET. Por padrão, serão otimizados para o runtime e a estrutura de destino. The target framework to store packages for. The target framework has to be specified in the project file. - The target framework to store packages for. The target framework has to be specified in the project file. + A estrutura de destino cujos pacotes serão armazenados. A estrutura de destino precisa ser especificada no arquivo de projeto. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to store the given assemblies in. - The output directory to store the given assemblies in. + O diretório de saída no qual os assemblies fornecidos serão armazenados. The target runtime to store packages for. - The target runtime to store packages for. + O runtime de destino no qual os pacotes serão armazenados. Specify a temporary directory for this command to download and extract NuGet packages (must be secure). - Specify a temporary directory for this command to download and extract NuGet packages (must be secure). + Especifique um diretório temporário para este comando baixar e extrair pacotes NuGet (deve ser seguro). Displays a summary of what would happen if the given command line were run if it would result in a template creation. - Displays a summary of what would happen if the given command line were run if it would result in a template creation. + Exibe um resumo do que aconteceria se a linha de comando especificada fosse executada se resultar em uma criação de modelo. Forces content to be generated even if it would change existing files. - Forces content to be generated even if it would change existing files. + Força o conteúdo a ser gerado mesmo que ele altere arquivos existentes. The name for the output being created. If no name is specified, the name of the output directory is used. - The name for the output being created. If no name is specified, the name of the output directory is used. + O nome da saída que está sendo criada. Se nenhum nome for especificado, o nome do diretório de saída será usado. Disables checking for the template package updates when instantiating a template. - Disables checking for the template package updates when instantiating a template. + Desativa a verificação de atualizações de pacote de modelo ao instanciar um modelo. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The configuration to use for running tests. The default for most projects is 'Debug'. - The configuration to use for running tests. The default for most projects is 'Debug'. + A configuração a ser usada para executar testes. O padrão para a maioria dos projetos é 'Debug'. The target framework to run tests for. The target framework must also be specified in the project file. - The target framework to run tests for. The target framework must also be specified in the project file. + A estrutura de destino para a qual a execução de testes ocorrerá. A estrutura de destino também precisa ser especificada no arquivo de projeto. The target runtime to test for. - The target runtime to test for. + O runtime escolhido para testar. Install or work with tools that extend the .NET experience. - Install or work with tools that extend the .NET experience. + Instale ou trabalhe com as ferramentas que ampliam a experiência do .NET. Executes a tool from source without permanently installing it. - Executes a tool from source without permanently installing it. + Executa uma ferramenta da origem sem instalá-la permanentemente. Add an additional NuGet package source to use during installation. - Add an additional NuGet package source to use during installation. + Adicionar uma origem adicional do pacote do NuGet a ser usada durante a instalação. ADDSOURCE - ADDSOURCE + ADDSOURCE Install global or local tool. Local tools are added to manifest and restored. - Install global or local tool. Local tools are added to manifest and restored. + Instale a ferramentas local ou global. Ferramentas locais são adicionadas ao manifesto e restauradas. The NuGet configuration file to use. - The NuGet configuration file to use. + O arquivo de configuração do NuGet a ser usado. FILE - FILE + ARQUIVO The target framework to install the tool for. - The target framework to install the tool for. + A estrutura de destino para a qual instalar a ferramenta. FRAMEWORK - FRAMEWORK + FRAMEWORK Install the tool for the current user. - Install the tool for the current user. + Instale a ferramenta para o usuário atual. Install the tool and add to the local tool manifest (default). - Install the tool and add to the local tool manifest (default). + Instale a ferramenta e adicione o manifesto de ferramenta local (padrão). Path to the manifest file. - Path to the manifest file. + Caminho para o arquivo de manifesto. PATH - PATH + CAMINHO Replace all NuGet package sources to use during installation with these. - Replace all NuGet package sources to use during installation with these. + Substitua todas as fontes de pacote NuGet a serem usadas durante a instalação por estas. SOURCE - SOURCE + ORIGEM The directory where the tool will be installed. The directory will be created if it does not exist. - The directory where the tool will be installed. The directory will be created if it does not exist. + O diretório no qual a ferramenta será instalada. O diretório será criado se ele ainda não existir. PATH - PATH + CAMINHO The version of the tool package to install. - The version of the tool package to install. + A versão do pacote da ferramenta a ser instalada. VERSION - VERSION + VERSÃO List tools installed globally or locally. - List tools installed globally or locally. + Ferramentas de lista instaladas de forma global ou local. The output format for the list of tools. - The output format for the list of tools. + O formato de saída da lista de ferramentas. List tools installed for the current user. - List tools installed for the current user. + Ferramentas de lista instaladas para o usuário atual. List the tools installed in the local tool manifest. - List the tools installed in the local tool manifest. + Liste as ferramentas instaladas no manifesto de ferramenta local. The NuGet Package Id of the tool to list - The NuGet Package Id of the tool to list + A ID do Pacote NuGet da ferramenta a ser listada PACKAGE_ID - PACKAGE_ID + PACKAGE_ID The directory containing the tools to list. - The directory containing the tools to list. + O diretório que contém as ferramentas a serem listadas. Restore tools defined in the local tool manifest. - Restore tools defined in the local tool manifest. + Restaure as ferramentas definidas no manifesto de ferramenta local. Path to the manifest file. - Path to the manifest file. + Caminho para o arquivo de manifesto. Arguments forwarded to the tool - Arguments forwarded to the tool + Argumentos encaminhados para a ferramenta Run a local tool. Note that this command cannot be used to run a global tool. - Run a local tool. Note that this command cannot be used to run a global tool. + Execute uma ferramenta local. Observe que este comando não pode ser usado para executar uma ferramenta global. Search dotnet tools in nuget.org - Search dotnet tools in nuget.org + Pesquisar as ferramentas do dotnet em nuget.org Include pre-release packages. - Include pre-release packages. + Inclua pacotes de pré-lançamento. SEARCH_TERM - SEARCH_TERM + SEARCH_TERM Search term from package id or package description. Require at least one character. - Search term from package id or package description. Require at least one character. + Termo de pesquisa da ID ou da descrição do pacote. Exige pelo menos um caractere. Skip - Skip + Ignorar The number of results to skip, for pagination. - The number of results to skip, for pagination. + O número de resultados a serem ignorados para paginação. Take - Take + Obter The number of results to return, for pagination. - The number of results to return, for pagination. + O número de resultados a serem retornados para paginação. Uninstall a global tool or local tool. - Uninstall a global tool or local tool. + Desinstale uma ferramenta global ou local. Uninstall the tool from the current user's tools directory. - Uninstall the tool from the current user's tools directory. + Desinstalar a ferramenta do diretório de ferramentas do usuário atual. Uninstall the tool and remove it from the local tool manifest. - Uninstall the tool and remove it from the local tool manifest. + Desinstale a ferramenta e a remova do manifesto de ferramenta local. Path to the manifest file. - Path to the manifest file. + Caminho para o arquivo de manifesto. The directory containing the tool to uninstall. - The directory containing the tool to uninstall. + O diretório que contém a ferramenta a ser desinstalada. Update a global or local tool. - Update a global or local tool. + Atualize uma ferramenta global ou local. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Comando ou argumento '{0}' não reconhecido Update all tools. - Update all tools. + Atualize todas as ferramentas. Controls whether updates should look for workload sets or the latest version of each individual manifest. - Controls whether updates should look for workload sets or the latest version of each individual manifest. + Controla se as atualizações devem procurar conjuntos de cargas de trabalho ou a versão mais recente de cada manifesto individual. Shut down the VB/C# compiler build server. - Shut down the VB/C# compiler build server. + Desligar o servidor de build do compilador VB/C#. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Não é possível especificar --version quando o argumento do pacote já contém uma versão. {Locked="--version"} Verbosity - Verbosity + Detalhamento Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` - Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` + Exiba essa quantidade de detalhes na saída: "normal", "mínimo", "detalhado". O padrão é ''normal'' Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Definir o nível de detalhamento do MSBuild. Os valores permitidos são q[uiet], m[inimal], n[ormal], d[etailed] e diag[nostic]. Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. - Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. + Define o nível de detalhamento. Os valores permitidos são q[uiet], m[inimal], n[ormal] e diag[nostic]. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX Removes workload components that may have been left behind from previous updates and uninstallations. - Removes workload components that may have been left behind from previous updates and uninstallations. + Remove componentes de carga de trabalho que podem ter sido deixados para trás em atualizações e desinstalações anteriores. Install or work with workloads that extend the .NET experience. - Install or work with workloads that extend the .NET experience. + Instalar ou trabalhar com as cargas de trabalho que estendem a experiência do .NET. Modify or display workload configuration values. To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" - Modify or display workload configuration values. -To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" + Modifique ou exiba valores de configuração de carga de trabalho. +Para exibir um valor, especifique a opção de linha de comando correspondente sem fornecer um valor. Por exemplo: "dotnet workload config --update-mode" Start the elevated server process to facilitate MSI based installations. - Start the elevated server process to facilitate MSI based installations. + Inicie o processo de servidor com privilégios elevados para facilitar instalações baseadas em MSI. Shows a history of workload installation actions. - Shows a history of workload installation actions. + Mostra um histórico de ações de instalação de carga de trabalho. The NuGet package ID of the workload to install. - The NuGet package ID of the workload to install. + A ID do pacote NuGet da carga de trabalho a ser instalada. WORKLOAD_ID - WORKLOAD_ID + WORKLOAD_ID The text to search for in the IDs and descriptions of available workloads. - The text to search for in the IDs and descriptions of available workloads. + O texto a ser pesquisado nas IDs e descrições das cargas de trabalho disponíveis. SEARCH_STRING - SEARCH_STRING + SEARCH_STRING Display information about installed workloads. - Display information about installed workloads. + Exiba informações sobre cargas de trabalho instaladas. Install one or more workloads. - Install one or more workloads. + Instale uma ou mais cargas de trabalho. The NuGet configuration file to use. - The NuGet configuration file to use. + O arquivo de configuração do NuGet a ser usado. FILE - FILE + ARQUIVO The NuGet package source to use during the restore. To specify multiple sources, repeat the option. - The NuGet package source to use during the restore. To specify multiple sources, repeat the option. + A origem do pacote NuGet a ser usada durante a restauração. Para especificar várias fontes, repita a opção. SOURCE - SOURCE + ORIGEM The version of the SDK. - The version of the SDK. + A versão do SDK. VERSION - VERSION + VERSÃO List workloads available. - List workloads available. + Listar as cargas de trabalho disponíveis. Repair workload installations. - Repair workload installations. + Repare as instalações de carga de trabalho. Restore workloads required for a project. - Restore workloads required for a project. + Restaurar as cargas de trabalho necessárias para um projeto. Search for available workloads. - Search for available workloads. + Pesquise cargas de trabalho disponíveis. A workload version to display or one or more workloads and their versions joined by the '@' character. - A workload version to display or one or more workloads and their versions joined by the '@' character. + Uma versão de carga de trabalho para exibir ou uma ou mais cargas de trabalho e suas versões unidas pelo caractere ''@''. Uninstall one or more workloads. - Uninstall one or more workloads. + Desinstale uma ou mais cargas de trabalho. Update all installed workloads. - Update all installed workloads. + Atualizar todas as cargas de trabalho instaladas. WORKLOAD_VERSION - WORKLOAD_VERSION + WORKLOAD_VERSION Output workload manifest versions associated with the provided workload version. - Output workload manifest versions associated with the provided workload version. + Versões de manifesto de carga de trabalho de saída associadas à versão de carga de trabalho fornecida. Display the currently installed workload version. - Display the currently installed workload version. + Exiba a versão da carga de trabalho atualmente instalada. Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Aceite todas as solicitações de confirmação usando "sim." The friendly name of the data collector to use for the test run. More info here: https://aka.ms/vstest-collect - The friendly name of the data collector to use for the test run. - More info here: https://aka.ms/vstest-collect + O nome amigável do coletor de dados a ser usado para a execução de teste. + Mais informações aqui: https://aka.ms/vstest-collect DATA_COLLECTOR_NAME - DATA_COLLECTOR_NAME + DATA_COLLECTOR_NAME diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.ru.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.ru.xlf index 540b6f25fb10..2cfc18095606 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.ru.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.ru.xlf @@ -4,162 +4,162 @@ Only update advertising manifests. - Only update advertising manifests. + Обновляются только манифесты рекламы. Add one or more projects to a solution file. - Add one or more projects to a solution file. + Добавление проектов в файл решения. The paths to the projects to add to the solution. - The paths to the projects to add to the solution. + Пути к проектам, которые необходимо добавить в решение. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH The destination solution folder path to add the projects to. - The destination solution folder path to add the projects to. + Путь к папке назначения решения, в которую будут добавлены проекты. Allow package downgrade when installing a .NET tool package. - Allow package downgrade when installing a .NET tool package. + Разрешить переход на использование более ранней версии пакета при установке пакета инструментов .NET. ARCH - ARCH + ARCH The target architecture. - The target architecture. + Целевая архитектура. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Путь к артефактам. Все выходные данные проекта, включая выходные данные сборки, публикации и упаковки, будут направляться во вложенные папки по указанному пути. .NET Builder - .NET Builder + Построитель .NET The configuration to use for building the project. The default for most projects is 'Debug'. - The configuration to use for building the project. The default for most projects is 'Debug'. + Конфигурация, используемая при сборке проекта. По умолчанию для большинства проектов используется "Debug". The target framework to build for. The target framework must also be specified in the project file. - The target framework to build for. The target framework must also be specified in the project file. + Целевая платформа для сборки. Целевая платформа также должна быть указана в файле проекта. The output directory to place built artifacts in. - The output directory to place built artifacts in. + Выходной каталог для размещения артефактов сборки. The target runtime to build for. - The target runtime to build for. + Целевая среда выполнения для сборки. Interact with servers started from a build. - Interact with servers started from a build. + Взаимодействие с серверами, запущенными в ходе сборки. Shuts down build servers that are started from dotnet. By default, all servers are shut down. - Shuts down build servers that are started from dotnet. By default, all servers are shut down. + Завершает работу серверов сборки, запущенных из среды dotnet. По умолчанию завершается работа всех серверов. Cannot specify both the {0} and {1} arguments. - Cannot specify both the {0} and {1} arguments. + Невозможно одновременно указать аргументы {0} и {1}. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Не удалось разрешить текущий идентификатор среды выполнения. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Указание параметров "-r|--runtime" и "-a|--arch" не поддерживается. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Указание параметров "-r|--runtime" и "-os" не поддерживается. Causes clean to remove and uninstall all workload components from all SDK versions. - Causes clean to remove and uninstall all workload components from all SDK versions. + Вызывает очистку с удалением всех компонентов рабочей нагрузки из всех версий пакета SDK. .NET Clean Command - .NET Clean Command + Команда .NET Clean OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The directory containing the build artifacts to clean. - The directory containing the build artifacts to clean. + Каталог, содержащий артефакты сборки, которые нужно очистить. The configuration to clean for. The default for most projects is 'Debug'. - The configuration to clean for. The default for most projects is 'Debug'. + Конфигурация для очистки. По умолчанию для большинства проектов используется "Debug". Removes artifacts created for file-based apps - Removes artifacts created for file-based apps + Удаляет артефакты, созданные для файловых приложений How many days an artifact folder needs to be unused in order to be removed - How many days an artifact folder needs to be unused in order to be removed + Сколько дней папка артефактов должна оставаться неиспользуемой для ее удаления Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Определяет изменения, не внося фактических изменений в файловую систему The target framework to clean for. The target framework must also be specified in the project file. - The target framework to clean for. The target framework must also be specified in the project file. + Целевая платформа для очистки. Целевая платформа также должна быть указана в файле проекта. The target runtime to clean for. - The target runtime to clean for. + Целевая среда выполнения для очистки. Enables collecting crash dump on expected as well as unexpected testhost exit. - Enables collecting crash dump on expected as well as unexpected testhost exit. + Включает сбор аварийного дампа при ожидаемом и неожиданном завершении работы узла тестирования. @@ -174,22 +174,22 @@ The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downlo To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. Implies --blame. - Runs the tests in blame mode and collects a crash dump when the test host exits unexpectedly. This option depends on the version of .NET used, the type of error, and the operating system. + Если узел тестирования неожиданно завершает работу, эта команда запускает тесты в режиме blame и собирает аварийный дамп. Эта опция зависит от используемой версии .NET, типа ошибки и операционной системы. -For exceptions in managed code, a dump will be automatically collected on .NET 5.0 and later versions. It will generate a dump for testhost or any child process that also ran on .NET 5.0 and crashed. Crashes in native code will not generate a dump. This option works on Windows, macOS, and Linux. +Для исключений в управляемом коде в .NET начиная с версии 5.0 дамп будет собираться автоматически. Будет создан дамп для testhost или любого дочернего процесса, который также был запущен на .NET 5.0 и завершился аварийно. При сбое в собственном программном коде дамп не генерируется. Эта опция работает в Windows, macOS и Linux. -Crash dumps in native code, or when targetting .NET Framework, or .NET Core 3.1 and earlier versions, can only be collected on Windows, by using Procdump. A directory that contains procdump.exe and procdump64.exe must be in the PATH or PROCDUMP_PATH environment variable. +Дампы аварийного завершения в собственном программном коде или для целевых платформ .NET Framework и .NET Core версии 3.1 и ранее можно собирать только в Windows с помощью Procdump. Каталог, содержащий procdump.exe и procdump64.exe, должен быть указан в одной из двух переменных среды: PATH или PROCDUMP_PATH. -The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downloads/procdump +Инструменты можно скачать здесь: https://docs.microsoft.com/sysinternals/downloads/procdump -To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. +Для сбора аварийного дампа из собственного приложения, выполняющегося на .NET 5.0 или более поздней версии, можно обеспечить принудительное использование Procdump, задав значение 1 для переменной среды VSTEST_DUMP_FORCEPROCDUMP. -Implies --blame. +Подразумевается использование параметра --blame. The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. - The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. + Тип собираемого аварийного дампа. Поддерживаемые значения: "full" (по умолчанию) и "mini". Подразумевается использование параметра --blame-crash. @@ -207,30 +207,30 @@ Example: Timeout the test run when a test takes more than 20 minutes and collect hang dump. dotnet test --blame-hang-timeout 20min - Runs the tests in blame mode. This option is helpful in isolating problematic tests that cause the test host to crash or hang, but it does not create a memory dump by default. + Запускает тесты в режиме blame. Эту опцию удобно использовать для изоляции проблемных тестов, которые приводят к сбою или зависанию узла тестирования, но при этом по умолчанию не создается дамп памяти. -When a crash is detected, it creates an sequence file in TestResults/guid/guid_Sequence.xml that captures the order of tests that were run before the crash. +При обнаружении аварийного завершения создается файл последовательности TestResults/guid/guid_Sequence.xml, фиксирующий порядок тестов, выполнявшихся перед аварийным завершением. -Based on the additional settings, hang dump or crash dump can also be collected. +На основе дополнительных настроек можно также выполнить сбор дампа зависания или аварийного дампа. -Example: - Timeout the test run when test takes more than the default timeout of 1 hour, and collect crash dump when the test host exits unexpectedly. - (Crash dumps require additional setup, see below.) +Пример: + Прервать выполнение теста из-за истечения времени ожидания, если время выполнения теста превысит время ожидания по умолчанию, равное 1 часу, и собрать аварийный дамп при неожиданном завершении работы узла тестирования. + (Для сбора аварийного дампа необходима дополнительная настройка, см. ниже.) dotnet test --blame-hang --blame-crash -Example: - Timeout the test run when a test takes more than 20 minutes and collect hang dump. +Пример: + Прервать выполнение теста из-за истечения времени ожидания, когда время выполнения теста превышает 20 минут, и собрать дамп зависания. dotnet test --blame-hang-timeout 20min Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. - Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. + При превышении заданного времени ожидания для теста запустите тесты в режиме blame и включите сбор дампа зависания. The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. - The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. + Тип собираемого аварийного дампа. Поддерживаемые значения: "full" (по умолчанию), "mini" и "none". Если задано значение "none", то узел тестирования завершает работу после истечения времени ожидания, но сбор дампа не выполняется. Подразумевается использование параметра --blame-hang. @@ -238,67 +238,67 @@ Example: The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, For MSTest before 2.2.4, the timeout is used for all testcases. - Per-test timeout, after which hang dump is triggered and the testhost process is terminated. Default is 1h. -The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. -When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, -For MSTest before 2.2.4, the timeout is used for all testcases. + Время ожидания каждого теста, по истечении которого инициируется сбор дампа зависания и завершается процесс узла тестирования. Значение по умолчанию: 1 час. +Значение времени ожидания указывается в следующем формате: 1.5h / 90m / 5400s / 5400000ms. Если единица измерения не указана (например, 5400000), предполагается, что время задано в миллисекундах. +При использовании вместе с тестами под управлением данных время ожидания зависит от используемого адаптера теста. Для xUnit, NUnit и MSTest начиная с версии 2.2.4 отсчет времени ожидания начинается заново для каждого тестового случая, +В MSTest версии ниже 2.2.4 время ожидания подсчитывается суммарно для всех тестовых случаев. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + Путь к используемому файлу конфигурации NuGet. Требуется указать параметр "--outdated", "--deprecated" или "--vulnerable". Specifies a testconfig.json file. - Specifies a testconfig.json file. + Указывает файл testconfig.json. FILE - FILE + FILE The NuGet configuration file to use. - The NuGet configuration file to use. + Используемый файл конфигурации NuGet. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE Use current runtime as the target runtime. - Use current runtime as the target runtime. + Использовать текущую среду выполнения в качестве целевой среды выполнения. Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. - Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. + Возвращает список устаревших пакетов. Не может использоваться с параметрами "--vulnerable" или "--outdated". Output directory of the diagnostic logging. If not specified the file will be generated inside the default 'TestResults' directory. - Output directory of the diagnostic logging. -If not specified the file will be generated inside the default 'TestResults' directory. + Каталог выдачи журнала диагностики. +Если не указано иное, файл будет создан в каталоге по умолчанию "TestResults". DIAGNOSTIC_DIR - DIAGNOSTIC_DIR + DIAGNOSTIC_DIR Prevent restoring multiple projects in parallel. - Prevent restoring multiple projects in parallel. + Блокировка параллельного восстановления множества проектов. @@ -312,88 +312,88 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Устанавливает значение переменной среды. +Если переменной среды не существует, она создается, если существует — переопределяется. +Этот аргумент можно указать несколько раз для указания нескольких переменных. -Examples: +Примеры: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="значение с пробелами" +-e VARIABLE="значение;разделенное;точками;с;запятыми" -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NAME="VALUE" EXPRESSION - EXPRESSION + EXPRESSION Path to the file-based program. - Path to the file-based program. + Путь к программе на основе файла. Force all dependencies to be resolved even if the last restore was successful. This is equivalent to deleting project.assets.json. - Force all dependencies to be resolved even if the last restore was successful. -This is equivalent to deleting project.assets.json. + Принудительное разрешение всех зависимостей даже в случае успеха последнего восстановления. +Эквивалентно удалению файла project.assets.json. Specifies the output format type for the list packages command. - Specifies the output format type for the list packages command. + Указывает тип формата вывода для команды перечисления пакетов. Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. + Учитывает только пакеты с соответствующим номером основной версии при поиске более новых версий пакетов. Требуется указать параметр '--outdated'. Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. + Учитывать только пакеты с соответствующими номерами основной и дополнительной версий при поиске более новых версий пакетов. Требуется указать параметр "--outdated". Treat package source failures as warnings. - Treat package source failures as warnings. + Обрабатывать сбои источников пакетов как предупреждения. Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. - Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. + Включение PDB-файлов и исходных файлов. Исходные файлы помещаются в папку "src" в итоговом пакете NuGet. Include packages with symbols in addition to regular packages in output directory. - Include packages with symbols in addition to regular packages in output directory. + Включение пакетов с символами в дополнение к обычным пакетам в выходном каталоге. List the discovered tests instead of running the tests. - List the discovered tests instead of running the tests. + Вывод списка обнаруженных тестов вместо выполнения тестов. LOCK_FILE_PATH - LOCK_FILE_PATH + LOCK_FILE_PATH Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. - Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. + Выходное расположение, в которое записывается файл блокировки проекта. По умолчанию это "PROJECT_ROOT\packages.lock.json". Don't allow updating project lock file. - Don't allow updating project lock file. + Не разрешать обновление файла блокировки проекта. @@ -402,223 +402,223 @@ This is equivalent to deleting project.assets.json. Log in trx format using a unique file name: --logger trx Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" See https://aka.ms/vstest-report for more information on logger arguments. - The logger to use for test results. - Examples: - Log in trx format using a unique file name: --logger trx - Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" - See https://aka.ms/vstest-report for more information on logger arguments. + Средство ведения журнала для результатов теста. + Примеры: + Журнал в формате TRX с использованием уникального имени файла: --logger trx + Журнал в формате TRX с использованием заданного имени файла: --logger "trx;LogFileName=<TestResults.trx>" + Дополнительные сведения об аргументах средства ведения журнала см. в https://aka.ms/vstest-report. LOGGER - LOGGER + LOGGER The max number of test modules that can run in parallel. - The max number of test modules that can run in parallel. + Максимальное число тестовых модулей, которые могут выполняться параллельно. Specifies the minimum number of tests that are expected to run. - Specifies the minimum number of tests that are expected to run. + Указывает минимальное число тестов, которые должны быть запущены. Disable ANSI output. - Disable ANSI output. + Отключить вывод ANSI. Do not build the project before testing. Implies --no-restore. - Do not build the project before testing. Implies --no-restore. + Сборка проекта перед тестированием не выполняется. Подразумевает --no-restore. Do not build the project before packing. Implies --no-restore. - Do not build the project before packing. Implies --no-restore. + Сборка проекта перед упаковкой не выполняется. Подразумевает --no-restore. Do not cache packages and http requests. - Do not cache packages and http requests. + Не кэшировать пакеты и HTTP-запросы. Do not restore project-to-project references and only restore the specified project. - Do not restore project-to-project references and only restore the specified project. + Не восстанавливать ссылки между проектами и восстановить только указанный проект. Disable Http Caching for packages. - Disable Http Caching for packages. + Отключить кэширование HTTP для пакетов. Disable progress reporting. - Disable progress reporting. + Отключить отчеты о ходе выполнения. Do not restore before running the command. - Do not restore before running the command. + Не восстанавливать перед выполнением команды. NUMBER - NUMBER + NUMBER Force conversion even if there are malformed directives. - Force conversion even if there are malformed directives. + Принудительно выполнять преобразование, даже если имеются неправильно сформированные директивы. Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. - Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. + Возвращает список пакетов, у которых есть более новые версии. Не может использоваться с параметрами "--deprecated" или "--vulnerable". The output directory to place built artifacts in. - The output directory to place built artifacts in. + Выходной каталог для размещения артефактов сборки. Specifies the version of machine-readable output. Requires the '--format json' option. - Specifies the version of machine-readable output. Requires the '--format json' option. + Указывает версию машиночитаемых выходных данных. Требуется параметр "--format json". PACKAGE_NAME - PACKAGE_NAME + PACKAGE_NAME PACKAGE_DIR - PACKAGE_DIR + PACKAGE_DIR The directory to restore packages to. - The directory to restore packages to. + Каталог, в который будут восстановлены пакеты. PACKAGES_DIR - PACKAGES_DIR + PACKAGES_DIR The directory to restore packages to. - The directory to restore packages to. + Каталог, в который будут восстановлены пакеты. LOG_FILE - LOG_FILE + LOG_FILE RESULTS_DIR - RESULTS_DIR + RESULTS_DIR Enable verbose logging to the specified file. - Enable verbose logging to the specified file. + Включить подробное ведение журнала в указанном файле. Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. - Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. + Учитывает пакеты с версиями предварительных выпусков при поиске более новых версий пакетов. Требуется указать параметр '--outdated'. Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Определяет путь к файлу проекта для запуска. Используйте путь к файлу проекта или каталогу, содержащему файл проекта. Если не указано, по умолчанию используется текущий каталог. Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Определяет путь к файлу проекта или решения для тестирования. Используйте путь к файлу проекта или каталогу, содержащему файл проекта. Если не указано, по умолчанию используется текущий каталог. PROJECT_OR_SOLUTION_PATH - PROJECT_OR_SOLUTION_PATH + PROJECT_OR_SOLUTION_PATH Forces restore to reevaluate all dependencies even if a lock file already exists. - Forces restore to reevaluate all dependencies even if a lock file already exists. + Принудительно применяет восстановление, чтобы повторно рассчитать все зависимости, если файл блокировки уже существует. The directory where the test results will be placed. The specified directory will be created if it does not exist. - The directory where the test results will be placed. -The specified directory will be created if it does not exist. + Каталог, в котором будут размещены результаты тестов. +Если указанного каталога не существует, он будет создан. ROOT_PATH - ROOT_PATH + ROOT_PATH RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER The target runtime to restore packages for. - The target runtime to restore packages for. + Целевая среда выполнения для восстановления пакетов. Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. - Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. + Задание для пакета флага "подлежит обслуживанию". Дополнительные сведения: https://aka.ms/nupkgservicing. The settings file to use when running tests. - The settings file to use when running tests. + Файл параметров, используемый при выполнении тестов. SETTINGS_FILE - SETTINGS_FILE + SETTINGS_FILE Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. - Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. + Определяет путь к файлу решения для тестирования. Используйте путь к файлу решения или каталогу, содержащему файл решения. Если не указано, по умолчанию используется текущий каталог. SOLUTION_PATH - SOLUTION_PATH + SOLUTION_PATH SOURCE - SOURCE + SOURCE The NuGet package source to use for the restore. - The NuGet package source to use for the restore. + Источник пакетов NuGet, используемый для восстановления. ADAPTER_PATH - ADAPTER_PATH + ADAPTER_PATH The path to the custom adapters to use for the test run. - The path to the custom adapters to use for the test run. + Путь к пользовательским адаптерам, используемым для выполнения тестов. @@ -629,18 +629,18 @@ The specified directory will be created if it does not exist. Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" See https://aka.ms/vstest-filtering for more information on filtering support. - Run tests that match the given expression. - Examples: - Run tests with priority set to 1: --filter "Priority = 1" - Run a test with the specified full name: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" - Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" - See https://aka.ms/vstest-filtering for more information on filtering support. + Запускает тесты, соответствующие данному выражению. + Примеры: + Запускает тесты с приоритетом 1: --filter "Priority = 1" + Запускает тест с указанным полным именем: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" + Запускает тесты, содержащие указанное имя: --filter "FullyQualifiedName~Namespace.Class" + Подробнее о поддержке фильтрации см. https://aka.ms/vstest-filtering. EXPRESSION - EXPRESSION + EXPRESSION @@ -655,827 +655,827 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Устанавливает значение переменной среды. +Если переменной среды не существует, она создается. Если переменная среды существует, она переопределяется. +Этот аргумент подразумевает принудительное выполнение тестов в изолированном процессе. +Этот аргумент может быть указан несколько раз для нескольких переменных среды. -Examples: +Примеры: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="значение с пробелами" +-e VARIABLE="значение;разделенное;точками;с;запятыми" -e VAR1=abc -e VAR2=def -e VAR3=ghi Run tests for the specified test modules. - Run tests for the specified test modules. + Запускает тесты для указанных модулей. The test modules have the specified root directory. - The test modules have the specified root directory. + Модули тестирования имеют указанный корневой каталог. Verbosity of test output. - Verbosity of test output. + Уровень детализации вывода тестов. Lists transitive and top-level packages. - Lists transitive and top-level packages. + Список транзитивных пакетов и пакетов верхнего уровня. Test runner '{0}' is not supported. - Test runner '{0}' is not supported. + Средство тестирования "{0}" не поддерживается. Enables project lock file to be generated and used with restore. - Enables project lock file to be generated and used with restore. + Включает создание файла блокировки проекта и использование этого файла при восстановлении. VERSION - VERSION + VERSION The version of the package to add. - The version of the package to add. + Версия добавляемого пакета. Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Установка значения свойства $(VersionSuffix), используемого для сборки проекта. Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. - Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. + Возвращает список пакетов, у которых есть известные уязвимости. Не может использоваться с параметрами "--deprecated" или "--outdated". The SDK command to launch online help for. - The SDK command to launch online help for. + Команда пакета SDK, по которой нужно запустить интернет-справку. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Позволяет остановить команду и ожидать ввода или действия пользователя (например, для проверки подлинности). The command name of the tool to run. - The command name of the tool to run. + Имя выполняемой команды в средстве. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME The device identifier to use for running the application. - The device identifier to use for running the application. + Идентификатор устройства, на котором следует запустить приложение. DEVICE - DEVICE + УСТРОЙСТВО The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). - The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). + Путь к приложению на основе файлов для запуска (можно также передать в качестве первого аргумента, если в текущем каталоге нет проекта). FILE_PATH - FILE_PATH + FILE_PATH The name of the launch profile (if any) to use when launching the application. - The name of the launch profile (if any) to use when launching the application. + Имя профиля запуска (если он есть), используемое при запуске приложения. LAUNCH_PROFILE - LAUNCH_PROFILE + LAUNCH_PROFILE List available devices for running the application. - List available devices for running the application. + Вывести список доступных устройств для запуска приложения. Do not build the project before running. Implies --no-restore. - Do not build the project before running. Implies --no-restore. + Сборка проекта перед запуском не выполняется. Подразумевает --no-restore. {Locked="--no-restore"} Skip up to date checks and always build the program before running. - Skip up to date checks and always build the program before running. + Пропускать проверки на наличие последней версии и всегда выполнять сборку программы перед запуском. Do not use arguments specified in launch profile to run the application. - Do not use arguments specified in launch profile to run the application. + Не использовать аргументы, указанные в профиле запуска, для запуска приложения. Do not attempt to use launchSettings.json or [app].run.json to configure the application. - Do not attempt to use launchSettings.json or [app].run.json to configure the application. + Не используйте launchSettings.json или [app].run.json для настройки приложения. {Locked="launchSettings.json"}{Locked=".run.json"} PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Разрешает установку пакетов предварительного выпуска. Creates an alias for instantiate command with a certain set of arguments. - Creates an alias for instantiate command with a certain set of arguments. + Создает псевдоним для команды создания экземпляра с определенным набором аргументов. Displays defined aliases. - Displays defined aliases. + Отображает определенные псевдонимы. Creates or displays defined aliases. - Creates or displays defined aliases. + Создает или отображает определенные псевдонимы. Provides the details for specified template package. The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. - - Provides the details for specified template package. - The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. + + Предоставляет сведения для указанного пакета шаблона. + Команда проверяет, установлен ли пакет локально, если он не найден, выполняется поиск в настроенных каналах NuGet. NuGet package ID or path to folder or NuGet package to install. To install the NuGet package of certain version, use <package ID>::<version>. - NuGet package ID or path to folder or NuGet package to install. -To install the NuGet package of certain version, use <package ID>::<version>. + Идентификатор пакета NuGet или путь к папке или пакету NuGet для установки. +Чтобы установить пакет NuGet определенной версии, используйте команду <package ID>::<version>. Installs a template package. - Installs a template package. + Устанавливает пакет шаблона. A short name of the template to create. - A short name of the template to create. + Краткое имя создаваемого шаблона. Template specific options to use. - Template specific options to use. + Используемые параметры шаблона. Instantiates a template with given short name. An alias of 'dotnet new <template name>'. - Instantiates a template with given short name. An alias of 'dotnet new <template name>'. + Создание экземпляра шаблона с заданным коротким именем. Псевдоним 'dotnet new <template name>'. do not translate 'dotnet new <template name>' Checks the currently installed template packages for updates. - Checks the currently installed template packages for updates. + Проверьте наличие обновлений для установленных пакетов шаблонов. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Если указано, будут показаны только шаблоны, совпадающие с этим именем. Lists templates containing the specified template name. If no name is specified, lists all templates. - Lists templates containing the specified template name. If no name is specified, lists all templates. + Списки шаблонов, содержащих указанное имя шаблона. Если имя не указано, перечисляются все шаблоны. Template Instantiation Commands for .NET CLI. - Template Instantiation Commands for .NET CLI. + Команды по созданию экземпляров шаблонов для CLI .NET/ If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Если указано, будут показаны только шаблоны, совпадающие с этим именем. Searches for the templates on NuGet.org. - Searches for the templates on NuGet.org. + Поиск шаблонов на NuGet.org. NuGet package ID (without version) or path to folder to uninstall. If command is specified without the argument, it lists all the template packages installed. - NuGet package ID (without version) or path to folder to uninstall. -If command is specified without the argument, it lists all the template packages installed. + Идентификатор пакета NuGet (без версии) или путь к папке для удаления. +Если эта команда указана без аргумента, она выдаст список всех установленных пакетов шаблонов. Uninstalls a template package. - Uninstalls a template package. + Удаляет пакет шаблона. Checks the currently installed template packages for update, and install the updates. - Checks the currently installed template packages for update, and install the updates. + Проверяет наличие обновлений для установленных пакетов шаблонов и устанавливает обновления. Only checks for updates and display the template packages to be updated without applying update. - Only checks for updates and display the template packages to be updated without applying update. + Только проверяет наличие обновлений и отображает пакеты шаблонов, подлежащие обновлению, без применения обновления. Unrecognized command or argument(s): {0}. - Unrecognized command or argument(s): {0}. + Команда или аргументы не распознаны: {0}. {0} - wrong token or comma-separated tokens (if multiple). Each token is enclosed with single quotes: 'token'. FRAMEWORK - FRAMEWORK + FRAMEWORK ConfigFile - ConfigFile + ConfigFile The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior - The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior + Файл конфигурации NuGet. Если указан, будут использоваться только параметры из этого файла. Если не указан, будет использоваться иерархия файлов конфигурации из текущего каталога. Дополнительные сведения см. на странице https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior CONFIGURATION - CONFIGURATION + CONFIGURATION DUMP_TYPE - DUMP_TYPE + DUMP_TYPE Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed - Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed + Создайте манифест инструмента, если он не найден во время установки инструмента. Сведения о способе размещения манифестов см. на странице https://aka.ms/dotnet/tools/create-manifest-if-needed Use current runtime as the target runtime. - Use current runtime as the target runtime. + Использовать текущую среду выполнения в качестве целевой среды выполнения. Show detail result of the query. - Show detail result of the query. + Отображение подробных сведений о результате запроса. Package identifier - Package identifier + Идентификатор пакета Enables diagnostic output. - Enables diagnostic output. + Включает диагностические выходные данные. Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Принудительно игнорировать все постоянные серверы сборки. Disables evaluating project context using MSBuild. - Disables evaluating project context using MSBuild. + Отключает оценку контекста проекта с помощью MSBuild. If present, prevents templates bundled in the SDK from being presented. - If present, prevents templates bundled in the SDK from being presented. + При наличии этого параметра шаблоны, входящие в пакет SDK, не будут представлены. .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. + Тестовая команда .NET для Microsoft.Testing.Platform (предоставлено согласие с помощью файла global.json). Поддерживается только Microsoft.Testing.Platform, VSTest не поддерживается. Дополнительные сведения см. на странице https://aka.ms/dotnet-test. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. + Тестовая команда .NET для VSTest. Чтобы использовать Microsoft.Testing.Platform, согласитесь на использование команды на основе Microsoft.Testing.Platform посредством global.json. Дополнительные сведения см. на странице https://aka.ms/dotnet-test. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} DIRECTORY - DIRECTORY + КАТАЛОГ Download packages needed to install a workload to a folder that can be used for offline installation. - Download packages needed to install a workload to a folder that can be used for offline installation. + Скачайте пакеты, необходимые для установки рабочей нагрузки в папку, которую можно использовать для автономной установки. Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. - Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. + Запросить, чтобы поисковый запрос точно соответствовал названию пакета. Приводит к игнорированию опций `--take` и `--skip`. The file-based app to operate on. - The file-based app to operate on. + Приложение на основе файла для работы. Format - Format + Формат Format the output accordingly. Either `table`, or `json`. The default value is `table`. - Format the output accordingly. Either `table`, or `json`. The default value is `table`. + Отформатируйте вывод соответствующим образом. Либо `table`, либо `json`. Значение по умолчанию — `table`. Changes the format of outputted workload versions. Can take 'json' or 'list' - Changes the format of outputted workload versions. Can take 'json' or 'list' + Изменяет формат выводимых версий рабочей нагрузки. Может принимать значения "json" или "list" FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Опубликуйте приложение как зависимое от платформы. Для запуска приложения на целевом компьютере должна быть установлена совместимая среда выполнения .NET. FRAMEWORK_VERSION - FRAMEWORK_VERSION + FRAMEWORK_VERSION The Microsoft.NETCore.App package version that will be used to run the assemblies. - The Microsoft.NETCore.App package version that will be used to run the assemblies. + Версия пакета Microsoft.NETCore.App, которая будет использоваться для выполнения сборок. DIRECTORY - DIRECTORY + КАТАЛОГ Complete the operation from cache (offline). - Complete the operation from cache (offline). + Завершение операции из кэша (вне сети). Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. - Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. + Обновление рабочих нагрузок до предыдущей версии, указанной в аргументе. Используйте "журнал рабочей нагрузки dotnet" для просмотра доступных записей журнала рабочей нагрузки. Include workloads installed with earlier SDK versions in update. - Include workloads installed with earlier SDK versions in update. + Включить в обновление рабочие нагрузки, установленные с более ранними версиями пакета SDK. Update workloads based on specified rollback definition file. - Update workloads based on specified rollback definition file. + Обновление рабочих нагрузок на основе указанного файла определения отката. DUMP_TYPE - DUMP_TYPE + DUMP_TYPE TIMESPAN - TIMESPAN + TIMESPAN .NET CLI help utility - .NET CLI help utility + Вспомогательная программа .NET CLI Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. - Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. + Обновление до версий рабочих нагрузок, указанных в журнале, без изменения установленных рабочих нагрузок. Установленные сейчас рабочие нагрузки будут приведены в соответствие с указанной версией журнала. Place project in root of the solution, rather than creating a solution folder. - Place project in root of the solution, rather than creating a solution folder. + Поместите проект в корень решения вместо создания папки решения. Allow prerelease workload manifests. - Allow prerelease workload manifests. + Разрешить предварительные манифесты рабочей нагрузки. Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Неправильный формат переменных среды: {0} WORKING_DIR - WORKING_DIR + WORKING_DIR The working directory used by the command to execute. - The working directory used by the command to execute. + Рабочий каталог для выполняемой команды. Invalid version string: {0} - Invalid version string: {0} + Недопустимая строка версии: {0} LEVEL - LEVEL + LEVEL List all projects in a solution file. - List all projects in a solution file. + Вывод списка всех проектов в файле решения. Disables checking if the template meets the constraints to be run. - Disables checking if the template meets the constraints to be run. + Отключает проверку соответствия шаблона ограничениям для запуска. Display solution folder paths. - Display solution folder paths. + Отображение путей к папке решения. Shut down the MSBuild build server. - Shut down the MSBuild build server. + Завершает работу сервера сборки MSBuild. MANIFEST - MANIFEST + MANIFEST The path to a target manifest file that contains the list of packages to be excluded from the publish step. - The path to a target manifest file that contains the list of packages to be excluded from the publish step. + Путь к целевому файлу манифеста, содержащему список пакетов, исключаемых из публикации. Generate a .slnx file from a .sln file. - Generate a .slnx file from a .sln file. + Сгенерировать файл .slnx на основе файла .sln. .NET Add Command - .NET Add Command + Команда .NET "Добавить" List references or packages of a .NET project. - List references or packages of a .NET project. + Выводит список ссылок или пакетов для проекта .NET. .NET Remove Command - .NET Remove Command + Команда .NET "Удалить" Do not build the project before publishing. Implies --no-restore. - Do not build the project before publishing. Implies --no-restore. + Сборка проекта перед публикацией не выполняется. Подразумевает --no-restore. Do not build project-to-project references and only build the specified project. - Do not build project-to-project references and only build the specified project. + Не выполнять сборку для ссылок между проектами и выполнить сборку только для указанного проекта. Do not use incremental building. - Do not use incremental building. + Не использовать инкрементную сборку. Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Не отображать начальный баннер или сообщение об авторских правах. Do not restore the project before building. - Do not restore the project before building. + Не восстанавливать проект перед сборкой. OS - OS + ОС Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). - Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). + Указание параметра манифеста средства (--tool-manifest) допустимо только с локальным параметром (--local или значение по умолчанию). The target operating system. - The target operating system. + Целевая операционная система. Specifies a NuGet source to use. - Specifies a NuGet source to use. + Указывает источник NuGet для использования. Filters the templates based on the template author. - Filters the templates based on the template author. + Фильтрация шаблонов по автору шаблона. Filters the templates based on baseline defined in the template. - Filters the templates based on baseline defined in the template. + Фильтрация шаблонов по базовым показателям, определенным в шаблоне. Specifies the columns to display in the output. - Specifies the columns to display in the output. + Указывает столбцы для отображения в выходных данных. Displays all columns in the output. - Displays all columns in the output. + Отображает все столбцы в выходных данных. Allows to pause execution in order to attach to the process for debug purposes. - Allows to pause execution in order to attach to the process for debug purposes. + Позволяет приостановить выполнение, чтобы подключиться к процессу для отладки. Sets custom settings location. - Sets custom settings location. + Задает настраиваемое расположение параметров. If specified, removes the template cache prior to command execution. - If specified, removes the template cache prior to command execution. + Если этот параметр указан, перед выполнением команды удаляется кэш шаблона. If specified, resets the settings prior to command execution. - If specified, resets the settings prior to command execution. + Если этот параметр указан, перед выполнением команды сбрасываются параметры. If specified, shows the template engine config prior to command execution. - If specified, shows the template engine config prior to command execution. + Если этот параметр указан, перед выполнением команды отображается конфигурация обработчика шаблонов. If specified, the settings will be not preserved on file system. - If specified, the settings will be not preserved on file system. + Если этот параметр задан, параметры не будут сохранены в файловой системе. Allows installing template packages from the specified sources even if they would override a template package from another source. - Allows installing template packages from the specified sources even if they would override a template package from another source. + Позволяет устанавливать пакеты шаблонов из указанных источников, даже если при этом они переопределят пакет шаблонов из другого источника. Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Позволяет остановить команду и ожидать ввода или действия пользователя (например, для проверки подлинности). Filters templates based on language. - Filters templates based on language. + Фильтрация шаблонов по языку. Location to place the generated output. - Location to place the generated output. + Расположение для размещения созданных выходных данных. Filters the templates based on NuGet package ID. - Filters the templates based on NuGet package ID. + Фильтрация шаблонов по идентификатору пакета NuGet. The project that should be used for context evaluation. - The project that should be used for context evaluation. + Проект, который следует использовать для оценки контекста. Filters the templates based on the tag. - Filters the templates based on the tag. + Фильтрация шаблонов по тегу. Filters templates based on available types. Predefined values are "project" and "item". - Filters templates based on available types. Predefined values are "project" and "item". + Фильтрует шаблоны на основе доступных типов. Предопределенные значения — "project" и "item". project and item should not be translated Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. - Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. + Параметры "--outdated", "--deprecated" и "--vulnerable" не могут использоваться вместе. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR .NET Core NuGet Package Packer - .NET Core NuGet Package Packer + Упаковщик пакетов NuGet .NET Core OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place built packages in. - The output directory to place built packages in. + Выходной каталог для размещения собранных пакетов. VERSION - VERSION + VERSION The version of the package to create - The version of the package to create + Версия создаваемого пакета The configuration to use for building the package. The default is 'Release'. - The configuration to use for building the package. The default is 'Release'. + Конфигурация, используемая для сборки пакета. Значение по умолчанию — "Release". Add a NuGet package reference to the project. - Add a NuGet package reference to the project. + Добавление в проект ссылки на пакет NuGet. FRAMEWORK - FRAMEWORK + FRAMEWORK Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Добавление ссылки только для конкретной целевой платформы. Add the reference without performing restore preview and compatibility check. - Add the reference without performing restore preview and compatibility check. + Добавление ссылки без предварительной проверки восстановления и совместимости. SOURCE - SOURCE + SOURCE The NuGet package source to use during the restore. - The NuGet package source to use during the restore. + Источник пакетов NuGet, используемый во время восстановления. Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Ссылка на пакет в виде идентификатора пакета, например "{0}", или идентификатора пакета и версии, разделенных "@", например "{0}@{1}". Package reference id and version must not be null. - Package reference id and version must not be null. + Идентификатор ссылки на пакет и версия не могут быть равны null. List all package references of the project or solution. - List all package references of the project or solution. + Вывод списка всех ссылок на пакеты для проекта или решения. FRAMEWORK | FRAMEWORK\RID - FRAMEWORK | FRAMEWORK\RID + FRAMEWORK | FRAMEWORK\RID Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. - Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. + Выбирает платформу, список пакетов для которой необходимо отобразить. Для нескольких платформ укажите этот параметр несколько раз. SOURCE - SOURCE + SOURCE The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + Источники NuGet, используемые при поиске более новых версий пакетов. Требуется указать параметр "--outdated", "--deprecated" или "--vulnerable". Package reference - Package reference + Ссылка на пакет Remove a NuGet package reference from the project. - Remove a NuGet package reference from the project. + Удаление ссылки на пакет NuGet из проекта. The package reference to remove. - The package reference to remove. + Удаляемая ссылка на пакет. Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. - Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. + Ищет в одном или нескольких источниках пакетов пакеты, соответствующие поисковому запросу. Если источники не указаны, используются все источники, определенные в NuGet.Config. Include prerelease packages. - Include prerelease packages. + Включить пакеты предварительного выпуска. SearchTerm - SearchTerm + SearchTerm Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. - Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. + Поисковый запрос для фильтрации названий, описаний и тегов пакетов. Используется как буквальное значение. Пример: `dotnet package search some.package`. См. также `--exact-match`. Skip - Skip + Пропустить Number of results to skip, to allow pagination. Default 0. - Number of results to skip, to allow pagination. Default 0. + Количество результатов, которые нужно пропустить, чтобы разрешить нумерацию страниц. По умолчанию 0. Take - Take + Взять Number of results to return. Default 20. - Number of results to return. Default 20. + Количество результатов для возврата. По умолчанию 20. Only print the list of links to download without downloading. - Only print the list of links to download without downloading. + Печатать только список ссылок для скачивания, не выполняя загрузку. @@ -1508,15 +1508,15 @@ If command is specified without the argument, it lists all the template packages dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 - 'dotnet workload search version' has three functions depending on its argument: - 1. If no argument is specified, it outputs a list of the latest released workload versions from this feature band. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + "dotnet workload search version" имеет три функции в зависимости от переданного аргумента: + 1. Если аргумент не указан, команда выводит список последних выпущенных версий рабочих нагрузок из данного диапазона функций. Принимает параметр --take для указания нужного количества и --format для изменения формата. + Пример: dotnet workload search version --take 2 --format json [{"workloadVersion":"9.0.201"},{"workloadVersion":"9.0.200.1"}] - 2. If a workload version is provided as an argument, it outputs a table of various workloads and their versions for the specified workload version. Takes the --format option to alter the output format. - Example: + 2. Если в качестве аргумента указана версия рабочей нагрузки, команда выводит таблицу различных рабочих нагрузок и их версий для указанной версии рабочей нагрузки. Может принимать параметр --format для изменения формата выхода. + Пример: dotnet workload search version 9.0.201 - Workload manifest ID Manifest feature band Manifest Version + ИД манифеста рабочей нагрузки Диапазон функций манифеста Версия манифеста ------------------------------------------------------------------------------------------------ microsoft.net.workload.emscripten.current 9.0.100-rc.1 9.0.0-rc.1.24430.3 microsoft.net.workload.emscripten.net6 9.0.100-rc.1 9.0.0-rc.1.24430.3 @@ -1532,8 +1532,8 @@ If command is specified without the argument, it lists all the template packages microsoft.net.workload.mono.toolchain.net6 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net7 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net8 9.0.100-rc.1 9.0.0-rc.1.24431.7 - 3. If one or more workloads are provided along with their versions (by joining them with the '@' character), it outputs workload versions that match the provided versions. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 3. Если одна или несколько рабочих нагрузок указаны вместе с версиями (разделенные символом "@"), команда выводит версии рабочих нагрузок, соответствующие указанным версиям. Принимает параметр --take для указания нужного количества и --format для изменения формата. + Пример: dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 @@ -1541,775 +1541,775 @@ If command is specified without the argument, it lists all the template packages The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Обрабатываемый файл проекта. Если файл не указан, команда будет искать его в текущем каталоге. Convert a file-based program to a project-based program. - Convert a file-based program to a project-based program. + Преобразование программы на основе файла в программу на основе проекта. Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Определяет изменения, не внося фактических изменений в файловую систему PROJECT_MANIFEST - PROJECT_MANIFEST + PROJECT_MANIFEST The XML file that contains the list of packages to be stored. - The XML file that contains the list of packages to be stored. + Файл XML со списком сохраняемых пакетов. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Приложение на основе файла проекта или файла C# для работы. Если файл не указан, команда будет искать файл проекта в текущем каталоге. PROJECT | FILE - PROJECT | FILE + ПРОЕКТ | ФАЙЛ Publisher for the .NET Platform - Publisher for the .NET Platform + Издатель для платформы .NET The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. - The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. + Конфигурация для публикации. Значение по умолчанию — "Release" для проектов NET 8.0 и более поздней версии, но "Debug" для более старых проектов. The target framework to publish for. The target framework has to be specified in the project file. - The target framework to publish for. The target framework has to be specified in the project file. + Целевая платформа публикации. Целевая платформа должна быть указана в файле проекта. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place the published artifacts in. - The output directory to place the published artifacts in. + Выходной каталог для размещения опубликованных артефактов. The target runtime to publish for. This is used when creating a self-contained deployment. The default is to publish a framework-dependent application. - The target runtime to publish for. This is used when creating a self-contained deployment. -The default is to publish a framework-dependent application. + Целевая среда для публикации. Используется при создании автономного развертывания. +По умолчанию публикация выполняется в приложение, зависимое от платформы. Shut down the Razor build server. - Shut down the Razor build server. + Завершает работу сервера сборки Razor. Add a project-to-project reference to the project. - Add a project-to-project reference to the project. + Добавление в проект ссылки из одного проекта на другой. Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Добавление ссылки только для конкретной целевой платформы. The paths to the projects to add as references. - The paths to the projects to add as references. + Пути к проектам, которые добавляются как ссылки. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH List all project-to-project references of the project. - List all project-to-project references of the project. + Вывод списка всех ссылок из одного проекта на другой. Remove a project-to-project reference from the project. - Remove a project-to-project reference from the project. + Удаление в проекте ссылки из одного проекта на другой. Remove the reference only when targeting a specific framework. - Remove the reference only when targeting a specific framework. + Удалять ссылку только для конкретной целевой платформы. The paths to the referenced projects to remove. - The paths to the referenced projects to remove. + Путь к проектам, добавленным в качестве ссылок, которые необходимо удалить. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Remove one or more projects from a solution file. - Remove one or more projects from a solution file. + Удаление проектов из файла решения. The project paths or names to remove from the solution. - The project paths or names to remove from the solution. + Пути или имена проектов, удаляемые из решения. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Required command was not provided. - Required command was not provided. + Обязательная команда не указана. .NET dependency restorer - .NET dependency restorer + Восстановитель зависимостей .NET Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. - Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. + Разрешить накат средства .NET до более новых версий среды выполнения .NET, если целевая среда выполнения для средства не установлена. .NET Run Command - .NET Run Command + Команда .NET Run The configuration to run for. The default for most projects is 'Debug'. - The configuration to run for. The default for most projects is 'Debug'. + Конфигурация для запуска. По умолчанию для большинства проектов используется "Debug". The target framework to run for. The target framework must also be specified in the project file. - The target framework to run for. The target framework must also be specified in the project file. + Целевая платформа для запуска. Целевая платформа также должна быть указана в файле проекта. The target runtime to run for. - The target runtime to run for. + Целевая среда выполнения. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Включение выходных данных диагностики. Display the command schema as JSON. - Display the command schema as JSON. + Отобразить схему команды в формате JSON. .NET SDK Command - .NET SDK Command + Команда .NET SDK .NET SDK Check Command - .NET SDK Check Command + Команда проверки пакета SDK для .NET The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Параметры "--self-contained" и "--no-self-contained" нельзя использовать вместе. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Публикуйте среду выполнения .NET вместе с приложением, чтобы ее не пришлось устанавливать на целевом компьютере. +Значение по умолчанию — "false". Однако для .NET 7 или более ранней версии значение по умолчанию — "true", если указан идентификатор среды выполнения. Skip updating the workload manifests. - Skip updating the workload manifests. + Пропустить обновление манифестов рабочей нагрузки. Skip the optimization phase. - Skip the optimization phase. + Пропуск этапа оптимизации. Skip signature verification of workload packages and installers. - Skip signature verification of workload packages and installers. + Пропустить проверку подписи пакетов рабочих нагрузок и установщиков. Skip creating symbol files which can be used for profiling the optimized assemblies. - Skip creating symbol files which can be used for profiling the optimized assemblies. + Пропуск создания файлов символов, которые можно использовать для профилирования оптимизированных сборок. Recursively add projects' ReferencedProjects to solution - Recursively add projects' ReferencedProjects to solution + Рекурсивно добавить ReferencedProjects проектов в решение .NET modify solution file command - .NET modify solution file command + Команда .NET "Изменить файл решения" The solution file to operate on. If not specified, the command will search the current directory for one. - The solution file to operate on. If not specified, the command will search the current directory for one. + Обрабатываемый файл решения. Если не указать его, команда будет искать его в текущем каталоге. SLN_FILE - SLN_FILE + SLN_FILE The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Файл проекта или решения. Если файл не указан, команда будет искать его в текущем каталоге. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Файл проекта, решения или файл C# (программа на основе файла) для работы. Если файл не указан, команда будет искать его в текущем каталоге для проекта или решения. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJECT | SOLUTION | FILE Source - Source + Источник The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. - The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. + Источник пакета для поиска. Вы можете передать несколько вариантов "--source" для поиска в нескольких источниках пакетов. Пример: "--source https://api.nuget.org/v3/index.json". Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. - Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. + Хранит указанные сборки для платформы .NET. По умолчанию они оптимизируются для целевой среды выполнения и платформы. The target framework to store packages for. The target framework has to be specified in the project file. - The target framework to store packages for. The target framework has to be specified in the project file. + Целевая платформа для хранения пакетов. Целевая платформа должна быть указана в файле проекта. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to store the given assemblies in. - The output directory to store the given assemblies in. + Выходной каталог, в котором хранятся указанные сборки. The target runtime to store packages for. - The target runtime to store packages for. + Целевая среда выполнения, для которой хранятся пакеты. Specify a temporary directory for this command to download and extract NuGet packages (must be secure). - Specify a temporary directory for this command to download and extract NuGet packages (must be secure). + Укажите временный каталог для этой команды, чтобы скачать и извлечь пакеты NuGet (должны быть защищены). Displays a summary of what would happen if the given command line were run if it would result in a template creation. - Displays a summary of what would happen if the given command line were run if it would result in a template creation. + Отображает сводку действий, которые могли бы произойти, если бы данная командная строка была запущена, если это приведет к созданию шаблона. Forces content to be generated even if it would change existing files. - Forces content to be generated even if it would change existing files. + Заставляет создавать содержимое, даже если при этом изменяются существующие файлы. The name for the output being created. If no name is specified, the name of the output directory is used. - The name for the output being created. If no name is specified, the name of the output directory is used. + Имя создаваемых выходных данных. Если имя не указано, используется имя выходного каталога. Disables checking for the template package updates when instantiating a template. - Disables checking for the template package updates when instantiating a template. + Отключает проверку наличия обновлений пакета шаблона при создании экземпляра шаблона. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The configuration to use for running tests. The default for most projects is 'Debug'. - The configuration to use for running tests. The default for most projects is 'Debug'. + Конфигурация для выполнения тестов. По умолчанию для большинства проектов используется "Debug". The target framework to run tests for. The target framework must also be specified in the project file. - The target framework to run tests for. The target framework must also be specified in the project file. + Целевая платформа для выполнения тестов. Целевая платформа также должна быть указана в файле проекта. The target runtime to test for. - The target runtime to test for. + Целевая среда выполнения для тестирования. Install or work with tools that extend the .NET experience. - Install or work with tools that extend the .NET experience. + Установка и использование средств, расширяющих возможности .NET. Executes a tool from source without permanently installing it. - Executes a tool from source without permanently installing it. + Выполняет инструмент из источника без его постоянной установки. Add an additional NuGet package source to use during installation. - Add an additional NuGet package source to use during installation. + Добавление дополнительного источника пакетов NuGet для использования при установке. ADDSOURCE - ADDSOURCE + ADDSOURCE Install global or local tool. Local tools are added to manifest and restored. - Install global or local tool. Local tools are added to manifest and restored. + Установка глобального или локального средства. Локальные средства добавляются в манифест и восстанавливаются. The NuGet configuration file to use. - The NuGet configuration file to use. + Используемый файл конфигурации NuGet. FILE - FILE + FILE The target framework to install the tool for. - The target framework to install the tool for. + Целевая платформа для установки инструмента. FRAMEWORK - FRAMEWORK + FRAMEWORK Install the tool for the current user. - Install the tool for the current user. + Установка средства для текущего пользователя. Install the tool and add to the local tool manifest (default). - Install the tool and add to the local tool manifest (default). + Установка средства и добавление его в манифест локального средства (по умолчанию). Path to the manifest file. - Path to the manifest file. + Путь к файлу манифеста. PATH - PATH + PATH Replace all NuGet package sources to use during installation with these. - Replace all NuGet package sources to use during installation with these. + Замените ими все источники пакетов NuGet, которые будут использоваться при установке. SOURCE - SOURCE + SOURCE The directory where the tool will be installed. The directory will be created if it does not exist. - The directory where the tool will be installed. The directory will be created if it does not exist. + Каталог, в который будет установлен инструмент. Если каталога не существует, он будет создан. PATH - PATH + PATH The version of the tool package to install. - The version of the tool package to install. + Версия устанавливаемого пакета инструмента. VERSION - VERSION + VERSION List tools installed globally or locally. - List tools installed globally or locally. + Перечисление средств, установленных глобально или локально. The output format for the list of tools. - The output format for the list of tools. + Формат выхода для списка инструментов. List tools installed for the current user. - List tools installed for the current user. + Перечисление средств, установленных для текущего пользователя. List the tools installed in the local tool manifest. - List the tools installed in the local tool manifest. + Перечисление средств, установленных в манифесте локального инструмента. The NuGet Package Id of the tool to list - The NuGet Package Id of the tool to list + Идентификатор пакета NuGet перечисляемого инструмента PACKAGE_ID - PACKAGE_ID + PACKAGE_ID The directory containing the tools to list. - The directory containing the tools to list. + Каталог, содержащий перечисляемые инструменты. Restore tools defined in the local tool manifest. - Restore tools defined in the local tool manifest. + Восстановление средств, определенных в манифесте локального инструмента. Path to the manifest file. - Path to the manifest file. + Путь к файлу манифеста. Arguments forwarded to the tool - Arguments forwarded to the tool + Аргументы, переданные инструменту Run a local tool. Note that this command cannot be used to run a global tool. - Run a local tool. Note that this command cannot be used to run a global tool. + Запуск локального инструмента. Обратите внимание, что с помощью этой команды невозможно запустить глобальный инструмент. Search dotnet tools in nuget.org - Search dotnet tools in nuget.org + Поиск инструментов .NET на сайте nuget.org Include pre-release packages. - Include pre-release packages. + Включить пакеты предварительного выпуска. SEARCH_TERM - SEARCH_TERM + SEARCH_TERM Search term from package id or package description. Require at least one character. - Search term from package id or package description. Require at least one character. + Условие поиска из идентификатора пакета или описания пакета. Необходимо указать по крайней мере один символ. Skip - Skip + Пропустить The number of results to skip, for pagination. - The number of results to skip, for pagination. + Число пропускаемых результатов для разбивки на страницы. Take - Take + Получить The number of results to return, for pagination. - The number of results to return, for pagination. + Число возвращаемых результатов для разбивки на страницы. Uninstall a global tool or local tool. - Uninstall a global tool or local tool. + Удаление глобального или локального средства. Uninstall the tool from the current user's tools directory. - Uninstall the tool from the current user's tools directory. + Удаление инструмента из каталога инструментов текущего пользователя. Uninstall the tool and remove it from the local tool manifest. - Uninstall the tool and remove it from the local tool manifest. + Удаление средства и исключение его из манифеста локального средства. Path to the manifest file. - Path to the manifest file. + Путь к файлу манифеста. The directory containing the tool to uninstall. - The directory containing the tool to uninstall. + Каталог, содержащий удаляемый инструмент. Update a global or local tool. - Update a global or local tool. + Обновление глобального или локального средства. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Нераспознанная команда или аргумент "{0}" Update all tools. - Update all tools. + Обновление всех инструментов. Controls whether updates should look for workload sets or the latest version of each individual manifest. - Controls whether updates should look for workload sets or the latest version of each individual manifest. + Управляет тем, должны ли обновления искать наборы рабочих нагрузок или последнюю версию каждого отдельного манифеста. Shut down the VB/C# compiler build server. - Shut down the VB/C# compiler build server. + Завершает работу сервера сборки компилятора VB или C#. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Невозможно указать --version, если аргумент пакета уже содержит версию. {Locked="--version"} Verbosity - Verbosity + Уровень детализации Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` - Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` + Отобразить это количество деталей в выводе: "нормальный", "минимальный", "подробный". Значение по умолчанию: "нормальный". Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Установка уровня детализации MSBuild. Допустимые значения: q[uiet], m[inimal], n[ormal], d[etailed] и diag[nostic]. Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. - Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. + Задает уровень детализации. Допустимые значения: q (без вывода подробных сведений), m (минимальный), n (нормальный) и diag (диагностический). VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX Removes workload components that may have been left behind from previous updates and uninstallations. - Removes workload components that may have been left behind from previous updates and uninstallations. + Удаляет компоненты рабочей нагрузки, которые могли остаться после предыдущих обновлений и удалений. Install or work with workloads that extend the .NET experience. - Install or work with workloads that extend the .NET experience. + Установка и использование рабочих нагрузок, расширяющих возможности .NET. Modify or display workload configuration values. To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" - Modify or display workload configuration values. -To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" + Изменение или отображение значений конфигурации рабочей нагрузки. +Чтобы вывести значение, укажите соответствующий параметр командной строки без значения. Например: "dotnet workload config --update-mode" Start the elevated server process to facilitate MSI based installations. - Start the elevated server process to facilitate MSI based installations. + Запустите серверный процесс с повышенными правами для упрощения установки на основе MSI. Shows a history of workload installation actions. - Shows a history of workload installation actions. + Показывает журнал действий по установке рабочей нагрузки. The NuGet package ID of the workload to install. - The NuGet package ID of the workload to install. + Идентификатор пакета NuGet устанавливаемой рабочей нагрузки. WORKLOAD_ID - WORKLOAD_ID + WORKLOAD_ID The text to search for in the IDs and descriptions of available workloads. - The text to search for in the IDs and descriptions of available workloads. + Текст для поиска в идентификаторах и описаниях доступных рабочих нагрузок. SEARCH_STRING - SEARCH_STRING + SEARCH_STRING Display information about installed workloads. - Display information about installed workloads. + Отображение сведений об установленных рабочих нагрузках. Install one or more workloads. - Install one or more workloads. + Установите одну или несколько рабочих нагрузок. The NuGet configuration file to use. - The NuGet configuration file to use. + Используемый файл конфигурации NuGet. FILE - FILE + FILE The NuGet package source to use during the restore. To specify multiple sources, repeat the option. - The NuGet package source to use during the restore. To specify multiple sources, repeat the option. + Источник пакетов NuGet, используемый во время восстановления. Чтобы указать несколько источников, повторите этот параметр. SOURCE - SOURCE + SOURCE The version of the SDK. - The version of the SDK. + Версия пакета SDK. VERSION - VERSION + VERSION List workloads available. - List workloads available. + Список доступных рабочих нагрузок. Repair workload installations. - Repair workload installations. + Восстановление установок рабочей нагрузки. Restore workloads required for a project. - Restore workloads required for a project. + Восстановление рабочих нагрузок, необходимых для проекта. Search for available workloads. - Search for available workloads. + Поиск доступных рабочих нагрузок. A workload version to display or one or more workloads and their versions joined by the '@' character. - A workload version to display or one or more workloads and their versions joined by the '@' character. + Версия рабочей нагрузки для отображения или одной или нескольких рабочих нагрузок и их версий, соединенных символом "@". Uninstall one or more workloads. - Uninstall one or more workloads. + Удалите одну или несколько рабочих нагрузок. Update all installed workloads. - Update all installed workloads. + Обновление всех установленных рабочих нагрузок. WORKLOAD_VERSION - WORKLOAD_VERSION + WORKLOAD_VERSION Output workload manifest versions associated with the provided workload version. - Output workload manifest versions associated with the provided workload version. + Вывод версий манифеста рабочей нагрузки, связанных с указанной версией рабочей нагрузки. Display the currently installed workload version. - Display the currently installed workload version. + Отобразить текущую установленную версию рабочей нагрузки. Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Принимать все запросы подтверждения с помощью "да". The friendly name of the data collector to use for the test run. More info here: https://aka.ms/vstest-collect - The friendly name of the data collector to use for the test run. - More info here: https://aka.ms/vstest-collect + Понятное имя сборщика данных для тестового запуска. + Дополнительные сведения: https://aka.ms/vstest-collect. DATA_COLLECTOR_NAME - DATA_COLLECTOR_NAME + DATA_COLLECTOR_NAME diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.tr.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.tr.xlf index 979160771f3c..9265378eca63 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.tr.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.tr.xlf @@ -4,162 +4,162 @@ Only update advertising manifests. - Only update advertising manifests. + Yalnızca reklam bildirimlerini güncelleştirin. Add one or more projects to a solution file. - Add one or more projects to a solution file. + Bir çözüm dosyasına bir veya daha fazla proje ekler. The paths to the projects to add to the solution. - The paths to the projects to add to the solution. + Çözüme eklenecek projelerin yolları. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH The destination solution folder path to add the projects to. - The destination solution folder path to add the projects to. + Projelerin ekleneceği hedef çözüm klasör yolu. Allow package downgrade when installing a .NET tool package. - Allow package downgrade when installing a .NET tool package. + Bir .NET araç paketini yüklerken paketi eski sürüme düşürmeye izin verin. ARCH - ARCH + ARCH The target architecture. - The target architecture. + Hedef mimari. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Yapıtlar yolu. Derleme, yayımlama ve paket çıkışı dahil olmak üzere projedeki tüm çıkışlar belirtilen yol altındaki alt klasörlerde bulunur. .NET Builder - .NET Builder + .NET Oluşturucusu The configuration to use for building the project. The default for most projects is 'Debug'. - The configuration to use for building the project. The default for most projects is 'Debug'. + Projeyi derlemek için kullanılacak yapılandırma. Çoğu proje için varsayılan, ‘Hata Ayıklama’ seçeneğidir. The target framework to build for. The target framework must also be specified in the project file. - The target framework to build for. The target framework must also be specified in the project file. + Derlemenin yapılacağı hedef çerçeve. Hedef çerçevenin proje dosyasında da belirtilmesi gerekir. The output directory to place built artifacts in. - The output directory to place built artifacts in. + Derlenen yapıtların yerleştirileceği çıkış dizini. The target runtime to build for. - The target runtime to build for. + Derlemenin yapılacağı hedef çalışma zamanı. Interact with servers started from a build. - Interact with servers started from a build. + Bir derlemeden başlatılan sunucularla etkileşimde bulunun. Shuts down build servers that are started from dotnet. By default, all servers are shut down. - Shuts down build servers that are started from dotnet. By default, all servers are shut down. + Dotnet’ten başlatılan derleme sunucularını kapatır. Varsayılan olarak tüm sunucular kapalıdır. Cannot specify both the {0} and {1} arguments. - Cannot specify both the {0} and {1} arguments. + {0} ve {1} bağımsız değişkenleri birlikte belirtilemez. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Geçerli çalışma zamanı tanımlayıcısı çözümlenemedi. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Hem `-r|--runtime` hem de `-a|--arch` seçeneğinin belirtilmesi desteklenmiyor. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Hem `-r|--runtime` hem de `-os` seçeneğinin belirtilmesi desteklenmiyor. Causes clean to remove and uninstall all workload components from all SDK versions. - Causes clean to remove and uninstall all workload components from all SDK versions. + Tüm SDK sürümlerindeki iş yükü bileşenlerinin tümünü tamamen kaldıracak şekilde temizlemeyi sağlar. .NET Clean Command - .NET Clean Command + .NET Clean Komutu OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The directory containing the build artifacts to clean. - The directory containing the build artifacts to clean. + Temizlenecek derleme yapıtlarını içeren dizin. The configuration to clean for. The default for most projects is 'Debug'. - The configuration to clean for. The default for most projects is 'Debug'. + Temizlenecek yapılandırma. Çoğu proje için varsayılan, ‘Hata Ayıklama’ seçeneğidir. Removes artifacts created for file-based apps - Removes artifacts created for file-based apps + Dosya tabanlı uygulamalar için oluşturulan yapıtları kaldırır How many days an artifact folder needs to be unused in order to be removed - How many days an artifact folder needs to be unused in order to be removed + Bir yapıt klasörünün kaldırılabilmesi için kaç gün kullanılmaması gerekir? Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Dosya sistemini gerçekten değiştirmeden değişiklikleri belirler The target framework to clean for. The target framework must also be specified in the project file. - The target framework to clean for. The target framework must also be specified in the project file. + Temizlenecek hedef çerçeve. Hedef çerçevenin proje dosyasında da belirtilmesi gerekir. The target runtime to clean for. - The target runtime to clean for. + Temizlenecek hedef çalışma zamanı. Enables collecting crash dump on expected as well as unexpected testhost exit. - Enables collecting crash dump on expected as well as unexpected testhost exit. + Hem beklenen hem de beklenmeyen test ana bilgisayarı çıkışında kilitlenme bilgi dökümünün toplanmasını sağlar. @@ -174,22 +174,22 @@ The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downlo To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. Implies --blame. - Runs the tests in blame mode and collects a crash dump when the test host exits unexpectedly. This option depends on the version of .NET used, the type of error, and the operating system. + Testleri blame modunda çalıştırır ve test ana bilgisayarı beklenmedik şekilde çıktığında kilitlenme bilgi dökümlerini toplar. Bu seçenek kullanılan .NET sürümüne, hata türüne ve işletim sistemine bağlıdır. -For exceptions in managed code, a dump will be automatically collected on .NET 5.0 and later versions. It will generate a dump for testhost or any child process that also ran on .NET 5.0 and crashed. Crashes in native code will not generate a dump. This option works on Windows, macOS, and Linux. +Yönetilen koddaki özel durumlar için .NET 5.0 ve sonraki sürümler üzerinde otomatik olarak bir döküm toplanır. Testhost veya .NET 5.0 üzerinde çalışan ve kilitlenen herhangi bir alt işlem için döküm oluşturur. Yerel koddaki kilitlenmeler döküm oluşturmaz. Bu seçenek Windows, macOS ve Linux'ta çalışır. -Crash dumps in native code, or when targetting .NET Framework, or .NET Core 3.1 and earlier versions, can only be collected on Windows, by using Procdump. A directory that contains procdump.exe and procdump64.exe must be in the PATH or PROCDUMP_PATH environment variable. +Yerel kodda bulunan veya .NET Framework ya da .NET Core 3.1 ve önceki sürümler hedeflendiğinde kilitlenme dökümleri, yalnızca Procdump kullanılarak Windows'ta toplanabilir. Procdump.exe ve procdump64.exe içeren dizin PATH veya PROCDUMP_PATH değişkende olmalıdır. -The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downloads/procdump +Araçlar https://docs.microsoft.com/sysinternals/downloads/procdump adresinden indirilebilir -To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. +.NET 5.0 veya sonraki bir sürümde çalışan yerel bir uygulamadaki kilitlenme bilgi dökümlerini toplamak için Procdump kullanılması, VSTEST_DUMP_FORCEPROCDUMP ortam değişkeni 1 olarak ayarlanarak zorlanabilir. -Implies --blame. +--blame gerektirir. The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. - The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. + Toplanacak kilitlenme bilgi dökümü türü. Desteklenen değerler: full (varsayılan) ve mini. --blame-crash gerektirir. @@ -207,30 +207,30 @@ Example: Timeout the test run when a test takes more than 20 minutes and collect hang dump. dotnet test --blame-hang-timeout 20min - Runs the tests in blame mode. This option is helpful in isolating problematic tests that cause the test host to crash or hang, but it does not create a memory dump by default. + Testleri blame modunda çalıştırır. Bu seçenek, test ana bilgisayarının kilitlenmesine veya yanıt vermemeye başlamasına neden olan sorunlu testleri yalıtmak için yararlıdır, ancak varsayılan olarak bellek dökümü oluşturmaz. -When a crash is detected, it creates an sequence file in TestResults/guid/guid_Sequence.xml that captures the order of tests that were run before the crash. +Kilitlenme algılandığında, TestResults/guid/guid_Sequence.xml içinde kilitlenmeden önce çalıştırılan testlerin sırasını yakalayan bir sıra dosyası oluşturur. -Based on the additional settings, hang dump or crash dump can also be collected. +Ek ayarlara bağlı olarak, yanıt vermemeye başlama veya kilitlenme bilgi dökümü de toplanabilir. -Example: - Timeout the test run when test takes more than the default timeout of 1 hour, and collect crash dump when the test host exits unexpectedly. - (Crash dumps require additional setup, see below.) +Örnek: + Test 1 saatlik varsayılan zaman aşımı süresinden uzun sürdüğünde test çalıştırmasını zaman aşımına uğratın ve test ana bilgisayarı beklenmedik bir şekilde çıkış yaptığında kilitlenme dökümünü toplayın. + (Kilitlenme bilgi dökümleri için ek kurulum gerekir, aşağıya bakın.) dotnet test --blame-hang --blame-crash -Example: - Timeout the test run when a test takes more than 20 minutes and collect hang dump. +Örnek: + Test 20 dakikadan uzun sürdüğünde test çalıştırmasını zaman aşımına uğratın ve yanıt vermemeye başlama bilgi dökümünü toplayın. dotnet test --blame-hang-timeout 20min Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. - Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. + Testleri blame modunda çalıştırır ve test, verilen zaman aşımını süresini aştığında yanıt vermemeye başlama bilgi dökümünün toplanmasını sağlar. The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. - The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. + Toplanacak kilitlenme bilgi dökümünün türü. Desteklenen değerler: full (varsayılan), mini ve none. None kullanıldığında test ana bilgisayarı sonlandırılır ancak bilgi dökümü toplanmaz. --blame-hang gerektirir. @@ -238,67 +238,67 @@ Example: The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, For MSTest before 2.2.4, the timeout is used for all testcases. - Per-test timeout, after which hang dump is triggered and the testhost process is terminated. Default is 1h. -The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. -When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, -For MSTest before 2.2.4, the timeout is used for all testcases. + Test başına zaman aşımı, bundan sonra askıda kalma dökümü tetiklenir ve testhost işlemi sonlandırılır. Varsayılan değer: 1 sa. +Zaman aşımı değeri aşağıdaki biçimlerde belirtilir: 1,5 sa / 90 dk / 5400 s / 5400000 ms. Hiçbir birim kullanılmazsa (örn. 5400000), değerin milisaniye cinsinden olduğu varsayılır. +Veri odaklı testlerle birlikte kullanıldığında, zaman aşımı davranışı kullanılan test bağdaştırıcısına bağlıdır. xUnit, NUnit ve MSTest 2.2.4+ için zaman aşımı her test durumundan sonra yenilenir, +MSTest için 2.2.4'ten önce, zaman aşımı tüm test durumları için kullanılır. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + Kullanılacak NuGet yapılandırma dosyasının yolu. '--outdated', '--deprecated' veya '--vulnerable' seçeneğini gerektirir. Specifies a testconfig.json file. - Specifies a testconfig.json file. + testconfig.json dosyası belirtir. FILE - FILE + FILE The NuGet configuration file to use. - The NuGet configuration file to use. + Kullanılacak NuGet yapılandırma dosyası. CONFIG_FILE - CONFIG_FILE + CONFIG_FILE Use current runtime as the target runtime. - Use current runtime as the target runtime. + Hedef çalışma zamanı olarak geçerli çalışma zamanını kullanın. Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. - Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. + Kullanım dışı bırakılan paketleri listeler. '--vulnerable' veya '--outdated' seçenekleriyle birleştirilemez. Output directory of the diagnostic logging. If not specified the file will be generated inside the default 'TestResults' directory. - Output directory of the diagnostic logging. -If not specified the file will be generated inside the default 'TestResults' directory. + Tanılama günlüğünün çıkış dizini. +Belirtilmezse dosya varsayılan 'TestResults' dizini içinde oluşturulur. DIAGNOSTIC_DIR - DIAGNOSTIC_DIR + DIAGNOSTIC_DIR Prevent restoring multiple projects in parallel. - Prevent restoring multiple projects in parallel. + Birden fazla projenin paralel olarak geri yüklenmesini önler. @@ -312,88 +312,88 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Bir ortam değişkeninin değerini ayarlar. +Değişken yoksa oluşturur, varsa değişkeni geçersiz kılar. +Bu bağımsız değişken, birden çok değişken sağlamak için birden çok kez belirtilebilir. -Examples: --e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" --e VAR1=abc -e VAR2=def -e VAR3=ghi +Örnek: +-e DEĞİŞKEN=abc +-e DEĞİŞKEN="boşluk içeren değerler" +-e DEĞİŞKEN="noktalı virgülle;ayrılmış;değerler" +-e DEĞ1=abc -e DEĞ2=def -e DEĞ3=ghi NAME="VALUE" - NAME="VALUE" + AD="DEĞER" EXPRESSION - EXPRESSION + İFADE Path to the file-based program. - Path to the file-based program. + Dosya tabanlı programın yolu. Force all dependencies to be resolved even if the last restore was successful. This is equivalent to deleting project.assets.json. - Force all dependencies to be resolved even if the last restore was successful. -This is equivalent to deleting project.assets.json. + Son geri yükleme başarılı olsa bile tüm bağımlılıkları çözümlenmeye zorlar. +project.assets.json öğesini silmeyle eşdeğerdir. Specifies the output format type for the list packages command. - Specifies the output format type for the list packages command. + Liste paketleri komutunun çıkış biçimi türünü belirtir. Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. + Daha yeni paketler aranırken yalnızca eşleşen birincil sürüm numarasına sahip paketleri göz önünde bulundurun. '--outdated' seçeneğini gerektirir. Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. + Daha yeni paketler aranırken yalnızca eşleşen birincil ve ikincil sürüm numaralarına sahip paketleri değerlendirin. '--outdated' seçeneğini gerektirir. Treat package source failures as warnings. - Treat package source failures as warnings. + Paket kaynağı hatalarını uyarı olarak kabul edin. Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. - Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. + PDB’leri ve kaynak dosyaları ekler. Elde edilen nuget paketinde kaynak dosyaları, ‘src’ klasöründe yer alır. Include packages with symbols in addition to regular packages in output directory. - Include packages with symbols in addition to regular packages in output directory. + Çıkış dizinine, normal paketlere ek olarak sembol içeren paketler ekleyin. List the discovered tests instead of running the tests. - List the discovered tests instead of running the tests. + Testleri çalıştırmak yerine bulunan testleri listeler. LOCK_FILE_PATH - LOCK_FILE_PATH + LOCK_FILE_PATH Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. - Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. + Proje kilit dosyasının yazıldığı çıkış konumu. Varsayılan değeri 'PROJECT_ROOT\packages.lock.json' şeklindedir. Don't allow updating project lock file. - Don't allow updating project lock file. + Proje kilit dosyasının güncelleştirilmesine izin verme. @@ -402,223 +402,223 @@ This is equivalent to deleting project.assets.json. Log in trx format using a unique file name: --logger trx Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" See https://aka.ms/vstest-report for more information on logger arguments. - The logger to use for test results. - Examples: - Log in trx format using a unique file name: --logger trx - Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" - See https://aka.ms/vstest-report for more information on logger arguments. + Test sonuçları için kullanılacak günlükçü. + Örnekler: + Benzersiz bir dosya adı kullanarak trx biçiminde günlüğe kaydedin: --logger trx + Belirtilen dosya adını kullanarak trx biçiminde günlüğe kaydedin: --logger "trx;LogFileName=<TestResults.trx>" + Günlükçü bağımsız değişkenleri hakkında daha fazla bilgi için bkz. https://aka.ms/vstest-report. LOGGER - LOGGER + LOGGER The max number of test modules that can run in parallel. - The max number of test modules that can run in parallel. + Paralel olarak çalıştırılabilecek test modüllerinin maksimum sayısı. Specifies the minimum number of tests that are expected to run. - Specifies the minimum number of tests that are expected to run. + Çalıştırılması beklenen en düşük test sayısını belirtir. Disable ANSI output. - Disable ANSI output. + ANSI çıkışını devre dışı bırakın. Do not build the project before testing. Implies --no-restore. - Do not build the project before testing. Implies --no-restore. + Test etmeden önce projeyi derlemeyin. --no-restore anlamına gelir. Do not build the project before packing. Implies --no-restore. - Do not build the project before packing. Implies --no-restore. + Paketlemeden önce projeyi derlemeyin. --no-restore anlamına gelir. Do not cache packages and http requests. - Do not cache packages and http requests. + Paketleri ve http isteklerini önbelleğe almayın. Do not restore project-to-project references and only restore the specified project. - Do not restore project-to-project references and only restore the specified project. + Projeden projeye başvuruları geri yüklemez ve yalnızca belirtilen projeyi geri yükler. Disable Http Caching for packages. - Disable Http Caching for packages. + Paketler için Http Önbelleğe Almayı devre dışı bırakın. Disable progress reporting. - Disable progress reporting. + İlerleme raporlamasını devre dışı bırakın. Do not restore before running the command. - Do not restore before running the command. + Komutu çalıştırmadan önce geri yükleme işlemi yapmayın. NUMBER - NUMBER + SAYI Force conversion even if there are malformed directives. - Force conversion even if there are malformed directives. + Hatalı biçimlendirilmiş yönergeler olsa bile dönüştürmeye zorlar. Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. - Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. + Daha yeni sürümlere sahip paketleri listeler. '--deprecated' veya '--vulnerable' seçenekleriyle birleştirilemez. The output directory to place built artifacts in. - The output directory to place built artifacts in. + Derlenen yapıtların yerleştirileceği çıkış dizini. Specifies the version of machine-readable output. Requires the '--format json' option. - Specifies the version of machine-readable output. Requires the '--format json' option. + Makine tarafından okunabilir çıkışın sürümünü belirtir. '--format json' seçeneğini gerektirir. PACKAGE_NAME - PACKAGE_NAME + PACKAGE_NAME PACKAGE_DIR - PACKAGE_DIR + PACKAGE_DIR The directory to restore packages to. - The directory to restore packages to. + Paketlerin geri yükleneceği dizin. PACKAGES_DIR - PACKAGES_DIR + PACKAGES_DIR The directory to restore packages to. - The directory to restore packages to. + Paketlerin geri yükleneceği dizin. LOG_FILE - LOG_FILE + LOG_FILE RESULTS_DIR - RESULTS_DIR + RESULTS_DIR Enable verbose logging to the specified file. - Enable verbose logging to the specified file. + Belirtilen dosyaya ayrıntılı günlük kaydını etkinleştirir. Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. - Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. + Daha yeni paketleri ararken yayın öncesi sürümlere sahip olan paketleri göz önünde bulundurun. '--outdated' seçeneğini gerektirir. Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Çalıştırılacak proje dosyasının yolunu tanımlar. Proje dosyasının yolunu veya proje dosyasını içeren dizinin yolunu kullanın. Belirtilmezse, varsayılan olarak geçerli dizine ayarlar. Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + Test edilecek proje veya çözüm dosyasının yolunu tanımlar. Proje dosyasının yolunu veya proje dosyasını içeren dizinin yolunu kullanın. Belirtilmezse, varsayılan olarak geçerli dizine ayarlar. PROJECT_OR_SOLUTION_PATH - PROJECT_OR_SOLUTION_PATH + PROJECT_OR_SOLUTION_PATH Forces restore to reevaluate all dependencies even if a lock file already exists. - Forces restore to reevaluate all dependencies even if a lock file already exists. + Bir kilit dosyası mevcut olsa bile geri yüklemenin tüm bağımlılıkları yeniden değerlendirmesini zorlar. The directory where the test results will be placed. The specified directory will be created if it does not exist. - The directory where the test results will be placed. -The specified directory will be created if it does not exist. + Test sonuçlarının yerleştirileceği dizin. +Belirtilen dizin yoksa oluşturulur. ROOT_PATH - ROOT_PATH + ROOT_PATH RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER The target runtime to restore packages for. - The target runtime to restore packages for. + Paketlerin geri yükleneceği hedef çalışma zamanı. Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. - Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. + Pakette serviceable bayrağını ayarlar. Daha fazla bilgi için bkz. https://aka.ms/nupkgservicing. The settings file to use when running tests. - The settings file to use when running tests. + Testleri çalıştırırken kullanılacak ayarlar dosyası. SETTINGS_FILE - SETTINGS_FILE + SETTINGS_FILE Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. - Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. + Test edilecek çözüm dosyasının yolunu tanımlar. Çözüm dosyasının yolunu veya çözüm dosyasını içeren dizinin yolunu kullanın. Belirtilmezse, varsayılan olarak geçerli dizine ayarlar. SOLUTION_PATH - SOLUTION_PATH + SOLUTION_PATH SOURCE - SOURCE + SOURCE The NuGet package source to use for the restore. - The NuGet package source to use for the restore. + Geri yükleme için kullanılacak NuGet paket kaynağı. ADAPTER_PATH - ADAPTER_PATH + ADAPTER_PATH The path to the custom adapters to use for the test run. - The path to the custom adapters to use for the test run. + Test çalıştırması için kullanılacak özel bağdaştırıcıların yolu. @@ -629,18 +629,18 @@ The specified directory will be created if it does not exist. Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" See https://aka.ms/vstest-filtering for more information on filtering support. - Run tests that match the given expression. - Examples: - Run tests with priority set to 1: --filter "Priority = 1" - Run a test with the specified full name: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" - Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" - See https://aka.ms/vstest-filtering for more information on filtering support. + Belirtilen ifadeyle eşleşen testleri çalıştırır. + Örnek: + Önceliği 1: --filter "Priority = 1" olarak ayarlanmış testleri çalıştırır + Belirtilen tam ada sahip bir test çalıştırır: --filter "TamAd=AdAlanı.SınıfAdı.MetotAdı" + Belirtilen adı içeren testleri çalıştırır: --filter "FullyQualifiedName~Namespace.Class" + Filtreleme desteği hakkında daha fazla bilgi için bkz. https://aka.ms/vstest-filtering. EXPRESSION - EXPRESSION + EXPRESSION @@ -655,827 +655,827 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Bir ortam değişkeninin değerini ayarlar. +Değişken yoksa oluşturur, varsa değişkeni geçersiz kılar. +Bu, testleri yalıtılmış bir işlemde çalıştırılmaya zorlar. +Bu bağımsız değişken, birden çok değişken sağlamak için birden çok kez belirtilebilir. -Examples: --e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" --e VAR1=abc -e VAR2=def -e VAR3=ghi +Örnek: +-e DEĞİŞKEN=abc +-e DEĞİŞKEN="boşluk içeren değerler" +-e DEĞİŞKEN="noktalı virgülle;ayrılmış;değerler" +-e DEĞ1=abc -e DEĞ2=def -e DEĞ3=ghi Run tests for the specified test modules. - Run tests for the specified test modules. + Belirtilen test modülleri için testleri çalıştırın. The test modules have the specified root directory. - The test modules have the specified root directory. + Test modülleri belirtilen kök dizine sahip. Verbosity of test output. - Verbosity of test output. + Test çıkışının ayrıntı düzeyi. Lists transitive and top-level packages. - Lists transitive and top-level packages. + Geçişli ve üst düzey paketleri listeler. Test runner '{0}' is not supported. - Test runner '{0}' is not supported. + '{0}' test çalıştırıcısı desteklenmiyor. Enables project lock file to be generated and used with restore. - Enables project lock file to be generated and used with restore. + Proje kilit dosyasının oluşturulmasını ve geri yükleme ile kullanılmasını etkinleştirir. VERSION - VERSION + VERSION The version of the package to add. - The version of the package to add. + Eklenecek paketin sürümü. Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Projeyi derlerken kullanılacak $(VersionSuffix) özelliğinin değerini ayarlar. Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. - Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. + Bilinen güvenlik açıklarına sahip paketleri listeler. '--deprecated' veya '--outdated' seçenekleriyle birleştirilemez. The SDK command to launch online help for. - The SDK command to launch online help for. + Çevrimiçi yardımı başlatılacak SDK komutu. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Komutun durup kullanıcı girişini veya eylemini (örneğin, kimlik doğrulamasının tamamlanmasını) beklemesine izin verir . The command name of the tool to run. - The command name of the tool to run. + Çalıştırılacak aracın komut adı. COMMAND_NAME - COMMAND_NAME + COMMAND_NAME The device identifier to use for running the application. - The device identifier to use for running the application. + Uygulamayı çalıştırmak için kullanılacak cihaz kimliği. DEVICE - DEVICE + CİHAZ The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). - The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). + Çalıştırılacak dosya tabanlı uygulamanın yolu (geçerli dizinde proje yoksa ilk bağımsız değişken olarak da geçirilebilir). FILE_PATH - FILE_PATH + FILE_PATH The name of the launch profile (if any) to use when launching the application. - The name of the launch profile (if any) to use when launching the application. + Uygulama başlatılırken kullanılacak başlatma profilinin (varsa) adı. LAUNCH_PROFILE - LAUNCH_PROFILE + LAUNCH_PROFILE List available devices for running the application. - List available devices for running the application. + Uygulamayı çalıştırmak için kullanılabilir cihazları listeleyin. Do not build the project before running. Implies --no-restore. - Do not build the project before running. Implies --no-restore. + Çalıştırmadan önce projeyi derlemeyin. --no-restore anlamına gelir. {Locked="--no-restore"} Skip up to date checks and always build the program before running. - Skip up to date checks and always build the program before running. + Güncel denetimleri atla ve çalıştırmadan önce her zaman programı derle. Do not use arguments specified in launch profile to run the application. - Do not use arguments specified in launch profile to run the application. + Uygulamayı çalıştırmak için başlatma profilinde belirtilen bağımsız değişkenleri kullanmayın. Do not attempt to use launchSettings.json or [app].run.json to configure the application. - Do not attempt to use launchSettings.json or [app].run.json to configure the application. + Uygulamayı yapılandırmak için launchSettings.json veya [app].run.json dosyalarını kullanmaya çalışmayın. {Locked="launchSettings.json"}{Locked=".run.json"} PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Ön sürüm paketlerinin yüklenmesini sağlar. Creates an alias for instantiate command with a certain set of arguments. - Creates an alias for instantiate command with a certain set of arguments. + Belirli bir bağımsız değişken kümesiyle örnek oluşturma komutu için bir diğer ad oluşturur. Displays defined aliases. - Displays defined aliases. + Tanımlanan diğer adları görüntüler. Creates or displays defined aliases. - Creates or displays defined aliases. + Tanımlı diğer adlar oluşturur veya görüntüler. Provides the details for specified template package. The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. - - Provides the details for specified template package. - The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. + + Belirtilen şablon paketi için ayrıntıları sağlar. + Komut, paketin yerel olarak yüklü olup olmadığını denetler; paket bulunamadıysa, yapılandırılan NuGet akışlarını arar. NuGet package ID or path to folder or NuGet package to install. To install the NuGet package of certain version, use <package ID>::<version>. - NuGet package ID or path to folder or NuGet package to install. -To install the NuGet package of certain version, use <package ID>::<version>. + Yüklenecek NuGet paket kimliği veya klasör yolu ya da NuGet paketi. +Belirli bir sürümün NuGet paketini yüklemek için <package ID>::<version> kullanın. Installs a template package. - Installs a template package. + Bir şablon paketini yükler. A short name of the template to create. - A short name of the template to create. + Oluşturulacak şablonun kısa adı. Template specific options to use. - Template specific options to use. + Şablona özgü kullanılacak seçenekler. Instantiates a template with given short name. An alias of 'dotnet new <template name>'. - Instantiates a template with given short name. An alias of 'dotnet new <template name>'. + Verilen kısa ada sahip bir şablonun örneğini oluşturur. 'dotnet new <template name>' diğer adı. do not translate 'dotnet new <template name>' Checks the currently installed template packages for updates. - Checks the currently installed template packages for updates. + Şu anda yüklü şablon paketleri için güncelleştirmeler olup olmadığını denetler. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Belirtilmişse, yalnızca adla eşleşen şablonlar gösterilir. Lists templates containing the specified template name. If no name is specified, lists all templates. - Lists templates containing the specified template name. If no name is specified, lists all templates. + Belirtilen şablon adını içeren şablonları listeler. Ad belirtilmezse, tüm şablonları listeler. Template Instantiation Commands for .NET CLI. - Template Instantiation Commands for .NET CLI. + .NET CLI için Şablon Örneği Oluşturma Komutları. If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + Belirtilmişse, yalnızca adla eşleşen şablonlar gösterilir. Searches for the templates on NuGet.org. - Searches for the templates on NuGet.org. + NuGet.org sitesinde şablon arar. NuGet package ID (without version) or path to folder to uninstall. If command is specified without the argument, it lists all the template packages installed. - NuGet package ID (without version) or path to folder to uninstall. -If command is specified without the argument, it lists all the template packages installed. + NuGet paket kimliği (sürüm olmadan) veya kaldırılacak klasörün yolu. +Eğer komut bağımsız değişken olmadan belirtilirse yüklü tüm şablon paketlerini listeler. Uninstalls a template package. - Uninstalls a template package. + Bir şablon paketini kaldırır. Checks the currently installed template packages for update, and install the updates. - Checks the currently installed template packages for update, and install the updates. + Şu anda yüklü şablon paketleri için güncelleştirme olup olmadığını denetler ve güncelleştirmeleri yükler. Only checks for updates and display the template packages to be updated without applying update. - Only checks for updates and display the template packages to be updated without applying update. + Yalnızca güncelleştirmeleri denetler ve güncelleştirmeyi uygulamadan, sadece güncelleştirilecek şablon paketlerini görüntüler. Unrecognized command or argument(s): {0}. - Unrecognized command or argument(s): {0}. + Tanınmayan komut veya bağımsız değişken: {0} {0} - wrong token or comma-separated tokens (if multiple). Each token is enclosed with single quotes: 'token'. FRAMEWORK - FRAMEWORK + FRAMEWORK ConfigFile - ConfigFile + YapılandırmaDosyası The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior - The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior + NuGet yapılandırma dosyası. Belirtilirse, yalnızca bu dosyadaki ayarlar kullanılır. Belirtilmezse, geçerli dizindeki yapılandırma dosyaları hiyerarşisi kullanılır. Daha fazla bilgi için bkz. https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior. CONFIGURATION - CONFIGURATION + CONFIGURATION DUMP_TYPE - DUMP_TYPE + DÖKÜM_TÜRÜ Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed - Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed + Araç yüklemesi sırasında bir araç bildirimi bulunmazsa bir araç bildirimi oluşturun. Bildirimlerin nasıl bulunduğu hakkında bilgi edinmek için bkz. https://aka.ms/dotnet/tools/create-manifest-if-needed Use current runtime as the target runtime. - Use current runtime as the target runtime. + Hedef çalışma zamanı olarak geçerli çalışma zamanını kullanın. Show detail result of the query. - Show detail result of the query. + Sorgunun ayrıntılı sonucunu gösterir. Package identifier - Package identifier + Paket tanımlayıcısı Enables diagnostic output. - Enables diagnostic output. + Tanılama çıkışı sağlar. Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Komutu kalıcı derleme sunucularını yoksaymaya zorla. Disables evaluating project context using MSBuild. - Disables evaluating project context using MSBuild. + MSBuild kullanarak proje bağlamının değerlendirilmesini devre dışı bırakır. If present, prevents templates bundled in the SDK from being presented. - If present, prevents templates bundled in the SDK from being presented. + Varsa, SDK'da paketlenmiş şablonların sunumlarını önler. .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. + Microsoft.Testing.Platform için .NET Test Komutu ('global.json' dosyasıyla seçildi). Bu sadece Microsoft.Testing.Platform'u destekler, VSTest'i desteklemez. Daha fazla bilgi için bkz. https://aka.ms/dotnet-test. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. + VSTest için .NET Test Komutu. Microsoft.Testing.Platform'u kullanmak için global.json üzerinden Microsoft.Testing.Platform tabanlı komutu seçin. Daha fazla bilgi için bkz. https://aka.ms/dotnet-test. {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} DIRECTORY - DIRECTORY + DİZİN Download packages needed to install a workload to a folder that can be used for offline installation. - Download packages needed to install a workload to a folder that can be used for offline installation. + Çevrimdışı yükleme için kullanılabilecek bir klasöre iş yükü yüklemek için gereken paketleri indirin. Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. - Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. + Arama teriminin, paketin adıyla tam olarak eşleşmesini gerektir. “--take” ve “--skip” seçeneklerinin yoksayılmasına neden olur. The file-based app to operate on. - The file-based app to operate on. + İşlem yapılacak dosya tabanlı uygulama. Format - Format + Biçim Format the output accordingly. Either `table`, or `json`. The default value is `table`. - Format the output accordingly. Either `table`, or `json`. The default value is `table`. + Çıkışı uygun şekilde biçimlendir. “Tablo” veya “json”. Varsayılan değer: “tablo”. Changes the format of outputted workload versions. Can take 'json' or 'list' - Changes the format of outputted workload versions. Can take 'json' or 'list' + Çıkış iş yükü sürümlerinin biçimini değiştirir. 'json' veya 'list' alabilir FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Uygulamanızı çerçeveye bağımlı bir uygulama olarak yayımlayın. Uygulamanızı çalıştırmak için hedef makineye uyumlu bir .NET çalışma zamanı yüklenmelidir. FRAMEWORK_VERSION - FRAMEWORK_VERSION + FRAMEWORK_VERSION The Microsoft.NETCore.App package version that will be used to run the assemblies. - The Microsoft.NETCore.App package version that will be used to run the assemblies. + Bütünleştirilmiş kodları çalıştırmak için kullanılacak Microsoft.NETCore.App paket sürümü DIRECTORY - DIRECTORY + DİZİN Complete the operation from cache (offline). - Complete the operation from cache (offline). + İşlemi önbellekten (çevrimdışı) tamamlayın. Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. - Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. + İş yüklerini bağımsız değişken tarafından belirtilen önceki bir sürüme güncelleştirin. Kullanılabilir iş yükü geçmişi kayıtlarını görmek için 'dotnet iş yükü geçmişi' komutunu kullanın. Include workloads installed with earlier SDK versions in update. - Include workloads installed with earlier SDK versions in update. + Önceki SDK sürümleriyle yüklenen iş yüklerini güncelleştirmeye ekleyin. Update workloads based on specified rollback definition file. - Update workloads based on specified rollback definition file. + İş yüklerini belirtilen geri alma tanım dosyasına göre güncelleştirin. DUMP_TYPE - DUMP_TYPE + DÖKÜM_TÜRÜ TIMESPAN - TIMESPAN + ZAMAN_ARALIĞI .NET CLI help utility - .NET CLI help utility + .NET CLI yardımcı programı Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. - Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. + Hangi iş yüklerinin yüklü olduğunu değiştirmeden, geçmişte belirtilen iş yükü sürümlerine güncelleştirin. Şu anda yüklü iş yükleri belirtilen geçmiş sürümüyle eşleşecek şekilde güncelleştirilecek. Place project in root of the solution, rather than creating a solution folder. - Place project in root of the solution, rather than creating a solution folder. + Bir çözüm klasörü oluşturmak yerine projeyi çözümün köküne yerleştirin. Allow prerelease workload manifests. - Allow prerelease workload manifests. + Yayın öncesi iş yükü bildirimlerine izin ver. Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Yanlış biçimlendirilmiş ortam değişkenleri: {0} WORKING_DIR - WORKING_DIR + WORKING_DIR The working directory used by the command to execute. - The working directory used by the command to execute. + Yürütülecek komut tarafından kullanılan çalışma dizini. Invalid version string: {0} - Invalid version string: {0} + Geçersiz sürüm dizesi: {0} LEVEL - LEVEL + LEVEL List all projects in a solution file. - List all projects in a solution file. + Bir çözüm dosyasındaki tüm projeleri listeler. Disables checking if the template meets the constraints to be run. - Disables checking if the template meets the constraints to be run. + Şablonun çalıştırılacak kısıtlamaları karşılayıp karşılamadığını kontrol etmeyi devre dışı bırakır. Display solution folder paths. - Display solution folder paths. + Çözüm klasörü yollarını görüntüleyin. Shut down the MSBuild build server. - Shut down the MSBuild build server. + MSBuild derleme sunucusunu kapatır. MANIFEST - MANIFEST + MANIFEST The path to a target manifest file that contains the list of packages to be excluded from the publish step. - The path to a target manifest file that contains the list of packages to be excluded from the publish step. + Yayımlama adımının dışında tutulacak paketlerin listesini içeren bir hedef bildirim dosyasının yolu. Generate a .slnx file from a .sln file. - Generate a .slnx file from a .sln file. + Bir .sln dosyasından .slnx dosyası oluştur. .NET Add Command - .NET Add Command + .NET Add Komutu List references or packages of a .NET project. - List references or packages of a .NET project. + Bir .NET projesinin başvurularını veya paketlerini listeleyin. .NET Remove Command - .NET Remove Command + .NET Remove Komutu Do not build the project before publishing. Implies --no-restore. - Do not build the project before publishing. Implies --no-restore. + Yayımlamadan önce projeyi derlemeyin. --no-restore anlamına gelir. Do not build project-to-project references and only build the specified project. - Do not build project-to-project references and only build the specified project. + Projeden projeye başvuruları derlemez ve yalnızca belirtilen projeyi derler. Do not use incremental building. - Do not use incremental building. + Artımlı derleme kullanmaz. Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Başlangıç bandını veya telif hakkı iletisini görüntüleme. Do not restore the project before building. - Do not restore the project before building. + Projeyi derlemeden önce geri yüklemeyin. OS - OS + İS Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). - Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). + Araç bildirimi seçeneğini (--tool-manifest) belirtme işlemi yalnızca yerel seçeneğiyle (--local veya varsayılan) geçerlidir. The target operating system. - The target operating system. + Hedef işletim sistemi. Specifies a NuGet source to use. - Specifies a NuGet source to use. + Kullanılacak NuGet kaynağını belirtir. Filters the templates based on the template author. - Filters the templates based on the template author. + Şablonları şablonu oluşturana göre filtreler. Filters the templates based on baseline defined in the template. - Filters the templates based on baseline defined in the template. + Şablonda tanımlanan taban çizgisine göre şablonları filtreler. Specifies the columns to display in the output. - Specifies the columns to display in the output. + Çıktıda görüntülenecek sütunları belirtir. Displays all columns in the output. - Displays all columns in the output. + Çıktıdaki tüm sütunları görüntüler. Allows to pause execution in order to attach to the process for debug purposes. - Allows to pause execution in order to attach to the process for debug purposes. + Hata ayıklama amacıyla işleme eklemek için yürütmeyi duraklatmayı sağlar. Sets custom settings location. - Sets custom settings location. + Özel ayarlar konumunu ayarlar. If specified, removes the template cache prior to command execution. - If specified, removes the template cache prior to command execution. + Belirtilmişse, komut yürütmeden önce şablon önbelleğini kaldırır. If specified, resets the settings prior to command execution. - If specified, resets the settings prior to command execution. + Belirtilmişse, komut yürütmeden önce ayarları sıfırlar. If specified, shows the template engine config prior to command execution. - If specified, shows the template engine config prior to command execution. + Belirtilmişse, komut yürütmeden önce şablon altyapısının config değerini görüntüler. If specified, the settings will be not preserved on file system. - If specified, the settings will be not preserved on file system. + Belirtilmişse, ayarlar dosya sisteminde korunmaz. Allows installing template packages from the specified sources even if they would override a template package from another source. - Allows installing template packages from the specified sources even if they would override a template package from another source. + Belirtilen kaynaklardan şablon paketlerinin yüklenmesine, başka bir kaynağa ait şablon paketini geçersiz kılsalar bile izin verir. Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Komutun durup kullanıcı girişini veya eylemini (örneğin, kimlik doğrulamasının tamamlanmasını) beklemesine izin verir . Filters templates based on language. - Filters templates based on language. + Şablonları dile göre filtreler. Location to place the generated output. - Location to place the generated output. + Oluşturulan çıkışın yerleştirileceği konum. Filters the templates based on NuGet package ID. - Filters the templates based on NuGet package ID. + Şablonları NuGet paketi kimliğine göre filtreler. The project that should be used for context evaluation. - The project that should be used for context evaluation. + Bağlam değerlendirmesi için kullanılacak proje. Filters the templates based on the tag. - Filters the templates based on the tag. + Şablonları etikete göre filtreler. Filters templates based on available types. Predefined values are "project" and "item". - Filters templates based on available types. Predefined values are "project" and "item". + Şablonları kullanılabilir türlere göre filtreler. Önceden tanımlı değerler şunlardır: “project” ve “item”. project and item should not be translated Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. - Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. + '--outdated', '--deprecated' ve '--vulnerable' seçenekleri birleştirilemez. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR .NET Core NuGet Package Packer - .NET Core NuGet Package Packer + .NET Core NuGet Paketi Paketleyicisi OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place built packages in. - The output directory to place built packages in. + Derlenen paketlerin yerleştirileceği çıkış dizini. VERSION - VERSION + SÜRÜM The version of the package to create - The version of the package to create + Oluşturulacak paketin sürümü The configuration to use for building the package. The default is 'Release'. - The configuration to use for building the package. The default is 'Release'. + Paketi derlemek için kullanılacak yapılandırma. Varsayılan değer 'Release' olur. Add a NuGet package reference to the project. - Add a NuGet package reference to the project. + Projeye bir NuGet paketi başvurusu ekleyin. FRAMEWORK - FRAMEWORK + ÇERÇEVE Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Başvuruyu yalnızca belirli bir çerçeveyi hedeflerken ekler. Add the reference without performing restore preview and compatibility check. - Add the reference without performing restore preview and compatibility check. + Başvuruyu, geri yükleme önizlemesi ve uyumluluk denetimi gerçekleştirmeden ekler. SOURCE - SOURCE + KAYNAK The NuGet package source to use during the restore. - The NuGet package source to use during the restore. + Geri yükleme sırasında kullanılacak NuGet paketi kaynağı. Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + '{0}' gibi bir paket tanımlayıcısı veya '{0}@{1}' gibi '@' ile ayrılmış paket tanımlayıcısı ve sürümü şeklinde paket başvurusu. Package reference id and version must not be null. - Package reference id and version must not be null. + Paket referans kimliği ve sürümü null olmamalıdır. List all package references of the project or solution. - List all package references of the project or solution. + Proje veya çözümdeki tüm paket başvurularını listeleyin. FRAMEWORK | FRAMEWORK\RID - FRAMEWORK | FRAMEWORK\RID + FRAMEWORK | FRAMEWORK\RID Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. - Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. + Paketlerini görüntülemek için bir çerçeve seçin. Birden fazla çerçeve için seçeneği birden fazla kez kullanın. SOURCE - SOURCE + KAYNAK The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + Daha yeni paketler aranırken kullanılacak NuGet kaynakları. '--outdated', '--deprecated' veya '--vulnerable' seçeneğini gerektirir. Package reference - Package reference + Paket başvurusu Remove a NuGet package reference from the project. - Remove a NuGet package reference from the project. + Bir NuGet paketi başvurusunu projeden kaldırın. The package reference to remove. - The package reference to remove. + Kaldırılacak paket başvurusu. Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. - Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. + Bir arama terimiyle eşleşen paketler için bir veya daha fazla paket kaynağı arar. Kaynak belirtilmezse NuGet.Config’de tanımlanan tüm kaynaklar kullanılır. Include prerelease packages. - Include prerelease packages. + Ön sürüm paketlerini dahil et. SearchTerm - SearchTerm + SearchTerm Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. - Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. + Paket adlarını, açıklamalarını ve etiketlerini filtrelemek için arama terimi. Değişmez değer olarak kullanılır. Örnek: “dotnet paketi araması some.package”. Ayrıca bkz. “--exact-match”. Skip - Skip + Atla Number of results to skip, to allow pagination. Default 0. - Number of results to skip, to allow pagination. Default 0. + Sayfalandırmaya izin vermek için atlanacak sonuç sayısı. Varsayılan: 0. Take - Take + Al Number of results to return. Default 20. - Number of results to return. Default 20. + Döndürülecek sonuç sayısı. Varsayılan: 20. Only print the list of links to download without downloading. - Only print the list of links to download without downloading. + İndirmeden, yalnızca indirilecek bağlantıların listesini yazdırın. @@ -1508,15 +1508,15 @@ If command is specified without the argument, it lists all the template packages dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 - 'dotnet workload search version' has three functions depending on its argument: - 1. If no argument is specified, it outputs a list of the latest released workload versions from this feature band. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 'dotnet workload search version', şu bağımsız değişkene bağlı olarak üç işleve sahiptir: + 1. Eğer bağımsız değişken belirtilmezse, bu özellik bandındaki en son yayınlanan iş yükü sürümlerinin bir listesini döndürür. Sağlanacak sayıyı belirtmek için --take seçeneğini, biçimi değiştirmek için ise --format seçeneğini alır. + Örnek: dotnet workload search version --take 2 --format json [{"workloadVersion":"9.0.201"},{"workloadVersion":"9.0.200.1"}] - 2. If a workload version is provided as an argument, it outputs a table of various workloads and their versions for the specified workload version. Takes the --format option to alter the output format. - Example: + 2. Bağımsız değişken olarak bir iş yükü sürümü verilirse, belirtilen iş yükü sürümü için çeşitli iş yüklerinin ve sürümlerinin bir tablosunu çıkarır. Çıktı biçimini değiştirmek için --format seçeneğini alır. + Örnek: dotnet workload search version 9.0.201 - Workload manifest ID Manifest feature band Manifest Version + İş yükü bildirimi kimliği Bildirim özellik bandı Bildirim Sürümü ------------------------------------------------------------------------------------------------ microsoft.net.workload.emscripten.current 9.0.100-rc.1 9.0.0-rc.1.24430.3 microsoft.net.workload.emscripten.net6 9.0.100-rc.1 9.0.0-rc.1.24430.3 @@ -1532,8 +1532,8 @@ If command is specified without the argument, it lists all the template packages microsoft.net.workload.mono.toolchain.net6 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net7 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net8 9.0.100-rc.1 9.0.0-rc.1.24431.7 - 3. If one or more workloads are provided along with their versions (by joining them with the '@' character), it outputs workload versions that match the provided versions. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 3. Eğer bir veya daha fazla iş yükü ve bunların sürümleri ('@' karakteri ile birleştirilerek) sağlanırsa, sağlanan sürümlerle eşleşen iş yükü sürümlerini döndürür. Sağlanacak sayıyı belirtmek için --take seçeneğini, biçimi değiştirmek için ise --format seçeneğini alır. + Örnek: dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 @@ -1541,775 +1541,775 @@ If command is specified without the argument, it lists all the template packages The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Üzerinde işlem yapılacak proje dosyası. Bir dosya belirtilmezse, komut geçerli dizinde böyle bir dosya arar. Convert a file-based program to a project-based program. - Convert a file-based program to a project-based program. + Dosya tabanlı bir programı proje tabanlı bir programa dönüştür. Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + Dosya sistemini gerçekten değiştirmeden değişiklikleri belirler PROJECT_MANIFEST - PROJECT_MANIFEST + PROJECT_MANIFEST The XML file that contains the list of packages to be stored. - The XML file that contains the list of packages to be stored. + Depolanacak paketlerin listesini içeren XML dosyası. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + İşlem yapılacak proje dosyası veya C# dosyası tabanlı uygulama. Bir dosya belirtilmezse, komut geçerli dizinde bir proje dosyası arar. PROJECT | FILE - PROJECT | FILE + PROJE | DOSYA Publisher for the .NET Platform - Publisher for the .NET Platform + .NET Platformunun yayımcısı. The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. - The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. + Yayımlanacak yapılandırma. NET 8.0 projeleri ve üzeri için varsayılan değer 'Release' iken eski projeler için değer 'Debug' olmalıdır. The target framework to publish for. The target framework has to be specified in the project file. - The target framework to publish for. The target framework has to be specified in the project file. + Yayımlamanın yapılacağı hedef çerçeve. Hedef çerçevenin proje dosyasında belirtilmesi gerekir. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place the published artifacts in. - The output directory to place the published artifacts in. + Yayımlanan yapıtların yerleştirileceği çıkış dizini. The target runtime to publish for. This is used when creating a self-contained deployment. The default is to publish a framework-dependent application. - The target runtime to publish for. This is used when creating a self-contained deployment. -The default is to publish a framework-dependent application. + Yayımlanacak hedef çalışma zamanı. Bu, şirket içinde barındırılan bir dağıtım oluştururken yararlıdır. +Varsayılan durum, çerçeveye bağımlı bir uygulama yayımlamaktır. Shut down the Razor build server. - Shut down the Razor build server. + Razor derleme sunucusunu kapatır. Add a project-to-project reference to the project. - Add a project-to-project reference to the project. + Projeye bir projeden projeye başvuru ekleyin. Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + Başvuruyu yalnızca belirli bir çerçeveyi hedeflerken ekler. The paths to the projects to add as references. - The paths to the projects to add as references. + Başvuru olarak eklenecek projelerin yolları. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH List all project-to-project references of the project. - List all project-to-project references of the project. + Projenin tüm projeden projeye başvurularını listeleyin. Remove a project-to-project reference from the project. - Remove a project-to-project reference from the project. + Bir projeden projeye başvuruyu projeden kaldırın. Remove the reference only when targeting a specific framework. - Remove the reference only when targeting a specific framework. + Yalnızca belirli bir çerçeveyi hedeflerken başvuruyu kaldırır. The paths to the referenced projects to remove. - The paths to the referenced projects to remove. + Kaldırılacak başvurulan projelerin yolları. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Remove one or more projects from a solution file. - Remove one or more projects from a solution file. + Bir çözüm dosyasından bir veya daha fazla projeyi kaldırır. The project paths or names to remove from the solution. - The project paths or names to remove from the solution. + Çözümden kaldırılacak proje yolları veya adları. PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Required command was not provided. - Required command was not provided. + Gerekli komut sağlanmadı. .NET dependency restorer - .NET dependency restorer + .NET bağımlılık geri yükleyicisi Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. - Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. + Hedeflediği çalışma zamanı yüklü değilse, bir .NET aracının daha yeni .NET çalışma zamanı sürümlerine ileri alınmasına izin verin. .NET Run Command - .NET Run Command + .NET Run Komutu The configuration to run for. The default for most projects is 'Debug'. - The configuration to run for. The default for most projects is 'Debug'. + Çalıştırılacak yapılandırma. Çoğu proje için varsayılan, ‘Hata Ayıklama’ seçeneğidir. The target framework to run for. The target framework must also be specified in the project file. - The target framework to run for. The target framework must also be specified in the project file. + Çalıştırılacak hedef çerçeve. Hedef çerçevenin proje dosyasında da belirtilmesi gerekir. The target runtime to run for. - The target runtime to run for. + Çalıştırılacağı hedef çalışma zamanı. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Tanılama çıkışını etkinleştirir. Display the command schema as JSON. - Display the command schema as JSON. + Komut şemasını JSON formatında görüntüle. .NET SDK Command - .NET SDK Command + .NET SDK Komutu .NET SDK Check Command - .NET SDK Check Command + .NET SDK Denetim Komutu The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + '--self-contained' ve '--no-self-contained' seçenekleri birlikte kullanılamaz. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Uygulamanızla birlikte .NET çalışma zamanını yayımladığınızda hedef makinede çalışma zamanının yüklü olması gerekmez. +Varsayılan değer 'false.' Ancak çalışma zamanı tanımlayıcısı belirtildiyse .NET 7 veya altı projeler hedeflenirken varsayılan değer 'true' olur. Skip updating the workload manifests. - Skip updating the workload manifests. + İş yükü bildirimlerinin güncelleştirilmesini atlayın. Skip the optimization phase. - Skip the optimization phase. + İyileştirme aşamasını atlar. Skip signature verification of workload packages and installers. - Skip signature verification of workload packages and installers. + İş yükü paketlerinin ve yükleyicilerin imza doğrulamasını atlayın. Skip creating symbol files which can be used for profiling the optimized assemblies. - Skip creating symbol files which can be used for profiling the optimized assemblies. + İyileştirilen bütünleştirilmiş kodların profilini oluşturmak için kullanılabilen sembol dosyalarını oluşturma işlemini atlar. Recursively add projects' ReferencedProjects to solution - Recursively add projects' ReferencedProjects to solution + Projenin ReferencedProjects öğesini çözüme özyinelemeli olarak ekle .NET modify solution file command - .NET modify solution file command + .NET çözüm dosyasını değiştir komutu The solution file to operate on. If not specified, the command will search the current directory for one. - The solution file to operate on. If not specified, the command will search the current directory for one. + Üzerinde işlem yapılacak çözüm dosyası. Belirtilmezse, komut geçerli dizinde böyle bir dosya arar. SLN_FILE - SLN_FILE + SLN_FILE The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Üzerinde işlem yapılacak proje veya çözüm dosyası. Bir dosya belirtilmezse komut geçerli dizinde dosya arar. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Üzerinde işlem yapılacak proje veya çözüm veya C# (dosya tabanlı program) dosyası. Bir dosya belirtilmezse, komut geçerli dizinde bir proje veya çözüm arayacaktır. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJE | ÇÖZÜM | DOSYA Source - Source + Kaynak The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. - The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. + Aranacak paket kaynağı. Birden çok paket kaynağı aramak için birden çok “--source” seçeneğini geçirebilirsiniz. Örnek: `--source https://api.nuget.org/v3/index.json`. Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. - Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. + .NET Platformu için belirtilen bütünleştirilmiş kodları depolar. Varsayılan olarak, bunlar hedef çalışma zamanı ve çerçeve için iyileştirilir. The target framework to store packages for. The target framework has to be specified in the project file. - The target framework to store packages for. The target framework has to be specified in the project file. + Paketlerin depolanacağı hedef çerçeve. Hedef çerçevenin proje dosyasında belirtilmesi gerekir. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to store the given assemblies in. - The output directory to store the given assemblies in. + Belirtilen bütünleştirilmiş kodların depolanacağı çıkış dizini. The target runtime to store packages for. - The target runtime to store packages for. + Paketlerin geri yükleneceği hedef çalışma zamanı. Specify a temporary directory for this command to download and extract NuGet packages (must be secure). - Specify a temporary directory for this command to download and extract NuGet packages (must be secure). + Bu komut için NuGet paketlerini indirmek ve ayıklamak üzere geçici bir dizin belirtin (güvenli olmalıdır). Displays a summary of what would happen if the given command line were run if it would result in a template creation. - Displays a summary of what would happen if the given command line were run if it would result in a template creation. + Verilen komut satırı bir şablon oluşturma eylemiyle sonuçlanacak durumdayken çalıştırılsaydı olacak şeylerin özetini görüntüler. Forces content to be generated even if it would change existing files. - Forces content to be generated even if it would change existing files. + Mevcut dosyalar değiştirilecek olsaydı bile içerik oluşturmaya zorlar. The name for the output being created. If no name is specified, the name of the output directory is used. - The name for the output being created. If no name is specified, the name of the output directory is used. + Oluşturulan çıkışın adı. Ad belirtilmezse, çıkış dizininin adı kullanılır. Disables checking for the template package updates when instantiating a template. - Disables checking for the template package updates when instantiating a template. + Bir şablon örneği oluşturulurken şablon paketi güncelleştirmelerinin denetlenmesini devre dışı bırakır. OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The configuration to use for running tests. The default for most projects is 'Debug'. - The configuration to use for running tests. The default for most projects is 'Debug'. + Testleri çalıştırmak için kullanılacak yapılandırma. Çoğu proje için varsayılan, ‘Hata Ayıklama’ seçeneğidir. The target framework to run tests for. The target framework must also be specified in the project file. - The target framework to run tests for. The target framework must also be specified in the project file. + Testlerin çalıştırılacağı hedef çerçeve. Hedef çerçevenin proje dosyasında da belirtilmesi gerekir. The target runtime to test for. - The target runtime to test for. + Test için hedef çalışma zamanı. Install or work with tools that extend the .NET experience. - Install or work with tools that extend the .NET experience. + .NET deneyiminizi genişleten araçları yükleyin veya bu araçlarla çalışın. Executes a tool from source without permanently installing it. - Executes a tool from source without permanently installing it. + Aracı kalıcı olarak yüklemeden kaynaktan yürütür. Add an additional NuGet package source to use during installation. - Add an additional NuGet package source to use during installation. + Yükleme sırasında kullanılacak ek bir NuGet paket kaynağı ekler. ADDSOURCE - ADDSOURCE + ADDSOURCE Install global or local tool. Local tools are added to manifest and restored. - Install global or local tool. Local tools are added to manifest and restored. + Genel veya yerel araç yükleyin. Yerel araçlar bildirime eklenir ve geri yüklenir. The NuGet configuration file to use. - The NuGet configuration file to use. + Kullanılacak NuGet yapılandırma dosyası. FILE - FILE + DOSYA The target framework to install the tool for. - The target framework to install the tool for. + Aracın yükleneceği hedef çerçeve. FRAMEWORK - FRAMEWORK + FRAMEWORK Install the tool for the current user. - Install the tool for the current user. + Aracı geçerli kullanıcı için yükle. Install the tool and add to the local tool manifest (default). - Install the tool and add to the local tool manifest (default). + Aracı yükle ve yerel araç bildirimine ekle (varsayılan). Path to the manifest file. - Path to the manifest file. + Bildirim dosyasının yolu. PATH - PATH + YOL Replace all NuGet package sources to use during installation with these. - Replace all NuGet package sources to use during installation with these. + Yükleme sırasında kullanılacak tüm NuGet paket kaynaklarını bu kaynaklarla değiştirin. SOURCE - SOURCE + KAYNAK The directory where the tool will be installed. The directory will be created if it does not exist. - The directory where the tool will be installed. The directory will be created if it does not exist. + Aracın yükleneceği dizin. Dizin yoksa oluşturulur. PATH - PATH + YOL The version of the tool package to install. - The version of the tool package to install. + Yüklenecek araç paketinin sürümü. VERSION - VERSION + SÜRÜM List tools installed globally or locally. - List tools installed globally or locally. + Genel veya yerel olarak yüklü araçları listeleyin. The output format for the list of tools. - The output format for the list of tools. + Araç listesi için çıkış biçimi. List tools installed for the current user. - List tools installed for the current user. + Geçerli kullanıcı için yüklenmiş araçları listeleyin. List the tools installed in the local tool manifest. - List the tools installed in the local tool manifest. + Yerel araç bildiriminde yüklü araçları listeleyin. The NuGet Package Id of the tool to list - The NuGet Package Id of the tool to list + Listelenen aracın NuGet Paket Kimliği PACKAGE_ID - PACKAGE_ID + PACKAGE_ID The directory containing the tools to list. - The directory containing the tools to list. + Listelenecek aracı içeren dizin. Restore tools defined in the local tool manifest. - Restore tools defined in the local tool manifest. + Yerel araç bildiriminde tanımlı araçları geri yükleyin. Path to the manifest file. - Path to the manifest file. + Bildirim dosyasının yolu. Arguments forwarded to the tool - Arguments forwarded to the tool + Araca iletilen bağımsız değişkenler Run a local tool. Note that this command cannot be used to run a global tool. - Run a local tool. Note that this command cannot be used to run a global tool. + Yerel araç çalıştırın. Bu komutun bir genel aracı çalıştırmak için kullanılamayacağını unutmayın. Search dotnet tools in nuget.org - Search dotnet tools in nuget.org + Nuget.org'da dotnet araçlarını arayın Include pre-release packages. - Include pre-release packages. + Ön sürüm paketlerini ekleyin. SEARCH_TERM - SEARCH_TERM + SEARCH_TERM Search term from package id or package description. Require at least one character. - Search term from package id or package description. Require at least one character. + Paket kimliğinden veya paket açıklamasından terim arayın. En az bir karakter gerektirin. Skip - Skip + Atla The number of results to skip, for pagination. - The number of results to skip, for pagination. + Sayfalandırma için atlanacak sonuç sayısı. Take - Take + Al The number of results to return, for pagination. - The number of results to return, for pagination. + Sayfalandırma için döndürülecek sonuç sayısı. Uninstall a global tool or local tool. - Uninstall a global tool or local tool. + Genel veya yerel bir aracı kaldırın. Uninstall the tool from the current user's tools directory. - Uninstall the tool from the current user's tools directory. + Aracı geçerli kullanıcının araçlar dizininden kaldırır. Uninstall the tool and remove it from the local tool manifest. - Uninstall the tool and remove it from the local tool manifest. + Aracı kaldırın ve yerel araç bildiriminden çıkarın. Path to the manifest file. - Path to the manifest file. + Bildirim dosyasının yolu. The directory containing the tool to uninstall. - The directory containing the tool to uninstall. + Kaldırılacak aracı içeren dizin. Update a global or local tool. - Update a global or local tool. + Genel veya yerel bir aracı güncelleştirin. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Tanınmayan komut veya bağımsız değişken: '{0}' Update all tools. - Update all tools. + Tüm araçları güncelleştirin. Controls whether updates should look for workload sets or the latest version of each individual manifest. - Controls whether updates should look for workload sets or the latest version of each individual manifest. + Güncelleştirmelerin iş yükü kümelerini mi yoksa her bir bildirimin en son sürümünü mü araması gerektiğini denetler. Shut down the VB/C# compiler build server. - Shut down the VB/C# compiler build server. + VB/C# derleyicisi derleme sunucusunu kapatır. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Paket bağımsız değişkeni zaten bir sürüm içeriyorsa --version belirtilemez. {Locked="--version"} Verbosity - Verbosity + Ayrıntı düzeyi Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` - Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` + Çıkışta şu miktarda ayrıntı görüntüle: `normal`, `minimal`, `ayrıntılı`. Varsayılan: `normal` Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + MSBuild ayrıntı düzeyini ayarlar. İzin verilen değerler: q[uiet], m[inimal], n[ormal], d[etailed] ve diag[nostic]. Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. - Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. + Ayrıntı düzeyini ayarlayın. İzin verilen değerler şunlardır: q[uiet], m[inimal], n[ormal] ve diag[nostic]. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX Removes workload components that may have been left behind from previous updates and uninstallations. - Removes workload components that may have been left behind from previous updates and uninstallations. + Önceki güncelleştirme ve kaldırma işlemlerinden kalmış olabilecek iş yükü bileşenlerini kaldırır. Install or work with workloads that extend the .NET experience. - Install or work with workloads that extend the .NET experience. + .NET deneyiminizi genişleten iş yüklerini yükleyin veya bu iş yükleriyle çalışın. Modify or display workload configuration values. To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" - Modify or display workload configuration values. -To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" + İş yükü yapılandırması değerlerini değiştirin veya görüntüleyin. +Bir değeri görüntülemek için, bir değer sağlamadan ilgili komut satırı seçeneğini belirtin. Örnek: "dotnet workload config --update-mode" Start the elevated server process to facilitate MSI based installations. - Start the elevated server process to facilitate MSI based installations. + Windows Installer tabanlı yüklemeleri kolaylaştırmak için yükseltilmiş sunucu işlemini başlatın. Shows a history of workload installation actions. - Shows a history of workload installation actions. + İş yükü yükleme eylemlerinin geçmişini gösterir. The NuGet package ID of the workload to install. - The NuGet package ID of the workload to install. + Yüklenecek iş yükünün NuGet paket kimliği. WORKLOAD_ID - WORKLOAD_ID + WORKLOAD_ID The text to search for in the IDs and descriptions of available workloads. - The text to search for in the IDs and descriptions of available workloads. + Kullanılabilir iş yüklerinin kimliklerinde ve açıklamalarında aranacak metin. SEARCH_STRING - SEARCH_STRING + SEARCH_STRING Display information about installed workloads. - Display information about installed workloads. + Yüklü iş yükleriyle ilgili bilgileri görüntüleyin. Install one or more workloads. - Install one or more workloads. + Bir veya daha fazla iş yükünü yükleyin. The NuGet configuration file to use. - The NuGet configuration file to use. + Kullanılacak NuGet yapılandırma dosyası. FILE - FILE + DOSYA The NuGet package source to use during the restore. To specify multiple sources, repeat the option. - The NuGet package source to use during the restore. To specify multiple sources, repeat the option. + Geri yükleme sırasında kullanılacak NuGet paket kaynağı. Birden çok kaynak belirtmek için seçeneği tekrarlayın. SOURCE - SOURCE + KAYNAK The version of the SDK. - The version of the SDK. + SDK sürümü. VERSION - VERSION + SÜRÜM List workloads available. - List workloads available. + Mevcut iş yüklerini listeleyin. Repair workload installations. - Repair workload installations. + İş yükü yüklemelerini onarın. Restore workloads required for a project. - Restore workloads required for a project. + Proje için gereken iş yüklerini geri yükleyin. Search for available workloads. - Search for available workloads. + Kullanılabilir iş yüklerini arayın. A workload version to display or one or more workloads and their versions joined by the '@' character. - A workload version to display or one or more workloads and their versions joined by the '@' character. + Görüntülenecek bir iş yükü sürümü veya bir veya daha fazla iş yükü ve bunların '@' karakteriyle birleştirilen sürümleri. Uninstall one or more workloads. - Uninstall one or more workloads. + Bir veya daha fazla iş yükünü kaldırın. Update all installed workloads. - Update all installed workloads. + Tüm yüklü iş yüklerini güncelleştirin. WORKLOAD_VERSION - WORKLOAD_VERSION + WORKLOAD_VERSION Output workload manifest versions associated with the provided workload version. - Output workload manifest versions associated with the provided workload version. + Sağlanan iş yükü sürümüyle ilişkili iş yükü bildirimi sürümlerinin çıkışını görüntüler. Display the currently installed workload version. - Display the currently installed workload version. + Şu anda yüklü olan iş yükü sürümünü görüntüleyin. Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + "Evet" seçeneğini kullanarak tüm onay istemlerini kabul edin. The friendly name of the data collector to use for the test run. More info here: https://aka.ms/vstest-collect - The friendly name of the data collector to use for the test run. - More info here: https://aka.ms/vstest-collect + Test çalıştırması için kullanılacak veri toplayıcının kolay adı. + Daha fazla bilgi için bkz.: https://aka.ms/vstest-collect DATA_COLLECTOR_NAME - DATA_COLLECTOR_NAME + DATA_COLLECTOR_NAME diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.zh-Hans.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.zh-Hans.xlf index 6bea15d44a6d..2fb9914f2e7a 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.zh-Hans.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.zh-Hans.xlf @@ -4,162 +4,162 @@ Only update advertising manifests. - Only update advertising manifests. + 仅更新广告清单。 Add one or more projects to a solution file. - Add one or more projects to a solution file. + 将一个或多个项目添加到解决方案文件。 The paths to the projects to add to the solution. - The paths to the projects to add to the solution. + 要添加到解决方案的项目路径。 PROJECT_PATH - PROJECT_PATH + PROJECT_PATH The destination solution folder path to add the projects to. - The destination solution folder path to add the projects to. + 要添加项目的目标解决方案文件夹路径。 Allow package downgrade when installing a .NET tool package. - Allow package downgrade when installing a .NET tool package. + 安装 .NET 工具包时允许包降级。 ARCH - ARCH + ARCH The target architecture. - The target architecture. + 目标体系结构。 ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + 工件路径。项目中的所有输出(包括生成、发布和打包输出)都将放到指定路径下的子文件夹中。 .NET Builder - .NET Builder + .NET 生成器 The configuration to use for building the project. The default for most projects is 'Debug'. - The configuration to use for building the project. The default for most projects is 'Debug'. + 用于生成项目的配置。大多数项目的默认值是 "Debug"。 The target framework to build for. The target framework must also be specified in the project file. - The target framework to build for. The target framework must also be specified in the project file. + 要生成的目标框架。必须在项目文件中指定目标框架。 The output directory to place built artifacts in. - The output directory to place built artifacts in. + 要放置生成项目的输出目录。 The target runtime to build for. - The target runtime to build for. + 要生成的目标运行时。 Interact with servers started from a build. - Interact with servers started from a build. + 与从生成版本启动的服务器进行交互。 Shuts down build servers that are started from dotnet. By default, all servers are shut down. - Shuts down build servers that are started from dotnet. By default, all servers are shut down. + 关闭从 dotnet 启动的生成服务器。默认情况下,所有服务器都将关闭。 Cannot specify both the {0} and {1} arguments. - Cannot specify both the {0} and {1} arguments. + 不能同时指定 {0} 和 {1} 参数。 Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + 解决当前运行时标识符失败。 Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + 不支持同时指定“-r |--runtime”和“-a |-arch”选项。 Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + 不支持同时指定“-r |--runtime”和“-os”选项。 Causes clean to remove and uninstall all workload components from all SDK versions. - Causes clean to remove and uninstall all workload components from all SDK versions. + 使清理操作能够从所有 SDK 版本中删除和卸载所有工作负载组件。 .NET Clean Command - .NET Clean Command + .NET 清理命令 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The directory containing the build artifacts to clean. - The directory containing the build artifacts to clean. + 包含要清理的生成工件的目录。 The configuration to clean for. The default for most projects is 'Debug'. - The configuration to clean for. The default for most projects is 'Debug'. + 要清理的配置。大多数项目的默认值是 "Debug"。 Removes artifacts created for file-based apps - Removes artifacts created for file-based apps + 移除为基于文件的应用创建的项目 How many days an artifact folder needs to be unused in order to be removed - How many days an artifact folder needs to be unused in order to be removed + 项目文件夹需要处于未使用状态多少天才能被移除 Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + 确定更改但不实际修改文件系统 The target framework to clean for. The target framework must also be specified in the project file. - The target framework to clean for. The target framework must also be specified in the project file. + 要清理的目标框架。必须在项目文件中指定目标框架。 The target runtime to clean for. - The target runtime to clean for. + 要清理的目标运行时。 Enables collecting crash dump on expected as well as unexpected testhost exit. - Enables collecting crash dump on expected as well as unexpected testhost exit. + 允许在预期和意外的 testhost 退出时收集故障转储。 @@ -174,22 +174,22 @@ The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downlo To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. Implies --blame. - Runs the tests in blame mode and collects a crash dump when the test host exits unexpectedly. This option depends on the version of .NET used, the type of error, and the operating system. + 在追溯模式下运行测试,并在测试主机意外退出时收集故障转储。此选项取决于所使用的 .NET 版本、错误类型和操作系统。 -For exceptions in managed code, a dump will be automatically collected on .NET 5.0 and later versions. It will generate a dump for testhost or any child process that also ran on .NET 5.0 and crashed. Crashes in native code will not generate a dump. This option works on Windows, macOS, and Linux. +对于托管代码中的异常,将在 .NET 5.0 及更高版本上自动收集转储。它将为 testhost 或同样在 .NET 5.0 上运行并出现故障的任何子进程生成转储。本机代码中的故障不会生成转储。此选项适用于 Windows、macOS 和 Linux。 -Crash dumps in native code, or when targetting .NET Framework, or .NET Core 3.1 and earlier versions, can only be collected on Windows, by using Procdump. A directory that contains procdump.exe and procdump64.exe must be in the PATH or PROCDUMP_PATH environment variable. +只能使用 Procdump 在 Windows 上收集本机代码中的故障转储或针对 .NET Framework 或 .NET Core 3.1 及更早版本的故障转储。包含 procdump.exe 和 procdump64.exe 的目录必须位于 PATH 或 PROCDUMP_PATH 环境变量中。 -The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downloads/procdump +可在此处下载工具: https://docs.microsoft.com/sysinternals/downloads/procdump -To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. +若要从在 .NET 5.0 或更高版本上运行的本机应用程序收集故障转储,可以通过将 VSTEST_DUMP_FORCEPROCDUMP 环境变量设置为 1 来强制使用 Procdump。 -Implies --blame. +表示 --blame。 The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. - The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. + 要收集的故障转储的类型。支持的值为 full (默认)和 mini。表示 --blame-crash。 @@ -207,30 +207,30 @@ Example: Timeout the test run when a test takes more than 20 minutes and collect hang dump. dotnet test --blame-hang-timeout 20min - Runs the tests in blame mode. This option is helpful in isolating problematic tests that cause the test host to crash or hang, but it does not create a memory dump by default. + 在追溯模式下运行测试。此选项有助于隔离导致测试主机发生故障或挂起的有问题测试,但默认情况下不会创建内存转储。 -When a crash is detected, it creates an sequence file in TestResults/guid/guid_Sequence.xml that captures the order of tests that were run before the crash. +检测到故障后,它会在 TestResults/guid/guid_Sequence.xml 中创建一个序列文件,用于捕获在发生故障之前运行的测试的顺序。 -Based on the additional settings, hang dump or crash dump can also be collected. +根据其他设置,还可以收集挂起转储或故障转储。 -Example: - Timeout the test run when test takes more than the default timeout of 1 hour, and collect crash dump when the test host exits unexpectedly. - (Crash dumps require additional setup, see below.) +示例: + 当测试用时超过 1 小时的默认超时时间后,测试运行将超时,并在测试主机意外退出时收集故障转储。 + (故障转储需要其他设置,请参阅下文。) dotnet test --blame-hang --blame-crash -Example: - Timeout the test run when a test takes more than 20 minutes and collect hang dump. +示例: + 当测试用时超过 20 分钟时,测试运行将超时并收集挂起转储。 dotnet test --blame-hang-timeout 20min Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. - Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. + 在追溯模式下运行测试,并在测试超出给定超时的情况下启用收集挂起转储。 The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. - The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. + 要收集的故障转储的类型。支持的值为 full (默认值)、mini 和 none。使用“none”时,测试主机将在超时时终止,但不会收集任何转储。表示 --blame-hang。 @@ -238,67 +238,67 @@ Example: The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, For MSTest before 2.2.4, the timeout is used for all testcases. - Per-test timeout, after which hang dump is triggered and the testhost process is terminated. Default is 1h. -The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. -When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, -For MSTest before 2.2.4, the timeout is used for all testcases. + 每测试超时,在该超时后触发挂起转储并终止 testhost 进程。默认值为 1h。 +超时值采用以下格式指定: 1.5h / 90m / 5400s / 5400000ms。如果未使用任何单位(例如 5400000),则假定该值以毫秒为单位。 +在与数据驱动测试一起使用时,超时行为取决于所使用的测试适配器。对于 xUnit、NUnit 和 MSTest 2.2.4+,将在每个测试用例后续订超时, +对于 2.2.4 之前的 MSTest,超时用于所有测试用例。 CONFIG_FILE - CONFIG_FILE + CONFIG_FILE The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + 要使用的 NuGet 配置文件的路径。需要 "--outdated"、"--deprecated" 或 "--vulnerable" 选项。 Specifies a testconfig.json file. - Specifies a testconfig.json file. + 指定 testconfig.json 文件。 FILE - FILE + FILE The NuGet configuration file to use. - The NuGet configuration file to use. + 要使用的 NuGet 配置文件。 CONFIG_FILE - CONFIG_FILE + CONFIG_FILE Use current runtime as the target runtime. - Use current runtime as the target runtime. + 将当前运行时用作目标运行时。 Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. - Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. + 列出已被弃用的包。不能与 "--vulnerable" 或 "--outdated" 选项结合使用。 Output directory of the diagnostic logging. If not specified the file will be generated inside the default 'TestResults' directory. - Output directory of the diagnostic logging. -If not specified the file will be generated inside the default 'TestResults' directory. + 诊断日志记录的输出目录。 +如果未指定,则会在默认的 "TestResults" 目录中生成该文件。 DIAGNOSTIC_DIR - DIAGNOSTIC_DIR + DIAGNOSTIC_DIR Prevent restoring multiple projects in parallel. - Prevent restoring multiple projects in parallel. + 防止并行还原多个项目。 @@ -312,11 +312,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + 设置环境变量的值。 +如果该变量不存在,则创建它;如果它已存在,则替代它。 +可多次指定此参数来提供多个变量。 -Examples: +示例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -326,74 +326,74 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" EXPRESSION - EXPRESSION + EXPRESSION Path to the file-based program. - Path to the file-based program. + 基于文件的程序的路径。 Force all dependencies to be resolved even if the last restore was successful. This is equivalent to deleting project.assets.json. - Force all dependencies to be resolved even if the last restore was successful. -This is equivalent to deleting project.assets.json. + 强制解析所有依赖项,即使最后一次还原已经成功。 +这等效于删除 project.assets.json。 Specifies the output format type for the list packages command. - Specifies the output format type for the list packages command. + 指定列表包命令的输出格式类型。 Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. + 在搜索较新的包时,仅考虑具有匹配的主要版本号的包。需要 "--outdated" 选项。 Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. + 在搜索较新的包时,仅考虑具有匹配的主要和次要版本号的包。需要 "--outdated" 选项。 Treat package source failures as warnings. - Treat package source failures as warnings. + 将包源失败视为警告。 Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. - Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. + 包括 PDB 和源文件。源文件放入 nuget 结果包的“src”文件夹中。 Include packages with symbols in addition to regular packages in output directory. - Include packages with symbols in addition to regular packages in output directory. + 除了输出目录中的常规包之外,还包括带符号的包。 List the discovered tests instead of running the tests. - List the discovered tests instead of running the tests. + 列出已发现的测试,而不是运行测试。 LOCK_FILE_PATH - LOCK_FILE_PATH + LOCK_FILE_PATH Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. - Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. + 写入项目锁定文件的输出位置。默认情况下, 此位置为 "PROJECT_ROOT\packages.lock.json"。 Don't allow updating project lock file. - Don't allow updating project lock file. + 不允许更新项目锁定文件。 @@ -402,223 +402,223 @@ This is equivalent to deleting project.assets.json. Log in trx format using a unique file name: --logger trx Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" See https://aka.ms/vstest-report for more information on logger arguments. - The logger to use for test results. - Examples: - Log in trx format using a unique file name: --logger trx - Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" - See https://aka.ms/vstest-report for more information on logger arguments. + 要用于测试结果的记录器。 + 示例: + 使用唯一的文件名登录 trx 格式: --记录器 trx + 使用指定的文件名登录 trx 格式: --记录器 "trx;LogFileName=<TestResults.trx>" + 有关记录器参数的详细信息,请参阅 https://aka.ms/vstest-report。 LOGGER - LOGGER + LOGGER The max number of test modules that can run in parallel. - The max number of test modules that can run in parallel. + 可并行运行的测试模块的最大数目。 Specifies the minimum number of tests that are expected to run. - Specifies the minimum number of tests that are expected to run. + 指定预期运行的最小测试数。 Disable ANSI output. - Disable ANSI output. + 禁用 ANSI 输出。 Do not build the project before testing. Implies --no-restore. - Do not build the project before testing. Implies --no-restore. + 测试之前不要生成项目。Implies --no-restore. Do not build the project before packing. Implies --no-restore. - Do not build the project before packing. Implies --no-restore. + 打包之前不要生成项目。Implies --no-restore. Do not cache packages and http requests. - Do not cache packages and http requests. + 不要缓存包和 HTTP 请求。 Do not restore project-to-project references and only restore the specified project. - Do not restore project-to-project references and only restore the specified project. + 请勿还原项目到项目引用,仅还原指定项目。 Disable Http Caching for packages. - Disable Http Caching for packages. + 禁用包的 Http 缓存。 Disable progress reporting. - Disable progress reporting. + 禁用进度报告。 Do not restore before running the command. - Do not restore before running the command. + 不要在运行命令之前还原。 NUMBER - NUMBER + NUMBER Force conversion even if there are malformed directives. - Force conversion even if there are malformed directives. + 即使存在格式不正确的指令,也强制执行转换。 Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. - Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. + 列出具有较新版本的包。不能与 "--deprecated" 或 "--vulnerable" 选项结合使用。 The output directory to place built artifacts in. - The output directory to place built artifacts in. + 要放置生成项目的输出目录。 Specifies the version of machine-readable output. Requires the '--format json' option. - Specifies the version of machine-readable output. Requires the '--format json' option. + 指定计算机可读输出的版本。需要“--format json”选项。 PACKAGE_NAME - PACKAGE_NAME + PACKAGE_NAME PACKAGE_DIR - PACKAGE_DIR + PACKAGE_DIR The directory to restore packages to. - The directory to restore packages to. + 要将包还原到其中的目录。 PACKAGES_DIR - PACKAGES_DIR + PACKAGES_DIR The directory to restore packages to. - The directory to restore packages to. + 要将包还原到其中的目录。 LOG_FILE - LOG_FILE + LOG_FILE RESULTS_DIR - RESULTS_DIR + RESULTS_DIR Enable verbose logging to the specified file. - Enable verbose logging to the specified file. + 启用对指定文件的详细记录。 Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. - Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. + 在搜索较新的包时,请考虑使用具有预发行版本的包。需要 "--outdated" 选项。 Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + 定义要运行的项目文件的路径。使用项目文件的路径或包含项目文件的目录的路径。如果未指定,则默认为当前目录。 Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + 定义要测试的项目或解决方案文件的路径。使用项目文件的路径或包含项目文件的目录的路径。如果未指定,则默认为当前目录。 PROJECT_OR_SOLUTION_PATH - PROJECT_OR_SOLUTION_PATH + PROJECT_OR_SOLUTION_PATH Forces restore to reevaluate all dependencies even if a lock file already exists. - Forces restore to reevaluate all dependencies even if a lock file already exists. + 即使锁定文件已存在,也强制还原以重新评估所有依赖项。 The directory where the test results will be placed. The specified directory will be created if it does not exist. - The directory where the test results will be placed. -The specified directory will be created if it does not exist. + 要放置测试结果的目录。 +若不存在,将创建指定目录。 ROOT_PATH - ROOT_PATH + ROOT_PATH RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER The target runtime to restore packages for. - The target runtime to restore packages for. + 要还原包的目标运行时。 Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. - Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. + 在包中设置可用标志。有关详细信息,请参阅 https://aka.ms/nupkgservicing。 The settings file to use when running tests. - The settings file to use when running tests. + 运行测试时要使用的设置文件。 SETTINGS_FILE - SETTINGS_FILE + SETTINGS_FILE Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. - Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. + 定义要测试的解决方案文件的路径。使用解决方案文件的路径或包含解决方案文件的目录的路径。如果未指定,则默认为当前目录。 SOLUTION_PATH - SOLUTION_PATH + SOLUTION_PATH SOURCE - SOURCE + SOURCE The NuGet package source to use for the restore. - The NuGet package source to use for the restore. + 用于还原的 NuGet 包源。 ADAPTER_PATH - ADAPTER_PATH + ADAPTER_PATH The path to the custom adapters to use for the test run. - The path to the custom adapters to use for the test run. + 自定义适配器用于测试运行的路径。 @@ -629,18 +629,18 @@ The specified directory will be created if it does not exist. Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" See https://aka.ms/vstest-filtering for more information on filtering support. - Run tests that match the given expression. - Examples: - Run tests with priority set to 1: --filter "Priority = 1" - Run a test with the specified full name: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" - Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" - See https://aka.ms/vstest-filtering for more information on filtering support. + 运行与给定表达式匹配的测试。 + 示例: + 运行优先级设置为 1 的测试: --filter "Priority = 1" + 运行具有指定全名的测试: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" + 运行包含指定名称的测试: --filter "FullyQualifiedName~Namespace.Class" + 有关筛选支持的详细信息,请参阅 https://aka.ms/vstest-filtering。 EXPRESSION - EXPRESSION + EXPRESSION @@ -655,12 +655,12 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + 设置环境变量的值。 +如果该变量不存在,则创建它;如果它已存在,则替代它。 +这将在隔离的进程中强制运行测试。 +可多次指定此参数来提供多个变量。 -Examples: +示例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -670,812 +670,812 @@ Examples: Run tests for the specified test modules. - Run tests for the specified test modules. + 对指定的测试模块运行测试。 The test modules have the specified root directory. - The test modules have the specified root directory. + 测试模块具有指定的根目录。 Verbosity of test output. - Verbosity of test output. + 测试输出的详细程度。 Lists transitive and top-level packages. - Lists transitive and top-level packages. + 列出可传递的包和顶级包。 Test runner '{0}' is not supported. - Test runner '{0}' is not supported. + 不支持测试运行器“{0}”。 Enables project lock file to be generated and used with restore. - Enables project lock file to be generated and used with restore. + 允许生成项目锁定文件并与还原一起使用。 VERSION - VERSION + VERSION The version of the package to add. - The version of the package to add. + 要添加的包版本。 Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + 设置生成项目时使用的 $(VersionSuffix) 属性的值。 Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. - Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. + 列出具有已知漏洞的包。不能与 "--deprecated" 或 "--outdated" 选项结合使用。 The SDK command to launch online help for. - The SDK command to launch online help for. + 要启动联机帮助的 SDK 命令。 COMMAND_NAME - COMMAND_NAME + COMMAND_NAME Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + 允许命令停止和等待用户输入或操作(例如,用以完成身份验证)。 The command name of the tool to run. - The command name of the tool to run. + 要运行的工具的命令名称。 COMMAND_NAME - COMMAND_NAME + COMMAND_NAME The device identifier to use for running the application. - The device identifier to use for running the application. + 用于运行该应用程序的设备的标识符。 DEVICE - DEVICE + 设备 The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). - The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). + 要运行的基于文件的应用的路径(如果当前目录中没有项目,也可作为第一个参数传递)。 FILE_PATH - FILE_PATH + FILE_PATH The name of the launch profile (if any) to use when launching the application. - The name of the launch profile (if any) to use when launching the application. + 启动应用程序时使用的启动配置文件名称(如果有). LAUNCH_PROFILE - LAUNCH_PROFILE + LAUNCH_PROFILE List available devices for running the application. - List available devices for running the application. + 列出可用于运行该应用程序的设备。 Do not build the project before running. Implies --no-restore. - Do not build the project before running. Implies --no-restore. + 运行之前不要生成项目。Implies --no-restore. {Locked="--no-restore"} Skip up to date checks and always build the program before running. - Skip up to date checks and always build the program before running. + 跳过最新检查,并始终在运行之前生成程序。 Do not use arguments specified in launch profile to run the application. - Do not use arguments specified in launch profile to run the application. + 不使用启动配置文件中指定的参数来运行应用程序。 Do not attempt to use launchSettings.json or [app].run.json to configure the application. - Do not attempt to use launchSettings.json or [app].run.json to configure the application. + 请勿尝试使用 launchSettings.json 或 [app].run.json 来配置应用程序。 {Locked="launchSettings.json"}{Locked=".run.json"} PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + 允许安装预发行包。 Creates an alias for instantiate command with a certain set of arguments. - Creates an alias for instantiate command with a certain set of arguments. + 使用一组参数创建实例化命令的别名。 Displays defined aliases. - Displays defined aliases. + 显示定义的别名。 Creates or displays defined aliases. - Creates or displays defined aliases. + 创建或显示定义的别名。 Provides the details for specified template package. The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. - - Provides the details for specified template package. - The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. + + 提供指定模板包的详细信息。 + 该命令将检查本地是否安装了相应包;如果未找到,它会搜索所配置的 NuGet 源。 NuGet package ID or path to folder or NuGet package to install. To install the NuGet package of certain version, use <package ID>::<version>. - NuGet package ID or path to folder or NuGet package to install. -To install the NuGet package of certain version, use <package ID>::<version>. + 要安装的 NuGet 包的 NuGet 包 ID 或文件夹路径。 +若要安装特定版本的 NuGet 包,请使用 <package ID>::<version>。 Installs a template package. - Installs a template package. + 安装模板包。 A short name of the template to create. - A short name of the template to create. + 要创建的模板的短名称。 Template specific options to use. - Template specific options to use. + 要使用的模板特定选项。 Instantiates a template with given short name. An alias of 'dotnet new <template name>'. - Instantiates a template with given short name. An alias of 'dotnet new <template name>'. + 实例化具有给定短名称的模板。"dotnet new <template name>" 的别名。 do not translate 'dotnet new <template name>' Checks the currently installed template packages for updates. - Checks the currently installed template packages for updates. + 检查当前安装的模板包是否有更新。 If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + 如果指定,将仅显示与名称匹配的模板。 Lists templates containing the specified template name. If no name is specified, lists all templates. - Lists templates containing the specified template name. If no name is specified, lists all templates. + 列出包含指定模板名称的模板。如果未指定任何名称,则列出所有模板。 Template Instantiation Commands for .NET CLI. - Template Instantiation Commands for .NET CLI. + .NET CLI 的模板实例化命令。 If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + 如果指定,将仅显示与名称匹配的模板。 Searches for the templates on NuGet.org. - Searches for the templates on NuGet.org. + 在 NuGet.org 上搜索模板。 NuGet package ID (without version) or path to folder to uninstall. If command is specified without the argument, it lists all the template packages installed. - NuGet package ID (without version) or path to folder to uninstall. -If command is specified without the argument, it lists all the template packages installed. + 要卸载的文件夹的 NuGet 包 ID (没有版本)或路径。 +如果在不使用参数的情况下指定命令,则它将列出安装的所有模板包。 Uninstalls a template package. - Uninstalls a template package. + 卸载模板包。 Checks the currently installed template packages for update, and install the updates. - Checks the currently installed template packages for update, and install the updates. + 检查当前安装的模板包是否有更新,然后安装更新。 Only checks for updates and display the template packages to be updated without applying update. - Only checks for updates and display the template packages to be updated without applying update. + 仅检查更新并显示要更新的模板包,而不应用更新。 Unrecognized command or argument(s): {0}. - Unrecognized command or argument(s): {0}. + 未识别命令或参数: {0}。 {0} - wrong token or comma-separated tokens (if multiple). Each token is enclosed with single quotes: 'token'. FRAMEWORK - FRAMEWORK + FRAMEWORK ConfigFile - ConfigFile + ConfigFile The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior - The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior + NuGet 配置文件。如果指定,将仅使用此文件中的设置。如果未指定,则将使用当前目录中的配置文件的层次结构。有关详细信息,请参阅 https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior CONFIGURATION - CONFIGURATION + CONFIGURATION DUMP_TYPE - DUMP_TYPE + DUMP_TYPE Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed - Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed + 如果在工具安装期间找不到工具清单,请创建一个工具清单。若要了解如何查找清单,请参阅 https://aka.ms/dotnet/tools/create-manifest-if-needed Use current runtime as the target runtime. - Use current runtime as the target runtime. + 将当前运行时用作目标运行时。 Show detail result of the query. - Show detail result of the query. + 显示查询的详细结果。 Package identifier - Package identifier + 包标识符 Enables diagnostic output. - Enables diagnostic output. + 启用诊断输出。 Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + 强制命令忽略任何永久性生成服务器。 Disables evaluating project context using MSBuild. - Disables evaluating project context using MSBuild. + 禁用使用 MSBuild 评估项目上下文。 If present, prevents templates bundled in the SDK from being presented. - If present, prevents templates bundled in the SDK from being presented. + 如果存在,则阻止显示捆绑在 SDK 中的模板。 .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. + 适用于 Microsoft.Testing.Platform 的 .NET 测试命令(已通过 "global.json" 文件选择加入)。此命令仅支持 Microsoft.Testing.Platform,不支持 VSTest。有关详细信息,请参阅 https://aka.ms/dotnet-test。 {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. + 适用于 VSTest 的 .NET 测试命令。若要使用 Microsoft.Testing.Platform,请通过 global.json 选择加入基于 Microsoft.Testing.Platform 的命令。有关详细信息,请参阅 https://aka.ms/dotnet-test。 {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} DIRECTORY - DIRECTORY + 目录 Download packages needed to install a workload to a folder that can be used for offline installation. - Download packages needed to install a workload to a folder that can be used for offline installation. + 将安装工作负载所需的程序包下载到可用于脱机安装的文件夹中。 Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. - Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. + 要求搜索词与包的名称完全匹配。导致忽略`--take`和`--skip`选项。 The file-based app to operate on. - The file-based app to operate on. + 要操作的基于文件的应用。 Format - Format + 格式 Format the output accordingly. Either `table`, or `json`. The default value is `table`. - Format the output accordingly. Either `table`, or `json`. The default value is `table`. + 相应地设置输出格式。`table`或`json`。默认值为`table`。 Changes the format of outputted workload versions. Can take 'json' or 'list' - Changes the format of outputted workload versions. Can take 'json' or 'list' + 更改输出的工作负载版本的格式。可以使用 "json" 或 "list" FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + 将应用程序发布为依赖框架的应用程序。目标计算机上必须安装兼容的 .NET 运行时才能运行该应用程序。 FRAMEWORK_VERSION - FRAMEWORK_VERSION + FRAMEWORK_VERSION The Microsoft.NETCore.App package version that will be used to run the assemblies. - The Microsoft.NETCore.App package version that will be used to run the assemblies. + 要用于运行程序集的 Microsoft.NETCore.App 包版本。 DIRECTORY - DIRECTORY + 目录 Complete the operation from cache (offline). - Complete the operation from cache (offline). + 从缓存中完成操作(脱机)。 Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. - Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. + 将工作负载更新为参数指定的以前版本。使用 "dotnet workload history" 查看可用的工作负载历史记录。 Include workloads installed with earlier SDK versions in update. - Include workloads installed with earlier SDK versions in update. + 包括更新期间使用更早的 SDK 版本安装的工作负荷。 Update workloads based on specified rollback definition file. - Update workloads based on specified rollback definition file. + 基于指定的回滚定义文件更新工作负载。 DUMP_TYPE - DUMP_TYPE + DUMP_TYPE TIMESPAN - TIMESPAN + TIMESPAN .NET CLI help utility - .NET CLI help utility + .NET CLI 帮助实用程序 Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. - Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. + 更新到历史记录中指定的工作负载版本,而不更改安装的工作负载。当前安装的工作负载将更新为与指定的历史记录版本匹配。 Place project in root of the solution, rather than creating a solution folder. - Place project in root of the solution, rather than creating a solution folder. + 将项目放在解决方案的根目录下,而不是创建解决方案文件夹。 Allow prerelease workload manifests. - Allow prerelease workload manifests. + 允许预发布工作负载清单。 Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + 环境变量格式不正确: {0} WORKING_DIR - WORKING_DIR + WORKING_DIR The working directory used by the command to execute. - The working directory used by the command to execute. + 由要执行的命令使用的工作目录。 Invalid version string: {0} - Invalid version string: {0} + 版本字符串 {0} 无效 LEVEL - LEVEL + LEVEL List all projects in a solution file. - List all projects in a solution file. + 列出解决方案文件中的所有项目。 Disables checking if the template meets the constraints to be run. - Disables checking if the template meets the constraints to be run. + 禁用检查模板是否满足要运行的约束。 Display solution folder paths. - Display solution folder paths. + 显示解决方案文件夹路径。 Shut down the MSBuild build server. - Shut down the MSBuild build server. + 关闭 MSBuild 生成服务器。 MANIFEST - MANIFEST + MANIFEST The path to a target manifest file that contains the list of packages to be excluded from the publish step. - The path to a target manifest file that contains the list of packages to be excluded from the publish step. + 指向目标清单文件的路径,该文件包含要通过发布步骤执行的包的列表。 Generate a .slnx file from a .sln file. - Generate a .slnx file from a .sln file. + 根据 .sln 文件生成 .slnx 文件。 .NET Add Command - .NET Add Command + .NET 添加命令 List references or packages of a .NET project. - List references or packages of a .NET project. + 列出 .NET 项目的引用或包。 .NET Remove Command - .NET Remove Command + .NET 删除命令 Do not build the project before publishing. Implies --no-restore. - Do not build the project before publishing. Implies --no-restore. + 发布之前不要生成项目。Implies --no-restore. Do not build project-to-project references and only build the specified project. - Do not build project-to-project references and only build the specified project. + 请勿生成项目到项目引用,仅生成指定项目。 Do not use incremental building. - Do not use incremental building. + 请勿使用增量生成。 Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + 不显示启动版权标志或版权消息。 Do not restore the project before building. - Do not restore the project before building. + 生成前请勿还原项目。 OS - OS + OS Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). - Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). + 指定工具清单选项(--tool-manifest)仅对本地选项(--local 或默认值)有效。 The target operating system. - The target operating system. + 目标操作系统。 Specifies a NuGet source to use. - Specifies a NuGet source to use. + 指定要使用的 NuGet 源。 Filters the templates based on the template author. - Filters the templates based on the template author. + 根据模板作者筛选模板。 Filters the templates based on baseline defined in the template. - Filters the templates based on baseline defined in the template. + 根据模板中定义的基线筛选模板。 Specifies the columns to display in the output. - Specifies the columns to display in the output. + 指定要在输出中显示的列。 Displays all columns in the output. - Displays all columns in the output. + 显示输出中的所有列。 Allows to pause execution in order to attach to the process for debug purposes. - Allows to pause execution in order to attach to the process for debug purposes. + 允许暂停执行,以便附加到进程以进行调试。 Sets custom settings location. - Sets custom settings location. + 设置自定义设置位置。 If specified, removes the template cache prior to command execution. - If specified, removes the template cache prior to command execution. + 如果指定,则在执行命令之前删除模板缓存。 If specified, resets the settings prior to command execution. - If specified, resets the settings prior to command execution. + 如果指定,则在执行命令之前重置设置。 If specified, shows the template engine config prior to command execution. - If specified, shows the template engine config prior to command execution. + 如果指定,则在执行命令之前显示模板引擎配置。 If specified, the settings will be not preserved on file system. - If specified, the settings will be not preserved on file system. + 如果指定,则不会在文件系统上保留这些设置。 Allows installing template packages from the specified sources even if they would override a template package from another source. - Allows installing template packages from the specified sources even if they would override a template package from another source. + 允许从指定的源安装模板包,即使它们将替代另一个源中的模板包。 Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + 允许命令停止和等待用户输入或操作(例如,用以完成身份验证)。 Filters templates based on language. - Filters templates based on language. + 根据语言筛选模板。 Location to place the generated output. - Location to place the generated output. + 要放置生成的输出的位置。 Filters the templates based on NuGet package ID. - Filters the templates based on NuGet package ID. + 根据 NuGet 包 ID 筛选模板。 The project that should be used for context evaluation. - The project that should be used for context evaluation. + 应用于上下文评估的项目。 Filters the templates based on the tag. - Filters the templates based on the tag. + 根据标记筛选模板。 Filters templates based on available types. Predefined values are "project" and "item". - Filters templates based on available types. Predefined values are "project" and "item". + 根据可用类型筛选模板。预定义值为“项目”和“项”。 project and item should not be translated Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. - Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. + 不能将 "--outdated'"、"--deprecated" 和 "--vulnerable" 选项结合使用。 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR .NET Core NuGet Package Packer - .NET Core NuGet Package Packer + .NET Core NuGet 包打包程序 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place built packages in. - The output directory to place built packages in. + 要放置生成包的输出目录。 VERSION - VERSION + 版本 The version of the package to create - The version of the package to create + 要创建的包版本 The configuration to use for building the package. The default is 'Release'. - The configuration to use for building the package. The default is 'Release'. + 用于生成包的配置。默认值为 "Release"。 Add a NuGet package reference to the project. - Add a NuGet package reference to the project. + 向项目添加 NuGet 包引用。 FRAMEWORK - FRAMEWORK + FRAMEWORK Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + 仅针对特定框架添加引用。 Add the reference without performing restore preview and compatibility check. - Add the reference without performing restore preview and compatibility check. + 在没有执行还原预览和兼容性检查的情况下添加引用。 SOURCE - SOURCE + SOURCE The NuGet package source to use during the restore. - The NuGet package source to use during the restore. + 要在还原期间使用的 NuGet 包源。 Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + 包引用的格式为包标识符,如 ‘{0}’,或由 ‘@’ 分隔的包标识符和版本,如 ‘{0}@{1}’。 Package reference id and version must not be null. - Package reference id and version must not be null. + 包引用 ID 和版本不得为 null。 List all package references of the project or solution. - List all package references of the project or solution. + 列出项目或解决方案的所有包引用。 FRAMEWORK | FRAMEWORK\RID - FRAMEWORK | FRAMEWORK\RID + FRAMEWORK | FRAMEWORK\RID Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. - Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. + 选择一个框架来显示其包。对多个框架多次使用该选项。 SOURCE - SOURCE + SOURCE The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + 搜索较新的包时要使用的 NuGet 源。需要 "--outdated"、"--deprecated" 或 "--vulnerable" 选项。 Package reference - Package reference + 包引用 Remove a NuGet package reference from the project. - Remove a NuGet package reference from the project. + 从项目中删除 NuGet 包引用。 The package reference to remove. - The package reference to remove. + 要删除的包引用。 Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. - Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. + 在一个或多个包源中搜索与搜索词匹配的包。如果未指定任何源,则会使用 NuGet.Config 中定义的所有源。 Include prerelease packages. - Include prerelease packages. + 包括预发行包。 SearchTerm - SearchTerm + SearchTerm Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. - Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. + 搜索词以筛选包名称、说明和标记。用作文本值。示例: `dotnet package search some.package`。另请参阅`--exact-match`。 Skip - Skip + 跳过 Number of results to skip, to allow pagination. Default 0. - Number of results to skip, to allow pagination. Default 0. + 要跳过的结果数,以允许进行分页。默认0。 Take - Take + Take Number of results to return. Default 20. - Number of results to return. Default 20. + 要返回的结果数。默认: 20。 Only print the list of links to download without downloading. - Only print the list of links to download without downloading. + 仅打印要下载的链接的列表,而不下载列表。 @@ -1508,15 +1508,15 @@ If command is specified without the argument, it lists all the template packages dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 - 'dotnet workload search version' has three functions depending on its argument: - 1. If no argument is specified, it outputs a list of the latest released workload versions from this feature band. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 'dotnet workload search version' 包含三个函数,具体取决于其参数: + 1. 如果未指定任何参数,它将输出此功能区段中最新发布的工作负载版本的列表。使用 --take 选项指定要提供的数量,使用 --format 来更改格式。 + 示例: dotnet workload search version --take 2 --format json [{"workloadVersion":"9.0.201"},{"workloadVersion":"9.0.200.1"}] - 2. If a workload version is provided as an argument, it outputs a table of various workloads and their versions for the specified workload version. Takes the --format option to alter the output format. - Example: + 2. 如果将工作负载版本作为参数提供,则会输出指定工作负载版本的各种工作负载及其版本的表。使用 --format 选项更改输出格式。 + 示例: dotnet workload search version 9.0.201 - Workload manifest ID Manifest feature band Manifest Version + 工作负载清单 ID 清单功能区段 清单版本 ------------------------------------------------------------------------------------------------ microsoft.net.workload.emscripten.current 9.0.100-rc.1 9.0.0-rc.1.24430.3 microsoft.net.workload.emscripten.net6 9.0.100-rc.1 9.0.0-rc.1.24430.3 @@ -1532,8 +1532,8 @@ If command is specified without the argument, it lists all the template packages microsoft.net.workload.mono.toolchain.net6 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net7 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net8 9.0.100-rc.1 9.0.0-rc.1.24431.7 - 3. If one or more workloads are provided along with their versions (by joining them with the '@' character), it outputs workload versions that match the provided versions. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 3. 如果提供了一个或多个工作负载及其版本(使用 '@' 字符联接它们),则会输出与提供的版本匹配的工作负载版本。使用 --take 选项指定要提供的数量,使用 --format 来更改格式。 + 示例: dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 @@ -1541,775 +1541,775 @@ If command is specified without the argument, it lists all the template packages The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + 要操作的项目文件。如果未指定文件,则命令会在当前目录下搜索一个文件。 Convert a file-based program to a project-based program. - Convert a file-based program to a project-based program. + 将基于文件的程序转换为基于项目的程序。 Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + 确定更改但不实际修改文件系统 PROJECT_MANIFEST - PROJECT_MANIFEST + PROJECT_MANIFEST The XML file that contains the list of packages to be stored. - The XML file that contains the list of packages to be stored. + 包含要存储的包列表的 XML 文件。 The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + 要操作的项目文件或基于 C# 文件的应用。如果未指定文件,则该命令将在当前目录中搜索项目文件。 PROJECT | FILE - PROJECT | FILE + 项目|文件 Publisher for the .NET Platform - Publisher for the .NET Platform + 适用于 .NET 平台的发布服务器 The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. - The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. + 发布所对应的配置。对于 NET 8.0 及更高版本的项目,默认值为 "Release",但对于较低版本的项目,默认值为 "Debug"。 The target framework to publish for. The target framework has to be specified in the project file. - The target framework to publish for. The target framework has to be specified in the project file. + 要发布的目标框架。必须在项目文件中指定目标框架。 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place the published artifacts in. - The output directory to place the published artifacts in. + 要放置已发布项目的输出目录。 The target runtime to publish for. This is used when creating a self-contained deployment. The default is to publish a framework-dependent application. - The target runtime to publish for. This is used when creating a self-contained deployment. -The default is to publish a framework-dependent application. + 要发布的目标运行时。在创建自包含部署时使用。 +默认情况下发布依赖于框架的应用程序。 Shut down the Razor build server. - Shut down the Razor build server. + 关闭 Razor 生成服务器。 Add a project-to-project reference to the project. - Add a project-to-project reference to the project. + 向项目添加项目到项目引用。 Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + 仅针对特定框架添加引用。 The paths to the projects to add as references. - The paths to the projects to add as references. + 要添加为引用的项目路径。 PROJECT_PATH - PROJECT_PATH + PROJECT_PATH List all project-to-project references of the project. - List all project-to-project references of the project. + 列出项目的所有项目到项目引用。 Remove a project-to-project reference from the project. - Remove a project-to-project reference from the project. + 从项目中删除项目到项目引用。 Remove the reference only when targeting a specific framework. - Remove the reference only when targeting a specific framework. + 仅针对特定框架删除引用。 The paths to the referenced projects to remove. - The paths to the referenced projects to remove. + 要删除的引用项目的路径。 PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Remove one or more projects from a solution file. - Remove one or more projects from a solution file. + 从解决方案文件中删除一个或多个项目。 The project paths or names to remove from the solution. - The project paths or names to remove from the solution. + 要从解决方案中移除的项目路径或名称。 PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Required command was not provided. - Required command was not provided. + 未提供必需的命令。 .NET dependency restorer - .NET dependency restorer + .NET 依赖项还原程序 Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. - Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. + 如果未安装所面向的运行时,则允许 .NET 工具向前滚动到较新版本的 .NET 运行时。 .NET Run Command - .NET Run Command + .NET 运行命令 The configuration to run for. The default for most projects is 'Debug'. - The configuration to run for. The default for most projects is 'Debug'. + 要运行的配置。大多数项目的默认值是 "Debug"。 The target framework to run for. The target framework must also be specified in the project file. - The target framework to run for. The target framework must also be specified in the project file. + 要运行的目标框架。必须在项目文件中指定目标框架。 The target runtime to run for. - The target runtime to run for. + 要为其运行的目标运行时。 RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + 启用诊断输出。 Display the command schema as JSON. - Display the command schema as JSON. + 将命令架构显示为 JSON。 .NET SDK Command - .NET SDK Command + .NET SDK 命令 .NET SDK Check Command - .NET SDK Check Command + .NET SDK 检查命令 The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + "--self-contained"和 "--no-self-contained" 选项不能一起使用。 {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + 将 .NET 运行时与应用程序一起发布,从而无需在目标计算机上安装运行时。 +默认值为 'false'。但目标为 .NET 7 或更低版本时,如果指定了运行时标识符,则默认值为 'true'。 Skip updating the workload manifests. - Skip updating the workload manifests. + 跳过更新工作负载清单。 Skip the optimization phase. - Skip the optimization phase. + 跳过优化阶段。 Skip signature verification of workload packages and installers. - Skip signature verification of workload packages and installers. + 跳过对工作负载包和安装程序的签名验证。 Skip creating symbol files which can be used for profiling the optimized assemblies. - Skip creating symbol files which can be used for profiling the optimized assemblies. + 跳过符号文件的创建操作,这些文件可用于分析已优化的程序集。 Recursively add projects' ReferencedProjects to solution - Recursively add projects' ReferencedProjects to solution + 以递归方式将项目的 ReferencedProjects 添加到解决方案 .NET modify solution file command - .NET modify solution file command + .NET“修改解决方案文件”命令 The solution file to operate on. If not specified, the command will search the current directory for one. - The solution file to operate on. If not specified, the command will search the current directory for one. + 要操作的解决方案文件。如未指定,则命令会在当前目录下搜索一个文件。 SLN_FILE - SLN_FILE + SLN_FILE The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + 要操作的项目或解决方案文件。如果没有指定文件,则命令将在当前目录里搜索一个文件。 PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + 要操作的项目或解决方案或 C# (基于文件的程序)文件。如果未指定文件,则该命令将在当前目录中搜索项目或解决方案。 PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJECT | SOLUTION | FILE Source - Source + The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. - The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. + 要搜索的包源。可以传递多个 `--Source` 选项来搜索多个包源。示例: `--source https://api.nuget.org/v3/index.json`。 Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. - Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. + 存储为 .NET 平台指定的程序集。默认情况下,这些程序集将针对目标运行时和框架进行优化。 The target framework to store packages for. The target framework has to be specified in the project file. - The target framework to store packages for. The target framework has to be specified in the project file. + 要存储包的目标框架。目标框架必须在项目文件中指定。 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to store the given assemblies in. - The output directory to store the given assemblies in. + 要存储给定程序集的输出目录。 The target runtime to store packages for. - The target runtime to store packages for. + 要存储包的目标运行时。 Specify a temporary directory for this command to download and extract NuGet packages (must be secure). - Specify a temporary directory for this command to download and extract NuGet packages (must be secure). + 为此命令指定一个临时目录,以下载并提取(必须安全)的 NuGet 包。 Displays a summary of what would happen if the given command line were run if it would result in a template creation. - Displays a summary of what would happen if the given command line were run if it would result in a template creation. + 如果运行给定命令行将导致模板创建,则显示将发生情况的摘要。 Forces content to be generated even if it would change existing files. - Forces content to be generated even if it would change existing files. + 强制生成内容 (即使它会更改现有文件)。 The name for the output being created. If no name is specified, the name of the output directory is used. - The name for the output being created. If no name is specified, the name of the output directory is used. + 正在创建的输出名称。如未指定名称,则使用输出目录的名称。 Disables checking for the template package updates when instantiating a template. - Disables checking for the template package updates when instantiating a template. + 在实例化模板时,禁用对模板包更新的检查。 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The configuration to use for running tests. The default for most projects is 'Debug'. - The configuration to use for running tests. The default for most projects is 'Debug'. + 用于运行测试的配置。大多数项目的默认值是 "Debug"。 The target framework to run tests for. The target framework must also be specified in the project file. - The target framework to run tests for. The target framework must also be specified in the project file. + 运行测试的目标框架。必须在项目文件中指定目标框架。 The target runtime to test for. - The target runtime to test for. + 要为其测试的目标运行时。 Install or work with tools that extend the .NET experience. - Install or work with tools that extend the .NET experience. + 安装或使用扩展 .NET 体验的工具。 Executes a tool from source without permanently installing it. - Executes a tool from source without permanently installing it. + 从源执行工具,而无需永久安装它。 Add an additional NuGet package source to use during installation. - Add an additional NuGet package source to use during installation. + 添加其他要在安装期间使用的 NuGet 包源。 ADDSOURCE - ADDSOURCE + ADDSOURCE Install global or local tool. Local tools are added to manifest and restored. - Install global or local tool. Local tools are added to manifest and restored. + 安装全局或本地工具。本地工具将被添加到清单并还原。 The NuGet configuration file to use. - The NuGet configuration file to use. + 要使用的 NuGet 配置文件。 FILE - FILE + FILE The target framework to install the tool for. - The target framework to install the tool for. + 要安装工具的目标框架。 FRAMEWORK - FRAMEWORK + FRAMEWORK Install the tool for the current user. - Install the tool for the current user. + 为当前用户安装工具。 Install the tool and add to the local tool manifest (default). - Install the tool and add to the local tool manifest (default). + 安装工具并将其添加到本地工具清单(默认)。 Path to the manifest file. - Path to the manifest file. + 清单文件的路径。 PATH - PATH + PATH Replace all NuGet package sources to use during installation with these. - Replace all NuGet package sources to use during installation with these. + 将安装期间要使用的所有 NuGet 包源替换为这些源。 SOURCE - SOURCE + SOURCE The directory where the tool will be installed. The directory will be created if it does not exist. - The directory where the tool will be installed. The directory will be created if it does not exist. + 将安装工具的目录。如果目录不要放置测试结果的目录。若不存在,将创建指定目录。存在,将创建该目录。 PATH - PATH + PATH The version of the tool package to install. - The version of the tool package to install. + 要安装的工具包版本。 VERSION - VERSION + VERSION List tools installed globally or locally. - List tools installed globally or locally. + 列出全局或本地安装的工具。 The output format for the list of tools. - The output format for the list of tools. + 工具列表的输出格式。 List tools installed for the current user. - List tools installed for the current user. + 列出为当前用户安装的工具。 List the tools installed in the local tool manifest. - List the tools installed in the local tool manifest. + 列出在本地工具清单中安装的工具。 The NuGet Package Id of the tool to list - The NuGet Package Id of the tool to list + 要列出的工具的 NuGet 包 ID PACKAGE_ID - PACKAGE_ID + PACKAGE_ID The directory containing the tools to list. - The directory containing the tools to list. + 包含要列出的工具的目录。 Restore tools defined in the local tool manifest. - Restore tools defined in the local tool manifest. + 还原本地工具清单中定义的工具。 Path to the manifest file. - Path to the manifest file. + 清单文件的路径。 Arguments forwarded to the tool - Arguments forwarded to the tool + 转发到工具的参数 Run a local tool. Note that this command cannot be used to run a global tool. - Run a local tool. Note that this command cannot be used to run a global tool. + 运行本地工具。请注意,此命令不能用于运行全局工具。 Search dotnet tools in nuget.org - Search dotnet tools in nuget.org + 在 nuget.org 中搜索 dotnet 工具 Include pre-release packages. - Include pre-release packages. + 包括预发行包。 SEARCH_TERM - SEARCH_TERM + SEARCH_TERM Search term from package id or package description. Require at least one character. - Search term from package id or package description. Require at least one character. + 包 ID 或包说明中的搜索词。至少需要一个字符。 Skip - Skip + 跳过 The number of results to skip, for pagination. - The number of results to skip, for pagination. + 用于分页的要跳过的结果数。 Take - Take + Take The number of results to return, for pagination. - The number of results to return, for pagination. + 用于分页的要返回的结果数。 Uninstall a global tool or local tool. - Uninstall a global tool or local tool. + 卸载全局工具或本地工具。 Uninstall the tool from the current user's tools directory. - Uninstall the tool from the current user's tools directory. + 从当前用户的工具目录中卸载该工具。 Uninstall the tool and remove it from the local tool manifest. - Uninstall the tool and remove it from the local tool manifest. + 卸载工具并将其从本地工具清单中移除。 Path to the manifest file. - Path to the manifest file. + 清单文件的路径。 The directory containing the tool to uninstall. - The directory containing the tool to uninstall. + 包含要卸载的工具的目录。 Update a global or local tool. - Update a global or local tool. + 更新全局或本地工具。 Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + 未识别命令或参数“{0}” Update all tools. - Update all tools. + 更新所有工具。 Controls whether updates should look for workload sets or the latest version of each individual manifest. - Controls whether updates should look for workload sets or the latest version of each individual manifest. + 控制更新是应查找工作负载集还是每个单个清单的最新版本。 Shut down the VB/C# compiler build server. - Shut down the VB/C# compiler build server. + 关闭 VB/C# 编译器生成服务器。 Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + 当包参数已包含版本时,无法指定 --version。 {Locked="--version"} Verbosity - Verbosity + 详细程度 Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` - Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` + 在输出中显示此详细信息量: `normal`、`minimal`、`detailed`。默认值为 `normal` Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + 设置 MSBuild 详细程度。允许值为 q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。 Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. - Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. + 设置详细级别。允许的值为 q[uiet]、m[inimal]、n[ormal]、diag[nostic]。 VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX Removes workload components that may have been left behind from previous updates and uninstallations. - Removes workload components that may have been left behind from previous updates and uninstallations. + 删除可能已从之前的更新和卸载中保留的工作负载组件。 Install or work with workloads that extend the .NET experience. - Install or work with workloads that extend the .NET experience. + 安装或使用用于扩展 .NET 体验的工作负载。 Modify or display workload configuration values. To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" - Modify or display workload configuration values. -To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" + 修改或显示工作负载配置值。 +若要显示某个值,请指定相应的命令行选项,而无需提供值。 例如,"dotnet workload config --update-mode" Start the elevated server process to facilitate MSI based installations. - Start the elevated server process to facilitate MSI based installations. + 启动提升的服务器进程以方便基于 MSI 的安装。 Shows a history of workload installation actions. - Shows a history of workload installation actions. + 显示工作负载安装操作的历史记录。 The NuGet package ID of the workload to install. - The NuGet package ID of the workload to install. + 要安装的工作负载的 NuGet 包 ID。 WORKLOAD_ID - WORKLOAD_ID + WORKLOAD_ID The text to search for in the IDs and descriptions of available workloads. - The text to search for in the IDs and descriptions of available workloads. + 要在可用工作负载的 ID 和说明中搜索的文本。 SEARCH_STRING - SEARCH_STRING + SEARCH_STRING Display information about installed workloads. - Display information about installed workloads. + 显示有关已安装工作负载的信息。 Install one or more workloads. - Install one or more workloads. + 安装一个或多个工作负载。 The NuGet configuration file to use. - The NuGet configuration file to use. + 要使用的 NuGet 配置文件。 FILE - FILE + FILE The NuGet package source to use during the restore. To specify multiple sources, repeat the option. - The NuGet package source to use during the restore. To specify multiple sources, repeat the option. + 要在还原过程中使用的 NuGet 包源。若要指定多个源,请重复该选项。 SOURCE - SOURCE + SOURCE The version of the SDK. - The version of the SDK. + SDK 的版本。 VERSION - VERSION + VERSION List workloads available. - List workloads available. + 列出可用的工作负载。 Repair workload installations. - Repair workload installations. + 修复工作负载安装。 Restore workloads required for a project. - Restore workloads required for a project. + 还原项目所需的工作负载。 Search for available workloads. - Search for available workloads. + 搜索可用的工作负载。 A workload version to display or one or more workloads and their versions joined by the '@' character. - A workload version to display or one or more workloads and their versions joined by the '@' character. + 要显示的工作负载版本,或一个或多个工作负载,并且其版本由 ‘@’ 字符联接。 Uninstall one or more workloads. - Uninstall one or more workloads. + 卸载一个或多个工作负载。 Update all installed workloads. - Update all installed workloads. + 更新所有已安装的工作负载。 WORKLOAD_VERSION - WORKLOAD_VERSION + WORKLOAD_VERSION Output workload manifest versions associated with the provided workload version. - Output workload manifest versions associated with the provided workload version. + 输出与所提供的工作负载版本关联的工作负载清单版本。 Display the currently installed workload version. - Display the currently installed workload version. + 显示当前安装的工作负载版本。 Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + 使用“是”接受所有确认提示。 The friendly name of the data collector to use for the test run. More info here: https://aka.ms/vstest-collect - The friendly name of the data collector to use for the test run. - More info here: https://aka.ms/vstest-collect + 用于测试运行的数据收集器的友好名称。 + 有关详细信息,请访问: https://aka.ms/vstest-collect DATA_COLLECTOR_NAME - DATA_COLLECTOR_NAME + DATA_COLLECTOR_NAME diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.zh-Hant.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.zh-Hant.xlf index c1350aec1e94..f09af6bd64de 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.zh-Hant.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/CommandDefinitionStrings.zh-Hant.xlf @@ -4,162 +4,162 @@ Only update advertising manifests. - Only update advertising manifests. + 只更新廣告資訊清單。 Add one or more projects to a solution file. - Add one or more projects to a solution file. + 為解決方案檔新增一或多個專案。 The paths to the projects to add to the solution. - The paths to the projects to add to the solution. + 到達要新增至解決方案之專案的路徑。 PROJECT_PATH - PROJECT_PATH + PROJECT_PATH The destination solution folder path to add the projects to. - The destination solution folder path to add the projects to. + 要新增專案的目標目的地解決方案資料夾路徑。 Allow package downgrade when installing a .NET tool package. - Allow package downgrade when installing a .NET tool package. + 安裝 .NET 工具套件時允許套件降級。 ARCH - ARCH + ARCH The target architecture. - The target architecture. + 目標結構。 ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + 成品路徑。來自專案的所有輸出 (包括建置、發佈和封裝輸出),都會進入指定路徑下的子資料夾。 .NET Builder - .NET Builder + .NET 產生器 The configuration to use for building the project. The default for most projects is 'Debug'. - The configuration to use for building the project. The default for most projects is 'Debug'. + 要用於建置專案的組態。大部分的專案預設為「偵錯」。 The target framework to build for. The target framework must also be specified in the project file. - The target framework to build for. The target framework must also be specified in the project file. + 要為其進行建置的目標架構。該目標架構必須在專案檔中指定。 The output directory to place built artifacts in. - The output directory to place built artifacts in. + 放置建置成品的輸出目錄。 The target runtime to build for. - The target runtime to build for. + 要為其進行建置的目標執行階段。 Interact with servers started from a build. - Interact with servers started from a build. + 與組建啟動的伺服器互動。 Shuts down build servers that are started from dotnet. By default, all servers are shut down. - Shuts down build servers that are started from dotnet. By default, all servers are shut down. + 關閉 dotnet 啟動的組建伺服器。根據預設會關閉所有伺服器。 Cannot specify both the {0} and {1} arguments. - Cannot specify both the {0} and {1} arguments. + 無法同時指定 {0} 和 {1} 引數。 Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + 解析目前執行階段識別碼失敗。 Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + 不支援同時指定 `-r|--runtime` 與 `-a|--arch` 選項。 Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + 不支援同時指定 `-r|--runtime` 與 `-os` 選項。 Causes clean to remove and uninstall all workload components from all SDK versions. - Causes clean to remove and uninstall all workload components from all SDK versions. + 導致從所有 SDK 版本移除及解除安裝所有工作負載元件。 .NET Clean Command - .NET Clean Command + .NET 清除命令 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The directory containing the build artifacts to clean. - The directory containing the build artifacts to clean. + 包含要清理之組建成品的目錄。 The configuration to clean for. The default for most projects is 'Debug'. - The configuration to clean for. The default for most projects is 'Debug'. + 要為其進行清理的組態。大部分的專案預設為「偵錯」。 Removes artifacts created for file-based apps - Removes artifacts created for file-based apps + 移除針對檔案型應用程式建立的成品 How many days an artifact folder needs to be unused in order to be removed - How many days an artifact folder needs to be unused in order to be removed + 成品資料夾需要閒置多少天才能移除 Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + 確定變更而不實際修改檔案系統 The target framework to clean for. The target framework must also be specified in the project file. - The target framework to clean for. The target framework must also be specified in the project file. + 要為其進行清理的目標架構。該目標架構必須在專案檔中指定。 The target runtime to clean for. - The target runtime to clean for. + 要為其進行清理的目標執行階段。 Enables collecting crash dump on expected as well as unexpected testhost exit. - Enables collecting crash dump on expected as well as unexpected testhost exit. + 允許在測試主機如預期或未預期地結束時收集損毀傾印。 @@ -174,22 +174,22 @@ The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downlo To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. Implies --blame. - Runs the tests in blame mode and collects a crash dump when the test host exits unexpectedly. This option depends on the version of .NET used, the type of error, and the operating system. + 以歸責模式執行測試,並在測試主機未預期地結束時收集損毀傾印。此選項取決於使用的 .NET 版本、錯誤類型和作業系統。 -For exceptions in managed code, a dump will be automatically collected on .NET 5.0 and later versions. It will generate a dump for testhost or any child process that also ran on .NET 5.0 and crashed. Crashes in native code will not generate a dump. This option works on Windows, macOS, and Linux. +對於受控程式碼中的例外狀況,系統將自動在 .NET 5.0 及更新版本上收集傾印。其會為 testhost 或任何也在 .NET 5.0 上執行且毀損的子程序產生傾印。原生程式碼中的損毀將不會產生傾印。此選項適用於 Windows、macOS、和 Linux。 -Crash dumps in native code, or when targetting .NET Framework, or .NET Core 3.1 and earlier versions, can only be collected on Windows, by using Procdump. A directory that contains procdump.exe and procdump64.exe must be in the PATH or PROCDUMP_PATH environment variable. +原生程式碼中的損毀傾印,或以 .NET Framework 或 .NET Core 3.1 和先前版本為目標時,則只能在 Windows 上使用 Procdump 進行收集。包含 procdump.exe 和 procdump64.exe 的目錄必須位在 PATH 或 PROCDUMP_PATH 環境變數中。 -The tools can be downloaded here: https://docs.microsoft.com/sysinternals/downloads/procdump +您可以在這裡下載工具: https://docs.microsoft.com/sysinternals/downloads/procdump -To collect a crash dump from a native application running on .NET 5.0 or later, the usage of Procdump can be forced by setting the VSTEST_DUMP_FORCEPROCDUMP environment variable to 1. +若要從執行 .NET 5.0 或更新版本的原生應用程式收集損毀傾印,您可透過將 VSTEST_DUMP_FORCEPROCDUMP 環境變數設定為 1,以強制使用 Procdump。 -Implies --blame. +隱含 --blame。 The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. - The type of crash dump to be collected. Supported values are full (default) and mini. Implies --blame-crash. + 要收集的損毀傾印類型。支援的值為 full (預設值) 和 mini。表示 --blame-crash。 @@ -207,30 +207,30 @@ Example: Timeout the test run when a test takes more than 20 minutes and collect hang dump. dotnet test --blame-hang-timeout 20min - Runs the tests in blame mode. This option is helpful in isolating problematic tests that cause the test host to crash or hang, but it does not create a memory dump by default. + 以歸責模式執行測試。此選項有助於隔離造成測試主機當機或擱置的問題測試,但預設不會建立記憶體傾印。 -When a crash is detected, it creates an sequence file in TestResults/guid/guid_Sequence.xml that captures the order of tests that were run before the crash. +偵測到當機時,它會在 TestResults/guid/guid_Sequence.xml 中建立序列檔案,以擷取當機前執行的測試順序。 -Based on the additional settings, hang dump or crash dump can also be collected. +根據其他設定,也可以收集擱置傾印或損毀傾印。 -Example: - Timeout the test run when test takes more than the default timeout of 1 hour, and collect crash dump when the test host exits unexpectedly. - (Crash dumps require additional setup, see below.) - dotnet test --blame-hang --blame-crash -Example: - Timeout the test run when a test takes more than 20 minutes and collect hang dump. - dotnet test --blame-hang-timeout 20min +範例: + 當測試所花的時間超過預設的 1 小時時,測試執行會逾時,當測試主機未預期地結束時,會收集損毀傾印。 + (損毀傾印需要其他設定,請參閱下文。) + dotnet 測試 --blame-hang --blame-crash +範例: + 當測試需要超過 20 分鐘並收集擱置傾印時,測試執行會逾時。 + dotnet 測試 --blame-hang-timeout 20min Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. - Run the tests in blame mode and enables collecting hang dump when test exceeds the given timeout. + 當測試超過指定的逾時時,請在改動者模式中執行測試,並啟用收集停止回應傾印。 The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. - The type of crash dump to be collected. The supported values are full (default), mini, and none. When 'none' is used then test host is terminated on timeout, but no dump is collected. Implies --blame-hang. + 要收集之損毀傾印的類型。支援的值為完整的 full (預設值),mini 和 none。若使用「none」,則測試主機將會在逾時時終止,不會收集任何傾印。表示 --blame-hang。 @@ -238,67 +238,67 @@ Example: The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, For MSTest before 2.2.4, the timeout is used for all testcases. - Per-test timeout, after which hang dump is triggered and the testhost process is terminated. Default is 1h. -The timeout value is specified in the following format: 1.5h / 90m / 5400s / 5400000ms. When no unit is used (e.g. 5400000), the value is assumed to be in milliseconds. -When used together with data driven tests, the timeout behavior depends on the test adapter used. For xUnit, NUnit and MSTest 2.2.4+ the timeout is renewed after every test case, -For MSTest before 2.2.4, the timeout is used for all testcases. + 每個測試逾時,若超過時間未完成,將觸發擱置傾印,並終止 testhost 流程。預設值為 1 小時。 +以下列格式指定逾時值: 1.5 小時 / 90 分鐘 / 5400 秒 / 5400000 毫秒。如果未使用單位 (例如 5400000),則假設值為毫秒。 +與資料驅動測試搭配使用時,逾時行為取決於所使用的測試配接器。針對 xUnit、NUnit 和 MSTest 2.2.4+ ,每次測試案例之後都會更新逾時, +針對 2.2.4 之前的 MSTest,系統會針對所有測試案例使用逾時。 CONFIG_FILE - CONFIG_FILE + CONFIG_FILE The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The path to the NuGet config file to use. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + 要使用的 NuGet 組態檔路徑。需要 '--outdated'、'--deprecated' 或 '--vulnerable' 選項。 Specifies a testconfig.json file. - Specifies a testconfig.json file. + 指定 testconfig.json 檔案。 FILE - FILE + FILE The NuGet configuration file to use. - The NuGet configuration file to use. + 要使用的 NuGet 組態檔。 CONFIG_FILE - CONFIG_FILE + CONFIG_FILE Use current runtime as the target runtime. - Use current runtime as the target runtime. + 使用目前的執行階段作為目標執行階段。 Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. - Lists packages that have been deprecated. Cannot be combined with '--vulnerable' or '--outdated' options. + 列出已淘汰的套件。無法與 '--vulnerable' 或 '--outdated' 選項一併使用。 Output directory of the diagnostic logging. If not specified the file will be generated inside the default 'TestResults' directory. - Output directory of the diagnostic logging. -If not specified the file will be generated inside the default 'TestResults' directory. + 診斷記錄的輸出目錄。 +若未指定,則會在預設的 'TestResults' 目錄內產生檔案。 DIAGNOSTIC_DIR - DIAGNOSTIC_DIR + DIAGNOSTIC_DIR Prevent restoring multiple projects in parallel. - Prevent restoring multiple projects in parallel. + 避免平行還原多個專案。 @@ -312,11 +312,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + 設定環境變數的值。 +若變數不存在,則加以建立; 若有,則予以覆寫。 +此引數可多次指定,以提供多項變數。 -Examples: +範例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -326,74 +326,74 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" EXPRESSION - EXPRESSION + 運算式 Path to the file-based program. - Path to the file-based program. + 檔案型程式之路徑。 Force all dependencies to be resolved even if the last restore was successful. This is equivalent to deleting project.assets.json. - Force all dependencies to be resolved even if the last restore was successful. -This is equivalent to deleting project.assets.json. + 在即使上次還原已成功的情況下,仍然強制解決所有相依性。 +如此等同於刪除 project.assets.json。 Specifies the output format type for the list packages command. - Specifies the output format type for the list packages command. + 指定清單套件命令的輸出格式類型。 Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major version number when searching for newer packages. Requires the '--outdated' option. + 在搜尋較新的套件時,建議只搜尋主要版本號碼相符的套件。需要使用 '--outdated' 選項。 Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. - Consider only the packages with a matching major and minor version numbers when searching for newer packages. Requires the '--outdated' option. + 在搜尋較新套件時,建議只搜尋主要和次要版本號碼相符的套件。需要使用 '--outdated’ 選項。 Treat package source failures as warnings. - Treat package source failures as warnings. + 將套件來源失敗視為警告。 Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. - Include PDBs and source files. Source files go into the 'src' folder in the resulting nuget package. + 包含 PDB 和原始程式檔。原始程式檔會進入所產生之 NuGet 套件中的 'src' 資料夾。 Include packages with symbols in addition to regular packages in output directory. - Include packages with symbols in addition to regular packages in output directory. + 將具符號的套件及一般套件包含在輸出目錄中。 List the discovered tests instead of running the tests. - List the discovered tests instead of running the tests. + 列出探索到的測試,而非執行測試。 LOCK_FILE_PATH - LOCK_FILE_PATH + LOCK_FILE_PATH Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. - Output location where project lock file is written. By default, this is 'PROJECT_ROOT\packages.lock.json'. + 專案鎖定檔案所寫入的輸出位置。預設為 'PROJECT_ROOT\packages.lock.json'。 Don't allow updating project lock file. - Don't allow updating project lock file. + 不允許更新專案鎖定檔案。 @@ -402,223 +402,223 @@ This is equivalent to deleting project.assets.json. Log in trx format using a unique file name: --logger trx Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" See https://aka.ms/vstest-report for more information on logger arguments. - The logger to use for test results. - Examples: - Log in trx format using a unique file name: --logger trx - Log in trx format using the specified file name: --logger "trx;LogFileName=<TestResults.trx>" - See https://aka.ms/vstest-report for more information on logger arguments. + 用於測試結果的記錄器。 + 範例: + 使用獨特的檔案名稱登入 trx 格式: --logger trx + 使用指定的檔案名稱登入 trx 格式: --logger "trx;LogFileName=<TestResults.trx>" + 如需了解記錄器引數的詳細資訊,請參閱 https://aka.ms/vstest-report。 LOGGER - LOGGER + LOGGER The max number of test modules that can run in parallel. - The max number of test modules that can run in parallel. + 可平行執行的測試模組數目上限。 Specifies the minimum number of tests that are expected to run. - Specifies the minimum number of tests that are expected to run. + 指定預期執行的測試數目下限。 Disable ANSI output. - Disable ANSI output. + 停用 ANSI 輸出。 Do not build the project before testing. Implies --no-restore. - Do not build the project before testing. Implies --no-restore. + 請勿在測試之前建置專案。提示:-no-restore。 Do not build the project before packing. Implies --no-restore. - Do not build the project before packing. Implies --no-restore. + 請勿在封裝之前建置專案。提示: -no-restore. Do not cache packages and http requests. - Do not cache packages and http requests. + 請勿快取套件和 HTTP 要求。 Do not restore project-to-project references and only restore the specified project. - Do not restore project-to-project references and only restore the specified project. + 請勿還原專案對專案的參考,而只還原指定的專案。 Disable Http Caching for packages. - Disable Http Caching for packages. + 停用套件的 HTTP 快取。 Disable progress reporting. - Disable progress reporting. + 停用進度報告。 Do not restore before running the command. - Do not restore before running the command. + 執行命令之前請勿還原。 NUMBER - NUMBER + 編號 Force conversion even if there are malformed directives. - Force conversion even if there are malformed directives. + 即使提示詞格式錯誤,仍強制執行轉換。 Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. - Lists packages that have newer versions. Cannot be combined with '--deprecated' or '--vulnerable' options. + 列出有更新版本的套件。無法與 '--deprecated' 或 '--vulnerable' 選項一併使用。 The output directory to place built artifacts in. - The output directory to place built artifacts in. + 放置建置成品的輸出目錄。 Specifies the version of machine-readable output. Requires the '--format json' option. - Specifies the version of machine-readable output. Requires the '--format json' option. + 指定機器可讀取輸出的版本。需要 '--format json' 選項。 PACKAGE_NAME - PACKAGE_NAME + PACKAGE_NAME PACKAGE_DIR - PACKAGE_DIR + PACKAGE_DIR The directory to restore packages to. - The directory to restore packages to. + 還原套件的目標目錄。 PACKAGES_DIR - PACKAGES_DIR + PACKAGES_DIR The directory to restore packages to. - The directory to restore packages to. + 還原套件的目標目錄。 LOG_FILE - LOG_FILE + LOG_FILE RESULTS_DIR - RESULTS_DIR + RESULTS_DIR Enable verbose logging to the specified file. - Enable verbose logging to the specified file. + 為指定的檔案啟用詳細資訊記錄。 Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. - Consider packages with prerelease versions when searching for newer packages. Requires the '--outdated' option. + 在搜尋較新套件時,建議搜尋具有發行前版本的套件。需要使用 '--outdated' 選項。 Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project file to run. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + 定義要執行的專案檔案的路徑。請使用專案檔案的路徑,或包含該專案檔案的目錄路徑。如果未指定,則預設為目前目錄。 Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. - Defines the path of the project or solution file to test. Use path to the project file, or path to the directory containing the project file. If not specified, it defaults to the current directory. + 定義要測試的專案或解決方案檔案的路徑。請使用專案檔案的路徑,或包含該專案檔案的目錄路徑。如果未指定,則預設為目前目錄。 PROJECT_OR_SOLUTION_PATH - PROJECT_OR_SOLUTION_PATH + PROJECT_OR_SOLUTION_PATH Forces restore to reevaluate all dependencies even if a lock file already exists. - Forces restore to reevaluate all dependencies even if a lock file already exists. + 強制還原以重新評估所有相依性,即使已經存在鎖定檔案也一樣。 The directory where the test results will be placed. The specified directory will be created if it does not exist. - The directory where the test results will be placed. -The specified directory will be created if it does not exist. + 將放置測試結果的目錄。 +若指定的目錄不存在,則會建立該目錄。 ROOT_PATH - ROOT_PATH + ROOT_PATH RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER The target runtime to restore packages for. - The target runtime to restore packages for. + 要對其還原套件的目標執行階段。 Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. - Set the serviceable flag in the package. See https://aka.ms/nupkgservicing for more information. + 設定套件中的服務旗標。如需詳細資訊,請參閱 https://aka.ms/nupkgservicing。 The settings file to use when running tests. - The settings file to use when running tests. + 執行測試時要使用的設定檔。 SETTINGS_FILE - SETTINGS_FILE + SETTINGS_FILE Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. - Defines the path of the solution file to test. Use path to the solution file, or path to the directory containing the solution file. If not specified, it defaults to the current directory. + 定義要測試的解決方案檔案的路徑。請使用解決方案檔案的路徑,或包含該解決方案檔案的目錄路徑。如果未指定,則預設為目前目錄。 SOLUTION_PATH - SOLUTION_PATH + SOLUTION_PATH SOURCE - SOURCE + SOURCE The NuGet package source to use for the restore. - The NuGet package source to use for the restore. + 用於還原的 NuGet 套件來源。 ADAPTER_PATH - ADAPTER_PATH + ADAPTER_PATH The path to the custom adapters to use for the test run. - The path to the custom adapters to use for the test run. + 到達用於測試執行的自訂配接器路徑。 @@ -629,18 +629,18 @@ The specified directory will be created if it does not exist. Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" See https://aka.ms/vstest-filtering for more information on filtering support. - Run tests that match the given expression. - Examples: - Run tests with priority set to 1: --filter "Priority = 1" - Run a test with the specified full name: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" - Run tests that contain the specified name: --filter "FullyQualifiedName~Namespace.Class" - See https://aka.ms/vstest-filtering for more information on filtering support. + 執行符合指定運算式的測試。 + 範例: + 執行測試,而優先順序設為 1: --filter "Priority = 1" + 使用指定的全名執行測試: --filter "FullyQualifiedName=Namespace.ClassName.MethodName" + 執行內含指定名稱的測試: --filter "FullyQualifiedName~Namespace.Class" + 如需篩選支援的詳細資訊,請參閱 https://aka.ms/vstest-filtering。 EXPRESSION - EXPRESSION + EXPRESSION @@ -655,12 +655,12 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + 設定環境變數的值。 +若變數不存在,則加以建立; 若有,則予以覆寫。 +這會強制在隔離流程中執行測試。 +此引數可多次指定,以提供多項變數。 -Examples: +範例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -670,812 +670,812 @@ Examples: Run tests for the specified test modules. - Run tests for the specified test modules. + 為指定的測試模組執行測試。 The test modules have the specified root directory. - The test modules have the specified root directory. + 測試模組具有指定的根目錄。 Verbosity of test output. - Verbosity of test output. + 測試輸出的詳細程度。 Lists transitive and top-level packages. - Lists transitive and top-level packages. + 列出可轉移和頂層套件。 Test runner '{0}' is not supported. - Test runner '{0}' is not supported. + 不支援測試執行器 '{0}'。 Enables project lock file to be generated and used with restore. - Enables project lock file to be generated and used with restore. + 讓專案鎖定檔案可透過還原來產生和使用。 VERSION - VERSION + VERSION The version of the package to add. - The version of the package to add. + 要新增的套件版本。 Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + 設定建置專案時,要使用之 $(VersionSuffix) 屬性的值。 Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. - Lists packages that have known vulnerabilities. Cannot be combined with '--deprecated' or '--outdated' options. + 列出有已知弱點的套件。無法與 '--deprecated' 或 '--outdated' 選項一併使用。 The SDK command to launch online help for. - The SDK command to launch online help for. + 啟動其線上說明的 SDK 命令。 COMMAND_NAME - COMMAND_NAME + COMMAND_NAME Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + 允許命令停止並等候使用者輸入或動作 (例如: 完成驗證)。 The command name of the tool to run. - The command name of the tool to run. + 要執行的工具命令名稱。 COMMAND_NAME - COMMAND_NAME + COMMAND_NAME The device identifier to use for running the application. - The device identifier to use for running the application. + 用於執行應用程式的裝置識別碼。 DEVICE - DEVICE + 裝置 The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). - The path to the file-based app to run (can be also passed as the first argument if there is no project in the current directory). + 執行檔案型應用程式的路徑 (如果目前目錄中沒有專案,也可以作為第一個引數傳遞)。 FILE_PATH - FILE_PATH + FILE_PATH The name of the launch profile (if any) to use when launching the application. - The name of the launch profile (if any) to use when launching the application. + 啟動應用程式時,所要使用的啟動設定檔 (若有) 名稱。 LAUNCH_PROFILE - LAUNCH_PROFILE + LAUNCH_PROFILE List available devices for running the application. - List available devices for running the application. + 列出可用來執行應用程式的裝置。 Do not build the project before running. Implies --no-restore. - Do not build the project before running. Implies --no-restore. + 請勿在執行之前建置專案。提示: --no-restore. {Locked="--no-restore"} Skip up to date checks and always build the program before running. - Skip up to date checks and always build the program before running. + 在執行之前,略過最新的檢查並一律建置程式。 Do not use arguments specified in launch profile to run the application. - Do not use arguments specified in launch profile to run the application. + 請勿使用啟動設定檔中指定的引數來執行應用程式。 Do not attempt to use launchSettings.json or [app].run.json to configure the application. - Do not attempt to use launchSettings.json or [app].run.json to configure the application. + 請勿嘗試使用 launchSettings.json 或 [app].run.json 設定該應用程式。 {Locked="launchSettings.json"}{Locked=".run.json"} PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + 允許安裝發行前版本套件。 Creates an alias for instantiate command with a certain set of arguments. - Creates an alias for instantiate command with a certain set of arguments. + 使用特定引數集合建立具現化命令的別名。 Displays defined aliases. - Displays defined aliases. + 顯示定義的別名。 Creates or displays defined aliases. - Creates or displays defined aliases. + 建立或顯示定義的別名。 Provides the details for specified template package. The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. - - Provides the details for specified template package. - The command checks if the package is installed locally, if it was not found, it searches the configured NuGet feeds. + + 提供指定範本套件的詳細資料。 + 命令會檢查套件是否安裝在本機,如果找不到,則會搜尋已設定的 NuGet 摘要。 NuGet package ID or path to folder or NuGet package to install. To install the NuGet package of certain version, use <package ID>::<version>. - NuGet package ID or path to folder or NuGet package to install. -To install the NuGet package of certain version, use <package ID>::<version>. + 要安裝之資料夾或 NuGet 套件的 NuGet 套件識別碼或路徑。 +若要安裝特定版本的 NuGet 套件,請使用 <package ID>::<version>。 Installs a template package. - Installs a template package. + 安裝範本套件。 A short name of the template to create. - A short name of the template to create. + 要建立之範本的簡短名稱。 Template specific options to use. - Template specific options to use. + 要使用的範本特定選項。 Instantiates a template with given short name. An alias of 'dotnet new <template name>'. - Instantiates a template with given short name. An alias of 'dotnet new <template name>'. + 使用指定的簡短名稱將範本具現化。'dotnet new <template name>' 的別名。 do not translate 'dotnet new <template name>' Checks the currently installed template packages for updates. - Checks the currently installed template packages for updates. + 檢查目前安裝的範本套件是否有更新。 If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + 若指定,只會顯示符合名稱的範本。 Lists templates containing the specified template name. If no name is specified, lists all templates. - Lists templates containing the specified template name. If no name is specified, lists all templates. + 列出包含指定範本名稱的範本。如果未指定名稱,請列出所有範本。 Template Instantiation Commands for .NET CLI. - Template Instantiation Commands for .NET CLI. + .NET CLI 的範本具現化命令。 If specified, only the templates matching the name will be shown. - If specified, only the templates matching the name will be shown. + 若指定,只會顯示符合名稱的範本。 Searches for the templates on NuGet.org. - Searches for the templates on NuGet.org. + 搜尋範本 NuGet.org。 NuGet package ID (without version) or path to folder to uninstall. If command is specified without the argument, it lists all the template packages installed. - NuGet package ID (without version) or path to folder to uninstall. -If command is specified without the argument, it lists all the template packages installed. + 要解除安裝之資料夾的 NuGet 套件識別碼 (沒有版本) 或路徑。 +如果指定的命令沒有引數,則其會列出所有已安裝的範本套件。 Uninstalls a template package. - Uninstalls a template package. + 解除安裝範本套件。 Checks the currently installed template packages for update, and install the updates. - Checks the currently installed template packages for update, and install the updates. + 檢查目前安裝的範本套件是否有更新,並安裝更新。 Only checks for updates and display the template packages to be updated without applying update. - Only checks for updates and display the template packages to be updated without applying update. + 只檢查更新並顯示要更新的範本套件,而不套用更新。 Unrecognized command or argument(s): {0}. - Unrecognized command or argument(s): {0}. + 無法辨識的命令或引數 {0}。 {0} - wrong token or comma-separated tokens (if multiple). Each token is enclosed with single quotes: 'token'. FRAMEWORK - FRAMEWORK + 架構 ConfigFile - ConfigFile + ConfigFile The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior - The NuGet configuration file. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior + NuGet 組態檔。若已指定,則只會使用此檔案中的設定。若未指定,則會使用目前目錄中的組態檔階層。如需詳細資訊,請參閱 https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior (機器翻譯) CONFIGURATION - CONFIGURATION + CONFIGURATION DUMP_TYPE - DUMP_TYPE + DUMP_TYPE Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed - Create a tool manifest if one isn't found during tool installation. For information on how manifests are located, see https://aka.ms/dotnet/tools/create-manifest-if-needed + 如果在工具安裝期間找不到工具資訊清單,則建立工具資訊清單。如需如何尋找資訊清單的相關資訊,請參閱 https://aka.ms/dotnet/tools/create-manifest-if-needed Use current runtime as the target runtime. - Use current runtime as the target runtime. + 使用目前的執行階段作為目標執行階段。 Show detail result of the query. - Show detail result of the query. + 顯示查詢的詳細結果。 Package identifier - Package identifier + 套件識別碼 Enables diagnostic output. - Enables diagnostic output. + 啟用診斷輸出。 Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + 強制命令略過任何持續性組建伺服器。 Disables evaluating project context using MSBuild. - Disables evaluating project context using MSBuild. + 使用 MSBuild 停用評估專案內容。 If present, prevents templates bundled in the SDK from being presented. - If present, prevents templates bundled in the SDK from being presented. + 如果存在,則會防止顯示 SDK 中套件組合的範本。 .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for Microsoft.Testing.Platform (opted-in via 'global.json' file). This only supports Microsoft.Testing.Platform and doesn't support VSTest. For more information, see https://aka.ms/dotnet-test. + .NET 測試命令,適用於 Microsoft.Testing.Platform (透過 'global.json' 檔案選擇加入)。此命令僅支援 Microsoft.Testing.Platform,不支援 VSTest。如需詳細資訊,請參閱 https://aka.ms/dotnet-test。 {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. - .NET Test Command for VSTest. To use Microsoft.Testing.Platform, opt-in to the Microsoft.Testing.Platform-based command via global.json. For more information, see https://aka.ms/dotnet-test. + 適用於 VSTest 的 .NET 測試命令。若要使用 Microsoft.Testing.Platform,請透過 global.json 選擇加入以 Microsoft.Testing.Platform 為基礎的命令。如需詳細資訊,請參閱 https://aka.ms/dotnet-test。 {Locked="global.json"}{Locked="Microsoft.Testing.Platform"}{Locked="VSTest"} DIRECTORY - DIRECTORY + 目錄 Download packages needed to install a workload to a folder that can be used for offline installation. - Download packages needed to install a workload to a folder that can be used for offline installation. + 必須下載套件,以將工作負載安裝置至可用於離線安裝的資料夾中。 Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. - Require that the search term exactly match the name of the package. Causes `--take` and `--skip` options to be ignored. + 要求搜尋字詞與套件名稱完全相符。導致忽略 `--take` 和 `--skip` 選項。 The file-based app to operate on. - The file-based app to operate on. + 要執行的檔案型應用程式。 Format - Format + 格式 Format the output accordingly. Either `table`, or `json`. The default value is `table`. - Format the output accordingly. Either `table`, or `json`. The default value is `table`. + 依此格式化輸出。可以是 `table` 或 `json`。預設值為 `table`。 Changes the format of outputted workload versions. Can take 'json' or 'list' - Changes the format of outputted workload versions. Can take 'json' or 'list' + 變更所輸出工作負載版本的格式。可以使用 'json' 或 'list' FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + 將您的應用程式發佈為架構相依的應用程式。必須在目標機器上安裝相容的 .NET 執行階段,才能執行您的應用程式。 FRAMEWORK_VERSION - FRAMEWORK_VERSION + FRAMEWORK_VERSION The Microsoft.NETCore.App package version that will be used to run the assemblies. - The Microsoft.NETCore.App package version that will be used to run the assemblies. + 將用於執行組件的 Microsoft.NETCore.App 套件版本。 DIRECTORY - DIRECTORY + 目錄 Complete the operation from cache (offline). - Complete the operation from cache (offline). + 從快取完成作業 (離線)。 Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. - Update workloads to a previous version specified by the argument. Use the 'dotnet workload history' to see available workload history records. + 將工作負載更新為引數指定的舊版。使用 'dotnet workload history' 來查看可用的工作負載歷程記錄。 Include workloads installed with earlier SDK versions in update. - Include workloads installed with earlier SDK versions in update. + 包含更新中與舊版本 SDK 一起安裝的工作負載。 Update workloads based on specified rollback definition file. - Update workloads based on specified rollback definition file. + 根據指定的復原定義檔更新工作負載。 DUMP_TYPE - DUMP_TYPE + DUMP_TYPE TIMESPAN - TIMESPAN + TIMESPAN .NET CLI help utility - .NET CLI help utility + .NET CLI 說明公用程式 Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. - Update to the workload versions specified in the history without changing which workloads are installed. Currently installed workloads will be updated to match the specified history version. + 更新至歷程記錄中指定的工作負載版本,而不變更安裝的工作負載。目前安裝的工作負載將會更新以符合指定的歷程記錄版本。 Place project in root of the solution, rather than creating a solution folder. - Place project in root of the solution, rather than creating a solution folder. + 請將專案放置在解決方案的根目錄中,而非放置於建立解決方案的資料夾中。 Allow prerelease workload manifests. - Allow prerelease workload manifests. + 允許發行前階段工作負載資訊清單。 Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + 環境變數格式不正確: {0} WORKING_DIR - WORKING_DIR + WORKING_DIR The working directory used by the command to execute. - The working directory used by the command to execute. + 命令用於執行的工作目錄。 Invalid version string: {0} - Invalid version string: {0} + 版本字串無效: {0} LEVEL - LEVEL + LEVEL List all projects in a solution file. - List all projects in a solution file. + 列出解決方案檔中的所有專案。 Disables checking if the template meets the constraints to be run. - Disables checking if the template meets the constraints to be run. + 停用檢查範本是否符合要執行的條件約束。 Display solution folder paths. - Display solution folder paths. + 顯示解決方案資料夾路徑。 Shut down the MSBuild build server. - Shut down the MSBuild build server. + 關閉 MSBuild 組建伺服器。 MANIFEST - MANIFEST + MANIFEST The path to a target manifest file that contains the list of packages to be excluded from the publish step. - The path to a target manifest file that contains the list of packages to be excluded from the publish step. + 目標資訊清單檔案的路徑,其包含要從發佈步驟中排除的套件清單。 Generate a .slnx file from a .sln file. - Generate a .slnx file from a .sln file. + 從 .sln 檔案產生 .slnx 檔案。 .NET Add Command - .NET Add Command + .NET 新增命令 List references or packages of a .NET project. - List references or packages of a .NET project. + 列出 .NET 專案的參考或套件。 .NET Remove Command - .NET Remove Command + .NET 移除命令 Do not build the project before publishing. Implies --no-restore. - Do not build the project before publishing. Implies --no-restore. + 請勿在發佈之前建置專案。提示: -no-restore. Do not build project-to-project references and only build the specified project. - Do not build project-to-project references and only build the specified project. + 請勿建置專案對專案的參考,而只建置指定的專案。 Do not use incremental building. - Do not use incremental building. + 請勿使用累加建置。 Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + 不顯示啟始資訊或著作權訊息。 Do not restore the project before building. - Do not restore the project before building. + 建置前請勿還原該專案。 OS - OS + 作業系統 Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). - Specifying the tool manifest option (--tool-manifest) is only valid with the local option (--local or the default). + 只有出現區域選項 (--local 或預設) 時,才可指定工具資訊清單選項 (--tool-manifest)。 The target operating system. - The target operating system. + 目標作業系統。 Specifies a NuGet source to use. - Specifies a NuGet source to use. + 指定要使用的 NuGet 來源。 Filters the templates based on the template author. - Filters the templates based on the template author. + 根據範本作者標記篩選範本。 Filters the templates based on baseline defined in the template. - Filters the templates based on baseline defined in the template. + 根據範本中定義的基準篩選範本。 Specifies the columns to display in the output. - Specifies the columns to display in the output. + 指定輸出中要顯示的資料行。 Displays all columns in the output. - Displays all columns in the output. + 顯示輸出中所有資料行。 Allows to pause execution in order to attach to the process for debug purposes. - Allows to pause execution in order to attach to the process for debug purposes. + 允許暫停執行,以便附加至處理常式以供偵錯之用。 Sets custom settings location. - Sets custom settings location. + 設定自訂設定位置。 If specified, removes the template cache prior to command execution. - If specified, removes the template cache prior to command execution. + 若指定,會在命令執行前移除範本快取。 If specified, resets the settings prior to command execution. - If specified, resets the settings prior to command execution. + 若指定,會在命令執行前重設設定。 If specified, shows the template engine config prior to command execution. - If specified, shows the template engine config prior to command execution. + 若指定,會在命令執行前顯示範本引擎設定。 If specified, the settings will be not preserved on file system. - If specified, the settings will be not preserved on file system. + 若指定,將不會保留檔案系統上的設定。 Allows installing template packages from the specified sources even if they would override a template package from another source. - Allows installing template packages from the specified sources even if they would override a template package from another source. + 允許從指定的來源安裝範本套件,即使它們會覆寫來自其他來源的範本套件。 Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + 允許命令停止並等候使用者輸入或動作 (例如: 完成驗證)。 Filters templates based on language. - Filters templates based on language. + 根據語言篩選範本。 Location to place the generated output. - Location to place the generated output. + 放置產生輸出的位置。 Filters the templates based on NuGet package ID. - Filters the templates based on NuGet package ID. + 根據 NuGet 套件識別碼篩選範本。 The project that should be used for context evaluation. - The project that should be used for context evaluation. + 應該用於內容評估的專案。 Filters the templates based on the tag. - Filters the templates based on the tag. + 根據標記篩選範本。 Filters templates based on available types. Predefined values are "project" and "item". - Filters templates based on available types. Predefined values are "project" and "item". + 根據可用的類型篩選範本。預先定義的值為 "project" 和 "item"。 project and item should not be translated Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. - Options '--outdated', '--deprecated' and '--vulnerable' cannot be combined. + '--outdated'、'--deprecated' 與 '--vulnerable' 選項無法一併使用。 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR .NET Core NuGet Package Packer - .NET Core NuGet Package Packer + .NET Core NuGet 套件封裝器 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place built packages in. - The output directory to place built packages in. + 放置組建套件所在的輸出目錄。 VERSION - VERSION + 版本 The version of the package to create - The version of the package to create + 要建立的套件版本 The configuration to use for building the package. The default is 'Release'. - The configuration to use for building the package. The default is 'Release'. + 用於建置套件的設定。預設值為 'Release'。 Add a NuGet package reference to the project. - Add a NuGet package reference to the project. + 將 NuGet 套件參考新增至專案。 FRAMEWORK - FRAMEWORK + 架構 Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + 只有在以特定架構為目標時才新增此參考。 Add the reference without performing restore preview and compatibility check. - Add the reference without performing restore preview and compatibility check. + 無須執行還原預覽及相容性檢查,即可新增參考。 SOURCE - SOURCE + 來源 The NuGet package source to use during the restore. - The NuGet package source to use during the restore. + 還原期間所使用的 NuGet 套件來源。 Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + 套件參考的格式為套件識別碼,例如 '{0}',或是以 '@' 分隔的套件識別碼和版本,例如 '{0}@{1}'。 Package reference id and version must not be null. - Package reference id and version must not be null. + 套件參考識別碼和版本不得為空。 List all package references of the project or solution. - List all package references of the project or solution. + 列出專案或解決方案的所有套件參考。 FRAMEWORK | FRAMEWORK\RID - FRAMEWORK | FRAMEWORK\RID + FRAMEWORK | FRAMEWORK\RID Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. - Chooses a framework to show its packages. Use the option multiple times for multiple frameworks. + 選擇架構以顯示其套件。若有多個架構,則重複使用該選項。 SOURCE - SOURCE + 來源 The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. - The NuGet sources to use when searching for newer packages. Requires the '--outdated', '--deprecated' or '--vulnerable' option. + 搜尋較新的套件時,所使用的 NuGet 來源。需要 '--outdated'、'--deprecated' 或 '--vulnerable' 選項。 Package reference - Package reference + 套件參考 Remove a NuGet package reference from the project. - Remove a NuGet package reference from the project. + 從專案移除 NuGet 套件參考。 The package reference to remove. - The package reference to remove. + 要移除的套件參考。 Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. - Searches one or more package sources for packages that match a search term. If no sources are specified, all sources defined in the NuGet.Config are used. + 搜尋一或多個套件來源以尋找符合搜尋字詞的套件。如果未指定來源,則會使用 NuGet.Config 中定義的所有來源。 Include prerelease packages. - Include prerelease packages. + 包含發行前版本套件。 SearchTerm - SearchTerm + SearchTerm Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. - Search term to filter package names, descriptions, and tags. Used as a literal value. Example: `dotnet package search some.package`. See also `--exact-match`. + 搜尋字詞以篩選封裝名稱、描述和標籤。作為常值使用。範例: 'dotnet package search some.package'。另請參閱 `--exact-match`。 Skip - Skip + 跳過 Number of results to skip, to allow pagination. Default 0. - Number of results to skip, to allow pagination. Default 0. + 要略過以允許分頁的結果數目。預設 0。 Take - Take + 採用 Number of results to return. Default 20. - Number of results to return. Default 20. + 要傳回的結果數。預設 20。 Only print the list of links to download without downloading. - Only print the list of links to download without downloading. + 只列印要下載的連結清單,而不下載。 @@ -1508,15 +1508,15 @@ If command is specified without the argument, it lists all the template packages dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 - 'dotnet workload search version' has three functions depending on its argument: - 1. If no argument is specified, it outputs a list of the latest released workload versions from this feature band. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 根據其引數,'dotnet workload search version' 有三個函式: + 1. 如果未指定引數,它會從此功能帶輸出最新發行工作負載版本的清單。使用 --take 選項來指定要提供多少個,以及使用 --format 來變更格式。 + 範例: dotnet workload search version --take 2 --format json [{"workloadVersion":"9.0.201"},{"workloadVersion":"9.0.200.1"}] - 2. If a workload version is provided as an argument, it outputs a table of various workloads and their versions for the specified workload version. Takes the --format option to alter the output format. - Example: + 2. 如果提供工作負載版本做為引數,它會針對指定的工作負載版本輸出各種工作負載及其版本的表格。使用 --format 選項來變更輸出格式。 + 範例: dotnet workload search version 9.0.201 - Workload manifest ID Manifest feature band Manifest Version + 工作負載資訊清單識別碼 資訊清單功能帶 資訊清單版本 ------------------------------------------------------------------------------------------------ microsoft.net.workload.emscripten.current 9.0.100-rc.1 9.0.0-rc.1.24430.3 microsoft.net.workload.emscripten.net6 9.0.100-rc.1 9.0.0-rc.1.24430.3 @@ -1532,8 +1532,8 @@ If command is specified without the argument, it lists all the template packages microsoft.net.workload.mono.toolchain.net6 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net7 9.0.100-rc.1 9.0.0-rc.1.24431.7 microsoft.net.workload.mono.toolchain.net8 9.0.100-rc.1 9.0.0-rc.1.24431.7 - 3. If one or more workloads are provided along with their versions (by joining them with the '@' character), it outputs workload versions that match the provided versions. Takes the --take option to specify how many to provide and --format to alter the format. - Example: + 3. 如果提供一或多個工作負載及其版本 (使用 '@' 字元聯結它們),它會輸出符合所提供版本的工作負載版本。使用 --take 選項來指定要提供多少個,以及使用 --format 來變更格式。 + 範例: dotnet workload search version maui@9.0.0-rc.1.24453.9 ios@17.5.9270-net9-rc1 9.0.201 @@ -1541,775 +1541,775 @@ If command is specified without the argument, it lists all the template packages The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + 要進行作業的專案檔。若未指定檔案,此命令將會搜尋目前的目錄以取得一個檔案。 Convert a file-based program to a project-based program. - Convert a file-based program to a project-based program. + 將檔案型程式轉換成專案型程式。 Determines changes without actually modifying the file system - Determines changes without actually modifying the file system + 確定變更而不實際修改檔案系統 PROJECT_MANIFEST - PROJECT_MANIFEST + PROJECT_MANIFEST The XML file that contains the list of packages to be stored. - The XML file that contains the list of packages to be stored. + 包含要儲存之套件清單的 XML 檔案。 The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + 要執行的專案檔案或 C# 檔案型應用程式。若未指定檔案,命令就會在目前的目錄中搜尋專案或檔案。 PROJECT | FILE - PROJECT | FILE + 專案 | 檔案 Publisher for the .NET Platform - Publisher for the .NET Platform + .NET 平台的發行者 The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. - The configuration to publish for. The default is 'Release' for NET 8.0 projects and above, but 'Debug' for older projects. + 要發佈的設定。.NET 8.0 專案及更新版本的預設值為 'Release',但較舊專案的預設值為 'Debug'。 The target framework to publish for. The target framework has to be specified in the project file. - The target framework to publish for. The target framework has to be specified in the project file. + 要為其進行發佈的目標架構。該架構必須在專案檔中指定。 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to place the published artifacts in. - The output directory to place the published artifacts in. + 放置發佈之成品的輸出目錄。 The target runtime to publish for. This is used when creating a self-contained deployment. The default is to publish a framework-dependent application. - The target runtime to publish for. This is used when creating a self-contained deployment. -The default is to publish a framework-dependent application. + 要發佈至的目標執行階段。在建立獨立式部署時會使用此項目。 +預設為發佈與 Framework 相依的應用程式。 Shut down the Razor build server. - Shut down the Razor build server. + 關閉 Razor 組建伺服器。 Add a project-to-project reference to the project. - Add a project-to-project reference to the project. + 將專案對專案參考新增至專案。 Add the reference only when targeting a specific framework. - Add the reference only when targeting a specific framework. + 只有在以特定架構為目標時才新增此參考。 The paths to the projects to add as references. - The paths to the projects to add as references. + 到達要新增為參考之專案的路徑。 PROJECT_PATH - PROJECT_PATH + PROJECT_PATH List all project-to-project references of the project. - List all project-to-project references of the project. + 列出專案的所有專案對專案參考。 Remove a project-to-project reference from the project. - Remove a project-to-project reference from the project. + 從專案移除專案對專案參考。 Remove the reference only when targeting a specific framework. - Remove the reference only when targeting a specific framework. + 只有在以特定架構為目標時,才移除參考。 The paths to the referenced projects to remove. - The paths to the referenced projects to remove. + 到達要移除之參考專案的路徑。 PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Remove one or more projects from a solution file. - Remove one or more projects from a solution file. + 從解決方案檔移除一或多個專案。 The project paths or names to remove from the solution. - The project paths or names to remove from the solution. + 要從解決方案移除的專案路徑或名稱。 PROJECT_PATH - PROJECT_PATH + PROJECT_PATH Required command was not provided. - Required command was not provided. + 未提供所需的命令。 .NET dependency restorer - .NET dependency restorer + .NET 相依性還原程式 Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. - Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. + 如果未安裝 .NET 執行階段目標,則允許 .NET 工具向前復原至較新版本的 .NET 執行階段。 .NET Run Command - .NET Run Command + .NET 執行命令 The configuration to run for. The default for most projects is 'Debug'. - The configuration to run for. The default for most projects is 'Debug'. + 要為其執行的組態。大部分的專案預設為「偵錯」。 The target framework to run for. The target framework must also be specified in the project file. - The target framework to run for. The target framework must also be specified in the project file. + 要為其執行的目標架構。該目標架構也必須在專案檔中指定。 The target runtime to run for. - The target runtime to run for. + 測試標的之目標執行階段。 RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + 啟用診斷輸出。 Display the command schema as JSON. - Display the command schema as JSON. + 以 JSON 格式顯示命令結構描述。 .NET SDK Command - .NET SDK Command + .NET SDK 命令 .NET SDK Check Command - .NET SDK Check Command + .NET SDK 檢查命令 The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + 不能同時使用 '--self-contained' 和 '--no-self-contained' 選項。 {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + 將 .NET 執行階段隨著您的應用程式發佈,以便您不需在目標電腦上安裝執行階段。 +預設值為 'false'。不過,當目標為 .NET 7 或更低版本時,如有指定執行階段識別碼,則預設值為 'true'。 Skip updating the workload manifests. - Skip updating the workload manifests. + 跳過更新工作負載資訊清單。 Skip the optimization phase. - Skip the optimization phase. + 跳過最佳化階段。 Skip signature verification of workload packages and installers. - Skip signature verification of workload packages and installers. + 略過工作負載套件和安裝程式的簽章驗證。 Skip creating symbol files which can be used for profiling the optimized assemblies. - Skip creating symbol files which can be used for profiling the optimized assemblies. + 跳過建立符號檔,該檔案可用於分析最佳化組件。 Recursively add projects' ReferencedProjects to solution - Recursively add projects' ReferencedProjects to solution + 遞歸地將專案的 ReferencedProjects 新增至解決方案 .NET modify solution file command - .NET modify solution file command + .NET 修改方案檔命令 The solution file to operate on. If not specified, the command will search the current directory for one. - The solution file to operate on. If not specified, the command will search the current directory for one. + 要進行作業的解決方案檔。若未指定檔案,此命令將會搜尋目前的目錄以取得一個檔案。 SLN_FILE - SLN_FILE + SLN_FILE The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + 要操作的專案或解決方案。若未指定檔案,命令就會在目前的目錄中搜尋一個檔案。 PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + 要執行的專案或解決方案或 C# (基於檔案的程式) 檔案。若未指定檔案,命令就會在目前的目錄中搜尋專案或解決方案。 PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + 專案 | 解決方案 | 檔案 Source - Source + 來源 The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. - The package source to search. You can pass multiple `--source` options to search multiple package sources. Example: `--source https://api.nuget.org/v3/index.json`. + 要搜尋的封裝來源。您可以傳遞多個 `--source` 選項來搜尋多個封裝來源。範例: `--source https://api.nuget.org/v3/index.json`。 Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. - Stores the specified assemblies for the .NET Platform. By default, these will be optimized for the target runtime and framework. + 儲存為 .NET 平台所指定的組件。根據預設,會為目標執行階段與架構,最佳化這些組件。 The target framework to store packages for. The target framework has to be specified in the project file. - The target framework to store packages for. The target framework has to be specified in the project file. + 要對其儲存套件的目標架構。該目標架構必須在專案檔中指定。 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The output directory to store the given assemblies in. - The output directory to store the given assemblies in. + 儲存指定組件的輸出目錄。 The target runtime to store packages for. - The target runtime to store packages for. + 要對其儲存套件的目標執行階段。 Specify a temporary directory for this command to download and extract NuGet packages (must be secure). - Specify a temporary directory for this command to download and extract NuGet packages (must be secure). + 指定此命令的暫存目錄,以下載並解壓縮 NuGet 套件 (必須為安全)。 Displays a summary of what would happen if the given command line were run if it would result in a template creation. - Displays a summary of what would happen if the given command line were run if it would result in a template creation. + 顯示如果執行所給予的命令列會導致範本建立,會發生什麼情況的摘要。 Forces content to be generated even if it would change existing files. - Forces content to be generated even if it would change existing files. + 強制產生內容,即使內容會變更現有的檔案。 The name for the output being created. If no name is specified, the name of the output directory is used. - The name for the output being created. If no name is specified, the name of the output directory is used. + 要建立的輸出名稱。如果未指定名稱,則使用輸出目錄的名稱。 Disables checking for the template package updates when instantiating a template. - Disables checking for the template package updates when instantiating a template. + 停用在具現化範本時檢查範本套件更新。 OUTPUT_DIR - OUTPUT_DIR + OUTPUT_DIR The configuration to use for running tests. The default for most projects is 'Debug'. - The configuration to use for running tests. The default for most projects is 'Debug'. + 要用於執行測試的組態。大部分的專案預設為「偵錯」。 The target framework to run tests for. The target framework must also be specified in the project file. - The target framework to run tests for. The target framework must also be specified in the project file. + 要為其執行測試的目標架構。該目標架構必須在專案檔中指定。 The target runtime to test for. - The target runtime to test for. + 要測試的目標執行時間。 Install or work with tools that extend the .NET experience. - Install or work with tools that extend the .NET experience. + 安裝或使用可擴充 .NET 體驗的工具。 Executes a tool from source without permanently installing it. - Executes a tool from source without permanently installing it. + 從來源執行工具,但不永久性地安裝。 Add an additional NuGet package source to use during installation. - Add an additional NuGet package source to use during installation. + 新增於安裝期間要使用的額外 NuGet 套件來源。 ADDSOURCE - ADDSOURCE + ADDSOURCE Install global or local tool. Local tools are added to manifest and restored. - Install global or local tool. Local tools are added to manifest and restored. + 安裝全域或本機工具。本機工具會新增至資訊清單,並會還原。 The NuGet configuration file to use. - The NuGet configuration file to use. + 要使用的 NuGet 組態檔。 FILE - FILE + 檔案 The target framework to install the tool for. - The target framework to install the tool for. + 要為工具安裝的目標 Framework。 FRAMEWORK - FRAMEWORK + 架構 Install the tool for the current user. - Install the tool for the current user. + 為目前的使用者安裝工具。 Install the tool and add to the local tool manifest (default). - Install the tool and add to the local tool manifest (default). + 安裝工具,並將其新增至本機工具資訊清單 (預設)。 Path to the manifest file. - Path to the manifest file. + 資訊清單檔的路徑。 PATH - PATH + 路徑 Replace all NuGet package sources to use during installation with these. - Replace all NuGet package sources to use during installation with these. + 以這些套件取代安裝期間使用的所有 NuGet 套件來源。 SOURCE - SOURCE + 資料來源 The directory where the tool will be installed. The directory will be created if it does not exist. - The directory where the tool will be installed. The directory will be created if it does not exist. + 安裝工具所在的目錄。若該目錄不存在,則會建立該目錄。 PATH - PATH + 路徑 The version of the tool package to install. - The version of the tool package to install. + 要安裝之工具套件的版本。 VERSION - VERSION + 版本 List tools installed globally or locally. - List tools installed globally or locally. + 列出已安裝在全域或本機的工具。 The output format for the list of tools. - The output format for the list of tools. + 工具清單的輸出格式。 List tools installed for the current user. - List tools installed for the current user. + 列出已為目前使用者安裝的工具。 List the tools installed in the local tool manifest. - List the tools installed in the local tool manifest. + 在本機工具資訊清單中列出已安裝的工具。 The NuGet Package Id of the tool to list - The NuGet Package Id of the tool to list + 要列出的工具的 NuGet 套件識別碼 PACKAGE_ID - PACKAGE_ID + PACKAGE_ID The directory containing the tools to list. - The directory containing the tools to list. + 包含要列出之工具的目錄。 Restore tools defined in the local tool manifest. - Restore tools defined in the local tool manifest. + 還原本機工具資訊清單中所定義的工具。 Path to the manifest file. - Path to the manifest file. + 資訊清單檔的路徑。 Arguments forwarded to the tool - Arguments forwarded to the tool + 轉發到工具的引數 Run a local tool. Note that this command cannot be used to run a global tool. - Run a local tool. Note that this command cannot be used to run a global tool. + 執行本機工具。請注意,此命令無法用來執行全域工具。 Search dotnet tools in nuget.org - Search dotnet tools in nuget.org + 搜尋 nuget.org 中的 dotnet 工具 Include pre-release packages. - Include pre-release packages. + 包含發行前版本套件。 SEARCH_TERM - SEARCH_TERM + SEARCH_TERM Search term from package id or package description. Require at least one character. - Search term from package id or package description. Require at least one character. + 從套件識別碼或套件描述搜尋字詞。至少需要一個字元。 Skip - Skip + 跳過 The number of results to skip, for pagination. - The number of results to skip, for pagination. + 要跳過的結果數目,以便進行分頁。 Take - Take + 採用 The number of results to return, for pagination. - The number of results to return, for pagination. + 要傳回的結果數目,以便進行分頁。 Uninstall a global tool or local tool. - Uninstall a global tool or local tool. + 解除安裝全域工具或本機工具。 Uninstall the tool from the current user's tools directory. - Uninstall the tool from the current user's tools directory. + 從目前使用者的工具目錄,解除安裝工具。 Uninstall the tool and remove it from the local tool manifest. - Uninstall the tool and remove it from the local tool manifest. + 解除安裝該工具,並將其從本機工具資訊清單中移除。 Path to the manifest file. - Path to the manifest file. + 資訊清單檔的路徑。 The directory containing the tool to uninstall. - The directory containing the tool to uninstall. + 包含要解除安裝之工具的目錄。 Update a global or local tool. - Update a global or local tool. + 更新全域或本機工具。 Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + 無法辨識的命令或引數 '{0}' Update all tools. - Update all tools. + 更新所有工具。 Controls whether updates should look for workload sets or the latest version of each individual manifest. - Controls whether updates should look for workload sets or the latest version of each individual manifest. + 控制更新是否應尋找工作負載集或每個單獨資訊清單的最新版本。 Shut down the VB/C# compiler build server. - Shut down the VB/C# compiler build server. + 關閉 VB/C# 編譯器組建伺服器。 Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + 當套件引數已包含版本時,無法指定 --version。 {Locked="--version"} Verbosity - Verbosity + 詳細程度 Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` - Display this amount of details in the output: `normal`, `minimal`, `detailed`. The default is `normal` + 在輸出中顯示此詳細資料量: `normal`、`minimal`、`detailed`。預設為 `normal` Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + 設定 MSBuild 的詳細程度層級。允許的值為 q[uiet]、m[inimal]、n[ormal]、d[etailed] 及 diag[nostic]。 Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. - Sets the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. + 設定詳細資訊層級。允許的值為 q[uiet]、m[inimal]、n[ormal] 和 diag[nostic]。 VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX Removes workload components that may have been left behind from previous updates and uninstallations. - Removes workload components that may have been left behind from previous updates and uninstallations. + 移除先前更新和解除安裝中可能遺漏的工作負載元件。 Install or work with workloads that extend the .NET experience. - Install or work with workloads that extend the .NET experience. + 安裝或使用可提升 .NET 體驗的工作負載。 Modify or display workload configuration values. To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" - Modify or display workload configuration values. -To display a value, specify the corresponding command-line option without providing a value. For example: "dotnet workload config --update-mode" + 修改或顯示工作負載設定值。 +若要顯示值,請指定對應的命令列選項而不提供值。 例如: "dotnet workload config --update-mode" Start the elevated server process to facilitate MSI based installations. - Start the elevated server process to facilitate MSI based installations. + 啟動提升權限的伺服器處理序,以輔助 MSI 型安裝。 Shows a history of workload installation actions. - Shows a history of workload installation actions. + 顯示工作負載安裝動作的歷程記錄。 The NuGet package ID of the workload to install. - The NuGet package ID of the workload to install. + 要安裝工作負載的 NuGet 套件識別碼。 WORKLOAD_ID - WORKLOAD_ID + WORKLOAD_ID The text to search for in the IDs and descriptions of available workloads. - The text to search for in the IDs and descriptions of available workloads. + 要在可用工作負載的識別碼和描述中搜尋的文字。 SEARCH_STRING - SEARCH_STRING + SEARCH_STRING Display information about installed workloads. - Display information about installed workloads. + 顯示已安裝工作負載的相關資訊。 Install one or more workloads. - Install one or more workloads. + 安裝一或多個工作負載。 The NuGet configuration file to use. - The NuGet configuration file to use. + 要使用的 NuGet 組態檔。 FILE - FILE + 檔案 The NuGet package source to use during the restore. To specify multiple sources, repeat the option. - The NuGet package source to use during the restore. To specify multiple sources, repeat the option. + 還原期間要使用的 NuGet 套件資料來源。若要指定多個來源,請重複選項。 SOURCE - SOURCE + 資料來源 The version of the SDK. - The version of the SDK. + SDK 的版本。 VERSION - VERSION + 版本 List workloads available. - List workloads available. + 列出可用的工作負載。 Repair workload installations. - Repair workload installations. + 修復工作負載安裝。 Restore workloads required for a project. - Restore workloads required for a project. + 還原專案所需的工作負載。 Search for available workloads. - Search for available workloads. + 搜尋可用的工作負載。 A workload version to display or one or more workloads and their versions joined by the '@' character. - A workload version to display or one or more workloads and their versions joined by the '@' character. + 要顯示的工作負載版本,或是一或多個工作負載及其由 '@' 字元連接的版本。 Uninstall one or more workloads. - Uninstall one or more workloads. + 解除安裝一或多個工作負載。 Update all installed workloads. - Update all installed workloads. + 更新所有已安裝的工作負載。 WORKLOAD_VERSION - WORKLOAD_VERSION + WORKLOAD_VERSION Output workload manifest versions associated with the provided workload version. - Output workload manifest versions associated with the provided workload version. + 與提供的工作負載版本相關聯的輸出工作負載資訊清單版本。 Display the currently installed workload version. - Display the currently installed workload version. + 顯示目前安裝的工作負載版本。 Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + 使用「是」,以接受所有確認提示。 The friendly name of the data collector to use for the test run. More info here: https://aka.ms/vstest-collect - The friendly name of the data collector to use for the test run. - More info here: https://aka.ms/vstest-collect + 用於測試執行的資料收集器之易記名稱。 + 此處提供詳細資訊: https://aka.ms/vstest-collect DATA_COLLECTOR_NAME - DATA_COLLECTOR_NAME + DATA_COLLECTOR_NAME diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.cs.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.cs.xlf index a2031f59c656..a32cbbd1b2f5 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.cs.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.cs.xlf @@ -4,89 +4,89 @@ Add - Add + Přidat Ambiguous command name: {0} - Ambiguous command name: {0} + Nejednoznačný název příkazu {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + Cílová architektura ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Cesta k artefaktům. Veškerý výstup z projektu, včetně výstupu sestavení, publikování a balíčku, se přesune do podsložek v zadané cestě. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: Pokus o vytvoření specifikace příkazu commandspec {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: Pokus o nalezení příkazu {1} v {2} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: Pokus o vyřešení {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: Pokus o vyřešení specifikace příkazu nástroje {1} outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} neexistuje Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + Pro prázdnou cestu ke spustitelnému souboru nelze vytvořit překrytí prostředí. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + Nejde najít soubor manifestu. Seznam prohledaných cest: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + V souboru manifestu se nepovedlo najít balíček s ID {0}. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Nepovedlo se vyřešit aktuální identifikátor modulu runtime. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Zadání možností -r|--runtime a -a|--arch zároveň se nepodporuje. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Zadání možností -r|--runtime a -os zároveň se nepodporuje. @@ -100,21 +100,21 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Nastavuje hodnotu proměnné prostředí. +Pokud proměnná neexistuje, vytvoří ji, a pokud existuje, přepíše ji. +Tento argument je možné zadat vícekrát a určit tak více proměnných. Examples: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="hodnota s mezerami" +-e VARIABLE="hodnota;oddělená;pomocí;středníků" -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NÁZEV="HODNOTA" @@ -129,117 +129,117 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Nastaví hodnotu proměnné prostředí. +Pokud proměnná neexistuje, vytvoří ji, a pokud existuje, přepíše ji. +Tímto se vynutí spuštění testů v izolovaném procesu. +Tento argument je možné zadat vícekrát a určit tak více proměnných. -Examples: --e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" --e VAR1=abc -e VAR2=def -e VAR3=ghi +Příklady: +-e PROMĚNNÁ=abc +-e PROMĚNNÁ="hodnota s mezerami" +-e PROMĚNNÁ="hodnota;oddělená;pomocí;středníků" +-e PROM1=abc -e PROM2=def -e PROM3=ghi Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Nastavuje hodnotu vlastnosti $(VersionSuffix), která se má použít při sestavování projektu. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + Maximální šířka sloupce musí být větší než nula. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + Spustitelný soubor příkazu {0} se nenašel. Projekt se nepodařilo obnovit nebo jeho obnovení nebylo úspěšné. Spusťte příkaz dotnet restore. Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Umožňuje, aby se příkaz zastavil a počkal na vstup nebo akci uživatele (například na dokončení ověření). Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Umožňuje instalaci předběžných verzí balíčků. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: Specifikace příkazu commandSpec je null. FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + Soubor {0} se nenašel. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Zadaný soubor řešení {0} neexistuje nebo v adresáři není soubor řešení. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + Nenašlo se řešení ani adresář {0}. {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: Soubor runtimeconfig.json nástroje {1} se nenašel. Delete - Delete + Odstranit Unable to find deps.json generator project. - Unable to find deps.json generator project. + Projekt generátoru deps.json se nenašel. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: Nepodařilo se najít shodný projekt {1}. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: Objekt pro vytváření projektů ProjectFactory nenašel projekt. Did you mean the following command? - Did you mean the following command? + Měli jste na mysli následující příkaz? Directory - Directory + Adresář Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Vynuťte, aby příkaz ignoroval všechny trvalé buildovací servery. {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} neexistuje. @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Adresář nástrojů {0} se aktuálně nenachází v proměnné prostředí PATH. +Pokud používáte bash, můžete ho přidat do profilu tak, že spustíte následující příkaz: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Přidejte nástroje .NET Core SDK export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Pokud ho chcete přidat do aktuální relace, slouží k tomuto tento příkaz: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + Právě jste nainstalovali sadu .NET SDK, před spuštěním nainstalovaného nástroje proto bude nutné se odhlásit nebo restartovat relaci. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Adresář nástrojů {0} se aktuálně nenachází v proměnné prostředí PATH. +Pokud používáte bash, můžete ho přidat do profilu tak, že spustíte následující příkaz: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Přidejte nástroje .NET Core SDK export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Pokud ho chcete přidat do aktuální relace, slouží k tomuto tento příkaz: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + Právě jste nainstalovali sadu .NET SDK, před spuštěním nainstalovaného nástroje proto bude nutné znovu otevřít terminál. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + Adresář nástrojů {0} se aktuálně nenachází v proměnné prostředí PATH. +Pokud používáte zsh, můžete si ho přidat do profilu tak, že spustíte následující příkaz: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# Přidejte nástroje .NET Core SDK export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +Pak ho spuštěním příkazu `zsh -l` zpřístupněte pro aktuální relaci. -You can only add it to the current session by running the following command: +Pokud ho chcete přidat do aktuální relace, slouží k tomuto tento příkaz: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + Adresář nástrojů {0} není momentálně v proměnné prostředí PATH. -You can add the directory to the PATH by running the following command: +Tento adresář přidáte do proměnné PATH spuštěním následujícího příkazu: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + Právě jste nainstalovali sadu .NET SDK, před spuštěním nainstalovaného nástroje proto bude nutné znovu otevřít okno příkazového řádku. Error - Error + Chyba You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + Spouštíte operaci instalace nástroje se zdrojem HTTP: {0}. NuGet vyžaduje zdroje HTTPS. Pokud chcete použít zdroj HTTP, musíte v souboru NuGet.Config explicitně nastavit možnost allowInsecureConnections na true. Další informace najdete na https://aka.ms/nuget-https-everywhere. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: Soubor deps.json se očekává v: {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + Pro překrytí prostředí se nepodařilo nastavit oprávnění uživatele ke spouštění: {0}. Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + Pro příkaz {0} se nepodařilo vytvořit překrytí nástroje: {1}. {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: Nepodařilo se najít commandPath {1} Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + Nepovedlo se najít knihovnu v souboru prostředků NuGet pro balíček nástroje {0}: {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Mapování zdroje balíčku je povoleno, ale pod zadaným ID balíčku nebyl nalezen žádný zdroj: {0}. Další podrobnosti najdete v dokumentaci k mapování zdrojů balíčků na https://aka.ms/nuget-package-source-mapping. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + Nepodařilo se najít připravený balíček nástroje {0}. {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: Nepodařilo se najít toolAssembly pro {1} Failed to load NuGet source {0} - Failed to load NuGet source {0} + Nepovedlo se načíst zdroj NuGet {0}. Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Mapování zdroje balíčku je povoleno, ale pod zadaným ID balíčku není namapován žádný zdroj: {0}. Další podrobnosti najdete v dokumentaci k mapování zdrojů balíčků na https://aka.ms/nuget-package-source-mapping. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + Nepovedlo se přečíst soubor prostředků NuGet pro balíček nástroje {0}: {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + Nepodařilo se přečíst soubor s identifikátorem PID {0}: {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + Pro příkaz {0} se nepodařilo odebrat překrytí nástroje: {1}. {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: Specifikaci příkazu commandspec z knihovny se nepodařilo vyřešit. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Nepodařilo se načíst konfiguraci nástroje: {0}. Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + Nepovedlo se přidat adresář {0} do proměnné prostředí PATH. Přidejte tento adresář do proměnné PATH, abyste mohli používat nástroje nainstalované pomocí dotnet tool install. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + Nepodařilo se odinstalovat balíček nástroje {0}: {1}. Failed to validate package signing. {0} - Failed to validate package signing. + Nepodařilo se ověřit podepisování balíčku. {0} Missing 'commands' entry. - Missing 'commands' entry. + Chybí položka commands. File - File + Soubor The file-based app to operate on. - The file-based app to operate on. + Souborová aplikace, se kterou se má pracovat. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + Verze formátu je vyšší, než se podporuje. Tento nástroj se možná v této verzi SDK nepodporuje. Aktualizujte sadu SDK. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + Verze formátu je chybně vytvořená. Tento nástroj se možná v této verzi SDK nepodporuje. Obraťte se na autora nástroje. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + Verze formátu chybí. Tento nástroj se možná v této verzi SDK nepodporuje. Obraťte se na autora nástroje. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + Projekt {0} se našel, ale není platný. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: Zjištěný lockfile nástroje na: {1} FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Publikujte svoji aplikaci jako aplikaci závislou na architektuře. Aby bylo možné vaši aplikaci spustit, musí být na cílovém počítači nainstalovaný kompatibilní modul runtime .NET. Generating deps.json at: {0} - Generating deps.json at: {0} + Generování souboru deps.json do: {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: Soubor prefercliruntime se ignoruje, protože cílová architektura nástroje ({1}) má jinou hlavní verzi než aktuální modul runtime rozhraní příkazového řádku ({2}). In package {0}: {1} - In package {0}: + V balíčku {0}: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Nesprávně formátované proměnné prostředí: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: Neplatné hodnoty commandResolverArguments {0} should be an integer - {0} should be an integer + {0} by mělo být celé číslo. Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Neplatný soubor manifestu. Cesta {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + Projekt {0} není platný. Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + Neplatný projekt {0}. {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + Identifikátor modulu runtime {0} je neplatný. Platné identifikátory modulu runtime jsou: {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + Neplatné řešení {0}. {1}. Invalid version string: {0} - Invalid version string: {0} + Neplatný řetězec verze: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + Balíček {0} se nenašel v informačních kanálech NuGet {1}. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + Chyba parsování JSON v souboru {0}: {1} LEVEL - LEVEL + LEVEL Library - Library + Knihovna {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: Knihovna nebyla v souboru lock nalezena. List - List + Seznam {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: Hledání souboru prefercliruntime v {1} .NET Cli Options: - .NET Cli Options: + Možnosti rozhraní příkazového řádku .NET: MSBuild arguments: {0} - MSBuild arguments: {0} + Argumenty MSBuild: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: Cesta k projektu MSBuildu = {1} MSBuild server - MSBuild server + Server MSBuild File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + Soubor {0} pochází z jiného počítače a je možné, že se zablokoval, aby se ochránil tento počítač. Další informace včetně toho, jak soubor odblokovat, najdete na adrese https://aka.ms/motw. Missing 'isRoot' entry. - Missing 'isRoot' entry. + Chybí položka isRoot. Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + Balíček se nedá přidat. Soubor manifestu už obsahuje verzi {0} balíčku {1}. Pokud chcete zadat novou verzi {3}, odinstalujte, nainstalujte nebo upravte soubor manifestu {2}. Manifest version 0 is not supported. - Manifest version 0 is not supported. + Verze manifestu 0 se nepodporuje. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + Verze manifestu je {0}. Je možné, že se tento manifest nebude podporovat v této verzi sady SDK, která podporuje verzi manifestu až {1}. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + Soubor vstupního bodu {0} pro příkaz {1} nebyl v balíčku nalezen. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + Soubor s nastavením DotnetToolSettings.xml nebyl v balíčku nalezen. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Je k dispozici více než jedno zabalené překrytí: {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + V {0} se našlo několik souborů řešení. Vyberte, který z nich chcete použít. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Zadejte, jaký soubor projektu se použije, protože {0} obsahuje více souborů projektů. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Existuje více než jedno zadání pro balíčky: {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + Pokud chcete zpřístupnit příkaz {0}, spusťte dotnet tool restore. New - New + Nový Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Nezobrazovat úvodní nápis ani zprávu o autorských právech No projects found in the solution. - No projects found in the solution. + V řešení se nenašly žádné projekty. There are no {0} references in project {1}. - There are no {0} references in project {1}. + V projektu {1} nejsou žádné odkazy na {0}. Do not restore the project before building. - Do not restore the project before building. + Neobnoví projekt před sestavením. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + Hledání nebylo úspěšné. Podrobnosti odpovědi rozhraní API hledání NuGet: + RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2} Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + Přeskakuje se ověření podpisu pro balíček NuGet {0}, protože pochází ze zdroje, který nevyžaduje ověření podpisu. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + Přeskakuje se ověření podpisu balíčku NuGet. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: Kořen balíčků NuGet: {1} OS - OS + Operační systém Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + Pomocí možnosti -p je možné v jednu chvíli zadat pouze jeden projekt. {Locked="-p"} The target operating system. - The target operating system. + Cílový operační systém Project to Project - Project to Project + Z projektu na projekt Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + Lze zabalit pouze jeden .nuspec soubor najednou. Package - Package + Balíček Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Odkaz na balíček ve formě identifikátoru balíčku, jako je „{0}“, nebo identifikátor balíčku a verze oddělené znakem @, například „{0}@{1}“. Package reference id and version must not be null. - Package reference id and version must not be null. + ID a verze odkazu na balíček nesmí být prázdné. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Nejde zadat --version, pokud argument balíčku již obsahuje verzi. {Locked="--version"} Package reference - Package reference + Odkaz na balíček A version of {0} of package {1} - A version of {0} of package {1} + Verze {0} balíčku {1} Version {0} of package {1} - Version {0} of package {1} + Verze {0} balíčku {1} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + Verze mezi {0} a {1} balíčku {2} A version higher than {0} of package {1} - A version higher than {0} of package {1} + Verze vyšší než {0} balíčku {1} A version less than {0} of package {1} - A version less than {0} of package {1} + Verze menší než {0} balíčku {1} Project - Project + Projekt Project `{0}` added to the solution. - Project `{0}` added to the solution. + Projekt {0} byl přidán do řešení. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + Projekt už obsahuje odkaz na {0}. The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Soubor projektu, s kterým se má pracovat. Pokud soubor není zadaný, příkaz ho bude hledat v aktuálním adresáři. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + Projekt {0} se nepodařilo vyhodnotit. Vyhodnocení selhalo s následující chybou: {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + Projekt {0} neexistuje. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + Projekt {0} není určený pro cílovou architekturu {1}. Project `{0}` is invalid. - Project `{0}` is invalid. + Projekt {0} není platný. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + Projekt {0} není možné přidat, protože cílové platformy obou projektů nejsou kompatibilní. Zkontrolujte projekt, který se pokoušíte přidat, a ověřte jeho kompatibilitu s následujícími cíli: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + Projekt {0} se v řešení nenašel. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Soubor projektu nebo souborová aplikace v jazyce C#, se kterou se má pracovat. Pokud soubor není zadaný, příkaz vyhledá soubor projektu v aktuálním adresáři. PROJECT | FILE - PROJECT | FILE + PROJEKT | SOUBOR Project reference - Project reference + Odkaz na projekt Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + Nenašel se odkaz na projekt {0}. Project reference(s) - Project reference(s) + Odkaz(y) na projekt Project reference `{0}` removed. - Project reference `{0}` removed. + Odkaz na projekt {0} byl odebrán. Project `{0}` removed from solution. - Project `{0}` removed from solution. + Projekt {0} byl z řešení odebrán. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + Projekt {0} byl z řešení odebrán. Razor build server - Razor build server + Buildovací server Razor Reference - Reference + Odkaz Reference `{0}` added to the project. - Reference `{0}` added to the project. + Odkaz na {0} byl přidán do projektu. Remove - Remove + Odebrat Required command was not provided. - Required command was not provided. + Požadovaný příkaz nebyl zadán. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: Řeší se specifikace příkazu commandspec z knihoven nástroje {1}. Response file '{0}' does not exist. - Response file '{0}' does not exist. + Soubor odpovědí {0} neexistuje. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + Hledání nebylo úspěšné. Později už možná k problému nedojde. Podrobnosti odpovědi rozhraní API hledání NuGet: + RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2} RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Povolí diagnostický výstup. Display the command schema as JSON. - Display the command schema as JSON. + Zobrazí schéma příkazu jako JSON. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Možnosti --self-contained a --no-self-contained nelze použít společně. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Publikujte se svou aplikací modul runtime pro .NET, aby ho nebylo nutné instalovat na cílovém počítači. +Výchozí hodnota je false. Pokud však cílíte na .NET 7 nebo nižší a je zadán identifikátor modulu runtime, výchozí hodnota je true. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + Příkaz {0} koliduje s existujícím příkazem jiného nástroje. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Vyhledejte dostupné verze úlohy nebo zjistěte, z čeho se skládá verze úlohy. Další informace získáte pomocí „dotnet workload search version --help“. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Zobrazí nápovědu příkazového řádku. The shutdown command failed: {0} - The shutdown command failed: {0} + Příkaz pro vypnutí selhal: {0} Solution - Solution + Řešení Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + Řešení {0} už obsahuje projekt {1}. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + Argument řešení „{0}“ je chybně umístěný. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Zadaný soubor řešení {0} neexistuje nebo v adresáři není soubor řešení. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Soubor projektu nebo řešení, se kterým se má operace provést. Pokud soubor není zadaný, příkaz ho bude hledat v aktuálním adresáři. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Projekt nebo řešení nebo soubor C# (souborový program), se kterým se má pracovat. Pokud soubor není zadaný, příkaz bude hledat projekt nebo řešení v aktuálním adresáři. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJEKT | ŘEŠENÍ | SOUBOR Specify at least one {0}. - Specify at least one {0}. + Zadejte aspoň jednu položku {0}. You must specify at least one project to add. - You must specify at least one project to add. + Musíte zadat aspoň jeden projekt, který chcete přidat. You must specify at least one project to remove. - You must specify at least one project to remove. + Musíte zadat aspoň jeden projekt, který chcete odebrat. You must specify at least one reference to remove. - You must specify at least one reference to remove. + Musíte zadat aspoň jeden odkaz, který chcete odebrat. {0}: tool library found {1} - {0}: tool library found {1} + {0}: Nalezena knihovna nástrojů {1} Missing 'version' entry. - Missing 'version' entry. + Chybí položka version. Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + Nástroj {0} (verze {1}) je už nainstalovaný. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + Balíček {0} není nástroj .NET. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + Příkaz {0} obsahuje minimálně jeden neplatný znak: {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + Název příkazu {0} nemůže začínat úvodní tečkou (.). Invalid XML: {0} - Invalid XML: {0} + Neplatné XML: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + Nástroj definuje příkaz s chybějícím nastavením názvu. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + V příkazu {0} chybí nastavení vstupního bodu. More than one command is defined for the tool. - More than one command is defined for the tool. + Pro nástroj je definovaných více příkazů. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + Nástroj {0} používá nepodporovaný spouštěč {1}. The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + Nástroj nepodporuje aktuální architekturu nebo operační systém ({0}). Podporované moduly runtime: {1} Type - Type + Typ The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + Požadované zásady řetězu certifikátů nebylo možné zkontrolovat: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + nepodařilo se odstranit dočasný soubor deps.json: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + Nepovedlo se vygenerovat soubor deps.json, je možné, že se už vygeneroval. Pokud chcete získat výstup pro diagnostiku, můžete zadat možnost „-d“ za „dotnet“ (například dotnet -d <toolname>): {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + Nepodařilo se najít multiplexor dotnetu. Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + Očekává se {0} pro vlastnost {1}. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Nerozpoznaný příkaz nebo argument: {0} Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + Projekt {0} má neznámý typ projektu a nelze ho přidat do souboru řešení. O podporu požádejte poskytovatele sady SDK. Update - Update + Aktualizovat VB/C# compiler server - VB/C# compiler server + Server kompilátoru VB/C# Value - Value + Hodnota Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Nastavuje úroveň podrobností MSBuild. Povolené hodnoty jsou q [tichý], m [minimální], n [normální], d [podrobný] a diag [diagnostický]. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + Ověřilo se, že balíček NuGet {0} má platný podpis. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + Verzi balíčku {0} se nepodařilo vyřešit. Version {0} is invalid. - Version {0} is invalid. + Verze {0} není platná. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + Při ověřování úloh došlo k problému. Další informace získáte spuštěním příkazu „dotnet workload update“. {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Přijměte všechny výzvy k potvrzení kliknutím „ano“. diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.de.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.de.xlf index 79c490a9f894..5b9b988aa496 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.de.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.de.xlf @@ -4,89 +4,89 @@ Add - Add + Hinzufügen Ambiguous command name: {0} - Ambiguous command name: {0} + Nicht eindeutiger Befehlsname: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + Die Zielarchitektur. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Der Artefaktpfad. Die gesamte Ausgabe des Projekts, einschließlich Build-, Veröffentlichungs- und Paketausgabe, wird in Unterordnern unter dem angegebenen Pfad angezeigt. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: Es wird versucht, commandspec zu erstellen {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: Nach Befehl {1} wird in {2} gesucht {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: Es wird versucht, {1} aufzulösen {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: Es wird versucht, commandspec aus Tool {1} aufzulösen. outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} nicht vorhanden Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + Für einen leeren Pfad einer ausführbaren Datei kann kein Shell-Shim erstellt werden. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + Eine Manifestdatei wurde nicht gefunden. Die Liste der durchsuchten Pfade: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + In der Manifestdatei wurde kein Paket mit der Paket-ID {0} gefunden. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Fehler beim Auflösen des aktuellen Runtimebezeichners. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Das gleichzeitige Angeben der Optionen „-r|--runtime“ und „-a|--arch“ wird nicht unterstützt. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Das gleichzeitige Angeben der Optionen „-r|--runtime“ und „-os“ wird nicht unterstützt. @@ -100,21 +100,21 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Legt den Wert einer Umgebungsvariablen fest. +Erstellt die Variable, wenn Sie nicht vorhanden ist, und setzt sie andernfalls außer Kraft. +Dieses Argument kann mehrmals angegeben werden, um mehrere Variablen bereitzustellen. -Examples: +Beispiele: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="wert mit leerzeichen" +-e VARIABLE="wert;getrennt durch;semikolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NAME="WERT" @@ -129,117 +129,117 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Legt den Wert einer Umgebungsvariablen fest. +Erstellt die Variable, wenn Sie nicht vorhanden ist, und setzt sie andernfalls außer Kraft. +Dadurch wird die Ausführung der Tests in einem isolierten Prozess erzwungen. +Dieses Argument kann mehrmals angegeben werden, um mehrere Variablen bereitzustellen. -Examples: +Beispiele: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="wert mit leerzeichen" +-e VARIABLE="wert;getrennt durch;semikolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Hiermit wird der Wert der $(VersionSuffix)-Eigenschaft festgelegt, die beim Erstellen des Projekts verwendet werden soll. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + Die maximale Spaltenbreite muss größer als 0 sein. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + Der für "{0}" auszuführende Befehl wurde nicht gefunden. Das Projekt wurde möglicherweise nicht wiederhergestellt, oder bei der Wiederherstellung ist ein Fehler aufgetreten. Führen Sie "dotnet restore" aus. Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Hiermit wird zugelassen, dass der Befehl anhält und auf eine Benutzereingabe oder Aktion wartet (beispielsweise auf den Abschluss der Authentifizierung). Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Ermöglicht die Installation von Paketen mit Vorabversionen. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandspec ist NULL. FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + Die Datei "{0}" wurde nicht gefunden. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Die angegebene Projektmappendatei "{0}" ist nicht vorhanden, oder das Verzeichnis enthält keine Projektmappendatei. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + Die Projektmappe oder das Verzeichnis "{0}" wurde nicht gefunden. {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: Die Datei "runtimeconfig.json" wurde für das Tool {1} nicht gefunden. Delete - Delete + löschen Unable to find deps.json generator project. - Unable to find deps.json generator project. + Das deps.json-Generatorprojekt wurde nicht gefunden. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: Kein passendes Projekt {1} gefunden. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: ProjectFactory hat das Projekt nicht gefunden. Did you mean the following command? - Did you mean the following command? + Meinten Sie den folgenden Befehl? Directory - Directory + Verzeichnis Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Erzwingen Sie, dass der Befehl alle persistenten Buildserver ignoriert. {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} nicht vorhanden @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Das Toolverzeichnis "{0}" ist aktuell nicht in der PATH-Umgebungsvariable enthalten. +Wenn Sie Bash verwenden, können Sie es Ihrem Profil durch Ausführen des folgenden Befehls hinzufügen: -cat << \EOF >> ~/.bash_profile +cat << \EOF >> ~007E;/.bash_profile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Sie können es der aktuellen Sitzung hinzufügen, indem Sie den folgenden Befehl ausführen: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + Da Sie gerade das .NET SDK installiert haben, müssen Sie sich abmelden oder Ihre Sitzung neu starten, bevor Sie das installierte Tool ausführen. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Das Toolverzeichnis "{0}" ist aktuell nicht in der PATH-Umgebungsvariable enthalten. +Wenn Sie Bash verwenden, können Sie es Ihrem Profil durch Ausführen des folgenden Befehls hinzufügen: -cat << \EOF >> ~/.bash_profile +cat << \EOF >> ~007E;/.bash_profile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Sie können es der aktuellen Sitzung hinzufügen, indem Sie den folgenden Befehl ausführen: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + Da Sie gerade das .NET SDK installiert haben, müssen Sie das Terminal neu öffnen, bevor Sie das installierte Tool ausführen. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + Das Toolverzeichnis "{0}" ist aktuell nicht in der PATH-Umgebungsvariable enthalten. +Wenn Sie zsh verwenden, können Sie es Ihrem Profil hinzufügen, indem Sie folgenden Befehl ausführen: -cat << \EOF >> ~/.zprofile +cat << \EOF >> ~007E;/.zprofile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +Führen Sie anschließend `zsh -l` aus, um das Tool für die aktuelle Sitzung verfügbar zu machen. -You can only add it to the current session by running the following command: +Um es nur der aktuellen Sitzung hinzuzufügen, führen Sie den folgenden Befehl aus: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + Das Toolverzeichnis "{0}" ist aktuell nicht in der PATH-Umgebungsvariable angegeben. -You can add the directory to the PATH by running the following command: +Um das Verzeichnis zu PATH hinzuzufügen, können Sie den folgenden Befehl ausführen: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + Da Sie gerade das .NET SDK installiert haben, müssen Sie das Eingabeaufforderungsfenster neu öffnen, bevor Sie das installierte Tool ausführen. Error - Error + Fehler You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + Sie führen den Toolinstallationsvorgang mit einer HTTP-Quelle aus: {0}. NuGet erfordert HTTPS-Quellen. Um eine HTTP-Quelle zu verwenden, müssen Sie „allowInsecureConnections“ in Ihrer NuGet.Config-Datei explizit auf TRUE festlegen. Weitere Informationen finden Sie unter https://aka.ms/nuget-https-everywhere. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: "deps.json" vermutet unter: {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + Fehler beim Festlegen der Benutzerberechtigungen der ausführbaren Datei für den Shell-Shim: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + Fehler beim Erstellen des Tool-Shims für den Befehl "{0}": {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: commandPath für {1} nicht gefunden Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + Fehler beim Suchen der Bibliothek in der NuGet-Ressourcendatei für das Toolpaket "{0}": {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Die Paketquellzuordnung ist aktiviert, aber unter der angegebenen Paket-ID wurde keine Quelle gefunden: {0}. Weitere Informationen finden Sie in der Dokumentation zur Paketquellzuordnung unter https://aka.ms/nuget-package-source-mapping. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + Das gestagete Toolpaket "{0}" wurde nicht gefunden. {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: toolAssembly für {1} nicht gefunden Failed to load NuGet source {0} - Failed to load NuGet source {0} + Fehler beim Laden der NuGet-Quelle {0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Die Paketquellzuordnung ist aktiviert, aber unter der angegebenen Paket-ID ist keine Quelle zugeordnet: {0}. Weitere Informationen finden Sie in der Dokumentation zur Paketquellzuordnung unter https://aka.ms/nuget-package-source-mapping. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + Fehler beim Lesen der NuGet-Ressourcendatei für Toolpaket "{0}": {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + Fehler beim Lesen der PID-Datei "{0}": {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + Fehler beim Entfernen des Tool-Shims für den Befehl "{0}": {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: commandspec aus Bibliothek konnte nicht aufgelöst werden. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Fehler beim Abrufen der Toolkonfiguration: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + Fehler beim Hinzufügen von "{0}" zur PATH-Umgebungsvariable. Fügen Sie dieses Verzeichnis Ihrem PATH hinzu, um mit "dotnet tool install" installierte Tools zu verwenden. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + Fehler beim Deinstallieren des Toolpakets "{0}": {1} Failed to validate package signing. {0} - Failed to validate package signing. + Fehler bei der Überprüfung der Paketsignierung. {0} Missing 'commands' entry. - Missing 'commands' entry. + Eintrag "commands" fehlt. File - File + Datei The file-based app to operate on. - The file-based app to operate on. + Die dateibasierte App, die verwendet werden soll. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + Die Formatversion ist höher als unterstützt. Dieses Tool wird in dieser SDK-Version möglicherweise nicht unterstützt. Aktualisieren Sie Ihr SDK. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + Die Formatversion ist fehlerhaft. Dieses Tool wird in dieser SDK-Version möglicherweise nicht unterstützt. Wenden Sie sich an den Autor des Tools. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + Die Formatversion fehlt. Dieses Tool wird in dieser SDK-Version möglicherweise nicht unterstützt. Wenden Sie sich an den Autor des Tools. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + Ein Projekt "{0}" wurde gefunden, ist aber ungültig. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: Toolsperrdatei gefunden unter: {1} FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Veröffentlichen Sie Ihre Anwendung als eine von einem Framework abhängige Anwendung. Eine kompatible .NET-Runtime muss auf dem Zielcomputer installiert sein, um Ihre Anwendung ausführen zu können. Generating deps.json at: {0} - Generating deps.json at: {0} + "deps.json" wird erzeugt unter: {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: Die Datei "prefercliruntime" wird ignoriert, da das Tool-Ziellaufwerk ({1}) eine andere Hauptversion aufweist als die aktuelle CLI-Runtime ({2}). In package {0}: {1} - In package {0}: + Im Paket "{0}": {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Falsch formatierte Umgebungsvariablen: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: ungültige commandResolverArguments {0} should be an integer - {0} should be an integer + {0} muss eine ganze Zahl sein. Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Ungültige Manifestdatei. Pfad "{0}": {1} Invalid project `{0}`. - Invalid project `{0}`. + Ungültiges Projekt "{0}". Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + Ungültiges Projekt "{0}". {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + Der Runtimebezeichner {0} ist ungültig. Gültige Runtimebezeichner sind: {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + Ungültige Projektmappe "{0}". {1} Invalid version string: {0} - Invalid version string: {0} + Ungültige Versionszeichenfolge: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + "{0}" wurde in NuGet-Feeds "{1}" nicht gefunden. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + JSON-Analysefehler in der Datei "{0}": {1} LEVEL - LEVEL + LEVEL Library - Library + Bibliothek {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: Bibliothek nicht in Sperrdatei gefunden. List - List + Liste {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: Suche nach prefercliruntime-Datei unter {1} .NET Cli Options: - .NET Cli Options: + .NET-Cli-Optionen: MSBuild arguments: {0} - MSBuild arguments: {0} + MSBuild-Argumente: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: MSBuild-Projektpfad = {1} MSBuild server - MSBuild server + MSBuild-Server File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + Die Datei "{0}" stammt von einem anderen Computer und wurde möglicherweise zum Schutz dieses Computers blockiert. Weitere Informationen zum Aufheben der Sperre und zu anderen Aktionen finden Sie unter https://aka.ms/motw. Missing 'isRoot' entry. - Missing 'isRoot' entry. + Eintrag "isRoot" fehlt. Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + Das Paket kann nicht hinzugefügt werden. Die Manifestdatei enthält bereits Version {0} des Pakets "{1}". Deinstallieren/installieren oder bearbeiten Sie die Manifestdatei "{2}", um die neue Version {3} anzugeben. Manifest version 0 is not supported. - Manifest version 0 is not supported. + Die Manifestversion 0 wird nicht unterstützt. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + Die Manifestversion lautet {0}. Dieses Manifest wird in dieser SDK-Version möglicherweise nicht unterstützt. Das SDK unterstützt Manifestversionen bis Version {1}. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + Die Einstiegspunktdatei "{0}" für den Befehl "{1}" wurde nicht im Paket gefunden. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + Die Einstellungsdatei "DotnetToolSettings.xml" wurde nicht im Paket gefunden. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Mehr als ein paketierter Shim verfügbar: {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + In "{0}" wurden mehrere Projektmappendateien gefunden. Geben Sie an, welche davon verwendet werden soll. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Geben Sie an, welche Projektdatei verwendet werden soll, weil "{0}" mehrere Projektdateien enthält. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Für diese Pakete ist mehr als ein Eintrag vorhanden: {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + Führen Sie "dotnet tool restore" aus, um den Befehl "{0}" verfügbar zu machen. New - New + Neu Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Zeigt kein Startbanner und keine Copyrightmeldung an. No projects found in the solution. - No projects found in the solution. + In der Projektmappe wurden keine Projekte gefunden. There are no {0} references in project {1}. - There are no {0} references in project {1}. + Im Projekt "{1}" liegen keine {0}-Verweise vor. Do not restore the project before building. - Do not restore the project before building. + Hiermit wird das Projekt nicht vor der Erstellung wiederhergestellt. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: + Fehler bei der Suche. Ausführliche Informationen zur Antwort der NuGet-Such-API: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + Die Signaturüberprüfung für das NuGet-Paket „{0}“ wird übersprungen, da sie aus einer Quelle stammt, für die keine Signaturüberprüfung erforderlich ist. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + Die Überprüfung der NuGet-Paketsignatur wird übersprungen. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: NuGet-Paketstamm: {1} OS - OS + Betriebssystem Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + Nur jeweils ein Projekt kann mithilfe der Option „-p“ angegeben werden. {Locked="-p"} The target operating system. - The target operating system. + Das Zielbetriebssystem. Project to Project - Project to Project + Projekt zu Projekt Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + Es kann immer nur eine .nuspec-Datei gepackt werden. Package - Package + Paket Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Paketverweis in Form eines Paketbezeichners wie {0} oder Paketbezeichner und -version getrennt durch „@“ wie „{0}@{1}“. Package reference id and version must not be null. - Package reference id and version must not be null. + Die Paketverweis-ID und die -version dürfen nicht null sein. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + --version kann nicht angegeben werden, wenn das Paketargument bereits eine Version enthält. {Locked="--version"} Package reference - Package reference + Paketverweis A version of {0} of package {1} - A version of {0} of package {1} + Eine Version von "{0}" des Pakets "{1}" Version {0} of package {1} - Version {0} of package {1} + Version "{0}" des Pakets "{1}" A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + Eine Version zwischen "{0}" und "{1}" des Pakets "{2}" A version higher than {0} of package {1} - A version higher than {0} of package {1} + Eine Version, die höher als "{0}" des Pakets "{1}" ist. A version less than {0} of package {1} - A version less than {0} of package {1} + Eine Version, die niedriger als "{0}" des Pakets "{1}" ist. Project - Project + Projekt Project `{0}` added to the solution. - Project `{0}` added to the solution. + Das Projekt "{0}" wurde der Projektmappe hinzugefügt. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + Für das Projekt ist bereits ein Verweis auf "{0}" vorhanden. The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Die zu verwendende Projektdatei. Wenn keine Datei angegeben ist, sucht der Befehl im aktuellen Verzeichnis nach einer Datei. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + Das Projekt "{0}" konnte nicht ausgewertet werden. Fehler bei der Auswertung: {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + Das Projekt "{0}" ist nicht vorhanden. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + "{1}" ist kein Zielframework von Projekt "{0}" . Project `{0}` is invalid. - Project `{0}` is invalid. + Das Projekt "{0}" ist ungültig. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + Das Projekt "{0}" kann nicht hinzugefügt werden, weil die Zielframeworks der beiden Projekte nicht kompatibel sind. Überprüfen Sie das Projekt, das Sie hinzuzufügen möchten, und stellen Sie sicher, dass es mit folgenden Zielen kompatibel ist: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + Das Projekt "{0}" wurde in der Projektmappe nicht gefunden. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Die Projekt- oder C#-Datei (dateibasiertes Programm), auf die zugegriffen werden soll. Wenn keine Datei angegeben ist, durchsucht der Befehl das aktuelle Verzeichnis nach einer Projektdatei. PROJECT | FILE - PROJECT | FILE + PROJEKT | DATEI Project reference - Project reference + Projektverweis Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + Der Projektverweis "{0}" wurde nicht gefunden. Project reference(s) - Project reference(s) + Projektverweis(e) Project reference `{0}` removed. - Project reference `{0}` removed. + Der Projektverweis "{0}" wurde entfernt. Project `{0}` removed from solution. - Project `{0}` removed from solution. + Das Projekt "{0}" wurde aus der Projektmappe entfernt. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + Das Projekt "{0}" wurde aus der Projektmappe entfernt. Razor build server - Razor build server + Razor-Buildserver Reference - Reference + Verweis Reference `{0}` added to the project. - Reference `{0}` added to the project. + Der Verweis "{0}" wurde dem Projekt hinzugefügt. Remove - Remove + Entfernen Required command was not provided. - Required command was not provided. + Der erforderliche Befehl wurde nicht bereitgestellt. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: commandspec aus {1} Toolbibliotheken wird aufgelöst. Response file '{0}' does not exist. - Response file '{0}' does not exist. + Die Antwortdatei „{0}“ ist nicht vorhanden. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: + Fehler bei der Suche. Durch eine spätere Wiederholung kann das Problem möglicherweise behoben werden. Ausführliche Informationen zur Antwort der NuGet-Such-API: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Diagnoseausgabe aktivieren. Display the command schema as JSON. - Display the command schema as JSON. + Das Befehlsschema als JSON anzeigen. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Die Optionen „--self-contained“ und „--no-self-contained“ können nicht gemeinsam verwendet werden. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Hiermit wird die .NET-Runtime mit Ihrer Anwendung veröffentlicht, sodass die Runtime nicht auf dem Zielcomputer installiert werden muss. +Der Standardwert lautet FALSE. Wenn sie jedoch auf .NET 7 oder niedriger abzielen, lautet der Standardwert TRUE, wenn ein Laufzeitbezeichner angegeben wird. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + Der Befehl "{0}" steht in Konflikt zu einem vorhandenen Befehl aus einem anderen Tool. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Suchen Sie nach verfügbaren Workloadversionen oder was eine Workloadversion umfasst. Verwenden Sie "dotnet workload search version --help", um weitere Informationen zu erhalten. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Hiermit wird die Hilfe zur Befehlszeile angezeigt. The shutdown command failed: {0} - The shutdown command failed: {0} + Fehler beim Befehl zum Herunterfahren: {0} Solution - Solution + Projektmappe Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + Die Projektmappe "{0}" enthält das Projekt "{1}" bereits. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + Das Projektmappenargument "{0}" wurde falsch eingefügt. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Die angegebene Projektmappendatei "{0}" ist nicht vorhanden, oder das Verzeichnis enthält keine Projektmappendatei. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Das Projekt oder die Projektmappendatei, die verwendet werden soll. Wenn keine Datei angegeben ist, durchsucht der Befehl das aktuelle Verzeichnis nach einer Datei. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Die Projekt- oder Projektmappe- oder C#-Datei (dateibasiertes Programm), auf die zugegriffen werden soll. Wenn keine Datei angegeben ist, durchsucht der Befehl das aktuelle Verzeichnis nach einem Projekt oder einer Projektmappe. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJEKT | PROJEKTMAPPE | DATEI Specify at least one {0}. - Specify at least one {0}. + Geben Sie mindestens ein Element "{0}" an. You must specify at least one project to add. - You must specify at least one project to add. + Geben Sie mindestens ein hinzuzufügendes Projekt an. You must specify at least one project to remove. - You must specify at least one project to remove. + Geben Sie mindestens ein zu entfernendes Projekt an. You must specify at least one reference to remove. - You must specify at least one reference to remove. + Geben Sie mindestens einen zu löschenden Verweis an. {0}: tool library found {1} - {0}: tool library found {1} + {0}: Toolbibliothek gefunden: {1} Missing 'version' entry. - Missing 'version' entry. + Eintrag "version" fehlt. Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + Das Tool "{0}" (Version "{1}") ist bereits installiert. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + Paket {0} ist kein .NET-Tool. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + Der Befehl "{0}" enthält mindestens eines der folgenden ungültigen Zeichen: {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + Der Befehlsname "{0}" kann nicht mit einem vorangestellten Punkt (.) beginnen. Invalid XML: {0} - Invalid XML: {0} + Ungültiges XML: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + Das Tool definiert einen Befehl mit fehlender Namenseinstellung. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + Dem Befehl "{0}" fehlt eine Einstiegspunkteinstellung. More than one command is defined for the tool. - More than one command is defined for the tool. + Für das Tool wurden mehrere Befehle definiert. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + Das Tool "{0}" verwendet die nicht unterstützte Ausführung "{1}". The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + Das Tool unterstützt die aktuelle Architektur oder das Betriebssystem ({0}) nicht. Unterstützte Laufzeiten: {1} Type - Type + Typ The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + Die angeforderte Zertifikatkettenrichtlinie konnte nicht überprüft werden: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + Temporäre deps.json-Datei kann nicht gelöscht werden: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + „deps.json“ konnte nicht generiert werden, möglicherweise wurde die Datei bereits generiert. Sie können die Option „-d“ nach „dotnet“ angeben, um eine Diagnoseausgabe zu erhalten (Beispiel: „dotnet -d <toolname>“: {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + Dotnetmultiplexer nicht gefunden Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + Erwartet wurde "{0}" für die Eigenschaft "{1}". Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Befehl oder Argument "{0}" nicht erkannt Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + Das Projekt "{0}" weist einen unbekannten Projekttyp auf und kann der Projektmappendatei nicht hinzugefügt werden. Wenden Sie sich an Ihren SDK-Anbieter, um Unterstützung zu erhalten. Update - Update + Aktualisieren VB/C# compiler server - VB/C# compiler server + VB/C#-Compilerserver Value - Value + Wert Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Hiermit wird der Ausführlichkeitsgrad von MSBuild festgelegt. Zulässige Werte sind "q[uiet]", "m[inimal]", "n[ormal]", "d[etailed]" und "diag[nostic]". Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + Es wurde überprüft, ob das NuGet-Paket „{0}“ über eine gültige Signatur verfügt. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + Version für Paket "{0}" konnte nicht aufgelöst werden. Version {0} is invalid. - Version {0} is invalid. + Version {0} ist ungültig. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + Problem beim Verifizieren der Workloads. Führen Sie "dotnet workload update" aus, um weitere Informationen zu erhalten. {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Alle Bestätigungsaufforderungen mit "Ja" akzeptieren. diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.es.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.es.xlf index b1e3d4609a44..bc0ed60f38b1 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.es.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.es.xlf @@ -4,89 +4,89 @@ Add - Add + Agregar Ambiguous command name: {0} - Ambiguous command name: {0} + Nombre de comando ambiguo: {0} ARCH - ARCH + ARCO The target architecture. - The target architecture. + La arquitectura de destino. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Ruta de acceso de los artefactos. Todas las salidas del proyecto, incluidas las salidas de compilación, publicación y empaquetado, se incluirán en subcarpetas en la ruta de acceso especificada. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: intentando crear commandspec {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: intentando encontrar el comando {1} en {2} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: intentando resolver {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: intentando resolver especificaciones de comando desde la herramienta {1} outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} no existe Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + No se pueden crear las correcciones de compatibilidad (shim) de shell para una ruta ejecutable vacía. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + No se encuentra un archivo de manifiesto. Lista de rutas de acceso buscadas: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + No se encuentra un paquete con el id. de paquete {0} en el archivo de manifiesto. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + No se ha podido resolver el identificador en el tiempo de ejecución actual. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + No se admite la especificación de las opciones '-r|--runtime' y '-a|--arch'. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + No se admite la especificación de las opciones '-r|--runtime' y '-os'. @@ -100,11 +100,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Establece el valor de una variable de entorno. +Crea la variable si no existe o la reemplaza en caso de que exista. +Este argumento se puede especificar varias veces para proporcionar múltiples variables. -Examples: +Ejemplos: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -114,7 +114,7 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" @@ -129,12 +129,12 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Establece el valor de una variable de entorno. +Crea la variable si no existe o la reemplaza en caso de que exista. +Esto forzará la ejecución de las pruebas en un proceso aislado. +Este argumento se puede especificar varias veces para proporcionar múltiples variables. -Examples: +Ejemplos: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -144,102 +144,102 @@ Examples: Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Establece el valor de la propiedad $(VersionSuffix) que se usará al compilar el proyecto. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + El ancho máximo de la columna debe ser superior a cero. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + No se encontró el comando ejecutable para "{0}". Puede que el proyecto no se haya restaurado o que la restauración no haya tenido éxito. Ejecute "dotnet restore" Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Permite que el comando se detenga y espere la entrada o acción del usuario (por ejemplo, para autenticarse). Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Permite que se instalen paquetes de versión preliminar. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec es nulo. FRAMEWORK - FRAMEWORK + MARCO DE DIRECTIVA File `{0}` not found. - File `{0}` not found. + No se encuentra el archivo "{0}". CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + El archivo de solución {0} especificado no existe, o bien no hay ningún archivo de solución en el directorio. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + No se encuentra la solución o el directorio "{0}". {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: no se pudo encontrar el archivo runtimeconfig.json para la herramienta {1} Delete - Delete + Eliminar Unable to find deps.json generator project. - Unable to find deps.json generator project. + No se puede encontrar el proyecto de generador deps.json. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: no se encontró un proyecto coincidente {1}. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: ProjectFactory no encontró el proyecto. Did you mean the following command? - Did you mean the following command? + ¿Quería decir el siguiente comando? Directory - Directory + Directorio Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Fuerce el comando para omitir los servidores de compilación persistentes. {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} no existe @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + El directorio de herramientas "{0}" no está en la variable de entorno PATH. +Si usa Bash, puede agregarlo a su perfil mediante la ejecución del comando siguiente: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Agregue las herramientas del SDK de .NET Core export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Agréguelo a la sesión actual mediante la ejecución del comando siguiente: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + Dado que acaba de instalar el SDK de .NET, tendrá que cerrar la sesión o reiniciarla antes de ejecutar la herramienta instalada. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + El directorio de herramientas "{0}" no está en la variable de entorno PATH. +Si usa Bash, puede agregarlo a su perfil mediante la ejecución del comando siguiente: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Agregue las herramientas del SDK de .NET Core export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Agréguelo a la sesión actual mediante la ejecución del comando siguiente: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + Dado que acaba de instalar el SDK de .NET, tendrá que volver a abrir el terminal antes de ejecutar la herramienta instalada. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + El directorio de herramientas "{0}" no está en la variable de entorno PATH. +Si usa zsh, puede agregarlo a su perfil mediante la ejecución del comando siguiente: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# Agregue las herramientas del SDK de .NET Core export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +Y ejecute `zsh -l` para que esté disponible para la sesión actual. -You can only add it to the current session by running the following command: +Solo puede agregarlo a la sesión actual ejecutando el comando siguiente: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + El directorio de herramientas "{0}" no está actualmente en la variable de entorno PATH. -You can add the directory to the PATH by running the following command: +Puede agregar el directorio a PATH mediante la ejecución del comando siguiente: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + Dado que acaba de instalar el SDK de .NET, tendrá que volver a abrir la ventana del símbolo del sistema antes de ejecutar la herramienta instalada. Error - Error + Error You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + Está ejecutando la operación "tool install" con un origen "HTTP", {0}. NuGet requiere orígenes HTTPS. Para usar un origen HTTP, es necesario establecer explícitamente "allowInsecureConnections" en true en el archivo NuGet.Config. Consulte https://aka.ms/nuget-https-everywhere para obtener más información. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: se espera deps.json en: {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + No se pudieron establecer los permisos ejecutables del usuario para las correcciones de compatibilidad (shim) de shell: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + No se pudieron crear correcciones de compatibilidad (shim) de herramientas para el comando "{0}": {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: no se pudo encontrar commandPath {1} Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + No se pudo encontrar la biblioteca en el archivo de recursos de NuGet para el paquete de herramientas '{0}': {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + La asignación de origen del paquete está habilitada, pero no se encontró ningún origen en el id. de paquete especificado: {0}. Consulte la documentación de asignación de origen del paquete en https://aka.ms/nuget-package-source-mapping para obtener más detalles. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + No se pudo encontrar el paquete de herramientas almacenado provisionalmente "{0}". {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: no se pudo encontrar toolAssembly para {1} Failed to load NuGet source {0} - Failed to load NuGet source {0} + No se pudo cargar el origen de NuGet {0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + La asignación de origen del paquete está habilitada, pero no hay ningún origen asignado en el id. de paquete especificado: {0}. Consulte la documentación de asignación de origen del paquete en https://aka.ms/nuget-package-source-mapping para obtener más detalles. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + No se pudo leer el archivo de recursos de NuGet para el paquete de herramientas '{0}': {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + No se pudo leer el archivo pid "{0}": {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + No se pudieron quitar correcciones de compatibilidad (shim) de herramientas para el comando "{0}": {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: no se pudo resolver commandspec desde la biblioteca. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Error al recuperar la configuración de la herramienta: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + No se pudo agregar "{0}" a la variable de entorno PATH. Agregue este directorio a PATH para usar las herramientas instaladas con "dotnet tool install". Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + No se pudo desinstalar el paquete de herramientas "{0}": {1} Failed to validate package signing. {0} - Failed to validate package signing. + No se pudo validar la firma del paquete. {0} Missing 'commands' entry. - Missing 'commands' entry. + Falta la entrada "commands". File - File + archivo The file-based app to operate on. - The file-based app to operate on. + La aplicación basada en archivos en la que se va a operar. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + La versión de formato es superior a la admitida. Puede que la herramienta no sea compatible con esta versión del SDK. Actualice el SDK. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + La versión de formato es incorrecta. Puede que la herramienta no sea compatible con esta versión del SDK. Póngase en contacto con el autor de la herramienta. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + Falta la versión de formato. Puede que la herramienta no sea compatible con esta versión del SDK. Póngase en contacto con el autor de la herramienta. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + Se ha encontrado el proyecto "{0}", pero no es válido. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: se encontró el archivo de bloqueo de herramienta en: {1} FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Publique la aplicación como una aplicación dependiente del marco de trabajo. para ejecutar la aplicación debe instalarse un entorno de ejecución de .NET compatible en el equipo de destino. Generating deps.json at: {0} - Generating deps.json at: {0} + Generando deps.json en: {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: se ignorará el archivo prefercliruntime dado que la plataforma de destino de la herramienta ({1}) tiene una versión mayor que el entorno de tiempo de ejecución actual de la CLI ({2}) In package {0}: {1} - In package {0}: + En el paquete {0}: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Variables de entorno con formato incorrecto: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: commandResolverArguments no válidos {0} should be an integer - {0} should be an integer + {0} debe ser un entero Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Archivo de manifiesto no válido. Ruta de acceso {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + El proyecto "{0}" no es válido. Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + El proyecto "{0}" no es válido. {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + El identificador en tiempo de ejecución {0} no es válido. Los identificadores en tiempo de ejecución válidos son: {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + La solución "{0}" no es válida. {1} Invalid version string: {0} - Invalid version string: {0} + Cadena de versión no válida: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + No se encuentra {0} en las fuentes de NuGet {1}. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + Error de análisis JSON en el archivo {0} : {1} LEVEL - LEVEL + LEVEL Library - Library + Biblioteca {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: no se encontró la biblioteca en el archivo de bloqueo. List - List + Enumerar {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: buscando el archivo prefercliruntime en "{1}" .NET Cli Options: - .NET Cli Options: + Opciones de la CLI de .NET: MSBuild arguments: {0} - MSBuild arguments: {0} + Argumentos de MSBuild: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: ruta del proyecto MSBuild = {1} MSBuild server - MSBuild server + Servidor de MSBuild File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + El archivo {0} procedía de otro equipo y podría bloquearse para ayudar a proteger este equipo. Para obtener más información, y cómo desbloquearlo, consulte https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + Falta la entrada "isRoot". Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + No se puede agregar el paquete. El archivo de manifiesto ya contiene la versión {0} del paquete {1}. Desinstale, instale o edite el archivo de manifiesto {2} para especificar la nueva versión {3}. Manifest version 0 is not supported. - Manifest version 0 is not supported. + No se admite la versión de manifiesto 0. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + La versión de manifiesto es {0}. Puede que este manifiesto no se admita en esta versión del SDK que puede admitir hasta la versión de manifiesto {1}. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + El archivo de punto de entrada "{0}" para el comando "{1}" no se encontró en el paquete. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + El archivo de configuración "DotnetToolSettings.xml" no se encontró en el paquete. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Hay más de una opción de correcciones de compatibilidad (shim) empaquetadas: {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + Se han encontrado varios archivos de solución en {0}. Especifique el que debe usarse. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Especifique el archivo de proyecto que se debe usar porque "{0}" contiene más de un archivo de proyecto. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Existe más de una entrada para los paquetes: {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + Ejecute "dotnet tool restore" para que esté disponible el comando "{0}". New - New + Nuevo Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + No mostrar la pancarta de inicio ni el mensaje de copyright. No projects found in the solution. - No projects found in the solution. + No se han encontrado proyectos en la solución. There are no {0} references in project {1}. - There are no {0} references in project {1}. + No hay ninguna referencia {0} en el proyecto {1}. Do not restore the project before building. - Do not restore the project before building. + No restaure el proyecto antes de la compilación. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: + No se pudo buscar. Detalles de la respuesta de la API de búsqueda de NuGet: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + Omitiendo la comprobación de firma para el paquete NuGet "{0}" porque procede de un origen que no requiere validación de firma. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + Omitiendo la comprobación de la firma del paquete NuGet. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: raíz de paquetes NuGet: {1} OS - OS + SO Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + Solo se puede especificar un proyecto a la vez mediante la opción -p. {Locked="-p"} The target operating system. - The target operating system. + El sistema operativo de destino. Project to Project - Project to Project + Proyecto a proyecto Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + Solo se puede empaquetar un archivo .nuspec a la vez Package - Package + Paquete Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Referencia de paquete en forma de identificador de paquete como "{0}" o identificador de paquete y versión separados por "@", como "{0}@{1}". Package reference id and version must not be null. - Package reference id and version must not be null. + El id. de referencia y la versión del paquete no deben ser nulos. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + No se puede especificar --version cuando el argumento del paquete ya contiene una versión. {Locked="--version"} Package reference - Package reference + Referencia de paquete A version of {0} of package {1} - A version of {0} of package {1} + Versión de {0} del paquete {1} Version {0} of package {1} - Version {0} of package {1} + Versión {0} del paquete {1} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + Una versión entre {0} y {1} del paquete {2} A version higher than {0} of package {1} - A version higher than {0} of package {1} + Una versión superior a {0} del paquete {1} A version less than {0} of package {1} - A version less than {0} of package {1} + Versión anterior a la {0} del paquete {1} Project - Project + Proyecto Project `{0}` added to the solution. - Project `{0}` added to the solution. + Se ha agregado el proyecto "{0}" a la solución. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + El proyecto ya tiene una referencia a "{0}". The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Archivo del proyecto sobre el que se va a operar. Si no se especifica un archivo, el comando buscará uno en el directorio actual. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: -{1}. + El proyecto "{0}" no se puede evaluar. Se produjo el siguiente error en la evaluación: +{1} Project `{0}` does not exist. - Project `{0}` does not exist. + El proyecto "{0}" no existe. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + El proyecto "{0}" no tiene como destino la plataforma "{1}". Project `{0}` is invalid. - Project `{0}` is invalid. + El proyecto "{0}" no es válido. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + El proyecto "{0}" no se puede agregar debido a que hay plataformas de destino no compatibles entre los dos proyectos. Revise el proyecto que intenta agregar y compruebe que sea compatible con las plataformas siguientes: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + No se encuentra el proyecto "{0}" en la solución. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + El archivo de proyecto o la aplicación basada en archivos de C# en que se va a operar. Si no se especifica un archivo, el comando buscará un archivo de proyecto en el directorio actual. PROJECT | FILE - PROJECT | FILE + PROYECTO | ARCHIVO Project reference - Project reference + Referencia de proyecto Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + No se encuentra la referencia de proyecto "{0}". Project reference(s) - Project reference(s) + Referencias de proyecto Project reference `{0}` removed. - Project reference `{0}` removed. + La referencia de proyecto "{0}" se ha quitado. Project `{0}` removed from solution. - Project `{0}` removed from solution. + Se ha quitado el proyecto "{0}" de la solución. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + Se ha quitado el proyecto "{0}" de la solución. Razor build server - Razor build server + Servidor de compilación de Razor Reference - Reference + Referencia Reference `{0}` added to the project. - Reference `{0}` added to the project. + Se ha agregado la referencia "{0}" al proyecto. Remove - Remove + Quitar Required command was not provided. - Required command was not provided. + No se proporcionó el comando requerido. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: resolviendo commandspec desde las bibliotecas de herramientas de {1}. Response file '{0}' does not exist. - Response file '{0}' does not exist. + El archivo de respuesta '{0}' no existe. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: + No se pudo buscar. Puede que el problema se resuelva si lo reintenta más tarde. Detalles de la respuesta de la API de búsqueda de NuGet: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Habilita la salida de diagnóstico. Display the command schema as JSON. - Display the command schema as JSON. + Muestre el esquema de comandos como JSON. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Las opciones '--self-contained' y '--no-self-contained' no se pueden usar juntas. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Publique el entorno de ejecución de .NET con la aplicación para que no sea necesario instalarlo en el equipo de destino. +El valor predeterminado es "false". Sin embargo, cuando el destino es .NET 7 o inferior, el valor predeterminado es "true" si se especifica un identificador en tiempo de ejecución. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + El comando "{0}" está en conflicto con un comando existente de otra herramienta. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Busque las versiones de carga de trabajo disponibles o lo que comprende una versión de carga de trabajo. Use "dotnet workload search version --help" para obtener más información. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Muestra ayuda de la línea de comandos. The shutdown command failed: {0} - The shutdown command failed: {0} + Error del comando de apagado: {0} Solution - Solution + Solución Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + La solución {0} ya contiene el proyecto {1}. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + El argumento de solución '{0}' está mal colocado. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + El archivo de solución {0} especificado no existe, o bien no hay ningún archivo de solución en el directorio. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + El archivo de proyecto o solución donde operar. Si no se especifica un archivo, el comando buscará uno en el directorio actual. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Proyecto o solución o archivo de C# (programa basado en archivos) en el que se va a operar. Si no se especifica un archivo, el comando buscará en el directorio actual un proyecto o una solución. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROYECTO | SOLUCIÓN | ARCHIVO Specify at least one {0}. - Specify at least one {0}. + Especifique al menos un {0}. You must specify at least one project to add. - You must specify at least one project to add. + Debe especificar al menos un proyecto para agregarlo. You must specify at least one project to remove. - You must specify at least one project to remove. + Debe especificar al menos un proyecto para quitarlo. You must specify at least one reference to remove. - You must specify at least one reference to remove. + Debe especificar al menos una referencia para quitarla. {0}: tool library found {1} - {0}: tool library found {1} + {0}: se encontró biblioteca de herramientas {1} Missing 'version' entry. - Missing 'version' entry. + Falta la entrada "version". Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + La herramienta "{0}" (versión "{1}") ya está instalada. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + El paquete {0} no es una herramienta de .NET. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + El comando "{0}" contiene uno o varios de los siguientes caracteres no válidos: {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + El nombre del comando "{0}" no puede estar precedido de un punto (.). Invalid XML: {0} - Invalid XML: {0} + XML no válido: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + La herramienta define un comando en el que falta un valor de nombre. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + En el comando "{0}", falta un valor de punto de entrada. More than one command is defined for the tool. - More than one command is defined for the tool. + Se ha definido más de un comando para la herramienta. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + La herramienta "{0}" usa un ejecutor no compatible. "{1}". The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + La herramienta no es compatible con la arquitectura o el sistema operativo actual ({0}). Entornos de ejecución compatibles: {1} Type - Type + Tipo The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + No se pudo comprobar la directiva de cadena de certificados solicitada: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + no se puede eliminar el archivo deps.json temporal: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + No se puede generar deps.json, es posible que ya se haya generado. Puede especificar la opción "-d" después de "dotnet" para la salida de diagnóstico (por ejemplo, "dotnet -d <toolname>": {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + No se puede ubicar el multiplexor dotnet Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + Se esperaba un {0} para la propiedad "{1}". Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + No se reconoce el comando o el argumento "{0}" Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + El proyecto "{0}" tiene un tipo de proyecto desconocido y no se puede agregar al archivo de solución. Póngase en contacto con el proveedor de SDK para obtener asistencia Update - Update + Actualizar VB/C# compiler server - VB/C# compiler server + Servidor del compilador de VB o C# Value - Value + Valor Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Establece el nivel de detalle de MSBuild. Los valores permitidos son q[uiet], m[inimal], n[ormal], d[etailed] y diag[nostic]. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + Se comprobó que el paquete NuGet "{0}" tiene una firma válida. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + No se pudo resolver la versión del paquete "{0}". Version {0} is invalid. - Version {0} is invalid. + La versión {0} no es válida. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + Se encontró un problema al comprobar las cargas de trabajo. Para obtener más información, ejecute "dotnet workload update". {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Acepte todas las solicitudes de confirmación mediante "sí." diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.fr.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.fr.xlf index 57f198d2131f..c46640074d6f 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.fr.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.fr.xlf @@ -4,89 +4,89 @@ Add - Add + ajouter Ambiguous command name: {0} - Ambiguous command name: {0} + Nom de commande ambigu : {0} ARCH - ARCH + ARC The target architecture. - The target architecture. + L’architecture cible ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Le chemin des artefacts. Toutes les sorties du projet, y compris les sorties de build, de publication et de pack, iront dans des sous-dossiers sous le chemin spécifié. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0} : tentative de création de la spécification de commande {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0} : tentative de recherche de la commande {1} dans {2} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0} : tentative de résolution de {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0} : tentative de résolution de la spécification de commande à partir de l'outil {1} outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver : {0} n'existe pas Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + Impossible de créer un shim d'environnement pour un chemin d'exécutable vide. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + Impossible de trouver un fichier manifeste. Liste des chemins de recherche : {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + Le package ayant l'ID de package {0} est introuvable dans le fichier manifeste. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Échec de la résolution de l’identificateur d’exécution actuel Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + La spécification des options « -r |--Runtime » et « -a |--Arch » n’est pas prise en charge. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + La spécification des options « -r |--Runtime » et « os » n’est pas prise en charge. @@ -100,11 +100,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Définit la valeur d’une variable d’environnement. +Crée la variable si elle n’existe pas, et la remplace si elle existe. +Vous pouvez spécifier cet argument plusieurs fois pour fournir plusieurs variables. -Examples: +Exemples : -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -114,7 +114,7 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" @@ -129,117 +129,117 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Définit la valeur d'une variable d'environnement. +Crée la variable si elle n'existe pas, et la remplace si elle existe. +Cela entraîne l'exécution forcée des tests dans un processus isolé. +Vous pouvez spécifier cet argument plusieurs fois pour fournir plusieurs variables. -Examples: +Exemples : -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="valeur avec des espaces" +-e VARIABLE="valeur;séparée;par;des;points;virgules" -e VAR1=abc -e VAR2=def -e VAR3=ghi Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Définissez la valeur de la propriété $(VersionSuffix) à utiliser durant la génération du projet. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + La largeur maximale de colonne doit être supérieure à zéro. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + La commande exécutable pour "{0}" est introuvable. Le projet n'a peut-être pas été restauré, ou la restauration n'a pas fonctionné - exécutez 'dotnet restore' Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Permet à la commande de s'arrêter et d'attendre une entrée ou une action de l'utilisateur (par exemple pour effectuer une authentification). Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Permet d'installer les packages de préversion. {0}: commandSpec is null. - {0}: commandSpec is null. + {0} : commandSpec a une valeur null. FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + Fichier '{0}' introuvable. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Le fichier solution spécifié {0} n'existe pas ou il n'y a pas de fichier solution dans le répertoire. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + La solution ou le répertoire '{0}' est introuvable. {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0} : le fichier runtimeconfig.json est introuvable pour l'outil {1} Delete - Delete + supprimer Unable to find deps.json generator project. - Unable to find deps.json generator project. + Le projet de générateur deps.json est introuvable. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0} : projet correspondant introuvable {1}. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0} : ProjectFactory n'a pas trouvé le projet. Did you mean the following command? - Did you mean the following command? + Vouliez-vous dire la commande suivante ? Directory - Directory + Répertoire Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Forcez la commande à ignorer tous les serveurs de build persistants. {0}: {1} does not exist - {0}: {1} does not exist + {0} : {1} n'existe pas @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Le répertoire d'outils « {0} » n'est pas dans la variable d'environnement PATH. +Si vous utilisez bash, vous pouvez l'ajouter à votre profil en exécutant la commande suivante : cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Ajouter les outils du kit SDK .NET Core export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Vous pouvez l'ajouter à la session active en exécutant la commande suivante : export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + Dans la mesure où vous venez d'installer le kit SDK .NET, vous devez vous déconnecter ou redémarrer votre session avant d'exécuter l'outil que vous avez installé. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Le répertoire d'outils « {0} » n'est pas dans la variable d'environnement PATH. +Si vous utilisez bash, vous pouvez l'ajouter à votre profil en exécutant la commande suivante : cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Ajouter les outils du kit SDK .NET Core export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Vous pouvez l'ajouter à la session active en exécutant la commande suivante : export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + Dans la mesure où vous venez d'installer le kit SDK .NET, vous devez rouvrir le terminal avant d'exécuter l'outil que vous avez installé. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + Le répertoire d'outils « {0} » n'est pas dans la variable d'environnement PATH. +Si vous utilisez zsh, vous pouvez l'ajouter à votre profil en exécutant la commande suivante : cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# Ajouter les outils du kit SDK .NET Core export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +Exécutez ensuite `zsh -l` afin de le rendre disponible pour la session active. -You can only add it to the current session by running the following command: +Vous pouvez uniquement l'ajouter à la session active en exécutant la commande suivante : export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + Le répertoire d'outils '{0}' se ne trouve pas actuellement sur la variable d'environnement PATH. -You can add the directory to the PATH by running the following command: +Vous pouvez ajouter le répertoire à PATH en exécutant la commande suivante : setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + Dans la mesure où vous venez d'installer le kit SDK .NET, vous devez rouvrir la fenêtre d'invite de commandes avant d'exécuter l'outil que vous avez installé. Error - Error + Erreur You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + Vous exécutez l'opération « installation d’outils » avec une source « HTTP » : {0}. NuGet nécessite des sources HTTPS. Pour utiliser une source HTTP, vous devez définir explicitement « allowInsecureConnections » sur true dans votre fichier NuGet.Config. Reportez-vous à https://aka.ms/nuget-https-everywhere pour plus d’informations. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0} : deps.json attendu sur {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + Échec de définition des autorisations utilisateur d'exécutable pour le shim d'environnement : {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + Échec de création d'un shim d'outil pour la commande '{0}' : {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0} : échec de la recherche de commandPath {1} Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + Bibliothèque introuvable dans le fichier de ressources NuGet pour le package d’outils « {0} » : {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Le mappage de source de package est activé, mais aucune source n’a été trouvée sous l’ID de package spécifié : {0}. Pour plus d’informations, consultez la documentation relative au mappage de source de package sur https://aka.ms/nuget-package-source-mapping. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + Package d'outils indexé '{0}' introuvable. {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0} : échec de la recherche de toolAssembly pour {1} Failed to load NuGet source {0} - Failed to load NuGet source {0} + Échec du chargement de la source DeNget {0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Le mappage de source de package est activé, mais aucune source n’est mappée sous l’ID de package spécifié : {0}. Pour plus d’informations, consultez la documentation relative au mappage de source de package sur https://aka.ms/nuget-package-source-mapping. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + Échec de la lecture du fichier de ressources NuGet pour le paquetage d'outils « {0} » : {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + Échec de lecture du fichier pid '{0}' : {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + Échec de retrait d'un shim d'outil pour la commande '{0}' : {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0} : échec de la résolution de la spécification de commande à partir de la bibliothèque. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Échec de récupération de la configuration de l'outil : {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + L'ajout de '{0}' à la variable d'environnement PATH a échoué. Ajoutez ce répertoire à votre variable PATH pour pouvoir utiliser les outils installés avec 'dotnet tool install'. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + Échec de désinstallation du package d'outils '{0}' : {1} Failed to validate package signing. {0} - Failed to validate package signing. + Nous n’avons pas pu valider la signature de package. {0} Missing 'commands' entry. - Missing 'commands' entry. + Entrée 'commands' manquante. File - File + fichier The file-based app to operate on. - The file-based app to operate on. + Application basée sur des fichiers sur laquelle effectuer des opérations. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + Version de format supérieure à la version prise en charge. Cet outil risque de ne pas être pris en charge dans cette version de SDK. Mettez à jour votre SDK. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + Version de format incorrecte. Cet outil risque de ne pas être pris en charge dans cette version du SDK. Contactez l'auteur de l'outil. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + Version de format manquante. Cet outil risque de ne pas être pris en charge dans cette version du SDK. Contactez l'auteur de l'outil. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + Projet '{0}' trouvé, mais il n'est pas valide. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0} : fichier de verrouillage d'outil trouvé sur : {1} FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Publiez votre application en tant qu'application dépendante du framework. Un runtime .NET compatible doit être installé sur la machine cible pour exécuter votre application. Generating deps.json at: {0} - Generating deps.json at: {0} + Génération de deps.json sur : {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0} : fichier prefercliruntime ignoré, car le framework cible de l'outil ({1}) a une autre version principale que celle du runtime CLI actuel ({2}) In package {0}: {1} - In package {0}: + Dans le package {0} : {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Mise en forme incorrecte des variables d’environnement : {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0} : commandResolverArguments non valide {0} should be an integer - {0} should be an integer + {0} doit être un entier Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Fichier manifeste non valide. Chemin {0} : {1} Invalid project `{0}`. - Invalid project `{0}`. + Projet '{0}' non valide. Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + Projet non valide : '{0}'. {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + L’identificateur d’exécution {0} n’est pas valide. Les identificateurs d’exécution valides sont : {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + Solution non valide '{0}'. {1}. Invalid version string: {0} - Invalid version string: {0} + Chaîne de version non valide : {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + {0} est introuvable dans les flux NuGet {1}. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + Erreur d'analyse Json dans le fichier {0} : {1} LEVEL - LEVEL + LEVEL Library - Library + Bibliothèque {0}: library not found in lock file. - {0}: library not found in lock file. + {0} : bibliothèque introuvable dans le fichier de verrouillage. List - List + Répertorier {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0} : recherche du fichier prefercliruntime sur '{1}' .NET Cli Options: - .NET Cli Options: + Options Cli .NET : MSBuild arguments: {0} - MSBuild arguments: {0} + Arguments MSBuild : {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0} : CHEMIN_MSBUILD_EXE = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0} : chemin de projet MSBuild = {1} MSBuild server - MSBuild server + Serveur MSBuild File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + Le fichier {0} provient d'un autre ordinateur et a éventuellement été bloqué pour protéger cet ordinateur. Pour plus d'informations, notamment sur le déblocage, consultez https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + Entrée 'isRoot' manquante. Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + Impossible d'ajouter le package. Le fichier manifeste contient déjà la version {0} du package {1}. Désinstallez/installez ou modifiez le fichier manifeste {2} pour spécifier la nouvelle version {3}. Manifest version 0 is not supported. - Manifest version 0 is not supported. + Le manifeste version 0 n'est pas pris en charge. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + La version du manifeste est la version {0}. Ce manifeste n'est peut-être pas pris en charge dans cette version du kit SDK, qui peut prendre en charge le manifeste jusqu'à la version {1}. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + Le fichier de point d'entrée '{0}' pour la commande '{1}' est introuvable dans le package. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + Le fichier de paramètres 'DotnetToolSettings.xml' est introuvable dans le package. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Plusieurs shims empaquetés sont disponibles : {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + Plusieurs fichiers solution dans {0}. Spécifiez celui à utiliser. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Spécifiez le fichier projet à utiliser, car '{0}' contient plusieurs fichiers projet. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Il existe plusieurs entrées pour le ou les packages : {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + Exécutez "dotnet tool restore" pour rendre la commande "{0}" disponible. New - New + Nouveau Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + N'affiche pas la bannière de démarrage ni le message de copyright. No projects found in the solution. - No projects found in the solution. + Aucun projet trouvé dans la solution. There are no {0} references in project {1}. - There are no {0} references in project {1}. + Il n'existe aucune référence {0} dans le projet {1}. Do not restore the project before building. - Do not restore the project before building. + Ne restaurez pas le projet avant la génération. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + Échec de la recherche. Détails de la réponse de l'API de recherche NuGet : + RequestUrl : {0}. ReasonPhrase : {1}. StatusCode : {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + La vérification de signature pour le package NuGet « {0} » est ignorée, car elle provient d’une source qui ne nécessite pas de validation de signature. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + La vérification de la signature du package NuGet est ignorée. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0} : racine des packages NuGet : {1} OS - OS + Système d'exploitation Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + Vous ne pouvez spécifier qu’un seul projet à la fois à l’aide de l’option -p. {Locked="-p"} The target operating system. - The target operating system. + Le système d'exploitation cible Project to Project - Project to Project + Projet à projet Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + Vous ne pouvez empaqueter qu’un seul fichier .nuspec à la fois Package - Package + Package Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Référence de package sous la forme d’un identificateur de package tel que « {0} » ou d’un identificateur de package et d’une version séparés par « @ », comme « {0}@{1} ». Package reference id and version must not be null. - Package reference id and version must not be null. + L’ID et la version de référence du package ne doivent pas être nuls. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Impossible de spécifier --version lorsque l’argument de package contient déjà une version. {Locked="--version"} Package reference - Package reference + Référence de package A version of {0} of package {1} - A version of {0} of package {1} + Une version de {0} du package {1} Version {0} of package {1} - Version {0} of package {1} + Une version {0} du package {1} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + Une version comprise entre {0} et {1} du package {2} A version higher than {0} of package {1} - A version higher than {0} of package {1} + Une version supérieure à {0} du package {1} A version less than {0} of package {1} - A version less than {0} of package {1} + Une version inférieure à {0} du package {1} Project - Project + Projet Project `{0}` added to the solution. - Project `{0}` added to the solution. + Projet '{0}' ajouté à la solution. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + Le projet a déjà une référence à '{0}'. The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Fichier projet à traiter. Si aucun fichier n'est spécifié, la commande en recherche un dans le répertoire actif. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + Impossible d'évaluer le projet '{0}'. Échec de l'évaluation en raison de l'erreur suivante : {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + Le projet '{0}' n'existe pas. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + Le projet '{0}' ne cible pas le framework '{1}'. Project `{0}` is invalid. - Project `{0}` is invalid. + Le projet '{0}' n'est pas valide. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + Impossible d'ajouter le projet '{0}' en raison de l'incompatibilité des frameworks ciblés entre les deux projets. Passez en revue le projet que vous essayez d'ajouter, puis vérifiez sa compatibilité avec les cibles suivantes : Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + Projet '{0}' introuvable dans la solution. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Application basée sur des fichiers C# ou fichier projet sur laquelle effectuer des opérations. Si aucun fichier n’est spécifié, la commande recherche un fichier projet dans le répertoire actuel. PROJECT | FILE - PROJECT | FILE + FICHIER | PROJET Project reference - Project reference + Référence de projet Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + La référence de projet '{0}' est introuvable. Project reference(s) - Project reference(s) + Référence(s) de projet Project reference `{0}` removed. - Project reference `{0}` removed. + Référence de projet '{0}' supprimée. Project `{0}` removed from solution. - Project `{0}` removed from solution. + Projet '{0}' retiré de la solution. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + Projet '{0}' retiré de la solution. Razor build server - Razor build server + Serveur de builds Razor Reference - Reference + Référence Reference `{0}` added to the project. - Reference `{0}` added to the project. + Référence '{0}' ajoutée au projet. Remove - Remove + Supprimer Required command was not provided. - Required command was not provided. + La commande nécessaire n'a pas été fournie. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0} : résolution de la spécification de commande à partir des bibliothèques d'outils {1}. Response file '{0}' does not exist. - Response file '{0}' does not exist. + Le fichier réponse '{0}' n’existe pas. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + Échec de la recherche. Si vous réessayez plus tard, cela pourra éventuellement permettre de résoudre le problème. Détails de la réponse de l'API de recherche NuGet : + RequestUrl : {0}. ReasonPhrase : {1}. StatusCode : {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Activez la sortie des diagnostics. Display the command schema as JSON. - Display the command schema as JSON. + Affichez le schéma de commande au format JSON. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Les options '--self-contained' et '--no-self-contained' ne peuvent pas être utilisées ensemble. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Publiez le runtime .NET avec votre application afin que le runtime n’ait pas besoin d’être installé sur l’ordinateur cible. +La valeur par défaut est « false ». Toutefois, lorsque vous ciblez .NET 7 ou une version antérieure, la valeur par défaut est « true » si un identificateur d’exécution est spécifié. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + La commande '{0}' est en conflit avec une commande existante d'un autre outil. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Recherchez les versions de charge de travail disponibles ou ce qui compose une version de charge de travail. Utilisez « dotnet workload search version --help » pour plus d’informations. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Affichez l'aide de la ligne de commande. The shutdown command failed: {0} - The shutdown command failed: {0} + Échec de la commande d'arrêt : {0} Solution - Solution + Solution Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + La solution {0} contient déjà le projet {1}. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + L'argument de solution '{0}' est mal placé. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Le fichier solution spécifié {0} n'existe pas ou il n'y a pas de fichier solution dans le répertoire. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Fichier projet ou solution à utiliser. Si vous ne spécifiez pas de fichier, la commande en recherche un dans le répertoire actuel. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Le fichier projet ou solution ou fichier C# (programme basé sur un fichier) à utiliser. Si aucun fichier n'est spécifié, la commande recherche un projet ou une solution dans le répertoire actuel. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJECT | SOLUTION | FICHIER Specify at least one {0}. - Specify at least one {0}. + Spécifiez au moins un {0}. You must specify at least one project to add. - You must specify at least one project to add. + Vous devez spécifier au moins un projet à ajouter. You must specify at least one project to remove. - You must specify at least one project to remove. + Vous devez spécifier au moins un projet à retirer. You must specify at least one reference to remove. - You must specify at least one reference to remove. + Vous devez spécifier au moins une référence à retirer. {0}: tool library found {1} - {0}: tool library found {1} + {0} : bibliothèque d'outils trouvée {1} Missing 'version' entry. - Missing 'version' entry. + Entrée 'version' manquante. Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + L'outil '{0}' (version '{1}') est déjà installé. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + Le package {0} n’est pas un outil .NET. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + La commande '{0}' contient un ou plusieurs caractères non valides suivants : {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + Le nom de commande '{0}' ne peut pas commencer par un point (.). Invalid XML: {0} - Invalid XML: {0} + XML non valide : {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + L'outil définit une commande avec un paramètre de nom manquant. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + La commande '{0}' a un paramètre de point d'entrée manquant. More than one command is defined for the tool. - More than one command is defined for the tool. + Plusieurs commandes sont définies pour l'outil. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + La commande « {0} » utilise un exécuteur non pris en charge « {1} ». The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + L’outil ne prend pas en charge l’architecture ou le système d’exploitation actuel ({0}). Runtimes pris en charge : {1} Type - Type + Type The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + Impossible de vérifier la stratégie de chaîne de certificats demandée : {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + impossible de supprimer le fichier temporaire deps.json : {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + Impossible de générer deps.json, il a peut-être déjà été généré. Vous pouvez spécifier l'option "-d" après "dotnet" pour une sortie de diagnostic (par exemple, "dotnet -d <toolname>" : {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + Le multiplexeur dotnet est introuvable Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + {0} attendu pour la propriété '{1}'. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Commande ou argument non reconnu : '{0}' Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + Le projet '{0}' correspond à un type de projet inconnu. Il ne peut pas être ajouté au fichier solution. Contactez le fournisseur de votre SDK pour obtenir de l'aide. Update - Update + Mettre à jour VB/C# compiler server - VB/C# compiler server + Serveur de compilation VB/C# Value - Value + Valeur Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Définissez le niveau de verbosité MSBuild. Les valeurs autorisées sont q[uiet], m[inimal], n[ormal], d[etailed] et diag[nostic]. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + Nous avons vérifié que le package NuGet « {0} » a une signature valide. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + La version du package '{0}' n'a pas pu être résolue. Version {0} is invalid. - Version {0} is invalid. + La version {0} est non valide. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + Un problème s’est produit lors de la vérification des charges de travail. Pour plus d’informations, exécutez « dotnet workload update ». {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Acceptez toutes les invites de confirmation en utilisant « oui ». diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.it.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.it.xlf index 98b1bf4174ae..d0bc71b45cee 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.it.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.it.xlf @@ -4,89 +4,89 @@ Add - Add + Aggiungi Ambiguous command name: {0} - Ambiguous command name: {0} + Nome di comando ambiguo: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + Architettura di destinazione. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Percorso degli artefatti. Tutto l'output del progetto, inclusi l'output di compilazione, pubblicazione e pacchetto, verrà inserito nelle sottocartelle nel percorso specificato. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: tentativo di creare commandSpec {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: tentativo di individuazione del comando {1} in {2} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: tentativo di risolvere {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: tentativo di risolvere commandSpec dallo strumento {1} outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} non esiste Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + Non è possibile creare lo shim della shell per un percorso di eseguibile vuoto. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + Non è possibile trovare un file manifesto. Elenco dei percorsi di ricerca: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + Nel file manifesto non è possibile trovare un pacchetto con ID {0}. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + La risoluzione dell'identificatore di runtime corrente non è riuscita. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + La specifica di entrambe le opzioni `-r|--runtime` and `-a|--arch` non è supportata. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + La specifica di entrambe le opzioni `-r|--runtime` e `-os` non è supportata. @@ -100,21 +100,21 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Imposta il valore di una variabile di ambiente. +Crea la variabile se non esiste e la sostituisce se esiste. +È possibile specificare più volte l'argomento per fornire più variabili. -Examples: +Esempi: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="valore con spazi" +-e VARIABLE="valore;delimitato da;punti e virgola" -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NAME="VALORE" @@ -129,117 +129,117 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Imposta il valore di una variabile di ambiente. +Crea la variabile se non esiste e la sostituisce se esiste. +In questo modo forza l'esecuzione dei test in un processo isolato. +È possibile specificare più volte questo argomento per fornire più variabili. -Examples: +Esempi: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="valore con spazi" +-e VARIABLE="valore;delimitato da;punti e virgola" -e VAR1=abc -e VAR2=def -e VAR3=ghi Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Consente di impostare il valore della proprietà $(VersionSuffix) da usare durante la compilazione del progetto. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + La larghezza massima della colonna deve essere maggiore di zero. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + L'eseguibile del comando per "{0}" non è stato trovato. È possibile che il progetto non sia stato ripristinato o che il ripristino non sia riuscito. Eseguire `dotnet restore` Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Consente al comando di arrestare l'esecuzione e attendere l'input o l'azione dell'utente, ad esempio per completare l'autenticazione. Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Consente l'installazione di pacchetti non definitivi. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec è Null. FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + Il file `{0}` non è stato trovato. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Il file di soluzione specificato {0} non esiste oppure nella directory non è presente alcun file di soluzione. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + Non sono state trovate soluzioni o directory `{0}`. {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: il file runtimeconfig.json per lo strumento {1} non è stato trovato Delete - Delete + Elimina Unable to find deps.json generator project. - Unable to find deps.json generator project. + Il progetto del generatore deps.json non è stato trovato. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: non è stato trovato alcun progetto {1} corrispondente. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: ProjectFactory non ha trovato l'elemento Project. Did you mean the following command? - Did you mean the following command? + Si intendeva il comando seguente? Directory - Directory + Directory Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Forza il comando a ignorare tutti i server di compilazione persistenti. {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} non esiste @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + La directory '{0}' degli strumenti non si trova attualmente nella variabile di ambiente PATH. +Se si usa bash, è possibile aggiungerla al profilo eseguendo il comando seguente: -cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +cat << \EOF >> ~007E;/.bash_profile +# Aggiungi strumenti .NET Core SDK export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Per aggiungerla alla sessione corrente, eseguire il comando seguente: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + Dal momento che è stato appena installato .NET SDK, è necessario disconnettersi o riavviare la sessione prima di eseguire lo strumento installato. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + La directory '{0}' degli strumenti non si trova attualmente nella variabile di ambiente PATH. +Se si usa bash, è possibile aggiungerla al profilo eseguendo il comando seguente: -cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +cat << \EOF >> ~007E;/.bash_profile +# Aggiungi strumenti .NET Core SDK export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Per aggiungerla alla sessione corrente, eseguire il comando seguente: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + Dal momento che è stato appena installato .NET SDK, è necessario riaprire il terminale prima di eseguire lo strumento installato. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + La directory '{0}' degli strumenti non si trova attualmente nella variabile di ambiente PATH. +Se si usa zsh, è possibile aggiungerla al profilo eseguendo il comando seguente: -cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +cat << \EOF >> ~007E;/.zprofile +# Aggiungi strumenti .NET Core SDK export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +Eseguire `zsh -l` per renderla disponibile per la sessione corrente. -You can only add it to the current session by running the following command: +Per aggiungerla solo alla sessione corrente, eseguire il comando seguente: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + La directory '{0}' degli strumenti non si trova attualmente nella variabile di ambiente PATH. -You can add the directory to the PATH by running the following command: +Per aggiungere la directory a PATH, eseguire il comando seguente: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + Dal momento che è stato appena installato .NET SDK, è necessario riaprire la finestra del prompt dei comandi prima di eseguire lo strumento installato. Error - Error + Errore You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + L'operazione 'tool install' è in esecuzione con un'origine 'HTTP': {0}. NuGet richiede origini HTTPS. Per usare un’origine HTTP, è necessario impostare in modo esplicito ‘allowInsecureConnections’ su true nel file NuGet.Config. Vedere https://aka.ms/nuget-https-everywhere per altre informazioni. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: è previsto deps.json in: {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + Non è stato possibile impostare le autorizzazioni dell'eseguibile per lo shim della shell: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + Non è stato possibile creare lo shim dello strumento per il comando '{0}': {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: commandPath {1} non trovato Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + Non è possibile trovare la libreria nel file di asset NuGet per il pacchetto di strumenti '{0}': {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Mapping origine pacchetto abilitato, ma non è stata trovata alcuna origine nell'ID pacchetto specificato: {0}{0}. Per altri dettagli, vedere la documentazione relativa al mapping dell'origine dei pacchetti in https://aka.ms/nuget-package-source-mapping. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + Non è stato possibile trovare il pacchetto '{0}' dello strumento preparato per il commit. {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: toolAssembly per {1} non trovato Failed to load NuGet source {0} - Failed to load NuGet source {0} + Non è stato possibile caricare l'origine NuGet {0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Il mapping dell'origine del pacchetto è abilitato, ma non è stato eseguito il mapping dell'origine nell'ID pacchetto specificato: {0}. Per altri dettagli, vedere la documentazione relativa al mapping dell'origine dei pacchetti in https://aka.ms/nuget-package-source-mapping. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + Non è possibile leggere il file di asset NuGet per il pacchetto di strumenti '{0}': {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + Non è stato possibile leggere il file '{0}' del PID: {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + Non è stato possibile rimuovere lo shim dello strumento per il comando '{0}': {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: non è stato possibile risolvere commandSpec dalla libreria. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Non è stato possibile recuperare la configurazione dello strumento: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + Non è stato possibile aggiungere '{0}' alla variabile di ambiente PATH. Aggiungere questa directory a PATH per usare gli strumenti installati con 'dotnet tool install'. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + Non è stato possibile disinstallare il pacchetto '{0}' dello strumento: {1} Failed to validate package signing. {0} - Failed to validate package signing. + Non è possibile convalidare la firma del pacchetto. {0} Missing 'commands' entry. - Missing 'commands' entry. + Manca la voce 'commands'. File - File + File The file-based app to operate on. - The file-based app to operate on. + L'app basata su file su cui eseguire operazioni. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + La versione di Format è successiva a quella supportata. È possibile che questo strumento non sia supportato in questa versione dell'SDK. Aggiornare l'SDK. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + La versione di Format non è corretta. È possibile che questo strumento non sia supportato in questa versione dell'SDK. Contattare l'autore dello strumento. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + La versione di Format non è presente. È possibile che questo strumento non sia supportato in questa versione dell'SDK. Contattare l'autore dello strumento. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + È stato trovato un progetto `{0}`, che però non è valido. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: il file di blocco dello strumento è stato trovato in: {1} FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Pubblicare l'applicazione come applicazione dipendente dal framework. Per eseguire l'applicazione, è necessario installare un runtime .NET compatibile nel computer di destinazione. Generating deps.json at: {0} - Generating deps.json at: {0} + Generazione del file deps.json in: {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: il file prefercliruntime verrà ignorato perché la versione principale del framework di destinazione dello strumento ({1}) è diversa rispetto a quella del runtime corrente dell'interfaccia della riga di comando ({2}) In package {0}: {1} - In package {0}: + Nel pacchetto {0}: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Variabili di ambiente formattate in modo non corretto: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: commandResolverArguments non valido {0} should be an integer - {0} should be an integer + {0} deve essere un numero intero Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Il file manifesto non è valido. Percorso: {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + Il progetto `{0}` non è valido. Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + Il progetto `{0}` non è valido. {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + L'identificatore di runtime {0} non è valido. Gli identificatori di runtime validi sono: {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + La soluzione `{0}` non è valida. {1}. Invalid version string: {0} - Invalid version string: {0} + Stringa di versione non valida: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + {0} non è stato trovato nei feed NuGet {1}. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + Errore di analisi JSON nel file {0}: {1} LEVEL - LEVEL + LEVEL Library - Library + Libreria {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: la libreria non è stata trovata nel file di blocco. List - List + Elenco {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: ricerca del file prefercliruntime in `{1}` .NET Cli Options: - .NET Cli Options: + Opzioni dell'interfaccia della riga di comando di .NET: MSBuild arguments: {0} - MSBuild arguments: {0} + Argomenti di MSBuild: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: PERCORSO_EXE_MSBUILD = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: percorso del progetto MSBuild = {1} MSBuild server - MSBuild server + Server di MSBuild File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + Il file {0} proviene da un altro computer e potrebbe essere stato bloccato per proteggere questo computer. Per altre informazioni, incluse le istruzioni su come sbloccare il file, vedere https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + Manca la voce 'isRoot'. Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + Non è possibile aggiungere il pacchetto. Il file manifesto contiene già la versione {0} del pacchetto {1}. Disinstallare/installare o modificare il file manifesto {2} per specificare la nuova versione {3}. Manifest version 0 is not supported. - Manifest version 0 is not supported. + La versione 0 del manifesto non è supportata. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + La versione del manifesto è {0}. Il manifesto potrebbe non essere supportato in questa versione dell'SDK che supporta manifesti fino alla versione {1}. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + Il file '{0}' del punto di ingresso per il comando '{1}' non è stato trovato nel pacchetto. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + Il file di impostazioni 'DotnetToolSettings.xml' non è stato trovato nel pacchetto. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Sono disponibili più shim inclusi nel pacchetto: {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + Sono stati trovati più file di soluzione in {0}. Specificare quello da usare. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Specificare il file di progetto da usare perché questo elemento '{0}' contiene più file di progetto. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Sono presenti più voci per i pacchetti: {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + Eseguire "dotnet tool restore" per rendere disponibile il comando "{0}". New - New + Nuovo Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Evita la visualizzazione del messaggio di avvio o di copyright. No projects found in the solution. - No projects found in the solution. + Non sono stati trovati progetti nella soluzione. There are no {0} references in project {1}. - There are no {0} references in project {1}. + Non sono presenti riferimenti a {0} nel progetto {1}. Do not restore the project before building. - Do not restore the project before building. + Non ripristina il progetto prima della compilazione. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: + Non è stato possibile cercare. Dettagli della risposta dell'API di Ricerca NuGet: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + La verifica della firma per il pacchetto NuGet "{0}" viene ignorata in quanto la firma proviene da un'origine che non richiede la convalida della firma. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + La verifica della firma del pacchetto NuGet verrà ignorata. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: radice dei pacchetti NuGet: {1} OS - OS + Sistema operativo Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + È possibile specificare un solo progetto alla volta utilizzando l'opzione -p. {Locked="-p"} The target operating system. - The target operating system. + Sistema operativo di destinazione. Project to Project - Project to Project + P2P (da progetto a progetto) Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + È creare un pacchetto di un solo file .nuspec alla volta Package - Package + Pacchetto Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Riferimento al pacchetto sotto forma di identificatore di pacchetto, ad esempio '{0}', oppure identificatore e versione di pacchetto separati da '@', ad esempio '{0}@{1}'. Package reference id and version must not be null. - Package reference id and version must not be null. + L'ID e la versione del riferimento al pacchetto non possono essere null. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Non è possibile specificare --version se l'argomento del pacchetto contiene già una versione. {Locked="--version"} Package reference - Package reference + Riferimento al pacchetto A version of {0} of package {1} - A version of {0} of package {1} + Versione di {0} del pacchetto {1} Version {0} of package {1} - Version {0} of package {1} + Versione {0} del pacchetto {1} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + Versione compresa tra {0} e {1} del pacchetto {2} A version higher than {0} of package {1} - A version higher than {0} of package {1} + Versione superiore a {0} del pacchetto {1} A version less than {0} of package {1} - A version less than {0} of package {1} + Versione inferiore a {0} del pacchetto {1} Project - Project + Progetto Project `{0}` added to the solution. - Project `{0}` added to the solution. + Il progetto `{0}` è stato aggiunto alla soluzione. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + Per il progetto esiste già un riferimento a `{0}`. The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + File di progetto su cui intervenire. Se non si specifica un file, il comando ne cercherà uno nella directory corrente. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + Non è stato possibile valutare il progetto `{0}`. La valutazione non è riuscita. Errore: {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + Il progetto `{0}` non esiste. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + Il progetto `{0}` non è destinato al framework `{1}`. Project `{0}` is invalid. - Project `{0}` is invalid. + Il progetto `{0}` non è valido. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + Non è possibile aggiungere il progetto `{0}` a causa di framework di destinazione incompatibili tra i due progetti. Esaminare il progetto che si sta provando ad aggiungere e verificare che sia compatibile con le destinazioni seguenti: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + Il progetto `{0}` non è stato trovato nella soluzione. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Il file di progetto o l'app basata su file C# su cui eseguire operazioni. Se non si specifica un file, il comando cercherà un progetto o una soluzione nella directory corrente. PROJECT | FILE - PROJECT | FILE + FILE DI | PROGETTO Project reference - Project reference + Riferimento al progetto Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + Il riferimento al progetto `{0}` non è stato trovato. Project reference(s) - Project reference(s) + Riferimento/i al progetto Project reference `{0}` removed. - Project reference `{0}` removed. + Il riferimento al progetto `{0}` è stato rimosso. Project `{0}` removed from solution. - Project `{0}` removed from solution. + Il progetto `{0}` è stato rimosso dalla soluzione. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + Il progetto `{0}` è stato rimosso dalla soluzione. Razor build server - Razor build server + Server di compilazione di Razor Reference - Reference + Riferimento Reference `{0}` added to the project. - Reference `{0}` added to the project. + Il riferimento `{0}` è stato aggiunto al progetto. Remove - Remove + Rimuovi Required command was not provided. - Required command was not provided. + Il comando obbligatorio non è stato specificato. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: risoluzione di commandSpec dalle librerie degli strumenti di {1}. Response file '{0}' does not exist. - Response file '{0}' does not exist. + Il file di risposta '{0}' non esiste. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: + Non è stato possibile cercare. Per risolvere il problema, riprovare più tardi. Dettagli della risposta dell'API di Ricerca NuGet: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Abilita l'output di diagnostica. Display the command schema as JSON. - Display the command schema as JSON. + Visualizza lo schema del comando in formato JSON. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Non è possibile usare contemporaneamente le opzioni '--self-contained' e ‘--no-self-contained'. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Pubblicare il runtime .NET con l'applicazione in modo che non sia necessario installare il runtime nel computer di destinazione. +Il valore predefinito è 'false'. Tuttavia, quando la destinazione è .NET 7 o una versione inferiore, il valore predefinito è 'true' se viene specificato un identificatore di runtime. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + Il comando '{0}' è in conflitto con un comando esistente di un altro strumento. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Cerca le versioni del carico di lavoro disponibili o cosa comprende una versione del carico di lavoro. Per altre informazioni, usare 'dotnet workload search version --help'. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Visualizza la Guida della riga di comando. The shutdown command failed: {0} - The shutdown command failed: {0} + Il comando di arresto non è riuscito: {0} Solution - Solution + Soluzione Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + La soluzione {0} contiene già il progetto {1}. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + L'argomento della soluzione '{0}' non è posizionato in modo corretto. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Il file di soluzione specificato {0} non esiste oppure nella directory non è presente alcun file di soluzione. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + File di progetto o di soluzione su cui intervenire. Se non si specifica un file, il comando ne cercherà uno nella directory corrente. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Il progetto o la soluzione o il file C# (programma basato su file) su cui eseguire operazioni. Se non si specifica un file, il comando cercherà un progetto o una soluzione nella directory corrente. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJECT | SOLUTION | FILE Specify at least one {0}. - Specify at least one {0}. + Specificare almeno un elemento {0}. You must specify at least one project to add. - You must specify at least one project to add. + È necessario specificare almeno un progetto da aggiungere. You must specify at least one project to remove. - You must specify at least one project to remove. + È necessario specificare almeno un progetto da rimuovere. You must specify at least one reference to remove. - You must specify at least one reference to remove. + È necessario specificare almeno un riferimento da rimuovere. {0}: tool library found {1} - {0}: tool library found {1} + {0}: libreria degli strumenti {1} trovata Missing 'version' entry. - Missing 'version' entry. + Manca la voce 'version'. Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + Lo strumento '{0}' (versione '{1}') è già installato. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + Il pacchetto {0} non è uno strumento .NET. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + Il comando '{0}' contiene uno o più dei caratteri seguenti non validi: {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + Il nome del comando '{0}' non può iniziare con un punto (.). Invalid XML: {0} - Invalid XML: {0} + XML non valido: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + Lo strumento definisce un comando con un'impostazione di nome mancante. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + Nel comando '{0}' manca un'impostazione di punto di ingresso. More than one command is defined for the tool. - More than one command is defined for the tool. + Per lo strumento è definito più di un comando. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + Lo strumento '{0}' usa il runner non supportato '{1}'." The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + Lo strumento non supporta l'architettura o il sistema operativo corrente ({0}). Runtime supportati: {1} Type - Type + Tipo The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + Non è stato possibile controllare il criterio della catena di certificati richiesto: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + non è possibile eliminare il file deps.json temporaneo: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + Non è possibile generare deps.json. Potrebbe essere stato già generato. Per ottenere l'output diagnostico, è possibile specificare l'opzione "-d" dopo "dotnet", ad esempio "dotnet-d <toolname>": {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + Il multiplexer dotnet non è stato trovato Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + È previsto un tipo {0} per la proprietà '{1}'. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Il comando o l'argomento '{0}' non è stato riconosciuto Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + Il progetto '{0}' ha un tipo di progetto sconosciuto e non può essere aggiunto al file di soluzione. Per assistenza, contattare il fornitore dell'SDK. Update - Update + Aggiorna VB/C# compiler server - VB/C# compiler server + Server del compilatore VB/C# Value - Value + Valore Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Consente di impostare il livello di dettaglio di MSBuild. I valori consentiti sono q[uiet], m[inimal], n[ormal], d[etailed] e diag[nostic]. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + Verifica della validità della firma del pacchetto NuGet "{0}" eseguita. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + Non è stato possibile risolvere la versione per il pacchetto `{0}`. Version {0} is invalid. - Version {0} is invalid. + La versione {0} non è valida. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + Si è verificato un problema nella verifica dei carichi di lavoro. Per altre informazioni, eseguire "dotnet workload update". {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Accetta tutte le richieste di conferma con "yes". diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.ja.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.ja.xlf index f1d43a2edf64..90d1d42a00d4 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.ja.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.ja.xlf @@ -4,89 +4,89 @@ Add - Add + 追加 Ambiguous command name: {0} - Ambiguous command name: {0} + あいまいなコマンド名: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + ターゲット アーキテクチャ。 ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + 成果物のパス。ビルド、発行、パック出力などのプロジェクトからの出力はすべて、指定されたパスの下のサブフォルダーに格納されます。 {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: commandspec を作成しようとしています {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: {2} でコマンド {1} を検索しています {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: {1} を解決しようとしています {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: ツール {1} から commandspec を解決しようとしています outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} は存在しません Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + 空の実行可能パスにシェル shim を作成できませんでした。 Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + マニフェスト ファイルが見つかりません。検索されたパスの一覧: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + マニフェスト ファイル内でパッケージ ID {0} を持つパッケージが見つかりません。 Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + 現在のランタイム識別子を解決できませんでした。 Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + `-r|--runtime` および `-a|--arch` オプションの両方を指定することはサポートされていません。 Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + `-r|--runtime` および `-os` オプションの両方を指定することはサポートされていません。 @@ -100,11 +100,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + 環境変数の値を設定します。 +変数が存在しない場合は作成し、存在する場合はオーバーライドします。 +この引数は、複数の変数を指定するために複数回指定できます。 -Examples: +例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -114,7 +114,7 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" @@ -129,12 +129,12 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + 環境変数の値を設定します。 +変数が存在しない場合は作成され、存在する場合はオーバーライドされます。 +これにより、テストは強制的に分離プロセスで実行されます。 +この引数は、複数の変数を指定するために複数回指定できます。 -Examples: +例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -144,102 +144,102 @@ Examples: Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + プロジェクトをビルドするときに使用する $(VersionSuffix) プロパティの値を設定します。 Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + 列の最大幅はゼロより大きくなければなりません。 The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + "{0}" で実行可能なコマンドが見つかりませんでした。プロジェクトが復元されていない可能性があるか、または復元に失敗しました。`dotnet restore` を実行します。 Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + コマンドを停止して、ユーザーの入力またはアクション (認証の完了など) を待機できるようにします。 Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + プレリリース パッケージのインストールを許可します。 {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec が null です。 FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + ファイル `{0}` が見つかりません。 CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + 指定したソリューション ファイル {0} が存在しないか、ディレクトリにソリューション ファイルがありません。 Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + ソリューションまたはディレクトリ `{0}` が見つかりませんでした。 {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: ツール {1} で runtimeconfig.json ファイルが見つかりませんでした Delete - Delete + 削除 Unable to find deps.json generator project. - Unable to find deps.json generator project. + deps.json ジェネレーター プロジェクトが見つかりません。 {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: 一致するプロジェクト {1}.が見つかりませんでした。 {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}:ProjectFactory でプロジェクトが見つかりませんでした。 Did you mean the following command? - Did you mean the following command? + 次のコマンドを意図していましたか? Directory - Directory + ディレクトリ Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + 永続的なビルド サーバーがそのコマンドで無視されるようにします。 {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} は存在しません @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + ツール ディレクトリ '{0}' は現在、PATH 環境変数に含まれていません。 +bash を使用している場合、次のコマンドを実行してプロファイルに追加できます。 cat << \EOF >> ~/.bash_profile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +次のコマンドを実行すると、これを現在のセッションに追加できます。 export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + .NET SDK をインストールしたばかりなので、インストールしたツールを実行する前に、ログアウトするか、セッションを再起動する必要があります。 @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + ツール ディレクトリ '{0}' は現在、PATH 環境変数に含まれていません。 +bash を使用している場合、次のコマンドを実行してプロファイルに追加できます。 cat << \EOF >> ~/.bash_profile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +次のコマンドを実行すると、これを現在のセッションに追加できます。 export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + .NET SDK をインストールしたばかりなので、インストールしたツールを実行する前に、端末を再び開く必要があります。 @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + ツール ディレクトリ '{0}' は現在、PATH 環境変数に含まれていません。 +zsh を使用している場合、次のコマンドを実行してプロファイルに追加できます。 cat << \EOF >> ~/.zprofile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +さらに、`zsh -l` を実行して現在のセッションで利用できるようにします。 -You can only add it to the current session by running the following command: +これは、次のコマンドを実行することによってのみ、現行のセッションに追加できます。 export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + Tools ディレクトリ '{0}' は現在、PATH 環境変数に含まれていません。 -You can add the directory to the PATH by running the following command: +次のコマンドを実行して、PATH にディレクトリを追加できます: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + .NET SDK をインストールしたばかりなので、インストールしたツールを実行する前に、コマンド プロンプト ウィンドウを再び開く必要があります。 Error - Error + エラー You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + 'tool install' 操作を、HTTP ソース {0} を使用して実行しています。NuGet には HTTPS ソースが必要です。HTTP ソースを使用するには、NuGet.Config ファイルで 'allowInsecureConnections' を true に明示的に設定する必要があります。詳しくは、https://aka.ms/nuget-https-everywhere を参照してください。 {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: {1} で deps.json が必要です Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + シェル shim で実行可能なユーザー アクセス許可を設定できませんでした: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + コマンド '{0}' でツール shim を作成できませんでした: {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: commandPath {1} が見つかりませんでした Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + ツール パッケージ '{0}' の NuGet アセット ファイルにライブラリが見つかりませんでした: {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + パッケージ ソース マッピングが有効になっていますが、指定されたパッケージ ID {0} にソースが見つかりません。詳細については、https://aka.ms/nuget-package-source-mapping にあるパッケージ ソース マッピングのドキュメントを参照してください。 Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + ステージ済みのツール パッケージ '{0}' が見つかりませんでした。 {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: {1} の toolAssembly が見つかりませんでした Failed to load NuGet source {0} - Failed to load NuGet source {0} + NuGet ソース {0} の読み込みに失敗しました Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + パッケージ ソース マッピングが有効になっていますが、指定されたパッケージ ID {0} にソースがマッピングされていません。詳細については、https://aka.ms/nuget-package-source-mapping にあるパッケージ ソース マッピングのドキュメントを参照してください。 Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + ツール パッケージ '{0}' の NuGet アセット ファイルを読み取ることができませんでした: {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + pid ファイル '{0}' の読み取りに失敗しました: {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + コマンド '{0}' でツール shim を削除できませんでした: {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: ライブラリから commandspec を解決できませんでした。 Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + ツールの構成を取得できませんでした: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + '{0}' を PATH 環境変数に追加できませんでした。'dotnet tool install' でインストールしたツールを使用するには、このディレクトリを PATH に追加します。 Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + ツール パッケージ '{0}' をアンインストールできませんでした: {1} Failed to validate package signing. {0} - Failed to validate package signing. + パッケージ署名の検証に失敗しました。 {0} Missing 'commands' entry. - Missing 'commands' entry. + 'commands' エントリがありません。 File - File + ファイル The file-based app to operate on. - The file-based app to operate on. + 操作するファイル ベースのアプリ。 Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + 形式のバージョンがサポートされているものを超えています。このツールはこのバージョンの SDK ではサポートされていない可能性があります。SDK を更新します。 Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + 形式のバージョンが無効です。このツールはこのバージョンの SDK ではサポートされていない可能性があります。ツールの作成者にお問い合わせください。 Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + 形式のバージョンが見つかりません。このツールはこのバージョンの SDK ではサポートされていない可能性があります。ツールの作成者にお問い合わせください。 Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + プロジェクト `{0}` が見つかりましたが、有効ではありません。 {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: {1} でツールのロックファイルが見つかりました FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + アプリケーションをフレームワーク依存アプリケーションとして公開します。アプリケーションを実行するには、対象のコンピューターで互換性のある .NET ランタイムをインストールする必要があります。 Generating deps.json at: {0} - Generating deps.json at: {0} + {0} で deps.json を生成しています {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: ツール ターゲット フレームワーク ({1}) のメジャー バージョンが現在の CLI ランタイム ({2}) と異なるため、prefercliruntime ファイルは無視されます。 In package {0}: {1} - In package {0}: + パッケージ {0} で: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + 不適切な形式の環境変数です: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: 無効な commandResolverArguments {0} should be an integer - {0} should be an integer + {0} は整数でなければなりません Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + マニフェスト ファイルが無効です。パス {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + 無効なプロジェクト `{0}`。 Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + 無効なプロジェクト `{0}`。{1}。 The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + ランタイム識別子 {0} は無効です。有効なランタイム識別子は {1} です。 Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + 無効なソリューション `{0}`。{1}。 Invalid version string: {0} - Invalid version string: {0} + バージョン文字列が無効です: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + {0} が NuGet フィードに見つかりません{1}。 Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + ファイル {0} で Json の解析エラーが発生しました。{1} LEVEL - LEVEL + LEVEL Library - Library + ライブラリ {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: ロック ファイルにライブラリが見つかりませんでした。 List - List + 一覧 {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}:`{1}` で prefercliruntime ファイルを検索しています .NET Cli Options: - .NET Cli Options: + .NET CLI オプション: MSBuild arguments: {0} - MSBuild arguments: {0} + MSBuild 引数: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: MSBuild project path = {1} MSBuild server - MSBuild server + MSBuild サーバー File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + ファイル {0} は別のコンピューターからのもので、このコンピューターを保護するためにブロックされている可能性があります。ブロックを解除する方法を含む詳細については、https://aka.ms/motw を参照してください Missing 'isRoot' entry. - Missing 'isRoot' entry. + 'isRoot' エントリがありません。 Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + パッケージを追加できません。マニフェスト ファイルにはパッケージ {1} のバージョン {0} が既に含まれています。マニフェスト ファイル {2} をアンインストールまたはインストールするか編集して、新しいバージョン {3} を指定します。 Manifest version 0 is not supported. - Manifest version 0 is not supported. + マニフェスト バージョン 0 はサポートされていません。 Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + マニフェスト バージョンは {0} です。このマニフェストは、この SDK バージョン (最大でマニフェスト バージョン {1} をサポート) でサポートされていない可能性があります。 Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + コマンド '{1}' のエントリ ポイント ファイル '{0}' がパッケージで見つかりませんでした。 Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + 設定ファイル 'DotnetToolSettings.xml' がパッケージで見つかりませんでした。 More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + 複数のパッケージ化された shim が利用可能です: {0}。 Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + {0} に複数のソリューション ファイルが見つかりました。使用するファイルを指定してください。 Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + この '{0}' には複数のプロジェクト ファイルが含まれているため、使用するプロジェクト ファイルを指定します。 More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + パッケージに対して複数のエントリが存在します: {0}。 Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + "dotnet tool restore" を実行して、"{0}" コマンドを利用できるようにします。 New - New + 新規 Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + 著作権情報を表示しません。 No projects found in the solution. - No projects found in the solution. + ソリューション内にプロジェクトが見つかりません。 There are no {0} references in project {1}. - There are no {0} references in project {1}. + プロジェクト {1} には {0} 参照がありません。 Do not restore the project before building. - Do not restore the project before building. + ビルドする前にプロジェクトを復元しません。 Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + 検索に失敗しました。NuGet Search API からの応答の詳細: + RequestUrl: {0}。ReasonPhrase: {1}。StatusCode: {2}。 Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + NuGet パッケージ "{0}" は署名の検証を必要としないソースから取得されたものなので、このパッケージの署名検証をスキップしています。 Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + NuGet パッケージ署名の認証をスキップしています。 {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: NuGet パッケージ ルート: {1} OS - OS + OS Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + -p オプションを使用して一度に指定できるプロジェクトは 1 つだけです。 {Locked="-p"} The target operating system. - The target operating system. + ターゲット オペレーティング システム。 Project to Project - Project to Project + プロジェクト間 Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + 一度にパックできる .nuspec ファイルは 1 つだけです Package - Package + パッケージ Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + '{0}' のようなパッケージ ID の形式のパッケージ参照、または '{0}@{1}' のように '@' で区切られたパッケージ ID とバージョンです。 Package reference id and version must not be null. - Package reference id and version must not be null. + パッケージ参照 ID とバージョンを null 値にすることはできません。 Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + パッケージ引数が既にバージョンを含んでいる場合は、--version を指定できません。 {Locked="--version"} Package reference - Package reference + パッケージ参照 A version of {0} of package {1} - A version of {0} of package {1} + パッケージ {1} の {0} のバージョン Version {0} of package {1} - Version {0} of package {1} + パッケージ {1} のバージョン {0} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + パッケージ {2} の {0} と {1} の間のバージョン A version higher than {0} of package {1} - A version higher than {0} of package {1} + パッケージ {1} の {0} より上位のバージョン A version less than {0} of package {1} - A version less than {0} of package {1} + パッケージ {1} の {0} 未満のバージョン Project - Project + プロジェクト Project `{0}` added to the solution. - Project `{0}` added to the solution. + プロジェクト `{0}` をソリューションに追加しました。 Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + プロジェクトには既に `{0}` への参照が指定されています。 The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + 操作するプロジェクト ファイル。ファイルを指定しない場合、コマンドによって現在のディレクトリから検索されます。 PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: -{1}. + プロジェクト `{0}` を評価できませんでした。評価は次のエラーにより失敗しました: +{1}。 Project `{0}` does not exist. - Project `{0}` does not exist. + プロジェクト `{0}` は存在しません。 Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + プロジェクト `{0}` はフレームワーク `{1}` をターゲットとしていません。 Project `{0}` is invalid. - Project `{0}` is invalid. + プロジェクト `{0}` は無効です。 Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + 2 つのプロジェクト間のターゲット フレームワークに互換性がないため、プロジェクト `{0}` を追加できません。追加しようとしているプロジェクトを確認し、次のターゲットと互換性があることを確認してください: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + プロジェクト `{0}` がソリューション内に見つかりませんでした。 The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + 操作するプロジェクト ファイルまたは C# ファイル ベースのアプリ。ファイルが指定されていない場合、コマンドは現在のディレクトリでプロジェクト ファイルを検索します。 PROJECT | FILE - PROJECT | FILE + プロジェクト | ファイル Project reference - Project reference + プロジェクト参照 Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + プロジェクト参照 `{0}` は見つかりませんでした。 Project reference(s) - Project reference(s) + プロジェクト参照 Project reference `{0}` removed. - Project reference `{0}` removed. + プロジェクト参照 `{0}` は削除されました。 Project `{0}` removed from solution. - Project `{0}` removed from solution. + プロジェクト `{0}` がソリューションから削除されました。 Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + プロジェクト `{0}` がソリューションから削除されました。 Razor build server - Razor build server + Razor ビルド サーバー Reference - Reference + 参照 Reference `{0}` added to the project. - Reference `{0}` added to the project. + 参照 `{0}` がプロジェクトに追加されました。 Remove - Remove + 削除 Required command was not provided. - Required command was not provided. + 必要なコマンドが指定されませんでした。 {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: {1} ツール ライブラリから commandspec を解決しています。 Response file '{0}' does not exist. - Response file '{0}' does not exist. + 応答ファイル '{0}' が存在しません。 Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + 検索に失敗しました。後でもう一度試すと、問題が解決する可能性があります。NuGet Search API からの応答の詳細: + RequestUrl: {0}。ReasonPhrase: {1}。StatusCode: {2}。 RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + 診断出力を有効にします。 Display the command schema as JSON. - Display the command schema as JSON. + コマンド スキーマを JSON として表示します。 The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + '--self-contained' と '--no-self-contained' オプションは同時に使用できません。 {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + ランタイムをターゲット マシンにインストールする必要がないように、アプリケーションと一緒に .NET ランタイムを発行します。 +既定値は 'false' です。しかし、.NET 7 以前が対象の場合、ランタイム識別子が指定されていれば、既定値は 'true' です。 Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + コマンド '{0}' は、別のツールからの既存のコマンドと競合します。 Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + 使用可能なワークロードのバージョン、またはワークロード バージョンを構成するものを検索します。詳細については、'dotnet workload search version --help' を使用してください。 {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + コマンド ラインのヘルプを表示します。 The shutdown command failed: {0} - The shutdown command failed: {0} + シャットダウン コマンドが失敗しました: {0} Solution - Solution + ソリューション Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + ソリューション {0} には既にプロジェクト {1} が含まれています。 Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + ソリューション引数 '{0}' の位置が正しくありません。 Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + 指定したソリューション ファイル {0} が存在しないか、ディレクトリにソリューション ファイルがありません。 The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + 利用するプロジェクト ファイルまたはソリューション ファイル。指定しない場合、コマンドは現在のディレクトリを検索します。 PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + 操作するプロジェクトまたはソリューションまたは C# (ファイル ベースのプログラム) ファイル。ファイルが指定されていない場合、コマンドは現在のディレクトリでプロジェクトまたはソリューションを検索します。 PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + プロジェクト | 解決策 | ファイル Specify at least one {0}. - Specify at least one {0}. + 少なくとも 1 つの {0} を指定してください。 You must specify at least one project to add. - You must specify at least one project to add. + 追加するプロジェクトを少なくとも 1 つ指定する必要があります。 You must specify at least one project to remove. - You must specify at least one project to remove. + 削除するプロジェクトを少なくとも 1 つ指定する必要があります。 You must specify at least one reference to remove. - You must specify at least one reference to remove. + 削除する参照を少なくとも 1 つ指定する必要があります。 {0}: tool library found {1} - {0}: tool library found {1} + {0}: ツール ライブラリで {1} が見つかりました Missing 'version' entry. - Missing 'version' entry. + 'version' エントリがありません。 Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + ツール '{0}' (バージョン '{1}') は既にインストールされています。 Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + パッケージ {0} は .NET ツールではありません。 Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + コマンド '{0}' には次の無効な文字が 1 つまたは複数含まれています: {1}。 The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + コマンド名 '{0}' の先頭にドット (.) を使用することはできません。 Invalid XML: {0} - Invalid XML: {0} + XML が無効です: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + ツールは、名前設定がないコマンドを定義します。 Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + コマンド '{0}' にエントリ ポイント設定がありません。 More than one command is defined for the tool. - More than one command is defined for the tool. + ツールに対して複数のコマンドが定義されています。 Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + ツール '{0}' では、サポートされていないランナー '{1}' が使用されています。" The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + このツールは、現在のアーキテクチャまたはオペレーティング システム ({0}) をサポートしていません。サポートされているランタイム: {1} Type - Type + 種類 The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + 要求された証明書チェーン ポリシーを確認できませんでした: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + deps.json 一時ファイルを削除できません: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + deps.json を生成できません。既に生成されている可能性があります。診断出力の "dotnet" オプションの後に、"-d" オプションを指定できます (例: "dotnet -d <toolname>": {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + dotnet マルチプレクサーが見つかりません Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + プロパティ '{1}' には {0} が必要です。 Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + 認識されないコマンドまたは引数 '{0}' Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + プロジェクト '{0}' のプロジェクト タイプは不明であるため、ソリューション ファイルに追加することができません。サポートが必要な場合は、SDK プロバイダーにお問い合わせください。 Update - Update + 更新 VB/C# compiler server - VB/C# compiler server + VB/C# コンパイラ サーバー Value - Value + Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + MSBuild の詳細レベルを設定します。使用可能な値: q[uiet]、m[inimal]、n[ormal]、d[etailed]、diag[nostic]。 Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + NuGet パッケージ "{0}" に有効な署名があることを確認しました。 Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + パッケージ `{0}` のバージョンを解決できませんでした。 Version {0} is invalid. - Version {0} is invalid. + バージョン {0} は無効です。 VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + ワークロードの検証中に問題が発生しました。詳細については、"dotnet workload update" を実行してください。 {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + [はい] を使用して、すべての確認プロンプトを受け入れます。 diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.ko.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.ko.xlf index 56767d6be103..7cdbca8d1d12 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.ko.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.ko.xlf @@ -4,89 +4,89 @@ Add - Add + 추가 Ambiguous command name: {0} - Ambiguous command name: {0} + 모호한 명령 이름: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + 대상 아키텍처입니다. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + 아티팩트 경로입니다. 빌드, 게시 및 팩 출력을 포함한 프로젝트의 모든 출력이 지정된 경로 아래의 하위 폴더로 이동합니다. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: commandspec 만들기 시도 중 {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: {2}에서 {1} 명령을 찾으려고 시도 중 {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: {1} 확인을 시도 중 {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: {1} 도구에서 command spec을 확인하려고 시도하는 중입니다. outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0}이(가) 없습니다. Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + 빈 실행 파일 경로에 대해 셸 shim을 만들 수 없습니다. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + 매니페스트 파일을 찾을 수 없습니다. 검색된 경로 목록: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + 매니페스트 파일에서 패키지 ID가 {0}인 패키지를 찾을 수 없습니다. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + 현재 런타임 식별자를 확인하지 못했습니다. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + `-r|--runtime` 및 `-a|--arch` 옵션을 모두 지정하는 것은 지원되지 않습니다. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + `-r|--runtime` 및 `-os` 옵션을 모두 지정하는 것은 지원되지 않습니다. @@ -100,11 +100,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + 환경 변수의 값을 설정합니다. +변수가 없는 경우 변수를 만들고, 변수가 있으면 재정의합니다. +이 인수를 여러 번 지정하여 여러 변수를 제공할 수 있습니다. -Examples: +예: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -114,7 +114,7 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" @@ -129,12 +129,12 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + 환경 변수의 값을 설정합니다. +변수가 없는 경우 변수를 만들고, 변수가 있으면 재정의합니다. +이는 테스트가 격리된 프로세스에서 강제로 실행되도록 합니다. +이 인수를 여러 번 지정하여 여러 변수를 제공할 수 있습니다. -Examples: +예: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -144,102 +144,102 @@ Examples: Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + 프로젝트를 빌드할 때 사용할 $(VersionSuffix) 속성의 값을 설정합니다. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + 열 최대 너비는 0보다 커야 합니다. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + "{0}"에 대해 실행 가능한 명령을 찾지 못했습니다. 프로젝트가 복원되지 않았거나 복원이 실패했을 수 있습니다. 'dotnet restore'를 실행하세요. Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + 명령을 중지하고 사용자 입력 또는 작업을 기다리도록 허용합니다(예: 인증 완료). Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + 시험판 패키지를 설치할 수 있습니다. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec이 null입니다. FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + '{0}' 파일을 찾을 수 없습니다. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + 지정한 솔루션 파일 {0}이(가) 없거나 디렉터리에 솔루션 파일이 없습니다. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + 솔루션 또는 디렉터리 '{0}'을(를) 찾을 수 없습니다. {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: 도구 {1}에 대한 runtimeconfig.json 파일을 찾을 수 없음 Delete - Delete + 삭제 Unable to find deps.json generator project. - Unable to find deps.json generator project. + deps.json 생성기 프로젝트를 찾을 수 없습니다. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: 일치하는 프로젝트 {1}을(를) 찾지 못했습니다. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: ProjectFactory에서 프로젝트를 찾지 못했습니다. Did you mean the following command? - Did you mean the following command? + 다음 명령을 의미했나요? Directory - Directory + 디렉터리 Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + 모든 영구 빌드 서버를 무시하도록 명령을 강제 실행합니다. {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1}이(가) 없습니다. @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + 도구 디렉터리 '{0}'이(가) 현재 PATH 환경 변수에 없습니다. +Bash를 사용하는 경우 다음 명령을 실행하여 프로필에 Bash를 추가할 수 있습니다. cat << \EOF >> ~/.bash_profile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +다음 명령을 실행하여 현재 세션에 Bash를 추가할 수 있습니다. export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + .NET SDK를 방금 설치했기 때문에 설치한 도구를 실행하기 전에 로그아웃하거나 세션을 다시 시작해야 합니다. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + 도구 디렉터리 '{0}'이(가) 현재 PATH 환경 변수에 없습니다. +Bash를 사용하는 경우 다음 명령을 실행하여 프로필에 Bash를 추가할 수 있습니다. cat << \EOF >> ~/.bash_profile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +다음 명령을 실행하여 현재 세션에 Bash를 추가할 수 있습니다. export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + .NET SDK를 방금 설치했기 때문에 설치한 도구를 실행하기 전에 터미널을 다시 열어야 합니다. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + 도구 디렉터리 '{0}'이(가) 현재 PATH 환경 변수에 없습니다. +zsh를 사용하는 경우 다음 명령을 실행하여 프로필에 zsh를 추가할 수 있습니다. cat << \EOF >> ~/.zprofile # Add .NET Core SDK tools export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +또한 `zsh -l`을 실행하여 현재 세션에 zsh를 사용하도록 설정합니다. -You can only add it to the current session by running the following command: +현재 세션에 추가하려면 다음 명령을 실행해야 합니다. export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + 도구 디렉터리 '{0}'이(가) 현재 PATH 환경 변수에 없습니다. -You can add the directory to the PATH by running the following command: +다음 명령을 실행하여 디렉터리를 PATH에 추가할 수 있습니다. setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + .NET SDK를 방금 설치했기 때문에 설치한 도구를 실행하기 전에 명령 프롬프트 창을 다시 열어야 합니다. Error - Error + 오류 You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + 여러분은 'tool install' 작업을 'HTTP' 원본 {0}(으)로 실행하고 있습니다. NuGet에는 HTTPS 원본이 필요합니다. HTTP 원본을 사용하려면 NuGet.Config 파일에서 'allowInsecureConnections'를 명시적으로 true로 설정해야 합니다. https://aka.ms/nuget-https-everywhere에서 자세한 내용을 참조하세요. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: {1}에서 deps.json 필요 Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + 셸 shim에 대해 사용자 실행 파일 권한을 설정하지 못했습니다. {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + '{0}' 명령에 대해 도구 shim을 만들지 못했습니다. {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: commandPath {1} 찾기 실패 Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + 도구 패키지 '{0}'의 NuGet 자산 파일에서 라이브러리를 찾지 못했습니다. {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + 패키지 원본 매핑을 사용하도록 설정된 상태이나 지정된 패키지 ID {0}에서 원본을 찾을 수 없습니다. 자세한 내용은 https://aka.ms/nuget-package-source-mapping에 있는 패키지 원본 매핑에 대한 설명서를 참조하세요. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + 스테이징된 도구 패키지 '{0}'을(를) 찾지 못했습니다. {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: {1}용 toolAssembly 찾기 실패 Failed to load NuGet source {0} - Failed to load NuGet source {0} + NuGet 원본 {0}을(를) 로드하지 못했습니다. Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + 패키지 원본 매핑을 사용하도록 설정된 상태이나 지정된 패키지 ID {0}에 매핑된 원본이 없습니다. 자세한 내용은 https://aka.ms/nuget-package-source-mapping에 있는 패키지 원본 매핑에 대한 설명서를 참조하세요. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + '{0}' 도구 패키지의 NuGet 자산 파일을 읽지 못했습니다. {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + pid 파일 '{0}'을(를) 읽지 못했습니다. {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + '{0}' 명령에 대해 도구 shim을 제거하지 못했습니다. {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: 라이브러리에서 commandspec을 확인하지 못했습니다. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + 도구 구성을 검색하지 못했습니다. {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + PATH 환경 변수에 '{0}'을(를) 추가하지 못했습니다. 'dotnet tool install'로 설치한 도구를 사용하려면 이 디렉터리를 PATH에 추가하세요. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + 도구 패키지 '{0}'을(를) 제거하지 못했습니다. {1} Failed to validate package signing. {0} - Failed to validate package signing. + 패키지 서명을 확인하지 못했습니다. {0} Missing 'commands' entry. - Missing 'commands' entry. + 'commands' 항목이 없습니다. File - File + 파일 The file-based app to operate on. - The file-based app to operate on. + 작동할 파일 기반 앱입니다. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + 형식 버전이 지원되는 버전보다 높습니다. 이 SDK 버전에서 이 도구를 지원하지 않을 수 있습니다. SDK를 업데이트하세요. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + 형식 버전의 형식이 잘못되었습니다. 이 SDK 버전에서 이 도구를 지원하지 않을 수 있습니다. 도구 작성자에게 문의하세요. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + 형식 버전이 누락되었습니다. 이 SDK 버전에서 이 도구를 지원하지 않을 수 있습니다. 도구 작성자에게 문의하세요. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + '{0}' 프로젝트가 있지만 잘못되었습니다. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: {1}에서 도구 잠금 파일을 찾았습니다. FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + 애플리케이션을 프레임워크 종속 애플리케이션으로 게시합니다. 애플리케이션을 실행하려면 호환되는 .NET 런타임이 대상 시스템에 설치되어 있어야 합니다. Generating deps.json at: {0} - Generating deps.json at: {0} + {0}에서 deps.json 생성 중 {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: 도구 대상 프레임워크({1})에 현재 CLI 런타임({2})과 다른 주 버전이 있으므로 prefercliruntime 파일 무시 In package {0}: {1} - In package {0}: + 패키지 {0}: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + 형식이 잘못된 환경 변수: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: 잘못된 commandResolverArguments {0} should be an integer - {0} should be an integer + {0}은(는) 정수여야 합니다. Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + 매니페스트 파일이 잘못되었습니다. 경로 {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + '{0}' 프로젝트가 잘못되었습니다. Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + '{0}' 프로젝트가 잘못되었습니다. {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + 런타임 식별자 {0}이(가) 잘못되었습니다. 유효한 런타임 식별자는 {1}입니다. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + '{0}' 솔루션이 잘못되었습니다. {1}. Invalid version string: {0} - Invalid version string: {0} + 잘못된 버전 문자열: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + {0}을(를) NuGet 피드 {1}에서 찾을 수 없습니다. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + {0} 파일에서 Json 구문 분석 오류 발생: {1} LEVEL - LEVEL + LEVEL Library - Library + 라이브러리 {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: 잠금 파일에서 라이브러리를 찾지 못했습니다. List - List + 목록 {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: '{1}'에서 prefercliruntime 파일을 찾는 중 .NET Cli Options: - .NET Cli Options: + .NET Cli 옵션: MSBuild arguments: {0} - MSBuild arguments: {0} + MSBuild 인수: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: MSBuild 프로젝트 경로 = {1} MSBuild server - MSBuild server + MSBuild 서버 File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + {0} 파일은 다른 컴퓨터에서 제공되었으며 이 컴퓨터를 보호하기 위해 차단되었을 수 있습니다. 차단 해제 방법을 비롯한 자세한 내용은 https://aka.ms/motw를 참조하세요. Missing 'isRoot' entry. - Missing 'isRoot' entry. + 'isRoot' 항목이 없습니다. Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + 패키지를 추가할 수 없습니다. 매니페스트 파일에 이미 {1} 패키지의 {0} 버전이 포함되어 있습니다. 새 버전 {3}을(를) 지정하려면 매니페스트 파일 {2}을(를) 제거/설치하거나 편집하세요. Manifest version 0 is not supported. - Manifest version 0 is not supported. + 매니페스트 버전 0은 지원되지 않습니다. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + 매니페스트 버전이 {0}입니다. 이 매니페스트는 매니페스트 버전 {1}까지 지원할 수 있는 이 SDK 버전에서 지원되지 않을 수 있습니다. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + 패키지에서 '{1}' 명령에 대한 진입점 파일 '{0}'을(를) 찾지 못했습니다. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + 패키지에서 설정 파일 'DotnetToolSettings.xml'을 찾지 못했습니다. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + 패키지된 shim을 하나 이상 사용할 수 있습니다. {0} Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + {0}에서 솔루션 파일을 두 개 이상 찾았습니다. 사용할 파일을 지정하세요. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + 이 '{0}'에 둘 이상의 프로젝트 파일이 포함되어 있으므로 사용할 프로젝트 파일을 지정하세요. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + 패키지 {0}에 항목이 두 개 이상 있습니다. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + "dotnet tool restore"를 실행하여 "{0}" 명령을 사용할 수 있도록 만듭니다. New - New + 새로 만들기 Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + 시작 배너 또는 저작권 메시지를 표시하지 않습니다. No projects found in the solution. - No projects found in the solution. + 솔루션에서 프로젝트를 찾을 수 없습니다. There are no {0} references in project {1}. - There are no {0} references in project {1}. + {1} 프로젝트에 {0} 참조가 없습니다. Do not restore the project before building. - Do not restore the project before building. + 빌드하기 전에 프로젝트를 복원하지 마세요. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: + 검색하지 못했습니다. NuGet 검색 API 응답 정보: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + NuGet 패키지 "{0}"은(는) 서명 유효성 검사가 필요하지 않은 원본에서 제공되었으므로 서명 확인을 건너뜁니다. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + NuGet 패키지 서명 확인을 건너뛰는 중입니다. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: nuget 패키지 루트: {1} OS - OS + OS Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + -p 옵션을 사용하여 한 번에 하나의 프로젝트만 지정할 수 있습니다. {Locked="-p"} The target operating system. - The target operating system. + 대상 운영 체제입니다. Project to Project - Project to Project + 프로젝트 간 Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + 한 번에 하나의 .nuspec 파일만 압축할 수 있습니다. Package - Package + 패키지 Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + '{0}'과 같은 패키지 식별자 또는 '{0}@{1}'과 같이 '@'로 구분된 패키지 식별자 및 버전 형식의 패키지 참조입니다. Package reference id and version must not be null. - Package reference id and version must not be null. + 패키지 참조 ID와 버전은 null이 아니어야 합니다. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + 패키지 인수에 이미 버전이 포함되어 있을 때는 --version을 지정할 수 없습니다. {Locked="--version"} Package reference - Package reference + 패키지 참조 A version of {0} of package {1} - A version of {0} of package {1} + {0}의 버전의 패키지 {1} Version {0} of package {1} - Version {0} of package {1} + 버전 {0}의 패키지 {1} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + {0} 및 {1} 사이의 버전의 패키지 {2} A version higher than {0} of package {1} - A version higher than {0} of package {1} + {0}보다 높은 버전의 패키지 {1} A version less than {0} of package {1} - A version less than {0} of package {1} + {0}보다 낮은 버전의 패키지 {1} Project - Project + 프로젝트 Project `{0}` added to the solution. - Project `{0}` added to the solution. + '{0}' 프로젝트가 솔루션에 추가되었습니다. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + 프로젝트에 이미 '{0}'에 대한 참조가 있습니다. The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + 수행할 프로젝트 파일입니다. 파일을 지정하지 않으면 명령이 현재 디렉터리에서 파일을 검색합니다. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + '{0}' 프로젝트를 평가할 수 없습니다. 다음 오류로 인해 평가가 실패했습니다. {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + '{0}' 프로젝트가 없습니다. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + '{0}' 프로젝트의 대상 프레임워크가 '{1}'이(가) 아닙니다. Project `{0}` is invalid. - Project `{0}` is invalid. + '{0}' 프로젝트가 잘못되었습니다. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + 두 프로젝트 간에 호환되지 않는 대상 프레임워크 때문에 '{0}' 프로젝트를 추가할 수 없습니다. 추가하려는 프로젝트를 검토하고 다음 대상과 호환되는지 확인하세요. Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + 솔루션에서 '{0}' 프로젝트를 찾을 수 없습니다. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + 작업할 프로젝트 파일 또는 C# 파일 기반 앱입니다. 파일을 지정하지 않으면 명령이 현재 디렉터리에서 프로젝트 파일을 검색합니다. PROJECT | FILE - PROJECT | FILE + 프로젝트 | 파일 Project reference - Project reference + 프로젝트 참조 Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + 프로젝트 참조 '{0}'을(를) 찾을 수 없습니다. Project reference(s) - Project reference(s) + 프로젝트 참조 Project reference `{0}` removed. - Project reference `{0}` removed. + 프로젝트 참조 '{0}'이(가) 제거되었습니다. Project `{0}` removed from solution. - Project `{0}` removed from solution. + '{0}' 프로젝트가 솔루션에서 제거되었습니다. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + '{0}' 프로젝트가 솔루션에서 제거되었습니다. Razor build server - Razor build server + Razor 빌드 서버 Reference - Reference + 참조 Reference `{0}` added to the project. - Reference `{0}` added to the project. + 프로젝트에 '{0}' 참조가 추가되었습니다. Remove - Remove + 제거 Required command was not provided. - Required command was not provided. + 필수 명령을 제공하지 않았습니다. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: {1} 도구 라이브러리에서 commandspec을 확인하는 중입니다. Response file '{0}' does not exist. - Response file '{0}' does not exist. + 지시 파일 '{0}'이(가) 없습니다. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: + 검색하지 못했습니다. 나중에 다시 시도하면 문제가 해결될 수도 있습니다. NuGet 검색 API 응답 정보: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + 진단 출력을 사용합니다. Display the command schema as JSON. - Display the command schema as JSON. + 명령 스키마를 JSON으로 표시합니다. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + '--self-contained' 및 '--no-self-contained' 옵션은 함께 사용할 수 없습니다. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + 대상 컴퓨터에 런타임을 설치할 필요가 없도록 애플리케이션과 함께 .NET 런타임을 게시합니다. +기본값은 'false'입니다. 그러나 .NET 7 이하를 대상으로 하고 런타임 식별자를 지정하는 경우 기본값은 'true'입니다. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + '{0}' 명령이 다른 도구의 기존 명령과 충돌합니다. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + 사용 가능한 워크로드 버전 또는 워크로드 버전을 구성하는 항목을 검색합니다. 자세한 내용을 보려면 'dotnet workload search version --help'를 사용하세요. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + 명령줄 도움말을 표시합니다. The shutdown command failed: {0} - The shutdown command failed: {0} + 종료 명령에 실패했습니다. {0} Solution - Solution + 솔루션 Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + {0} 솔루션에 {1} 프로젝트가 이미 있습니다. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + '{0}' 솔루션 인수의 위치가 잘못되었습니다. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + 지정한 솔루션 파일 {0}이(가) 없거나 디렉터리에 솔루션 파일이 없습니다. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + 수행할 프로젝트 또는 솔루션 파일입니다. 파일을 지정하지 않으면 명령이 현재 디렉토리에서 파일을 검색합니다. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + 작업할 프로젝트 또는 솔루션 또는 C#(파일 기반 프로그램) 파일입니다. 파일을 지정하지 않으면 명령이 현재 디렉터리에서 프로젝트 또는 솔루션을 검색합니다. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJECT | SOLUTION | FILE Specify at least one {0}. - Specify at least one {0}. + {0}을(를) 하나 이상 지정하세요. You must specify at least one project to add. - You must specify at least one project to add. + 추가할 프로젝트를 하나 이상 지정해야 합니다. You must specify at least one project to remove. - You must specify at least one project to remove. + 제거할 프로젝트를 하나 이상 지정해야 합니다. You must specify at least one reference to remove. - You must specify at least one reference to remove. + 제거할 참조를 하나 이상 지정해야 합니다. {0}: tool library found {1} - {0}: tool library found {1} + {0}: 도구 라이브러리가 발견됨({1}) Missing 'version' entry. - Missing 'version' entry. + 'version' 항목이 없습니다. Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + '{0}' 도구(버전 '{1}')가 이미 설치되어 있습니다. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + {0} 패키지는 .NET 도구가 아닙니다. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + '{0}' 명령에 다음과 같은 잘못된 문자가 하나 이상 포함되어 있습니다. {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + 명령 이름 '{0}'은(는) 앞에 점(.)으로 시작할 수 없습니다. Invalid XML: {0} - Invalid XML: {0} + 잘못된 XML: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + 도구에서 이름 설정 없이 명령을 정의합니다. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + '{0}' 명령에 진입점 설정이 없습니다. More than one command is defined for the tool. - More than one command is defined for the tool. + 도구에 대해 두 개 이상의 명령이 등록되어 있습니다. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + 도구 '{0}'에서 지원되지 않는 실행기 '{1}'을(를) 사용합니다." The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + 도구가 현재 아키텍처 또는 운영 체제({0})를 지원하지 않습니다. 지원되는 런타임: {1} Type - Type + 형식 The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + 요청한 인증서 체인 정책을 확인할 수 없습니다: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + 임시 deps.json 파일을 삭제할 수 없습니다. {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + deps.json을 생성할 수 없습니다. 이미 생성되었을 수 있습니다. 진단 출력에 대해 “dotnet” 다음에 "-d" 옵션을 지정할 수 있습니다(예: "dotnet-d <toolname>": {0}). Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + dotnet multiplexer를 찾을 수 없음 Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + '{1}' 속성에는 {0}이(가) 필요합니다. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + 인식할 수 없는 명령 또는 인수 '{0}' Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + '{0}' 프로젝트는 알 수 없는 프로젝트 형식이고 솔루션 파일에 추가할 수 없습니다. SDK 공급자에 문의하여 지원을 받으세요. Update - Update + 업데이트 VB/C# compiler server - VB/C# compiler server + VB/C# 컴파일러 서버 Value - Value + Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + MSBuild 세부 정보 표시 수준을 설정합니다. 허용되는 값은 q[uiet], m[inimal], n[ormal], d[etailed] 및 diag[nostic]입니다. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + NuGet 패키지 "{0}"에 유효한 서명이 있음을 확인했습니다. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + '{0}' 패키지의 버전을 확인할 수 없습니다. Version {0} is invalid. - Version {0} is invalid. + 버전 {0}이(가) 잘못되었습니다. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + 워크로드를 확인하는 동안 문제가 발생했습니다. 자세한 내용을 확인하려면 "dotnet workload update"를 실행하세요. {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + "예"를 사용하여 모든 확인 프롬프트를 수락합니다. diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.pl.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.pl.xlf index 5b5d91adc56b..19a149f6d4aa 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.pl.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.pl.xlf @@ -4,89 +4,89 @@ Add - Add + Dodaj Ambiguous command name: {0} - Ambiguous command name: {0} + Niejednoznaczna nazwa polecenia: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + Architektura docelowa. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Ścieżka artefaktów. Wszystkie dane wyjściowe z projektu, w tym dane wyjściowe kompilacji, publikowania i pakowania, będą trafiać do podfolderów w określonej ścieżce. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: Próba utworzenia elementu commandspec {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: Próba odnalezienia polecenia {1} w lokalizacji {2} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: Próba rozpoznania elementu {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: Próba rozpoznania specyfikacji polecenia z narzędzia {1} outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + Element outputpathresolver: {0} nie istnieje Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + Nie można utworzyć podkładki powłoki dla pustej ścieżki pliku wykonywalnego. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + Nie można odnaleźć pliku manifestu. Lista przeszukanych ścieżek: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + Nie można odnaleźć pakietu o identyfikatorze {0} w pliku manifestu. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Rozpoznawanie bieżącego identyfikatora środowiska uruchomieniowego nie powiodło się. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Określanie opcji „-r|--runtime” i „-a|--arch” nie jest obsługiwane. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Określanie opcji „-r|--runtime” i „-os” nie jest obsługiwane. @@ -100,21 +100,21 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Ustawia wartość zmiennej środowiskowej. +Jeśli zmienna nie istnieje, tworzy ją, a jeśli istnieje, przesłania. +Ten argument można określić wiele razy w celu podania wielu zmiennych. -Examples: +Przykłady: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARABLE=”wartość ze spacjami” +-e VARABLE=”wartości;rozdzielone;średnikami” -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NAZWA="WARTOŚĆ" @@ -129,117 +129,117 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Ustawia wartość zmiennej środowiskowej. +Jeśli zmienna nie istnieje, tworzy ją, a jeśli istnieje, przesłania. +Wymusi to uruchamianie testów w izolowanym procesie. +Ten argument można określić wiele razy w celu podania wielu wartości. -Examples: --e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" --e VAR1=abc -e VAR2=def -e VAR3=ghi +Przykłady: +-e ZMIENNA=abc +-e ZMIENNA="wartość ze spacjami" +-e ZMIENNA="wartości;rozdzielone;średnikami" +-e ZM1=abc -e ZM2=def -e ZM3=ghi Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Ustaw wartość właściwości $(VersionSuffix) do użycia podczas kompilowania projektu. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + Maksymalna szerokość kolumny musi być większa niż zero. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + Nie znaleziono pliku wykonywalnego polecenia dla elementu „{0}”. Projekt mógł nie zostać przywrócony lub przywracanie zakończyło się niepowodzeniem — uruchom polecenie „dotnet restore” Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Zezwala poleceniu na zatrzymanie działania i zaczekanie na wprowadzenie danych lub wykonanie akcji przez użytkownika (na przykład ukończenie uwierzytelniania). Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Zezwala na instalowanie pakietów wersji wstępnych. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: Element commandSpec ma wartość null. FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + Nie odnaleziono pliku „{0}”. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Określony plik rozwiązania {0} nie istnieje bądź w katalogu nie ma żadnego pliku rozwiązania. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + Nie można odnaleźć rozwiązania ani katalogu „{0}”. {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: nie można odnaleźć pliku runtimeconfig.json dla narzędzia {1} Delete - Delete + Usuń Unable to find deps.json generator project. - Unable to find deps.json generator project. + Nie można odnaleźć projektu generatora deps.json. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: Nie znaleziono pasującego projektu {1}. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: Element ProjectFactory nie odnalazł projektu. Did you mean the following command? - Did you mean the following command? + Czy chodziło Ci o następujące polecenie? Directory - Directory + Katalog Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Wymuś polecenie, aby zignorować wszystkie trwałe serwery kompilacji. {0}: {1} does not exist - {0}: {1} does not exist + {0}: Element {1} nie istnieje @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Katalog narzędzi „{0}” nie znajduje się obecnie w zmiennej środowiskowej PATH. +Jeśli używasz powłoki Bash, możesz dodać ją do swojego profilu, uruchamiając następujące polecenie: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Dodaj zestaw narzędzi .NET Core SDK export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Aby dodać go do bieżącej sesji, uruchom następujące polecenie: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + Właśnie zainstalowano zestaw .NET SDK, dlatego należy wylogować się lub uruchomić ponownie sesję przed uruchomieniem zainstalowanego narzędzia. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Katalog narzędzi „{0}” nie znajduje się obecnie w zmiennej środowiskowej PATH. +Jeśli używasz powłoki Bash, możesz dodać ją do swojego profilu, uruchamiając następujące polecenie: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Dodaj zestaw narzędzi .NET Core SDK export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Aby dodać go do bieżącej sesji, uruchom następujące polecenie: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + Właśnie zainstalowano zestaw .NET SDK, dlatego należy ponownie otworzyć terminal przed uruchomieniem zainstalowanego narzędzia. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + Katalog narzędzi „{0}” nie znajduje się obecnie w zmiennej środowiskowej PATH. +Jeśli używasz powłoki zsh, możesz ją dodać do swojego profilu, uruchamiając następujące polecenie: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# Dodaj zestaw narzędzi .NET Core SDK export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +Aby udostępnić ją w bieżącej sesji, uruchom polecenie `zsh -l`. -You can only add it to the current session by running the following command: +Możesz ją dodać tylko do bieżącej sesji, uruchamiając następujące polecenie: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + Katalogu narzędzi „{0}” nie ma obecnie w zmiennej środowiskowej PATH. -You can add the directory to the PATH by running the following command: +Możesz dodać katalog do zmiennej PATH przez uruchomienie następującego polecenia: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + Właśnie zainstalowano zestaw .NET SDK, dlatego należy ponownie otworzyć okno wiersza polecenia przed uruchomieniem zainstalowanego narzędzia. Error - Error + Błąd You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + Operację „instalacji narzędzia” wykonujesz ze źródłem „HTTP”: {0}. Menedżer NuGet wymaga źródeł HTTPS. Aby użyć źródła HTTP, musisz wyraźnie ustawić właściwość „allowInsecureConnections” na wartość true w pliku NuGet.Config. Aby uzyskać więcej informacji, sprawdź witrynę https://aka.ms/nuget-https-everywhere. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: Oczekiwano pliku deps.json w lokalizacji: {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + Nie można ustawić uprawnień pliku wykonywalnego użytkownika dla podkładki powłoki: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + Nie można utworzyć podkładki narzędzia dla polecenia „{0}”: {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: Nie udało się odnaleźć ścieżki commandPath {1} Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + Nie można odnaleźć biblioteki w pliku zasobów NuGet dla pakietu narzędzi „{0}”: {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Mapowanie źródła pakietu jest włączone, ale nie znaleziono źródła w ramach określonego identyfikatora pakietu: {0}. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją mapowania źródła pakietu w witrynie https://aka.ms/nuget-package-source-mapping. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + Nie można odnaleźć przygotowanego pakietu narzędzia „{0}”. {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: Nie udało się odnaleźć elementu toolAssembly dla elementu {1} Failed to load NuGet source {0} - Failed to load NuGet source {0} + Nie można załadować źródła pakietu NuGet {0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Mapowanie źródła pakietu jest włączone, ale nie zamapowano źródła w ramach określonego identyfikatora pakietu: {0}. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją mapowania źródła pakietu w witrynie https://aka.ms/nuget-package-source-mapping. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + Nie można odczytać pliku zasobów NuGet dla pakietu narzędzi „{0}”: {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + Nie można odczytać pliku pid „{0}”: {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + Nie można usunąć podkładki narzędzia dla polecenia „{0}”: {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: Nie udało się rozpoznać elementu commandspec z biblioteki. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Nie można pobrać konfiguracji narzędzia: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + Nie można dodać katalogu „{0}” do zmiennej środowiskowej PATH. Dodaj ten katalog do zmiennej PATH, aby używać narzędzi zainstalowanych za pomocą polecenia „dotnet tool install”. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + Nie można odinstalować pakietu narzędzia „{0}”: {1} Failed to validate package signing. {0} - Failed to validate package signing. + Nie można zweryfikować podpisywania pakietu. {0} Missing 'commands' entry. - Missing 'commands' entry. + Brak wpisu „commands”. File - File + Plik The file-based app to operate on. - The file-based app to operate on. + Aplikacja oparta na plikach, na której ma działać. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + Wersja formatu jest nowsza niż obsługiwana. To narzędzie może nie być obsługiwane w tej wersji zestawu SDK. Zaktualizuj zestaw SDK. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + Wersja formatu jest nieprawidłowo sformułowana. To narzędzie może nie być obsługiwane w tej wersji zestawu SDK. Skontaktuj się z autorem narzędzia. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + Brak wersji formatu. To narzędzie może nie być obsługiwane w tej wersji zestawu SDK. Skontaktuj się z autorem narzędzia. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + Znaleziono projekt „{0}”, ale jest on nieprawidłowy. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: Odnaleziono plik blokady narzędzia w lokalizacji: {1} FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Opublikuj aplikację jako aplikację zależną od frameworku. Aby można było uruchomić aplikację, na maszynie docelowej musi być zainstalowane zgodne środowisko uruchomieniowe platformy .NET. Generating deps.json at: {0} - Generating deps.json at: {0} + Generowanie pliku deps.json w lokalizacji: {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: plik prefercliruntime zostanie zignorowany, ponieważ wersja platforma docelowa narzędzia ({1}) różni się od wersji bieżącego środowiska uruchomieniowego interfejsu wiersza polecenia ({2}) In package {0}: {1} - In package {0}: + W pakiecie {0}: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Niepoprawnie sformatowane zmienne środowiskowe: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: Nieprawidłowa wartość elementu commandResolverArguments {0} should be an integer - {0} should be an integer + Wartość {0} powinna być liczbą całkowitą Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Nieprawidłowy plik manifestu. Ścieżka {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + Nieprawidłowy projekt „{0}”. Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + Nieprawidłowy projekt „{0}”. {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + Identyfikator środowiska uruchomieniowego {0} jest nieprawidłowy. Prawidłowe identyfikatory środowiska uruchomieniowego: {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + Nieprawidłowe rozwiązanie „{0}”. {1}. Invalid version string: {0} - Invalid version string: {0} + Nieprawidłowy ciąg wersji: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + Nie znaleziono pakietu {0} w kanałach informacyjnych pakietu NuGet {1}. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + Błąd analizowania kodu JSON w pliku {0}: {1} LEVEL - LEVEL + LEVEL Library - Library + Biblioteka {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: Nie odnaleziono biblioteki w pliku blokady. List - List + Wyświetl listę {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: Wyszukiwanie pliku prefercliruntime w lokalizacji „{1}” .NET Cli Options: - .NET Cli Options: + Opcje interfejsu wiersza polecenia platformy .NET: MSBuild arguments: {0} - MSBuild arguments: {0} + Argumenty programu MSBuild: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: Ścieżka MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: Ścieżka projektu programu MSBuild = {1} MSBuild server - MSBuild server + Serwer MSBuild File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + Plik {0} pochodzi z innego komputera i może zostać zablokowany, aby pomóc chronić ten komputer. Aby uzyskać więcej informacji, w tym o sposobie odblokowywania, zobacz https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + Brak wpisu „isRoot”. Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + Nie można dodać pakietu. Plik manifestu zawiera już wersję {0} pakietu {1}. Odinstaluj, zainstaluj lub edytuj plik manifestu {2}, aby określić nową wersję {3}. Manifest version 0 is not supported. - Manifest version 0 is not supported. + Manifest w wersji 0 nie jest obsługiwany. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + Wersja manifestu to {0}. Ten manifest może nie być obsługiwany w tej wersji zestawu SDK, który obsługuje manifest do wersji {1}. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + Nie znaleziono pliku punktu wejścia „{0}” polecenia „{1}” w pakiecie. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + Nie znaleziono pliku ustawień „DotnetToolSettings.xml” w pakiecie. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Dostępna jest więcej niż jedna spakowana podkładka: {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + Znaleziono więcej niż jeden plik rozwiązania w lokalizacji {0}. Określ, który ma zostać użyty. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Określ, który plik ma zostać użyty, ponieważ w tym elemencie „{0}” podano kilka plików projektu. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Istnieje wiele pozycji dla pakietów: {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + Uruchom polecenie „dotnet tool restore”, aby udostępnić polecenie „{0}”. New - New + Nowy Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Nie wyświetlaj baneru początkowego ani komunikatu o prawach autorskich. No projects found in the solution. - No projects found in the solution. + Nie znaleziono żadnych projektów w tym rozwiązaniu. There are no {0} references in project {1}. - There are no {0} references in project {1}. + Brak odwołań do elementu {0} w projekcie {1}. Do not restore the project before building. - Do not restore the project before building. + Nie przywracaj projektu przed kompilowaniem. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + Nie można wyszukać. Szczegóły odpowiedzi interfejsu API wyszukiwania NuGet: + Adres URL żądania: {0}. Fraza przyczyny: {1}. Kod stanu: {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + Pomijanie weryfikacji podpisu dla pakietu NuGet „{0}”, ponieważ pochodzi ona ze źródła, które nie wymaga weryfikacji podpisu. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + Pomijanie weryfikacji podpisu pakietu NuGet. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: Katalog główny pakietów NuGet: {1} OS - OS + System operacyjny Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + Jednocześnie można określić tylko jeden projekt przy użyciu opcji -p. {Locked="-p"} The target operating system. - The target operating system. + Docelowy system operacyjny. Project to Project - Project to Project + Między projektami Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + Jednocześnie można spakować tylko jeden plik nuspec Package - Package + Pakiet Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Odwołanie do pakietu w formie identyfikatora pakietu, takiego jak „{0}” lub identyfikatora pakietu i wersji, rozdzielonych znakiem „@”, np. „{0}@{1}”. Package reference id and version must not be null. - Package reference id and version must not be null. + Identyfikator odwołania i wersja pakietu nie mogą mieć wartości null. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Nie można określić parametru --version, jeśli argument pakietu zawiera już wersję. {Locked="--version"} Package reference - Package reference + Odwołanie do pakietu A version of {0} of package {1} - A version of {0} of package {1} + Wersja {0} pakietu {1} Version {0} of package {1} - Version {0} of package {1} + Wersja {0} pakietu {1} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + Wersja między {0} i {1} pakietu {2} A version higher than {0} of package {1} - A version higher than {0} of package {1} + Wersja nowsza niż {0} pakietu {1} A version less than {0} of package {1} - A version less than {0} of package {1} + Wersja mniejsza niż {0} pakietu {1} Project - Project + Projekt Project `{0}` added to the solution. - Project `{0}` added to the solution. + Dodano projekt „{0}” do rozwiązania. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + Projekt zawiera już odwołanie do elementu „{0}”. The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Plik projektu, na którym ma zostać wykonana operacja. Jeśli nie określono pliku, polecenie przeszuka bieżący katalog pod jego kątem. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + Nie można ocenić projektu „{0}”. Ocena nie powiodła się z powodu następującego błędu: {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + Projekt „{0}” nie istnieje. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + „{1}” nie jest platformą docelową projektu „{0}”. Project `{0}` is invalid. - Project `{0}` is invalid. + Projekt „{0}” jest nieprawidłowy. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + Nie można dodać projektu „{0}” z powodu niezgodnych platform docelowych dwóch projektów. Sprawdź projekt, który próbujesz dodać, i zweryfikuj, czy jest zgodny z następującymi platformami docelowymi: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + Nie można odnaleźć projektu „{0}” w rozwiązaniu. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Plik projektu lub aplikacja oparta na plikach języka C#, na którym ma działać. Jeśli plik nie zostanie określony, polecenie wyszuka bieżący katalog w poszukiwaniu pliku projektu. PROJECT | FILE - PROJECT | FILE + PROJEKT | PLIK Project reference - Project reference + Odwołanie do projektu Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + Nie można odnaleźć odwołania do projektu „{0}”. Project reference(s) - Project reference(s) + Odwołania do projektów Project reference `{0}` removed. - Project reference `{0}` removed. + Odwołanie do projektu „{0}” zostało usunięte. Project `{0}` removed from solution. - Project `{0}` removed from solution. + Projekt „{0}” został skasowany z rozwiązania. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + Projekt „{0}” został skasowany z rozwiązania. Razor build server - Razor build server + Serwer kompilacji Razor Reference - Reference + Odwołanie Reference `{0}` added to the project. - Reference `{0}` added to the project. + Do projektu zostało dodane odwołanie „{0}”. Remove - Remove + Usuń Required command was not provided. - Required command was not provided. + Nie podano wymaganego polecenia. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: Rozpoznawanie elementu commandspec z bibliotek narzędzia {1}. Response file '{0}' does not exist. - Response file '{0}' does not exist. + Plik odpowiedzi „{0}” nie istnieje. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + Nie można wyszukać. Późniejsza ponowna próba może rozwiązać problem. Szczegóły odpowiedzi interfejsu API wyszukiwania NuGet: + Adres URL żądania: {0}. Fraza przyczyny: {1}. Kod stanu: {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Włącz diagnostyczne dane wyjściowe. Display the command schema as JSON. - Display the command schema as JSON. + Wyświetl schemat polecenia jako kod JSON. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Opcji „--self-contained” i „--no-self-contained” nie można używać razem. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Opublikuj środowisko uruchomieniowe platformy .NET z aplikacją, aby nie trzeba było instalować środowiska uruchomieniowego na maszynie docelowej. +Wartość domyślna to „false”. Jednak w przypadku, gdy docelową jest platforma .NET 7 lub jej niższa wersja wartością domyślną jest „true”, jeśli określono identyfikator środowiska uruchomieniowego. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + Wystąpił konflikt między poleceniem „{0}” i istniejącym poleceniem z innego narzędzia. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Wyszukaj dostępne wersje obciążeń lub elementy składowe poszczególnych wersji obciążeń. Aby uzyskać więcej informacji, użyj polecenia „dotnet workload search version --help”. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Pokaż pomoc wiersza polecenia. The shutdown command failed: {0} - The shutdown command failed: {0} + Polecenie zamknięcia nie powiodło się: {0} Solution - Solution + Rozwiązanie Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + Rozwiązanie {0} zawiera już projekt {1}. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + Argument rozwiązania „{0}” jest zagubiony. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Określony plik rozwiązania {0} nie istnieje bądź w katalogu nie ma żadnego pliku rozwiązania. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Plik projektu lub rozwiązania, dla którego ma zostać wykonana operacja. Jeśli plik nie zostanie podany, polecenie wyszuka go w bieżącym katalogu. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Projekt lub rozwiązanie albo plik C# (program oparty na plikach), na którym ma być wykonana operacja. Jeśli plik nie zostanie określony, polecenie wyszuka bieżący katalog w poszukiwaniu projektu lub rozwiązania. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJEKT | ROZWIĄZANIE | PLIK Specify at least one {0}. - Specify at least one {0}. + Określ co najmniej jeden element {0}. You must specify at least one project to add. - You must specify at least one project to add. + Musisz określić co najmniej jeden projekt do dodania. You must specify at least one project to remove. - You must specify at least one project to remove. + Musisz określić co najmniej jeden projekt do skasowania. You must specify at least one reference to remove. - You must specify at least one reference to remove. + Musisz określić co najmniej jedno odwołanie do usunięcia. {0}: tool library found {1} - {0}: tool library found {1} + {0}: Znaleziono bibliotekę narzędzia {1} Missing 'version' entry. - Missing 'version' entry. + Brak wpisu „version”. Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + Narzędzie „{0}” (wersja: „{1}”) jest już zainstalowane. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + Pakiet {0} nie jest narzędziem platformy .NET. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + Polecenie „{0}” zawiera co najmniej jeden nieprawidłowy znak: {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + Nazwa polecenia „{0}” nie może zaczynać się od kropki (.). Invalid XML: {0} - Invalid XML: {0} + Nieprawidłowy kod XML: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + Narzędzie definiuje polecenie z brakującym ustawieniem nazwy. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + W poleceniu „{0}” brakuje ustawienia punktu wejścia. More than one command is defined for the tool. - More than one command is defined for the tool. + Dla narzędzia zdefiniowano więcej niż jedno polecenie. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + Narzędzie „{0}” używa nieobsługiwanego modułu uruchamiającego „{1}”.” The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + Narzędzie nie obsługuje bieżącej architektury ani systemu operacyjnego ({0}). Obsługiwane środowiska uruchomieniowe: {1} Type - Type + Typ The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + Nie można sprawdzić żądanych zasad łańcucha certyfikatów: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + nie można usunąć tymczasowego pliku deps.json: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + Nie można wygenerować pliku deps.json. Plik mógł zostać już wygenerowany. Możesz określić opcję opcji „-d" po poleceniu „dotnet" dla danych wyjściowych diagnostyki (na przykład polecenie: „dotnet -d <toolname>": {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + Nie można zlokalizować multipleksera dotnet Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + Oczekiwano wartości {0} dla właściwości „{1}”. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Nierozpoznane polecenie lub argument „{0}” Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + Projekt „{0}” ma nieznany typ projektu i nie można go dodać do pliku rozwiązania. Skontaktuj się z dostawcą zestawu SDK w celu uzyskania pomocy technicznej. Update - Update + Aktualizuj VB/C# compiler server - VB/C# compiler server + Serwer kompilatora VB/C# Value - Value + Wartość Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Ustaw poziom szczegółowości programu MSBuild. Dopuszczalne wartości to: q[uiet], m[inimal], n[ormal], d[etailed] i diag[nostic]. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + Zweryfikowano, że pakiet NuGet „{0}” ma prawidłowy podpis. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + Nie można rozpoznać wersji pakietu „{0}”. Version {0} is invalid. - Version {0} is invalid. + Wersja {0} jest nieprawidłowa. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + Napotkano problem podczas weryfikowania obciążeń. Aby uzyskać więcej informacji, uruchom polecenie „dotnet workload update”. {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Zaakceptuj wszystkie monity o potwierdzenie, używając słowa „tak”. diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.pt-BR.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.pt-BR.xlf index 4d8a5043c111..ea04ac8e31ba 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.pt-BR.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.pt-BR.xlf @@ -4,89 +4,89 @@ Add - Add + adicionar Ambiguous command name: {0} - Ambiguous command name: {0} + Nome de comando ambíguo: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + A arquitetura de destino. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + O caminho dos artefatos. Toda a saída do projeto, incluindo compilação, publicação e saída do pacote, irá para subpastas no caminho especificado. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: tentando criar commandspec {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: tentando encontrar o comando {1} em {2} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: tentando resolver {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: tentando resolver commandspec por meio da ferramenta {1} outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} não existe Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + Não é possível criar o shim do shell para um caminho executável vazio. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + Não é possível localizar um arquivo de manifesto. A lista de caminhos pesquisados: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + Não é possível localizar um pacote com a ID {0} no arquivo de manifesto. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Falha ao resolver o identificador de tempo de execução atual. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Não há suporte para especificar as opções '-r |--runtime ' e '-a |--arch '. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Não há suporte para especificar as opções '-r |--runtime ' e '-a |--os '. @@ -100,21 +100,21 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Define o valor de uma variável de ambiente. +Cria a variável se ela não existir, substitui se existir. +Este argumento pode ser especificado várias vezes para fornecer múltiplas variáveis. -Examples: +Exemplos: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="valor com espaços" +-e VARIABLE="valor;separado por;ponto e vírgula" -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NAME="VALUE" @@ -129,117 +129,117 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Define o valor de uma variável de ambiente. +Criará a variável quando ela não existir e a substituirá quando existir. +Isso forçará a execução dos testes em um processo isolado. +Esse argumento pode ser especificado várias vezes para fornecer várias variáveis. -Examples: +Exemplos: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="valor com espaços" +-e VARIABLE="valor;separado com;ponto e vírgula" -e VAR1=abc -e VAR2=def -e VAR3=ghi Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Definir o valor da propriedade $(VersionSuffix) a ser usado ao compilar o projeto. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + A largura máxima da coluna deve ser maior que zero. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + O comando executável para "{0}" não foi encontrado. O projeto pode não ter sido restaurado ou a restauração falhou – execute `dotnet restore` Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Permite que o comando seja interrompido e aguarde a ação ou entrada do usuário (por exemplo, para concluir a autenticação). Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Permite a instalação de pacotes de pré-lançamento. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec é nulo. FRAMEWORK - FRAMEWORK + ESTRUTURA File `{0}` not found. - File `{0}` not found. + Arquivo ‘{0}’ não encontrado. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + O arquivo de solução {0} especificado não existe ou não há um arquivo de solução no diretório. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + Não foi possível encontrar a solução ou o diretório ‘{0}’. {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: não foi possível localizar o arquivo runtimeconfig.json para a ferramenta {1} Delete - Delete + Excluir Unable to find deps.json generator project. - Unable to find deps.json generator project. + Não é possível localizar o projeto do gerador deps.json. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: não encontrou um projeto {1} correspondente. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: ProjectFactory não encontrou o Projeto. Did you mean the following command? - Did you mean the following command? + Você quis dizer o seguinte comando? Directory - Directory + Diretório Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Force o comando a ignorar quaisquer servidores de compilação persistentes. {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} não existe @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + O diretório de ferramentas "{0}" não está atualmente na variável de ambiente PATH. +Se você estiver usando bash, pode adicioná-lo ao seu perfil executando o seguinte comando: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Adicionar ferramentas do SDK do .NET Core export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Você pode adicioná-lo à sessão atual executando o seguinte comando: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + Já que você acabou de instalar o SDK do .NET, ainda precisará fazer logoff ou reiniciar a sessão antes de executar a ferramenta instalada. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + O diretório de ferramentas "{0}" não está atualmente na variável de ambiente PATH. +Se você estiver usando bash, pode adicioná-lo ao seu perfil executando o seguinte comando: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Adicionar ferramentas do SDK do .NET Core export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Você pode adicioná-lo à sessão atual executando o seguinte comando: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + Já que você acabou de instalar o SDK do .NET, ainda precisará reabrir o terminal antes de executar a ferramenta instalada. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + O diretório de ferramentas "{0}" não está atualmente na variável de ambiente PATH. +Se você estiver usando zsh, pode adicioná-lo ao seu perfil executando o seguinte comando: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# Adicionar ferramentas do SDK do .NET Core export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +E execute `zsh -l` para torná-lo disponível na sessão atual. -You can only add it to the current session by running the following command: +Você só pode adicioná-lo à sessão atual executando o seguinte comando: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + O diretório de ferramentas '{0}' não está na variável de ambiente PATH no momento. -You can add the directory to the PATH by running the following command: +Você pode adicionar o diretório à variável PATH executando o seguinte comando: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + Já que você acabou de instalar o SDK do .NET, ainda precisará reabrir a janela do Prompt de Comando antes de executar a ferramenta instalada. Error - Error + Erro You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + Você está executando a operação 'tool install' com uma fonte 'HTTP': {0}. O NuGet requer fontes HTTPS. Para usar uma fonte HTTP, você deve definir explicitamente 'allowInsecureConnections' como true no arquivo NuGet.Config. Consulte https://aka.ms/nuget-https-everywhere para mais informações. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: espera de deps.json em: {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + Falha ao definir as permissões do executável do usuário para o shim do shell: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + Falha ao criar o shim da ferramenta para o comando '{0}': {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: falha ao encontrar commandPath {1} Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + Falha ao encontrar a biblioteca no arquivo de ativos do NuGet para o pacote de ferramenta '{0}': {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + O Mapeamento de Origem do Pacote está habilitado, mas nenhuma origem foi encontrada na ID de pacote especificada: {0}. Consulte a documentação do Mapeamento de Origem do Pacote em https://aka.ms/nuget-package-source-mapping para obter mais detalhes. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + Falha ao encontrar o pacote de ferramentas preparado '{0}'. {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: falha ao encontrar toolAssembly para {1} Failed to load NuGet source {0} - Failed to load NuGet source {0} + Falha no carregamento da fonte NuGet {0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + O Mapeamento de Origem do Pacote está habilitado, mas nenhuma origem foi mapeada na ID de pacote especificada: {0}. Consulte a documentação do Mapeamento de Origem do Pacote em https://aka.ms/nuget-package-source-mapping para obter mais detalhes. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + Falha ao ler o arquivo de ativos do NuGet para o pacote de ferramenta '{0}': {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + Falha ao ler o arquivo PID '{0}': {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + Falha ao remover o shim da ferramenta para o comando '{0}': {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: falha ao resolver commandspec por meio da biblioteca. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Falha ao recuperar a configuração da ferramenta: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + Falha ao adicionar '{0}' à variável de ambiente PATH. Adicione este diretório ao seu PATH para usar as ferramentas instaladas com 'dotnet tool install'. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + Falha ao desinstalar o pacote da ferramenta '{0}': {1} Failed to validate package signing. {0} - Failed to validate package signing. + Falha na validação da assinatura do pacote. {0} Missing 'commands' entry. - Missing 'commands' entry. + Entrada 'commands' ausente. File - File + Arquivo The file-based app to operate on. - The file-based app to operate on. + O aplicativo baseado no arquivo a ser operado. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + A versão do formato é superior à versão compatível. Pode não haver suporte para esta ferramenta nesta versão do SDK. Atualize o SDK. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + A versão do formato está malformada. Pode não haver suporte para esta ferramenta nesta versão do SDK. Entre em contato com o autor da ferramenta. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + A versão do formato está ausente. Pode não haver suporte para esta ferramenta nesta versão do SDK. Entre em contato com o autor da ferramenta. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + Foi encontrado um projeto ‘{0}’, mas ele é inválido. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: arquivo de bloqueio de ferramenta encontrado em: {1} FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Publique o seu aplicativo como um aplicativo dependente de estrutura. Um runtime do .NET compatível precisa ser instalado no computador de destino para executar o aplicativo. Generating deps.json at: {0} - Generating deps.json at: {0} + Gerando deps.json em: {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: ignorando o arquivo prefercliruntime, uma vez que a estrutura de destino da ferramenta ({1}) tem uma versão principal diferente daquela do tempo de execução atual da CLI ({2}) In package {0}: {1} - In package {0}: + No pacote {0}: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Variáveis de ambiente formatadas incorretamente: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: commandResolverArguments inválido {0} should be an integer - {0} should be an integer + {0} deve ser um inteiro Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Arquivo de manifesto inválido. Caminho de {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + Projeto ‘{0}’ inválido. Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + Projeto inválido `{0}`. {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + O identificador de tempo de execução {0} é inválido. Os identificadores de tempo de execução válidos são: {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + Solução inválida `{0}`. {1}. Invalid version string: {0} - Invalid version string: {0} + Cadeia de caracteres de versão inválida: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + {0} não é encontrado no NuGet feeds {1}. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + Erro no arquivo de análise JSON {0} : {1} LEVEL - LEVEL + LEVEL Library - Library + Biblioteca {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: biblioteca não encontrada no arquivo de bloqueio. List - List + Listar {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: procurando o arquivo prefercliruntime em '{1}' .NET Cli Options: - .NET Cli Options: + Opções da CLI do .NET: MSBuild arguments: {0} - MSBuild arguments: {0} + Argumentos do MSBuild: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: caminho de projeto do MSBuild = {1} MSBuild server - MSBuild server + Servidor MSBuild File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + O arquivo {0} veio de outro computador e pode estar bloqueado para ajudar a proteger este computador. Para obter mais informações, incluindo como desbloquear, consulte https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + Entrada 'isRoot' ausente. Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + Não é possível adicionar o pacote. O arquivo de manifesto já contém a versão {0} do pacote {1}. Instale/desinstale ou edite o arquivo de manifesto {2} para especificar a nova versão {3}. Manifest version 0 is not supported. - Manifest version 0 is not supported. + Não há suporte para a versão de manifesto 0. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + A versão de manifesto é {0}. Este manifesto pode não ter suporte nesta versão do SDK, que dá suporte até a versão de manifesto {1}. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + O arquivo de ponto de entrada '{0}' do comando '{1}' não foi encontrado no pacote. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + O arquivo de configurações 'DotnetToolSettings.xml' não foi encontrado no pacote. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Há mais de um shim empacotado disponível: {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + Foi encontrado mais de um arquivo de solução em {0}. Especifique qual deve ser usado. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Especifique qual arquivo de projeto será usado, pois este '{0}' contém mais de um arquivo de projeto. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Existe mais de uma entrada para os pacotes: {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + Execute "dotnet tool restore" para tornar o comando "{0}" disponível. New - New + Novo Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Não exibe a faixa de inicialização ou a mensagem de direitos autorais. No projects found in the solution. - No projects found in the solution. + Não foi encontrado nenhum projeto na solução. There are no {0} references in project {1}. - There are no {0} references in project {1}. + Não há nenhuma referência {0} no projeto {1}. Do not restore the project before building. - Do not restore the project before building. + Não restaurar o projeto antes de compilar. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: + Falha na pesquisa. Detalhe da resposta da API de Pesquisa do NuGet: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + Ignorando a verificação de assinatura para o pacote NuGet "{0}" porque ele vem de uma origem que não requer validação de assinatura. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + Ignorando a verificação de assinatura do pacote NuGet. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: raiz de pacotes NuGet: {1} OS - OS + SO Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + Somente um projeto pode ser especificado por vez usando a opção -p. {Locked="-p"} The target operating system. - The target operating system. + O sistema operacional de destino. Project to Project - Project to Project + Projeto para Projeto Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + Somente um arquivo .nuspec pode ser empacotado por vez Package - Package + Pacote Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Referência de pacote na forma de um identificador de pacote como '{0}' ou identificador de pacote e versão separados por '@', como '{0}@{1}'. Package reference id and version must not be null. - Package reference id and version must not be null. + O ID e a versão da referência do pacote não podem ser nulos. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Não é possível especificar --version quando o argumento do pacote já contém uma versão. {Locked="--version"} Package reference - Package reference + Referência do pacote A version of {0} of package {1} - A version of {0} of package {1} + Uma versão do {0} do pacote {1} Version {0} of package {1} - Version {0} of package {1} + Versão {0} do pacote {1} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + Uma versão entre {0} e {1} do pacote {2} A version higher than {0} of package {1} - A version higher than {0} of package {1} + Uma versão superior a {0} do pacote {1} A version less than {0} of package {1} - A version less than {0} of package {1} + Uma versão anterior a {0} do pacote {1} Project - Project + Projeto Project `{0}` added to the solution. - Project `{0}` added to the solution. + O projeto ‘{0}’ foi adicionado à solução. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + O projeto já tem uma referência a ‘{0}’. The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + O arquivo de projeto no qual operar. Se um arquivo não for especificado, o comando pesquisará um no diretório atual. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + O projeto '{0}' não pôde ser avaliado. A avaliação falhou com o seguinte erro: {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + O projeto ‘{0}’ não existe. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + O projeto '{0}' não tem como destino a estrutura '{1}'. Project `{0}` is invalid. - Project `{0}` is invalid. + O projeto ‘{0}’ é inválido. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + O projeto '{0}' não pode ser adicionado por causa de estruturas de destino incompatíveis entre os dois projetos. Examine o projeto que você está tentando adicionar e verifique se ele é compatível com os seguintes destinos: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + Não foi possível encontrar o projeto ‘{0}’ na solução. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + O arquivo do projeto ou aplicativo baseado em arquivo C# a ser operado. Se um arquivo não for especificado, o comando pesquisará um arquivo de projeto no diretório atual. PROJECT | FILE - PROJECT | FILE + PROJETO | ARQUIVO Project reference - Project reference + Referência do projeto Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + Não foi possível encontrar a referência de projeto ‘{0}’. Project reference(s) - Project reference(s) + Referências de projeto Project reference `{0}` removed. - Project reference `{0}` removed. + Referência de projeto ‘{0}’ removida. Project `{0}` removed from solution. - Project `{0}` removed from solution. + O projeto ‘{0}’ foi removido da solução. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + O projeto `{0}` foi removido da solução. Razor build server - Razor build server + Servidor de build Razor Reference - Reference + Referência Reference `{0}` added to the project. - Reference `{0}` added to the project. + A referência ‘{0}’ foi adicionada ao projeto. Remove - Remove + Remover Required command was not provided. - Required command was not provided. + O comando necessário não foi fornecido. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: resolvendo commandspec por meio das Bibliotecas de Ferramentas de {1}. Response file '{0}' does not exist. - Response file '{0}' does not exist. + O arquivo de resposta '{0}' não existe. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: + Falha na pesquisa. Uma nova tentativa mais tarde poderá resolver o problema. Detalhe da resposta da API de Pesquisa do NuGet: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Habilitar saída de diagnóstico. Display the command schema as JSON. - Display the command schema as JSON. + Exibir o esquema do comando em JSON. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + As opções '--self-contained' e '--no-self-contained' não podem ser usadas juntas. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Publique o tempo de execução do .NET junto com sua aplicação para que o tempo de execução não precise ser instalado na máquina de destino. +O padrão é "false." No entanto, ao direcionar para .NET 7 ou inferior, o padrão é "true" se um identificador de tempo de execução for especificado. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + O comando '{0}' conflita com um comando existente de outra ferramenta. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Pesquisar por versões disponíveis da carga de trabalho ou pelo que compõe uma versão da carga de trabalho. Use 'dotnet workload search version --help' para mais informações. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Mostrar a ajuda da linha de comando. The shutdown command failed: {0} - The shutdown command failed: {0} + O comando de desligamento falhou: {0} Solution - Solution + Solução Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + A solução {0} já contém o projeto {1}. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + O argumento da solução '{0}' está mal colocado. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + O arquivo de solução {0} especificado não existe ou não há um arquivo de solução no diretório. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + O arquivo de solução ou projeto para operar. Se um arquivo não for especificado, o comando pesquisará um no diretório atual. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + O projeto, solução ou arquivo C# (programa baseado em arquivo) para operar. Se um arquivo não for especificado, o comando buscará na pasta atual por um projeto ou solução. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJETO | SOLUÇÃO | ARQUIVO Specify at least one {0}. - Specify at least one {0}. + Especifique pelo menos um {0}. You must specify at least one project to add. - You must specify at least one project to add. + É necessário especificar pelo menos um projeto a ser adicionado. You must specify at least one project to remove. - You must specify at least one project to remove. + É necessário especificar pelo menos um projeto para ser removido. You must specify at least one reference to remove. - You must specify at least one reference to remove. + É necessário especificar pelo menos uma referência a ser removida. {0}: tool library found {1} - {0}: tool library found {1} + {0}: a biblioteca de ferramentas encontrou {1} Missing 'version' entry. - Missing 'version' entry. + Entrada 'version' ausente. Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + A ferramenta '{0}' (versão '{1}') já está instalada. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + O pacote {0} não é uma ferramenta .NET. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + O comando '{0}' contém um ou mais dos seguintes caracteres inválidos: {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + O nome do comando '{0}' não pode começar com ponto final (.) à esquerda. Invalid XML: {0} - Invalid XML: {0} + XML inválido: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + A ferramenta define um comando com uma configuração de nome ausente. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + Há uma configuração de ponto de entrada ausente no comando '{0}'. More than one command is defined for the tool. - More than one command is defined for the tool. + Há mais de um comando definido para a ferramenta. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + A ferramenta '{0}' usa o executor '{1}' que não é suportado." The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + A ferramenta não suporta a arquitetura ou sistema operacional atual ({0}). Runtimes com suporte: {1} Type - Type + Tipo The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + Não foi possível verificar a política de cadeia de certificados solicitada: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + não é possível excluir o arquivo temporário deps.json: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + Não é possível gerar deps.json, ele pode já ter sido gerado. Você pode especificar a opção "-d" após "dotnet" para a saída de diagnóstico (por exemplo, "dotnet -d <toolname>": {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + Não é possível localizar o multiplexador do dotnet Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + Um {0} era esperado para a propriedade '{1}'. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Comando ou argumento '{0}' não reconhecido Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + O projeto '{0}' tem um tipo de projeto desconhecido e não pode ser adicionado ao arquivo da solução. Entre em contato com o provedor do SDK para obter suporte. Update - Update + Atualização VB/C# compiler server - VB/C# compiler server + Servidor do compilador VB/C# Value - Value + Valor Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Definir o nível de detalhamento do MSBuild. Os valores permitidos são q[uiet], m[inimal], n[ormal], d[etailed] e diag[nostic]. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + Verificado que o pacote NuGet "{0}" tem uma assinatura válida. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + A versão do pacote '{0}' não pôde ser resolvida. Version {0} is invalid. - Version {0} is invalid. + A versão {0} não é válida. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + Foi encontrado um problema ao verificar as cargas de trabalho. Para obter mais informações, execute "dotnet workload update". {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Aceite todas as solicitações de confirmação usando "sim." diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.ru.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.ru.xlf index 97a1c76d006d..1e1b0ad9f9c6 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.ru.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.ru.xlf @@ -4,89 +4,89 @@ Add - Add + добавить Ambiguous command name: {0} - Ambiguous command name: {0} + Неоднозначное имя команды: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + Целевая архитектура. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Путь к артефактам. Все выходные данные проекта, включая выходные данные сборки, публикации и упаковки, будут направляться во вложенные папки по указанному пути. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: попытка создать спецификацию команды {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: попытка найти команду {1} в {2} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: попытка разрешить {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: попытка разрешить спецификацию команды из средства {1} outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} не существует. Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + Невозможно создать оболочку совместимости для пустого пути к исполняемому файлу. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + Не удается найти файл манифеста. Список путей поиска: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + Не удается найти пакет с ИД {0} в файле манифеста. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Не удалось разрешить текущий идентификатор среды выполнения. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Указание параметров "-r|--runtime" и "-a|--arch" не поддерживается. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Указание параметров "-r|--runtime" и "-os" не поддерживается. @@ -100,21 +100,21 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Устанавливает значение переменной среды. +Если переменной среды не существует, она создается, если существует — переопределяется. +Этот аргумент можно указать несколько раз для указания нескольких переменных. -Examples: +Примеры: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="значение с пробелами" +-e VARIABLE="значение;разделенное;точками;с;запятыми" -e VAR1=abc -e VAR2=def -e VAR3=ghi NAME="VALUE" - NAME="VALUE" + NAME="VALUE" @@ -129,117 +129,117 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Устанавливает значение переменной среды. +Если переменной среды не существует, она создается. Если переменная среды существует, она переопределяется. +Этот аргумент подразумевает принудительное выполнение тестов в изолированном процессе. +Этот аргумент может быть указан несколько раз для нескольких переменных среды. -Examples: +Примеры: -e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" +-e VARIABLE="значение с пробелами" +-e VARIABLE="значение;разделенное;точками;с;запятыми" -e VAR1=abc -e VAR2=def -e VAR3=ghi Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Установка значения свойства $(VersionSuffix), используемого для сборки проекта. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + Максимальная ширина столбца должна быть больше нуля. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + Исполняемый файл команды для "{0}" не найден. Возможно, проект не был восстановлен или его восстановление завершилось сбоем. Запустите команду "dotnet restore". Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Позволяет остановить команду и ожидать ввода или действия пользователя (например, для проверки подлинности). Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Разрешает установку пакетов предварительного выпуска. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec имеет значение NULL. FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + Файл "{0}" не найден. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Указанный файл решения "{0}" не существует, или в каталоге нет файла решения. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + Не удалось найти решение или каталог "{0}". {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: не удалось найти файл runtimeconfig.json для средства {1} Delete - Delete + Удалить Unable to find deps.json generator project. - Unable to find deps.json generator project. + Не удалось найти проект генератора deps.json. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: не найден подходящий проект {1}. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: фабрика проектов не нашла проект. Did you mean the following command? - Did you mean the following command? + Вы имели в виду следующую команду? Directory - Directory + Каталог Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Принудительно игнорировать все постоянные серверы сборки. {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} не существует. @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Каталог инструментов "{0}" сейчас не входит в переменную среды PATH. +Если используется bash, вы можете добавить его в свой профиль, выполнив следующую команду: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Добавление инструментов пакета SDK для .NET Core export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Чтобы добавить его в текущий сеанс, выполните следующую команду: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + Так как вы только что установили пакет SDK для .NET, перед его запуском нужно выйти из системы или перезапустить сеанс. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + Каталог инструментов "{0}" сейчас не входит в переменную среды PATH. +Если используется bash, вы можете добавить его в свой профиль, выполнив следующую команду: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# Добавление инструментов пакета SDK для .NET Core export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Чтобы добавить его в текущий сеанс, выполните следующую команду: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + Так как вы только что установили пакет SDK для .NET, перед его запуском нужно заново открыть терминал. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + Каталог инструментов "{0}" сейчас не входит в переменную среды PATH. +Если используется zsh, вы можете добавить его в свой профиль, выполнив следующую команду: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# Добавление инструментов пакета SDK для .NET Core export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +И выполните команду `zsh -l`, чтобы сделать его доступным для текущего сеанса. -You can only add it to the current session by running the following command: +Его можно добавить только в текущий сеанс, выполнив следующую команду: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + Каталог инструментов "{0}" сейчас отсутствует в переменной среды PATH. -You can add the directory to the PATH by running the following command: +Вы можете добавить каталог в PATH, выполнив следующую команду: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + Так как вы только что установили пакет SDK для .NET, перед его запуском нужно заново открыть окно командной строки. Error - Error + Ошибка You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + Вы выполняете операцию "установка средства" с источником "HTTP": {0}. Для NuGet требуются источники HTTPS. Чтобы использовать источник HTTP, необходимо явно задать для параметра "allowInsecureConnections" значение true в файле NuGet.Config. Дополнительные сведения см. на странице https://aka.ms/nuget-https-everywhere. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: ожидается deps.json в: {1}. Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + Не удалось задать разрешения исполняемого файла пользователя для оболочки совместимости: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + Не удалось создать оболочку совместимости инструмента для команды "{0}": {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: не удалось найти commandPath {1}. Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + Не удалось найти библиотеку в файле ресурсов NuGet для пакета инструмента "{0}": {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Сопоставление источников пакетов включено, но не найден источник для указанного идентификатора пакета: {0}. Дополнительные сведения см. в документации по сопоставлению источников пакетов: https://aka.ms/nuget-package-source-mapping. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + Не удалось найти промежуточный пакет инструментов "{0}". {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: не удалось найти toolAssembly для {1}. Failed to load NuGet source {0} - Failed to load NuGet source {0} + Не удалось загрузить источник NuGet {0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Сопоставление источников пакетов включено, но не сопоставлен источник для указанного идентификатора пакета: {0}. Дополнительные сведения см. в документации по сопоставлению источников пакетов: https://aka.ms/nuget-package-source-mapping. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + Не удалось прочитать файл ресурсов NuGet для пакета инструмента "{0}": {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + Не удалось считать файл идентификатора процесса "{0}": {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + Не удалось удалить оболочку совместимости инструмента для команды "{0}": {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: не удалось разрешить спецификацию команды из библиотеки. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Не удалось получить конфигурацию инструмента: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + Не удалось добавить "{0}" в переменную среды PATH. Добавьте этот каталог в PATH, чтобы использовать средства, установленные с помощью команды dotnet tool install. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + Не удалось удалить пакет инструментов "{0}": {1} Failed to validate package signing. {0} - Failed to validate package signing. + Не удалось проверить подпись пакета. {0} Missing 'commands' entry. - Missing 'commands' entry. + Отсутствует запись "commands". File - File + Файл The file-based app to operate on. - The file-based app to operate on. + Приложение на основе файла для работы. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + Версия формата выше поддерживаемой. Возможно, средство не поддерживается в этой версии пакета SDK. Обновите пакет SDK. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + Версия формата имеет неправильный формат. Возможно, средство не поддерживается в этой версии пакета SDK. Обратитесь к автору средства. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + Версия формата отсутствует. Возможно, средство не поддерживается в этой версии пакета SDK. Обратитесь к автору средства. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + Найден проект "{0}", однако он недопустим. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: найден файл блокировки средства в: {1}. FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Опубликуйте приложение как зависимое от платформы. Для запуска приложения на целевом компьютере должна быть установлена совместимая среда выполнения .NET. Generating deps.json at: {0} - Generating deps.json at: {0} + Выполняется создание deps.json в: {0}. {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: файл prefercliruntime игнорируется, так как основные номера версии целевой платформы средства ({1}) и текущей среды выполнения CLI ({2}) различаются In package {0}: {1} - In package {0}: + В пакете {0}: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Неправильный формат переменных среды: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: недопустимый commandResolverArguments {0} should be an integer - {0} should be an integer + {0} должно быть целым числом. Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Недопустимый файл манифеста. Путь {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + Недопустимый проект "{0}". Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + Недопустимый проект "{0}". {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + Недопустимый идентификатор среды выполнения {0}. Допустимые идентификаторы среды выполнения: {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + Недопустимое решение "{0}". {1}. Invalid version string: {0} - Invalid version string: {0} + Недопустимая строка версии: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + {0} не найдено в веб-каналах NuGet {1}. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + Ошибка анализа JSON в файле {0} : {1} LEVEL - LEVEL + LEVEL Library - Library + Библиотека {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: не найдена библиотека в файле блокировки. List - List + Список {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: поиск файла prefercliruntime в "{1}" .NET Cli Options: - .NET Cli Options: + Параметры CLI .NET: MSBuild arguments: {0} - MSBuild arguments: {0} + Аргументы MSBuild: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: путь проекта MSBuild — {1} MSBuild server - MSBuild server + Сервер MSBuild File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + Файл {0} получен с другого компьютера и может быть заблокирован для защиты этого компьютера. Дополнительные сведения, включая процедуру разблокировки, см. на странице https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + Отсутствует запись "isRoot". Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + Не удается добавить пакет. Файл манифеста уже содержит версию {0} пакета {1}. Удалите и установите либо измените файл манифеста {2}, чтобы указать новую версию {3}. Manifest version 0 is not supported. - Manifest version 0 is not supported. + Версия манифеста 0 не поддерживается. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + Версия манифеста имеет значение {0}. Этот манифест может не поддерживаться в этой версии пакета SDK, которая способна поддерживать версии манифеста вплоть до {1}. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + Файл точки входа "{0}" для команды "{1}" не найден в пакете. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + Файл параметров "DotnetToolSettings.xml" не найден в пакете. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Доступно несколько упакованных оболочек совместимости: {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + Найдено несколько файлов решений в {0}. Выберите один. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Укажите используемый файл проекта, так как этот "{0}" содержит несколько таких файлов. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Существует несколько записей для следующих пакетов: {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + Запустите "dotnet tool restore", чтобы сделать команду "{0}" доступной. New - New + Новое Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Не отображать начальный баннер или сообщение об авторских правах. No projects found in the solution. - No projects found in the solution. + Проекты не найдены в решении. There are no {0} references in project {1}. - There are no {0} references in project {1}. + Нет ссылок {0} в проекте {1}. Do not restore the project before building. - Do not restore the project before building. + Не восстанавливать проект перед сборкой. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: + Не удалось выполнить поиск. Сведения об ответе API для поиска NuGet: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + Пропуск проверки подписи для пакета NuGet "{0}", так как он получен из источника, который не требует проверки подписи. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + Пропуск проверки подписи пакета NuGet. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: корень пакетов nuget: {1} OS - OS + ОС Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + С помощью параметра -p можно указать только один проект за раз. {Locked="-p"} The target operating system. - The target operating system. + Целевая операционная система. Project to Project - Project to Project + Проект — проект Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + Одновременно можно упаковать только один файл .nuspec Package - Package + Пакет Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + Ссылка на пакет в виде идентификатора пакета, например "{0}", или идентификатора пакета и версии, разделенных "@", например "{0}@{1}". Package reference id and version must not be null. - Package reference id and version must not be null. + Идентификатор ссылки на пакет и версия не могут быть равны null. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Невозможно указать --version, если аргумент пакета уже содержит версию. {Locked="--version"} Package reference - Package reference + Ссылка на пакет A version of {0} of package {1} - A version of {0} of package {1} + Версия {0} пакета {1} Version {0} of package {1} - Version {0} of package {1} + Версия {0} пакета {1} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + Версия от {0} до {1} пакета {2} A version higher than {0} of package {1} - A version higher than {0} of package {1} + Версия пакета {1} выше {0} A version less than {0} of package {1} - A version less than {0} of package {1} + Версия пакета {1} ниже {0} Project - Project + Проект Project `{0}` added to the solution. - Project `{0}` added to the solution. + Проект "{0}" добавлен в решение. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + Проект уже содержит ссылку на "{0}". The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Обрабатываемый файл проекта. Если файл не указан, команда будет искать его в текущем каталоге. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + Не удалось оценить проект "{0}". Произошел сбой оценки со следующей ошибкой: {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + Проект "{0}" не существует. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + Проект "{0}" не нацелен на платформу "{1}". Project `{0}` is invalid. - Project `{0}` is invalid. + Проект "{0}" недопустим. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + Не удается добавить проект "{0}" из-за несовместимости целевых платформ этих двух проектов. Просмотрите добавляемый проект и убедитесь, что он совместим со следующими целевыми платформами: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + Проект "{0}" не удалось найти в решении. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + Приложение на основе файла проекта или файла C# для работы. Если файл не указан, команда будет искать файл проекта в текущем каталоге. PROJECT | FILE - PROJECT | FILE + ПРОЕКТ | ФАЙЛ Project reference - Project reference + Ссылка на проект Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + Не удалось найти ссылку на проект "{0}". Project reference(s) - Project reference(s) + Ссылки проекта Project reference `{0}` removed. - Project reference `{0}` removed. + Ссылка на проект "{0}" удалена. Project `{0}` removed from solution. - Project `{0}` removed from solution. + Проект "{0}" удален из решения. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + Проект "{0}" удален из решения. Razor build server - Razor build server + Сервер сборки Razor Reference - Reference + Ссылка Reference `{0}` added to the project. - Reference `{0}` added to the project. + Ссылка "{0}" добавлена в проект. Remove - Remove + Удалить Required command was not provided. - Required command was not provided. + Обязательная команда не указана. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: разрешение спецификации команды из библиотек средств {1}. Response file '{0}' does not exist. - Response file '{0}' does not exist. + Файл отклика "{0}" не существует. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: + Не удалось выполнить поиск. Повторите попытку позже. Сведения об ответе API для поиска NuGet: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Включение выходных данных диагностики. Display the command schema as JSON. - Display the command schema as JSON. + Отобразить схему команды в формате JSON. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + Параметры "--self-contained" и "--no-self-contained" нельзя использовать вместе. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Публикуйте среду выполнения .NET вместе с приложением, чтобы ее не пришлось устанавливать на целевом компьютере. +Значение по умолчанию — "false". Однако для .NET 7 или более ранней версии значение по умолчанию — "true", если указан идентификатор среды выполнения. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + Команда "{0}" конфликтует с существующей командой в другом инструменте. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Поиск доступных версий рабочей нагрузки или составных частей версии рабочей нагрузки. Используйте "dotnet workload search version --help" для получения дополнительных сведений. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Показать справку командной строки. The shutdown command failed: {0} - The shutdown command failed: {0} + Команда завершения работы не выполнена: {0} Solution - Solution + Решение Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + Решение {0} уже содержит проект {1}. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + Аргумент решения "{0}" размещен неправильно. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Указанный файл решения "{0}" не существует, или в каталоге нет файла решения. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Файл проекта или решения. Если файл не указан, команда будет искать его в текущем каталоге. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Файл проекта, решения или файл C# (программа на основе файла) для работы. Если файл не указан, команда будет искать его в текущем каталоге для проекта или решения. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJECT | SOLUTION | FILE Specify at least one {0}. - Specify at least one {0}. + Укажите хотя бы один "{0}". You must specify at least one project to add. - You must specify at least one project to add. + Необходимо указать по крайней мере один добавляемый проект. You must specify at least one project to remove. - You must specify at least one project to remove. + Необходимо указать по крайней мере один удаляемый проект. You must specify at least one reference to remove. - You must specify at least one reference to remove. + Необходимо указать по крайней мере одну удаляемую ссылку. {0}: tool library found {1} - {0}: tool library found {1} + {0}: найдена библиотека средств {1}. Missing 'version' entry. - Missing 'version' entry. + Отсутствует запись "version". Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + Инструмент "{0}" (версия "{1}") уже установлен. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + Пакет {0} не является средством .NET. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + Команда "{0}" содержит следующие недопустимы символы: {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + Имя команды "{0}" не может начинаться с точки (.). Invalid XML: {0} - Invalid XML: {0} + Недопустимый XML: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + Инструмент определяет команду, для которой не задано имя. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + В команде "{0}" не задана точка входа. More than one command is defined for the tool. - More than one command is defined for the tool. + Для инструмента определено больше одной команды. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + Инструмент "{0}" использует неподдерживаемое средство выполнения тестов "{1}"." The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + Инструмент не поддерживает текущую архитектуру или операционную систему ({0}). Поддерживаемые среды выполнения: {1} Type - Type + Тип The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + Не удалось проверить запрошенную политику цепочки сертификатов {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + не удается удалить временный файл deps.json: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + Не удалось создать deps.json, возможно, он уже создан. Параметр "-d" можно указать после "dotnet" для диагностических выходных данных (например, "dotnet -d <toolname>": {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + Не удается найти мультиплексор dotnet. Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + Ожидается {0} для свойства "{1}". Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Нераспознанная команда или аргумент "{0}" Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + Проект "{0}" имеет неизвестный тип и не может быть добавлен в файл решения. За поддержкой обратитесь к поставщику пакета SDK. Update - Update + Обновить VB/C# compiler server - VB/C# compiler server + Сервер компилятора VB или C# Value - Value + Значение Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + Установка уровня детализации MSBuild. Допустимые значения: q[uiet], m[inimal], n[ormal], d[etailed] и diag[nostic]. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + Проверено, что пакет NuGet "{0}" содержит допустимую подпись. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + Не удалось разрешить версию для пакета "{0}". Version {0} is invalid. - Version {0} is invalid. + Версия {0} не является допустимой. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + При проверке рабочих нагрузок возникла проблема. Для получения дополнительных сведений выполните команду "dotnet workload update". {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + Принимать все запросы подтверждения с помощью "да". diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.tr.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.tr.xlf index 83f171c239e6..58bb6d2e30d1 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.tr.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.tr.xlf @@ -4,89 +4,89 @@ Add - Add + Ekle Ambiguous command name: {0} - Ambiguous command name: {0} + Belirsiz komut adı: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + Hedef mimari. ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + Yapıtlar yolu. Derleme, yayımlama ve paket çıkışı dahil olmak üzere projedeki tüm çıkışlar belirtilen yol altındaki alt klasörlerde bulunur. {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: commandspec oluşturulmaya çalışılıyor {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: {2} içinde {1} komutu bulunmaya çalışılıyor {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: {1} öğesi çözümlenmeye çalışılıyor {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: {1} aracından commandspec çözümlenmeye çalışılıyor outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} yok Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + Boş bir yürütülebilir yol için kabuk dolgusu oluşturulamaz. Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + Bildirim dosyası bulunamadı. Aranan yolların listesi: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + Bildirim dosyasında paket kimliği {0} olan ile bir paket bulunamıyor. Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + Geçerli çalışma zamanı tanımlayıcısı çözümlenemedi. Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + Hem `-r|--runtime` hem de `-a|--arch` seçeneğinin belirtilmesi desteklenmiyor. Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + Hem `-r|--runtime` hem de `-os` seçeneğinin belirtilmesi desteklenmiyor. @@ -100,21 +100,21 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + Bir ortam değişkeninin değerini ayarlar. +Değişken yoksa oluşturur, varsa değişkeni geçersiz kılar. +Bu bağımsız değişken, birden çok değişken sağlamak için birden çok kez belirtilebilir. -Examples: --e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" --e VAR1=abc -e VAR2=def -e VAR3=ghi +Örnek: +-e DEĞİŞKEN=abc +-e DEĞİŞKEN="boşluk içeren değerler" +-e DEĞİŞKEN="noktalı virgülle;ayrılmış;değerler" +-e DEĞ1=abc -e DEĞ2=def -e DEĞ3=ghi NAME="VALUE" - NAME="VALUE" + AD="DEĞER" @@ -129,117 +129,117 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + Bir ortam değişkeninin değerini ayarlar. +Değişken yoksa oluşturur, varsa değişkeni geçersiz kılar. +Bu, testleri yalıtılmış bir işlemde çalıştırılmaya zorlar. +Bu bağımsız değişken, birden çok değişken sağlamak için birden çok kez belirtilebilir. -Examples: --e VARIABLE=abc --e VARIABLE="value with spaces" --e VARIABLE="value;seperated with;semicolons" --e VAR1=abc -e VAR2=def -e VAR3=ghi +Örnek: +-e DEĞİŞKEN=abc +-e DEĞİŞKEN="boşluk içeren değerler" +-e DEĞİŞKEN="noktalı virgülle;ayrılmış;değerler" +-e DEĞ1=abc -e DEĞ2=def -e DEĞ3=ghi Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + Projeyi derlerken kullanılacak $(VersionSuffix) özelliğinin değerini ayarlar. Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + Maksimum sütun genişliği sıfırdan büyük olmalıdır. The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + "{0}" için komut yürütülebilir dosyası bulunamadı. Proje geri yüklenmemiş veya geri yükleme başarısız olmuş olabilir - `dotnet restore` çalıştırın Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + Komutun durup kullanıcı girişini veya eylemini (örneğin, kimlik doğrulamasının tamamlanmasını) beklemesine izin verir . Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + Ön sürüm paketlerinin yüklenmesini sağlar. {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec null. FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + `{0}` dosyası bulunamadı. CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Belirtilen {0} çözüm dosyası yok veya dizinde bir çözüm dosyası yok. Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + `{0}` çözümü veya dizini bulunamadı. {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: {1} aracı için runtimeconfig.json dosyası bulunamadı Delete - Delete + Sil Unable to find deps.json generator project. - Unable to find deps.json generator project. + deps.json oluşturucu projesi bulunamıyor. {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: Eşleşen {1} projesi bulunamadı. {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: ProjectFactory, Projeyi bulamadı. Did you mean the following command? - Did you mean the following command? + Aşağıdaki komutu mu kullanmak istediniz? Directory - Directory + Dizin Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + Komutu kalıcı derleme sunucularını yoksaymaya zorla. {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} yok @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + '{0}' araçlar dizini şu anda PATH ortam değişkeninde değil. +Bash kullanıyorsanız, şu komutu çalıştırarak profilinize ekleyebilirsiniz: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# .NET Core SDK araçları ekleyin export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Şu komutu çalıştırarak geçerli komuta ekleyebilirsiniz: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + .NET SDK’sını yüklediğinizden, yüklediğiniz aracı çalıştırmadan önce oturumunuzu kapatmanız veya oturumu yeniden başlatmanız gerekiyor. @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + '{0}' araçlar dizini şu anda PATH ortam değişkeninde değil. +Bash kullanıyorsanız, şu komutu çalıştırarak profilinize ekleyebilirsiniz: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# .NET Core SDK araçları ekleyin export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +Şu komutu çalıştırarak geçerli komuta ekleyebilirsiniz: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + .NET SDK’sını yüklediğinizden, yüklediğiniz aracı çalıştırmadan önce terminali yeniden açmanız gerekiyor. @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + '{0}' araçlar dizini şu anda PATH ortam değişkeninde değil. +zsh kullanıyorsanız, aşağıdaki komutu çalıştırarak bunu profilinize ekleyebilirsiniz: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# .NET Core SDK araçları ekleyin export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +Geçerli oturum için kullanılabilir hale getirmek üzere `zsh -l` komutunu çalıştırın. -You can only add it to the current session by running the following command: +Aşağıdaki komutu çalıştırarak araçlar dizinini yalnızca geçerli oturuma ekleyebilirsiniz: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + '{0}' araç dizini şu anda PATH ortam değişkeni üzerinde değil. -You can add the directory to the PATH by running the following command: +Aşağıdaki komutu çalıştırarak dizini PATH öğesine ekleyebilirsiniz: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + .NET SDK’sını yüklediğinizden, yüklediğiniz aracı çalıştırmadan önce Komut İstemi penceresini yeniden açmanız gerekiyor. Error - Error + Hata You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + 'tool install' işlemini {0} 'HTTP' kaynağıyla çalıştırıyorsunuz. NuGet için HTTPS kaynakları gereklidir. Bir HTTP kaynağı kullanmak için NuGet.Config dosyanızda 'allowInsecureConnections' ayarını açıkça true olarak ayarlamanız gerekir. Daha fazla bilgi için şuraya bakın: https://aka.ms/nuget-https-everywhere. {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: şu konumda deps.json bekleniyor: {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + Kabuk dolgusu için kullanıcı yürütülebilir dosya izinleri ayarlanamadı: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + '{0}' komutu için araç dolgusu oluşturulamadı: {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: {1} commandPath bulunamadı Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + '{0}' araç paketi için NuGet varlıkları dosyasında kitaplık bulunamadı: {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Paket Kaynak Eşlemesi etkinleştirildi ancak belirtilen paket kimliği altında kaynak bulunamadı: {0}. Paket Kaynak Eşlemesi hakkında daha fazla ayrıntı için https://aka.ms/nuget-package-source-mapping belgelerine bakın. Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + '{0}' adlı hazırlanmış araç paketi bulunamadı. {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: {1} için toolAssembly bulunamadı Failed to load NuGet source {0} - Failed to load NuGet source {0} + {0} NuGet kaynağı yüklemesi yüklenemedi Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + Paket Kaynak Eşlemesi etkinleştirildi ancak belirtilen paket kimliği altında eşlenen kaynak bulunamadı: {0}. Paket Kaynak Eşlemesi hakkında daha fazla ayrıntı için https://aka.ms/nuget-package-source-mapping belgelerine bakın. Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + '{0}' araç paketi için NuGet varlık dosyası okunamadı: {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + '{0}' adlı pid dosyası okunamadı: {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + '{0}' komutu için araç dolgusu kaldırılamadı: {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: kitaplıktan commandspec çözümlenemedi. Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + Araç yapılandırması alınamadı: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + '{0}' dizini PATH ortam değişkenine eklenemedi. 'dotnet tool install' ile yüklenen araçları kullanmak için bu dizini PATH değişkeninize ekleyin. Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + '{0}' araç paketi kaldırılamadı: {1} Failed to validate package signing. {0} - Failed to validate package signing. + Paket imzası doğrulanamadı. {0} Missing 'commands' entry. - Missing 'commands' entry. + 'commands' girişi eksik. File - File + Dosya The file-based app to operate on. - The file-based app to operate on. + İşlem yapılacak dosya tabanlı uygulama. Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + Biçim sürümü desteklenenden daha yüksek. Bu araç bu SDK sürümünde desteklenmeyebilir. SDK’nızı güncelleştirin. Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + Biçim sürümü hatalı biçimlendirilmiş. Bu araç bu SDK sürümünde desteklenmeyebilir. Aracın yazarına başvurun. Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + Biçim sürümü eksik. Bu araç bu SDK sürümünde desteklenmeyebilir. Aracın yazarına başvurun. Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + Bir `{0}` projesi bulundu ancak geçersiz. {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: araç kilit dosyası şurada bulundu : {1} FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + Uygulamanızı çerçeveye bağımlı bir uygulama olarak yayımlayın. Uygulamanızı çalıştırmak için hedef makineye uyumlu bir .NET çalışma zamanı yüklenmelidir. Generating deps.json at: {0} - Generating deps.json at: {0} + Şu konumda deps.json oluşturuluyor: {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: Araç hedef çerçevesi ({1}), geçerli CLI çalışma zamanından farklı bir ana sürüme ({2}) sahip olduğundan prefercliruntime dosyası yok sayılıyor In package {0}: {1} - In package {0}: + {0} paketinde: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + Yanlış biçimlendirilmiş ortam değişkenleri: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: geçersiz commandResolverArguments {0} should be an integer - {0} should be an integer + {0} bir tamsayı olmalıdır Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + Geçersiz bildirim dosyası. Yol {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + `{0}` projesi geçersiz. Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + `{0}` projesi geçersiz. {1}. The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + {0} çalışma zamanı tanımlayıcısı geçersiz. Geçerli çalışma zamanı tanımlayıcıları: {1}. Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + `{0}` çözümü geçersiz. {1}. Invalid version string: {0} - Invalid version string: {0} + Geçersiz sürüm dizesi: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + {0}, {1} NuGet akışlarında bulunamadı. Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + {0} dosyasında Json ayrıştırma hatası : {1} LEVEL - LEVEL + LEVEL Library - Library + Kitaplık {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: kitaplık, kilit dosyasında bulunamadı. List - List + Liste {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: `{1}` konumunda prefercliruntime dosyası aranıyor .NET Cli Options: - .NET Cli Options: + .NET Cli Seçenekleri: MSBuild arguments: {0} - MSBuild arguments: {0} + MSBuild bağımsız değişkenleri: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: MSBuild proje yolu = {1} MSBuild server - MSBuild server + MSBuild sunucusu File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + {0} adlı dosya başka bir bilgisayardan geldiğinden bilgisayarı korumaya yardımcı olmak için engellenmiş olabilir. Engellemenin nasıl kaldırılacağı da dahil olmak üzere daha fazla bilgi için bkz. https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + 'isRoot' girişi eksik. Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + Paket eklenemiyor. Bildirim dosyası {1} paketinin {0} sürümünü zaten içeriyor. Yeni olan {3} sürümünü belirtmek için {2} bildirim dosyasını kaldırın/yükleyin veya düzenleyin. Manifest version 0 is not supported. - Manifest version 0 is not supported. + Bildirim sürümü 0 desteklenmez. Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + Bildirim sürümü {0}. Bu bildirim, en fazla {1} bildirim sürümünü destekleyebilen bu SDK sürümünde desteklenemez. Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + '{1}' komutu için '{0}' giriş noktası dosyası pakette bulunamadı. Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + 'DotnetToolSettings.xml' ayar dosyası pakette bulunamadı. More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + Birden fazla paketlenmiş dolgu var: {0}. Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + {0} içinde birden fazla çözüm dosyası bulundu. Hangisinin kullanılacağını belirtin. Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + Bu '{0}' birden çok proje dosyası içerdiğinden, hangi proje dosyasının kullanılacağını belirtmeniz gerekir. More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + Paketler için birden fazla giriş var: {0}. Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + "{0}" komutunu kullanabilmek için "dotnet tool restore" komutunu çalıştırın. New - New + Yeni Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + Başlangıç bandını veya telif hakkı iletisini görüntüleme. No projects found in the solution. - No projects found in the solution. + Çözümde proje bulunamadı. There are no {0} references in project {1}. - There are no {0} references in project {1}. + {1} projesinde hiçbir {0} başvurusu yok. Do not restore the project before building. - Do not restore the project before building. + Projeyi derlemeden önce geri yüklemeyin. Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: + Arama başarısız oldu. NuGet Arama API'si yanıt ayrıntısı: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + "{0}"NuGet paketinin imza doğrulaması atlandı, çünkü imza doğrulaması gerektirmeyen bir kaynaktan geliyor. Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + NuGet paket imzası doğrulaması atlanıyor. {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: NuGet paketleri kökü: {1} OS - OS + İS Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + -p seçeneği kullanılarak tek seferde yalnızca bir proje belirtilebilir. {Locked="-p"} The target operating system. - The target operating system. + Hedef işletim sistemi. Project to Project - Project to Project + Projeden Projeye Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + Tek seferde yalnızca bir .nuspec dosyası paketlenebilir Package - Package + Paket Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + '{0}' gibi bir paket tanımlayıcısı veya '{0}@{1}' gibi '@' ile ayrılmış paket tanımlayıcısı ve sürümü şeklinde paket başvurusu. Package reference id and version must not be null. - Package reference id and version must not be null. + Paket referans kimliği ve sürümü null olmamalıdır. Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + Paket bağımsız değişkeni zaten bir sürüm içeriyorsa --version belirtilemez. {Locked="--version"} Package reference - Package reference + Paket başvurusu A version of {0} of package {1} - A version of {0} of package {1} + {1} paketinin bir {0} sürümü Version {0} of package {1} - Version {0} of package {1} + {1} paketinin {0} sürümü A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + {2} paketinin {0} ve {1} arasındaki bir sürümü A version higher than {0} of package {1} - A version higher than {0} of package {1} + {1} paketinin {0} sürümünden yüksek bir sürümü A version less than {0} of package {1} - A version less than {0} of package {1} + {1} paketinin {0} sürümünden düşük bir sürümü Project - Project + Proje Project `{0}` added to the solution. - Project `{0}` added to the solution. + `{0}` projesi çözüme eklendi. Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + Projede `{0}` başvurusu zaten var. The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + Üzerinde işlem yapılacak proje dosyası. Bir dosya belirtilmezse, komut geçerli dizinde böyle bir dosya arar. PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: + `{0}` projesi değerlendirilemedi. Değerlendirme şu hatayla başarısız oldu: {1}. Project `{0}` does not exist. - Project `{0}` does not exist. + `{0}` projesi yok. Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + `{0}` projesi `{1}` çerçevesini hedeflemiyor. Project `{0}` is invalid. - Project `{0}` is invalid. + `{0}` projesi geçersiz. Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + `{0}` projesi, iki projede hedeflenen Framework'lerin birbiriyle uyumsuz olması nedeniyle eklenemiyor. Eklemeye çalıştığınız projeyi inceleyin ve aşağıdaki hedeflerle uyumlu olduğunu doğrulayın: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + `{0}` projesi çözümde bulunamadı. The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + İşlem yapılacak proje dosyası veya C# dosyası tabanlı uygulama. Bir dosya belirtilmezse, komut geçerli dizinde bir proje dosyası arar. PROJECT | FILE - PROJECT | FILE + PROJE | DOSYA Project reference - Project reference + Proje başvurusu Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + `{0}` proje başvurusu bulunamadı. Project reference(s) - Project reference(s) + Proje başvuruları Project reference `{0}` removed. - Project reference `{0}` removed. + `{0}` proje başvurusu kaldırıldı. Project `{0}` removed from solution. - Project `{0}` removed from solution. + `{0}` projesi çözümden kaldırıldı. Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + `{0}` projesi çözümden kaldırıldı. Razor build server - Razor build server + Razor derleme sunucusu Reference - Reference + Başvuru Reference `{0}` added to the project. - Reference `{0}` added to the project. + `{0}` başvurusu projeye eklendi. Remove - Remove + Kaldır Required command was not provided. - Required command was not provided. + Gerekli komut sağlanmadı. {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: {1} Araç Kitaplıklarından commandspec çözümleniyor. Response file '{0}' does not exist. - Response file '{0}' does not exist. + '{0}' yanıt dosyası mevcut değil. Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: + Arama başarısız oldu. Daha sonra yeniden denemek sorunu çözebilir. NuGet Arama API'si yanıt ayrıntısı: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + Tanılama çıkışını etkinleştirir. Display the command schema as JSON. - Display the command schema as JSON. + Komut şemasını JSON formatında görüntüle. The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + '--self-contained' ve '--no-self-contained' seçenekleri birlikte kullanılamaz. {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + Uygulamanızla birlikte .NET çalışma zamanını yayımladığınızda hedef makinede çalışma zamanının yüklü olması gerekmez. +Varsayılan değer 'false.' Ancak çalışma zamanı tanımlayıcısı belirtildiyse .NET 7 veya altı projeler hedeflenirken varsayılan değer 'true' olur. Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + '{0}' komutu, başka bir araçtaki mevcut bir komutla çakışıyor. Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + Mevcut iş yükü sürümlerini veya bir iş yükü sürümünü neyin oluşturduğunu arayın. Daha fazla bilgi için 'dotnet workload search version --help' komutunu kullanın. {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + Komut satırı yardımını gösterir. The shutdown command failed: {0} - The shutdown command failed: {0} + Kapatma komutu başarısız oldu: {0} Solution - Solution + Çözüm Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + {0} çözümü zaten {1} projesini içeriyor. Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + '{0}' çözüm bağımsız değişkeni yanlış yerleştirilmiş. Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + Belirtilen {0} çözüm dosyası yok veya dizinde bir çözüm dosyası yok. The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + Üzerinde işlem yapılacak proje veya çözüm dosyası. Bir dosya belirtilmezse komut geçerli dizinde dosya arar. PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + Üzerinde işlem yapılacak proje veya çözüm veya C# (dosya tabanlı program) dosyası. Bir dosya belirtilmezse, komut geçerli dizinde bir proje veya çözüm arayacaktır. PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJE | ÇÖZÜM | DOSYA Specify at least one {0}. - Specify at least one {0}. + En az bir {0} belirtin. You must specify at least one project to add. - You must specify at least one project to add. + Eklemek için en az bir proje belirtmeniz gerekir. You must specify at least one project to remove. - You must specify at least one project to remove. + Kaldırmak için en az bir proje belirtmeniz gerekir. You must specify at least one reference to remove. - You must specify at least one reference to remove. + Kaldırmak için en az bir başvuru belirtmeniz gerekir. {0}: tool library found {1} - {0}: tool library found {1} + {0}: araç kitaplığı bulundu {1} Missing 'version' entry. - Missing 'version' entry. + 'version' girişi eksik. Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + '{0}' aracı (sürüm '{1}') zaten yüklü. Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + {0} paketi bir .NET aracı değil. Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + '{0}' komutu şu geçersiz karakterlerden birini veya daha fazlasını içeriyor: {1}. The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + '{0}' komut adının başında bir nokta (.) olamaz. Invalid XML: {0} - Invalid XML: {0} + Geçersiz XML: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + Araçta ad ayarı eksik bir komut tanımlanıyor. Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + '{0}' komutunda giriş noktası ayarı eksik. More than one command is defined for the tool. - More than one command is defined for the tool. + Araç için birden fazla komut tanımlı. Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + '{0}' aracı, desteklenmeyen '{1}' çalıştırıcısını kullanıyor The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + Araç, geçerli mimariyi veya işletim sistemini ({0}) desteklemiyor. Desteklenen çalışma zamanları: {1} Type - Type + Tür The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + İstenen sertifika zinciri ilkesi denetlenemedi: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + geçici deps.json dosyası silinemedi: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + deps.json oluşturulamıyor, dosya önceden oluşturulmuş olabilir. Tanılama çıkışının "dotnet"ten sonra "-d" seçeneğini belirtebilirsiniz (örneğin, "dotnet -d <toolname>": {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + Dotnet çoğullayıcısı bulunamadı Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + '{1}' özelliği için bir {0} bekleniyordu. Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + Tanınmayan komut veya bağımsız değişken: '{0}' Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + '{0}' projesi bilinmeyen bir proje türüne sahip ve çözüm dosyasına eklenemiyor. Destek için SDK sağlayıcınıza başvurun. Update - Update + Güncelleştir VB/C# compiler server - VB/C# compiler server + VB/C# derleyici sunucusu Value - Value + Değer Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + MSBuild ayrıntı düzeyini ayarlar. İzin verilen değerler: q[uiet], m[inimal], n[ormal], d[etailed] ve diag[nostic]. Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + "{0}" NuGet paketinin geçerli imzaya sahip olduğu doğrulandı. Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + `{0}` paketi için sürüm çözümlenemedi. Version {0} is invalid. - Version {0} is invalid. + {0} sürümü geçersiz. VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + İş yükleri doğrulanırken bir sorunla karşılaşıldı. Daha fazla bilgi için "dotnet workload update" komutunu çalıştırın. {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + "Evet" seçeneğini kullanarak tüm onay istemlerini kabul edin. diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.zh-Hans.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.zh-Hans.xlf index 2c289d2225c2..aaac6ffe8a4c 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.zh-Hans.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.zh-Hans.xlf @@ -4,89 +4,89 @@ Add - Add + 添加 Ambiguous command name: {0} - Ambiguous command name: {0} + 模糊命令名: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + 目标体系结构。 ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + 工件路径。项目中的所有输出(包括生成、发布和打包输出)都将放到指定路径下的子文件夹中。 {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: 尝试创建 commandspec {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: 尝试在 {2} 中查找命令 {1} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: 尝试解析 {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: 正在尝试从工具 {1} 解析命令 spec outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} 不存在 Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + 无法为空的可执行文件路径创建 shell 填充程序。 Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + 找不到清单文件。已搜索路径的列表: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + 在清单文件中找不到包 ID 为 {0} 的包。 Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + 解决当前运行时标识符失败。 Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + 不支持同时指定“-r |--runtime”和“-a |-arch”选项。 Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + 不支持同时指定“-r |--runtime”和“-os”选项。 @@ -100,11 +100,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + 设置环境变量的值。 +如果该变量不存在,则创建它;如果它已存在,则替代它。 +可多次指定此参数来提供多个变量。 -Examples: +示例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -114,7 +114,7 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" @@ -129,12 +129,12 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + 设置环境变量的值。 +如果该变量不存在,则创建它;如果它已存在,则替代它。 +这将在隔离的进程中强制运行测试。 +可多次指定此参数来提供多个变量。 -Examples: +示例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -144,102 +144,102 @@ Examples: Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + 设置生成项目时使用的 $(VersionSuffix) 属性的值。 Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + 列的最大宽度必须大于零。 The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + 找不到可为“{0}”执行的命令。可能未还原项目或还原失败 - 运行 `dotnet restore` Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + 允许命令停止和等待用户输入或操作(例如,用以完成身份验证)。 Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + 允许安装预发行包。 {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec 为 null。 FRAMEWORK - FRAMEWORK + FRAMEWORK File `{0}` not found. - File `{0}` not found. + 未找到文件“{0}”。 CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + 指定的解决方案文件 {0} 不存在,或目录中没有解决方案文件。 Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + 找不到解决方案或目录“{0}”。 {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: 找不到工具 {1} 的 runtimeconfig.json 文件 Delete - Delete + 删除 Unable to find deps.json generator project. - Unable to find deps.json generator project. + 找不到 deps.json 生成器项目。 {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: 未能找到匹配的项目 {1}。 {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: ProjectFactory 未找到项目。 Did you mean the following command? - Did you mean the following command? + 你是否是指以下命令? Directory - Directory + 目录 Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + 强制命令忽略任何永久性生成服务器。 {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} 不存在 @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + 工具目录 '{0}' 当前不在 PATH 环境变量上。 +如果使用的是 bash,则可通过运行以下命令将其添加到配置文件: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# 添加 .NET Core SDK 工具 export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +可通过运行以下命令将其添加到当前会话: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + 由于刚安装了 .NET SDK,因此在运行安装的工具之前,需要注销或重启会话。 @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + 工具目录 '{0}' 当前不在 PATH 环境变量上。 +如果使用的是 bash,则可通过运行以下命令将其添加到配置文件: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# 添加 .NET Core SDK 工具 export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +可通过运行以下命令将其添加到当前会话: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + 由于刚安装了 .NET SDK,因此在运行安装的工具之前,需要重新打开终端。 @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + 工具目录 '{0}' 当前不在 PATH 环境变量上。 +如果使用的是 zsh,则可通过运行以下命令将其添加到配置文件: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# 添加 .NET Core SDK 工具 export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +然后运行 `zsh -l` 以使其可用于当前会话。 -You can only add it to the current session by running the following command: +只能通过运行以下命令将其添加到当前会话: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + 工具目录“{0}”目前不在 PATH 环境变量中。 -You can add the directory to the PATH by running the following command: +可运行以下命令将目录添加到 PATH: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + 由于刚安装了 .NET SDK,因此在运行安装的工具之前,需要重新打开命令提示符窗口。 Error - Error + 错误 You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + 正在通过 "HTTP" 源运行“工具安装”操作: {0}。NuGet 需要 HTTPS 源。要使用 HTTP 源,必须在 NuGet.Config 文件中将 "allowInsecureConnections" 显式设置为 true。有关详细信息,请参阅 https://aka.ms/nuget-https-everywhere。 {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: 需要 deps.json: {1} Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + 未能为 shell 填充程序设置用户可执行文件权限: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + 未能为命令“{0}”创建工具填充程序: {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: 未能找到 commandPath {1} Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + 在工具包“{0}”的 NuGet 资产文件中找不到库: {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + 已启用包源映射,但在指定的包 ID 下找不到源: {0}。有关详细信息,请参阅包源映射文档(https://aka.ms/nuget-package-source-mapping)。 Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + 无法找到暂存工具包“{0}”。 {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: 未能找到 {1} 的 toolAssembly Failed to load NuGet source {0} - Failed to load NuGet source {0} + 无法加载 NuGet 源 {0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + 已启用包源映射,但在指定的包 ID 下未映射源: {0}。有关详细信息,请参阅包源映射文档(https://aka.ms/nuget-package-source-mapping)。 Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + 无法读取工具包 '{0}' 的 NuGet 资产文件: {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + 未能读取 pid 文件“{0}”: {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + 未能为命令“{0}”删除工具填充程序: {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: 未能从库解析 commandspec。 Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + 无法检索工具配置: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + 未能将“{0}”添加到 PATH 环境变量。请将此目录添加到 PATH,以使用通过 "dotnet tool install" 安装的工具。 Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + 未能卸载工具包“{0}”: {1} Failed to validate package signing. {0} - Failed to validate package signing. + 未能验证包签名。 {0} Missing 'commands' entry. - Missing 'commands' entry. + 缺少 "commands" 条目。 File - File + 文件 The file-based app to operate on. - The file-based app to operate on. + 要操作的基于文件的应用。 Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + 格式版本高于受支持的版本。该 SDK 版本可能不支持此工具。请更新 SDK。 Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + 格式版本格式不正确。该 SDK 版本可能不支持此工具。请联系工具作者。 Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + 缺少格式版本。该 SDK 版本可能不支持此工具。请联系工具作者。 Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + 找到项目“{0}”但无效。 {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: 在 {1} 中找到工具 lockfile FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + 将应用程序发布为依赖框架的应用程序。目标计算机上必须安装兼容的 .NET 运行时才能运行该应用程序。 Generating deps.json at: {0} - Generating deps.json at: {0} + 即将生成 deps.json: {0} {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: 忽略 prefercliruntime 文件,因为工具目标框架({1})的主要版本不是当前 CLI 运行时({2}) In package {0}: {1} - In package {0}: + 在包 {0} 中: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + 环境变量格式不正确: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: 无效的 commandResolverArguments {0} should be an integer - {0} should be an integer + {0} 应为整数 Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + 清单文件无效。路径 {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + 项目“{0}”无效。 Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + 项目“{0}”无效。{1}。 The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + 运行时标识符 {0} 无效。有效的运行时标识符为: {1}。 Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + 解决方案“{0}”无效。{1}。 Invalid version string: {0} - Invalid version string: {0} + 版本字符串 {0} 无效 {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + 在 NuGet 源 {1} 中找不到 {0}。 Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + 文件 {0} 中存在 Json 分析错误: {1} LEVEL - LEVEL + LEVEL Library - Library + {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: 在锁定文件中未找到库。 List - List + 列表 {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: 在“{1}”查找 prefercliruntime 文件 .NET Cli Options: - .NET Cli Options: + .NET Cli 选项: MSBuild arguments: {0} - MSBuild arguments: {0} + MSBuild 参数: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: MSBuild 项目路径 = {1} MSBuild server - MSBuild server + MSBuild 服务器 File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + 文件 {0} 来自另一台计算机,而且可能会被阻止以帮助保护此计算机。有关详细信息(包括如何解除阻止),请参阅 https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + 缺少 "isRoot" 条目。 Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + 无法添加包。清单文件已经包含版本 {0} 的包 {1}。请卸载/安装或编辑清单文件 {2} 以指定新版本 {3}。 Manifest version 0 is not supported. - Manifest version 0 is not supported. + 不支持清单版本 0。 Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + 清单版本为 {0}。此 SDK 版本最多支持清单版本 {1},可能不支持此清单。 Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + 在包中找不到命令“{1}”的入口点文件“{0}”。 Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + 在包中找不到设置文件 "DotnetToolSettings.xml"。 More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + 多个包装填充码可用: {0}。 Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + 在 {0} 中找到多个解决方案文件。请指定使用哪一个。 Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + 指定要使用的项目文件,因为此“{0}”包含多个项目文件。 More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + 包 {0} 存在多个条目。 Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + 运行 "dotnet tool restore" 以使“{0}”命令可用。 New - New + 新建 Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + 不显示启动版权标志或版权消息。 No projects found in the solution. - No projects found in the solution. + 未在解决方案中找到项目。 There are no {0} references in project {1}. - There are no {0} references in project {1}. + 项目 {1} 中没有 {0} 引用。 Do not restore the project before building. - Do not restore the project before building. + 生成前请勿还原项目。 Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + 搜索失败。NuGet 搜索 API 响应详细信息: + RequestUrl: {0}。ReasonPhrase: {1}。StatusCode: {2}。 Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + 正在跳过 NuGet 包“{0}”的签名验证,因为该包来自不需要签名验证的源。 Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + 正在跳过 NuGet 包签名验证。 {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: nuget 包根目录: {1} OS - OS + OS Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + 使用 -p 选项时一次只能指定一个项目。 {Locked="-p"} The target operating system. - The target operating system. + 目标操作系统。 Project to Project - Project to Project + 项目到项目 Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + 一次只能打包一个 .nuspec 文件 Package - Package + 打包 Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + 包引用的格式为包标识符,如 ‘{0}’,或由 ‘@’ 分隔的包标识符和版本,如 ‘{0}@{1}’。 Package reference id and version must not be null. - Package reference id and version must not be null. + 包引用 ID 和版本不得为 null。 Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + 当包参数已包含版本时,无法指定 --version。 {Locked="--version"} Package reference - Package reference + 包引用 A version of {0} of package {1} - A version of {0} of package {1} + 包 {1} 的版本 {0} Version {0} of package {1} - Version {0} of package {1} + 包 {1} 的版本 {0} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + 包 {2} 的 {0} 和 {1} 之间的版本 A version higher than {0} of package {1} - A version higher than {0} of package {1} + 包 {1} 的高于 {0} 的版本 A version less than {0} of package {1} - A version less than {0} of package {1} + 包 {1} 的低于 {0} 的版本 Project - Project + 项目 Project `{0}` added to the solution. - Project `{0}` added to the solution. + 已将项目“{0}”添加到解决方案中。 Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + 项目已经具有对“{0}”的引用。 The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + 要操作的项目文件。如果未指定文件,则命令会在当前目录下搜索一个文件。 PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: -{1}. + 无法评估项目“{0}”。评估失败,出现以下错误: +{1}。 Project `{0}` does not exist. - Project `{0}` does not exist. + 项目“{0}”不存在。 Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + 项目“{0}”不以框架“{1}”为目标。 Project `{0}` is invalid. - Project `{0}` is invalid. + 项目“{0}”无效。 Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + 由于两个项目之间的目标框架不兼容,无法添加项目“{0}”。请检查要添加的项目,并验证是否与以下目标兼容: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + 未能在解决方案中找到项目“{0}”。 The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + 要操作的项目文件或基于 C# 文件的应用。如果未指定文件,则该命令将在当前目录中搜索项目文件。 PROJECT | FILE - PROJECT | FILE + 项目|文件 Project reference - Project reference + 项目引用 Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + 找不到项目引用“{0}”。 Project reference(s) - Project reference(s) + 项目引用 Project reference `{0}` removed. - Project reference `{0}` removed. + 已删除项目引用“{0}”。 Project `{0}` removed from solution. - Project `{0}` removed from solution. + 已从解决方案中移除项目“{0}”。 Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + 已从解决方案中移除项目“{0}”。 Razor build server - Razor build server + Razor 生成服务器 Reference - Reference + 引用 Reference `{0}` added to the project. - Reference `{0}` added to the project. + 已将引用“{0}”添加到项目。 Remove - Remove + 删除 Required command was not provided. - Required command was not provided. + 未提供必需的命令。 {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: 正在从 {1} 工具库解析 commandspec。 Response file '{0}' does not exist. - Response file '{0}' does not exist. + 响应文件“{0}”不存在。 Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + 搜索失败。稍后重试可能会解决此问题。NuGet 搜索 API 响应详细信息: + RequestUrl: {0}。ReasonPhrase: {1}。StatusCode: {2}。 RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + 启用诊断输出。 Display the command schema as JSON. - Display the command schema as JSON. + 将命令架构显示为 JSON。 The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + "--self-contained"和 "--no-self-contained" 选项不能一起使用。 {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + 将 .NET 运行时与应用程序一起发布,从而无需在目标计算机上安装运行时。 +默认值为 'false'。但目标为 .NET 7 或更低版本时,如果指定了运行时标识符,则默认值为 'true'。 Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + 命令“{0}”与另一个工具中的现有命令相冲突。 Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + 搜索可用工作负载版本或包含工作负载版本的版本。有关详细信息,请使用 'dotnet workload search version --help'。 {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + 显示命令行帮助。 The shutdown command failed: {0} - The shutdown command failed: {0} + shutdown 命令失败: {0} Solution - Solution + 解决方案 Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + 解决方案 {0} 已包含项目 {1}。 Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + 解决方案参数“{0}”位置错误。 Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + 指定的解决方案文件 {0} 不存在,或目录中没有解决方案文件。 The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + 要操作的项目或解决方案文件。如果没有指定文件,则命令将在当前目录里搜索一个文件。 PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + 要操作的项目或解决方案或 C# (基于文件的程序)文件。如果未指定文件,则该命令将在当前目录中搜索项目或解决方案。 PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + PROJECT | SOLUTION | FILE Specify at least one {0}. - Specify at least one {0}. + 请至少指定一个 {0}。 You must specify at least one project to add. - You must specify at least one project to add. + 必须至少指定一个要添加的项目。 You must specify at least one project to remove. - You must specify at least one project to remove. + 必须至少指定一个要删除的项目。 You must specify at least one reference to remove. - You must specify at least one reference to remove. + 必须至少指定一个要删除的引用。 {0}: tool library found {1} - {0}: tool library found {1} + {0}: 找到工具库 {1} Missing 'version' entry. - Missing 'version' entry. + 缺少 "version" 条目。 Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + 已安装工具“{0}”(版本“{1}”). Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + 包 {0} 不是 .NET 工具。 Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + 命令“{0}”包含一个或多个以下无效字符: {1}。 The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + 命令名称“{0}”不能以前导点(.)开头。 Invalid XML: {0} - Invalid XML: {0} + 无效的 XML: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + 工具使用缺失的名称设置定义命令。 Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + 命令“{0}”缺少入口点设置。 More than one command is defined for the tool. - More than one command is defined for the tool. + 为工具定义了多个命令。 Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + 工具 '{0}' 使用的是不受支持的运行器 ‘{1}’。 The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + 该工具不支持当前体系结构或操作系统({0})。支持的运行时: {1} Type - Type + 类型 The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + 无法检查请求的证书链策略: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + 无法删除临时 deps.json 文件: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + 无法生成 deps.json,可能已生成。可在诊断输出之后指定“-d”选项(例如,“dotnet-d <toolname>”: {0} Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + 找不到 dotnet 多路复用器 Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + 属性“{1}”需要 {0}。 Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + 未识别命令或参数“{0}” Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + 项目“{0}”包含未知的项目类型,且无法添加到解决方案文件。请联系 SDK 提供商获取支持。 Update - Update + 更新 VB/C# compiler server - VB/C# compiler server + VB/C# 编译器服务器 Value - Value + Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + 设置 MSBuild 详细程度。允许值为 q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。 Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + 已验证 NuGet 包“{0}”具有有效签名。 Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + 无法解析包“{0}”的版本。 Version {0} is invalid. - Version {0} is invalid. + 版本 {0} 无效。 VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + 验证工作负载时遇到问题。有关详细信息,请运行 "dotnet workload update"。 {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + 使用“是”接受所有确认提示。 diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.zh-Hant.xlf b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.zh-Hant.xlf index b3f7f1594bf7..a03639591ad9 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.zh-Hant.xlf +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/xlf/DefinitionStrings.zh-Hant.xlf @@ -4,89 +4,89 @@ Add - Add + 加入 Ambiguous command name: {0} - Ambiguous command name: {0} + 不明確的命令名稱: {0} ARCH - ARCH + ARCH The target architecture. - The target architecture. + 目標結構。 ARTIFACTS_DIR - ARTIFACTS_DIR + ARTIFACTS_DIR The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. - The artifacts path. All output from the project, including build, publish, and pack output, will go in subfolders under the specified path. + 成品路徑。來自專案的所有輸出 (包括建置、發佈和封裝輸出),都會進入指定路徑下的子資料夾。 {0}: attempting to create commandspec - {0}: attempting to create commandspec + {0}: 正在嘗試建立 commandspec {0}: attempting to find command {1} in {2} - {0}: attempting to find command {1} in {2} + {0}: 正在嘗試於 {2} 中尋找命令 {1} {0}: attempting to resolve {1} - {0}: attempting to resolve {1} + {0}: 正在嘗試解析 {1} {0}: Attempting to resolve command spec from tool {1} - {0}: Attempting to resolve command spec from tool {1} + {0}: 正在嘗試從工具 {1} 解析 command spec outputpathresolver: {0} does not exist - outputpathresolver: {0} does not exist + outputpathresolver: {0} 不存在 Cannot create shell shim for an empty executable path. - Cannot create shell shim for an empty executable path. + 無法為空白的可執行檔路徑建立殼層填充碼。 Cannot find a manifest file. The list of searched paths: {0} - Cannot find a manifest file. The list of searched paths: + 找不到資訊清單檔。搜尋路徑清單: {0} Cannot find a package with the package id {0} in the manifest file. - Cannot find a package with the package id {0} in the manifest file. + 在資訊清單檔中找不到套件識別碼為 {0} 的套件。 Resolving the current runtime identifier failed. - Resolving the current runtime identifier failed. + 解析目前執行階段識別碼失敗。 Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. - Specifying both the `-r|--runtime` and `-a|--arch` options is not supported. + 不支援同時指定 `-r|--runtime` 與 `-a|--arch` 選項。 Specifying both the `-r|--runtime` and `-os` options is not supported. - Specifying both the `-r|--runtime` and `-os` options is not supported. + 不支援同時指定 `-r|--runtime` 與 `-os` 選項。 @@ -100,11 +100,11 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This argument can be specified multiple times to provide multiple variables. + 設定環境變數的值。 +若變數不存在,則加以建立; 若有,則予以覆寫。 +此引數可多次指定,以提供多項變數。 -Examples: +範例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -114,7 +114,7 @@ Examples: NAME="VALUE" - NAME="VALUE" + NAME="VALUE" @@ -129,12 +129,12 @@ Examples: -e VARIABLE="value;seperated with;semicolons" -e VAR1=abc -e VAR2=def -e VAR3=ghi - Sets the value of an environment variable. -Creates the variable if it does not exist, overrides if it does. -This will force the tests to be run in an isolated process. -This argument can be specified multiple times to provide multiple variables. + 設定環境變數的值。 +若變數不存在,則加以建立; 若有,則予以覆寫。 +這會強制在隔離流程中執行測試。 +此引數可多次指定,以提供多項變數。 -Examples: +範例: -e VARIABLE=abc -e VARIABLE="value with spaces" -e VARIABLE="value;seperated with;semicolons" @@ -144,102 +144,102 @@ Examples: Set the value of the $(VersionSuffix) property to use when building the project. - Set the value of the $(VersionSuffix) property to use when building the project. + 設定建置專案時,要使用之 $(VersionSuffix) 屬性的值。 Column maximum width must be greater than zero. - Column maximum width must be greater than zero. + 資料行寬度上限必須大於零。 The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` - The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore` + 找不到 "{0}" 的命令可執行檔。該專案可能尚未還原或還原失敗 - 請執行 `dotnet restore` Allows the command to stop and wait for user input or action (for example to complete authentication). - Allows the command to stop and wait for user input or action (for example to complete authentication). + 允許命令停止並等候使用者輸入或動作 (例如: 完成驗證)。 Allows prerelease packages to be installed. - Allows prerelease packages to be installed. + 允許安裝發行前版本套件。 {0}: commandSpec is null. - {0}: commandSpec is null. + {0}: commandSpec 為 null。 FRAMEWORK - FRAMEWORK + 架構 File `{0}` not found. - File `{0}` not found. + 找不到檔案 `{0}`。 CONFIGURATION - CONFIGURATION + CONFIGURATION Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + 指定的方案檔 {0} 不存在,或目錄中沒有方案檔。 Could not find solution or directory `{0}`. - Could not find solution or directory `{0}`. + 找不到解決方案或目錄 `{0}`。 {0}: Could not find runtimeconfig.json file for tool {1} - {0}: Could not find runtimeconfig.json file for tool {1} + {0}: 找不到工具 {1} 的 runtimeconfig.json 檔案 Delete - Delete + 刪除 Unable to find deps.json generator project. - Unable to find deps.json generator project. + 找不到 deps.json 產生器專案。 {0}: Did not find a matching project {1}. - {0}: Did not find a matching project {1}. + {0}: 未找到相符的專案 {1}。 {0}: ProjectFactory did not find Project. - {0}: ProjectFactory did not find Project. + {0}: ProjectFactory 未找到專案。 Did you mean the following command? - Did you mean the following command? + 您是指下列命令嗎? Directory - Directory + 目錄 Force the command to ignore any persistent build servers. - Force the command to ignore any persistent build servers. + 強制命令略過任何持續性組建伺服器。 {0}: {1} does not exist - {0}: {1} does not exist + {0}: {1} 不存在 @@ -255,15 +255,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + 工具目錄 '{0}' 目前不在 PATH 環境變數上。 +若目前使用 bash,可執行下列命令將其新增至您的設定檔: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# 新增 .NET Core SDK 工具 export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +您可執行下列命令,將其新增至目前的工作階段: export PATH="$PATH:{0}" @@ -271,7 +271,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. - Since you just installed the .NET SDK, you will need to logout or restart your session before running the tool you installed. + 因為您剛才安裝了 .NET SDK,所以必須先登出或重新啟動工作階段,才能執行所安裝的工具。 @@ -287,15 +287,15 @@ You can add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using bash, you can add it to your profile by running the following command: + 工具目錄 '{0}' 目前不在 PATH 環境變數上。 +若目前使用 bash,可執行下列命令將其新增至您的設定檔: cat << \EOF >> ~/.bash_profile -# Add .NET Core SDK tools +# 新增 .NET Core SDK 工具 export PATH="$PATH:{0}" EOF -You can add it to the current session by running the following command: +您可執行下列命令,將其新增至目前的工作階段: export PATH="$PATH:{0}" @@ -303,7 +303,7 @@ export PATH="$PATH:{0}" Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen terminal before running the tool you installed. + 因為您剛才安裝了 .NET SDK,所以必須先重新開啟終端,才能執行所安裝的工具。 @@ -321,17 +321,17 @@ You can only add it to the current session by running the following command: export PATH="$PATH:{0}" - Tools directory '{0}' is not currently on the PATH environment variable. -If you are using zsh, you can add it to your profile by running the following command: + 工具目錄 '{0}' 目前不在 PATH 環境變數上。 +如果您在使用 zsh,可以執行以下命令將其新增至您的設定檔: cat << \EOF >> ~/.zprofile -# Add .NET Core SDK tools +# 新增 .NET Core SDK 工具 export PATH="$PATH:{0}" EOF -And run `zsh -l` to make it available for current session. +並執行 `zsh -l` 讓其可用於目前的工作階段。 -You can only add it to the current session by running the following command: +您只能執行以下命令將其新增至目前的工作階段: export PATH="$PATH:{0}" @@ -344,9 +344,9 @@ You can add the directory to the PATH by running the following command: setx PATH "%PATH%;{0}" - Tools directory '{0}' is not currently on the PATH environment variable. + 工具目錄 '{0}' 目前不在 PATH 環境變數上。 -You can add the directory to the PATH by running the following command: +您可執行下列命令將目錄新增至 PATH: setx PATH "%PATH%;{0}" @@ -354,863 +354,863 @@ setx PATH "%PATH%;{0}" Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. - Since you just installed the .NET SDK, you will need to reopen the Command Prompt window before running the tool you installed. + 因為您剛才安裝了 .NET SDK,所以必須先重新開啟 [命令提示字元] 視窗,才能執行所安裝的工具。 Error - Error + 錯誤 You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. - You are running the 'tool install' operation with an 'HTTP' source: {0}. NuGet requires HTTPS sources. To use an HTTP source, you must explicitly set 'allowInsecureConnections' to true in your NuGet.Config file. Refer to https://aka.ms/nuget-https-everywhere for more information. + 您正使用 'HTTP' 來源執行 'tool install' 作業: {0}。NuGet 需要 HTTPS 來源。若要使用 HTTP 來源,您必須在 NuGet.Config 檔案中將 'allowInsecureConnections' 明確設定為 true。如需詳細資訊,請參閱 https://aka.ms/nuget-https-everywhere。 {0}: expect deps.json at: {1} - {0}: expect deps.json at: {1} + {0}: 於 {1} 需要 deps.json Failed to set user executable permissions for shell shim: {0} - Failed to set user executable permissions for shell shim: {0} + 無法為殼層填充碼設定使用者可執行檔權限: {0} Failed to create tool shim for command '{0}': {1} - Failed to create tool shim for command '{0}': {1} + 無法為命令 '{0}' 建立工具填充碼: {1} {0}: failed to find commandPath {1} - {0}: failed to find commandPath {1} + {0}: 找不到 commandPath {1} Failed to find library in NuGet assets file for tool package '{0}': {1} - Failed to find library in NuGet assets file for tool package '{0}': {1} + 在 NuGet 資產檔案中找不到工具套件 '{0}' 的程式庫: {1} Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + 已啟用封裝來源對應,但在指定的封裝識別碼下找不到來源: {0}。如需詳細資料,請參閱位於 https://aka.ms/nuget-package-source-mapping 的封裝來源對應文件。 Failed to find staged tool package '{0}'. - Failed to find staged tool package '{0}'. + 無法找到暫存工具套件 '{0}'。 {0}: failed to find toolAssembly for {1} - {0}: failed to find toolAssembly for {1} + {0}: 找不到 {1} 的 toolAssembly Failed to load NuGet source {0} - Failed to load NuGet source {0} + 無法載入 NuGet 來源{0} Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. - Package Source Mapping is enabled, but no source mapped under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. + 已啟用封裝來源對應,但在指定的封裝識別碼下沒有對應的來源: {0}。如需詳細資料,請參閱位於 https://aka.ms/nuget-package-source-mapping 的封裝來源對應文件。 Failed to read NuGet assets file for tool package '{0}': {1} - Failed to read NuGet assets file for tool package '{0}': {1} + 無法讀取工具套件 '{0}' 的 NuGet 資產檔案: {1} Failed to read pid file '{0}': {1} - Failed to read pid file '{0}': {1} + 無法讀取 pid 檔案 '{0}': {1} Failed to remove tool shim for command '{0}': {1} - Failed to remove tool shim for command '{0}': {1} + 無法為命令 '{0}' 移除工具填充碼: {1} {0}: failed to resolve commandspec from library. - {0}: failed to resolve commandspec from library. + {0}: 無法從程式庫解析 commandspec。 Failed to retrieve tool configuration: {0} - Failed to retrieve tool configuration: {0} + 無法擷取工具組態: {0} Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. - Failed to add '{0}' to the PATH environment variable. Add this directory to your PATH to use tools installed with 'dotnet tool install'. + 無法將 '{0}' 新增到 PATH 環境變數。請將此目錄新增到您的 PATH,以使用由 'dotnet tool install' 所安裝的工具。 Failed to uninstall tool package '{0}': {1} - Failed to uninstall tool package '{0}': {1} + 無法將工具套件 '{0}' 解除安裝: {1} Failed to validate package signing. {0} - Failed to validate package signing. + 無法驗證套件簽署。 {0} Missing 'commands' entry. - Missing 'commands' entry. + 遺漏 'commands' 項目。 File - File + 檔案 The file-based app to operate on. - The file-based app to operate on. + 要執行的檔案型應用程式。 Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. - Format version is higher than supported. This tool may not be supported in this SDK version. Update your SDK. + 格式版本高於支援的版本。此 SDK 版本可能不支援這項工具。請更新您的 SDK。 Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is malformed. This tool may not be supported in this SDK version. Contact the author of the tool. + 格式版本的格式不正確。此 SDK 版本可能不支援這項工具。請連絡該工具的作者。 Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. - Format version is missing. This tool may not be supported in this SDK version. Contact the author of the tool. + 遺漏格式版本。此 SDK 版本可能不支援這項工具。請連絡該工具的作者。 Found a project `{0}` but it is invalid. - Found a project `{0}` but it is invalid. + 找到專案 `{0}` 但無效。 {0}: found tool lockfile at : {1} - {0}: found tool lockfile at : {1} + {0}: 於 {1} 找到工具鎖定檔案 FRAMEWORK - FRAMEWORK + FRAMEWORK Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. - Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application. + 將您的應用程式發佈為架構相依的應用程式。必須在目標機器上安裝相容的 .NET 執行階段,才能執行您的應用程式。 Generating deps.json at: {0} - Generating deps.json at: {0} + 正在於 {0} 產生 deps.json {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) - {0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2}) + {0}: 因為工具目標架構 ({1}) 的主要版本與目前的 CLI 執行階段 ({2}) 不同,所以將忽略 prefercliruntime 檔案 In package {0}: {1} - In package {0}: + 位於套件 {0} 中: {1} Incorrectly formatted environment variables: {0} - Incorrectly formatted environment variables: {0} + 環境變數格式不正確: {0} {0}: invalid commandResolverArguments - {0}: invalid commandResolverArguments + {0}: commandResolverArguments 無效 {0} should be an integer - {0} should be an integer + {0} 應為整數 Invalid manifest file. Path {0}: {1} - Invalid manifest file. Path {0}: + 資訊清單檔無效。路徑 {0}: {1} Invalid project `{0}`. - Invalid project `{0}`. + 專案 `{0}` 無效。 Invalid project `{0}`. {1}. - Invalid project `{0}`. {1}. + 專案 `{0}` 無效。{1}。 The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. - The runtime identifier {0} is invalid. Valid runtime identifiers are: {1}. + 執行階段識別碼 {0} 無效。有效的執行階段識別碼為: {1}。 Invalid solution `{0}`. {1}. - Invalid solution `{0}`. {1}. + 解決方案 `{0}` 無效。{1}。 Invalid version string: {0} - Invalid version string: {0} + 版本字串無效: {0} {0} is not found in NuGet feeds {1}. - {0} is not found in NuGet feeds {1}. + 在 NuGet 摘要 {1} 中找不到 {0}。 Json parsing error in file {0} : {1} - Json parsing error in file {0} : {1} + 檔案 {0} 中發生 JSON 剖析錯誤: {1} LEVEL - LEVEL + LEVEL Library - Library + 程式庫 {0}: library not found in lock file. - {0}: library not found in lock file. + {0}: 鎖定檔案中找不到程式庫。 List - List + 列出 {0}: Looking for prefercliruntime file at `{1}` - {0}: Looking for prefercliruntime file at `{1}` + {0}: 正在於 `{1}` 尋找 prefercliruntime 檔 .NET Cli Options: - .NET Cli Options: + .NET CLI 選項: MSBuild arguments: {0} - MSBuild arguments: {0} + MSBuild 引數: {0} {0}: MSBUILD_EXE_PATH = {1} - {0}: MSBUILD_EXE_PATH = {1} + {0}: MSBUILD_EXE_PATH = {1} {0}: MSBuild project path = {1} - {0}: MSBuild project path = {1} + {0}: MSBuild 專案路徑 = {1} MSBuild server - MSBuild server + MSBuild 伺服器 File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw - File {0} came from another computer and might be blocked to help protect this computer. For more information, including how to unblock, see https://aka.ms/motw + 檔案 {0} 來自另一部電腦,但此電腦可能已封鎖而加以保護。如需詳細資訊,包括如何解除封鎖,請參閱 https://aka.ms/motw Missing 'isRoot' entry. - Missing 'isRoot' entry. + 遺漏 'isRoot' 項目。 Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. - Cannot add package. Manifest file already contains version {0} of the package {1}. Uninstall/install or edit manifest file {2} to specify the new version {3}. + 無法新增套件。資訊清單檔已包含了版本 {0} 的套件 {1}。請解除安裝/安裝資訊清單檔 {2} 或加以編輯,以指定新的版本 {3}。 Manifest version 0 is not supported. - Manifest version 0 is not supported. + 不支援資訊清單版本 0。 Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. - Manifest version is {0}. This manifest may not be supported in this SDK version that can support up to manifest version {1}. + 資訊清單版本為 {0}。此 SDK 版本中可能不支援這個資訊清單,最高支援到資訊清單版本 {1}。 Entry point file '{0}' for command '{1}' was not found in the package. - Entry point file '{0}' for command '{1}' was not found in the package. + 無法在套件中找到命令 '{1}' 的進入點檔案 '{0}'。 Settings file 'DotnetToolSettings.xml' was not found in the package. - Settings file 'DotnetToolSettings.xml' was not found in the package. + 無法在套件中找到設定檔 'DotnetToolSettings.xml'。 More than one packaged shim is available: {0}. - More than one packaged shim is available: {0}. + 有多個經過封裝的填充碼可用: {0}。 Found more than one solution file in {0}. Specify which one to use. - Found more than one solution file in {0}. Specify which one to use. + 在 {0} 中找到多個解決方案檔。請指定要使用的檔案。 Specify which project file to use because this '{0}' contains more than one project file. - Specify which project file to use because this '{0}' contains more than one project file. + 指定要使用的專案檔,因為這個 '{0}' 包含多個專案檔。 More than one entry exists for package(s): {0}. - More than one entry exists for package(s): {0}. + 封裝存在多個項目: {0}。 Run "dotnet tool restore" to make the "{0}" command available. - Run "dotnet tool restore" to make the "{0}" command available. + 執行 "dotnet tool restore",將 "{0}" 命令設為可以使用。 New - New + 新建 Do not display the startup banner or the copyright message. - Do not display the startup banner or the copyright message. + 不顯示啟始資訊或著作權訊息。 No projects found in the solution. - No projects found in the solution. + 在解決方案中找不到任何專案。 There are no {0} references in project {1}. - There are no {0} references in project {1}. + 專案 {1} 中沒有任何 {0} 參考。 Do not restore the project before building. - Do not restore the project before building. + 建置前請勿還原該專案。 Failed to search. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + 無法搜尋。NuGet 搜尋 API 回應詳細資料: + RequestUrl: {0}。ReasonPhrase: {1}。StatusCode: {2}。 Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. - Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation. + 正在略過 NuGet 套件的簽章驗證「{0}」,因為它的來源不需要簽章驗證。 Skipping NuGet package signature verification. - Skipping NuGet package signature verification. + 正在略過 NuGet 套件簽章驗證。 {0}: nuget packages root: {1} - {0}: nuget packages root: + {0}: NuGet 套件根: {1} OS - OS + 作業系統 Only one project can be specified at a time using the -p option. - Only one project can be specified at a time using the -p option. + 使用 -p 選項時,一次只能指定一個專案。 {Locked="-p"} The target operating system. - The target operating system. + 目標作業系統。 Project to Project - Project to Project + 專案對專案 Only one .nuspec file can be packed at a time - Only one .nuspec file can be packed at a time + 一次只能封裝一個 .nuspec 檔案 Package - Package + 套件 Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. - Package reference in the form of a package identifier like '{0}' or package identifier and version separated by '@' like '{0}@{1}'. + 套件參考的格式為套件識別碼,例如 '{0}',或是以 '@' 分隔的套件識別碼和版本,例如 '{0}@{1}'。 Package reference id and version must not be null. - Package reference id and version must not be null. + 套件參考識別碼和版本不得為空。 Cannot specify --version when the package argument already contains a version. - Cannot specify --version when the package argument already contains a version. + 當套件引數已包含版本時,無法指定 --version。 {Locked="--version"} Package reference - Package reference + 套件參考 A version of {0} of package {1} - A version of {0} of package {1} + 封裝 {1} 的版本 {0} Version {0} of package {1} - Version {0} of package {1} + 封裝 {1} 的版本 {0} A version between {0} and {1} of package {2} - A version between {0} and {1} of package {2} + 封裝 {2} 的 {0} 與 {1} 之間的版本 A version higher than {0} of package {1} - A version higher than {0} of package {1} + 封裝 {1} 高於 {0} 的版本 A version less than {0} of package {1} - A version less than {0} of package {1} + 封裝 {1} 小於 {0} 的版本 Project - Project + 專案 Project `{0}` added to the solution. - Project `{0}` added to the solution. + 專案 `{0}` 已新增至解決方案。 Project already has a reference to `{0}`. - Project already has a reference to `{0}`. + 專案已經有 `{0}` 的參考。 The project file to operate on. If a file is not specified, the command will search the current directory for one. - The project file to operate on. If a file is not specified, the command will search the current directory for one. + 要進行作業的專案檔。若未指定檔案,此命令將會搜尋目前的目錄以取得一個檔案。 PROJECT - PROJECT + PROJECT Project `{0}` could not be evaluated. Evaluation failed with following error: {1}. - Project `{0}` could not be evaluated. Evaluation failed with following error: -{1}. + 無法評估專案 `{0}`。評估失敗,發生下列錯誤: +{1}。 Project `{0}` does not exist. - Project `{0}` does not exist. + 專案 `{0}` 不存在。 Project `{0}` does not target framework `{1}`. - Project `{0}` does not target framework `{1}`. + 專案 `{0}` 未將架構 `{1}` 設為目標。 Project `{0}` is invalid. - Project `{0}` is invalid. + 專案 `{0}` 無效。 Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: - Project `{0}` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets: + 因為兩個專案間的目標 Framework 不相容,所以無法新增專案 `{0}`。請檢閱您嘗試新增的專案,並驗證其與下列目標相容: Project `{0}` could not be found in the solution. - Project `{0}` could not be found in the solution. + 在解決方案中找不到專案 `{0}`。 The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. - The project file or C# file-based app to operate on. If a file is not specified, the command will search the current directory for a project file. + 要執行的專案檔案或 C# 檔案型應用程式。若未指定檔案,命令就會在目前的目錄中搜尋專案或檔案。 PROJECT | FILE - PROJECT | FILE + 專案 | 檔案 Project reference - Project reference + 專案參考 Project reference `{0}` could not be found. - Project reference `{0}` could not be found. + 找不到專案參考 `{0}`。 Project reference(s) - Project reference(s) + 專案參考 Project reference `{0}` removed. - Project reference `{0}` removed. + 專案參考 `{0}` 已移除。 Project `{0}` removed from solution. - Project `{0}` removed from solution. + 專案 `{0}` 已從解決方案移除。 Project `{0}` removed from the solution. - Project `{0}` removed from the solution. + 專案 `{0}` 已從解決方案移除。 Razor build server - Razor build server + Razor 組建伺服器 Reference - Reference + 參考 Reference `{0}` added to the project. - Reference `{0}` added to the project. + 參考 `{0}` 已新增至專案。 Remove - Remove + 移除 Required command was not provided. - Required command was not provided. + 未提供所需的命令。 {0}: resolving commandspec from {1} Tool Libraries. - {0}: resolving commandspec from {1} Tool Libraries. + {0}: 正在從 {1} 工具程式庫解析 commandspec。 Response file '{0}' does not exist. - Response file '{0}' does not exist. + 回應檔 '{0}' 不存在。 Failed to search. Retry later may resolve the issue. NuGet Search API response detail: RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. - Failed to search. Retry later may resolve the issue. NuGet Search API response detail: - RequestUrl: {0}. ReasonPhrase: {1}. StatusCode: {2}. + 無法搜尋。稍後重試可能可以解決此問題。NuGet 搜尋 API 回應詳細資料: + RequestUrl: {0}。ReasonPhrase: {1}。StatusCode: {2}。 RUNTIME_IDENTIFIER - RUNTIME_IDENTIFIER + RUNTIME_IDENTIFIER Enable diagnostic output. - Enable diagnostic output. + 啟用診斷輸出。 Display the command schema as JSON. - Display the command schema as JSON. + 以 JSON 格式顯示命令結構描述。 The '--self-contained' and '--no-self-contained' options cannot be used together. - The '--self-contained' and '--no-self-contained' options cannot be used together. + 不能同時使用 '--self-contained' 和 '--no-self-contained' 選項。 {Locked="--self-contained"}{Locked="--no-self-contained"} Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. - Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. -The default is 'false.' However, when targeting .NET 7 or lower, the default is 'true' if a runtime identifier is specified. + 將 .NET 執行階段隨著您的應用程式發佈,以便您不需在目標電腦上安裝執行階段。 +預設值為 'false'。不過,當目標為 .NET 7 或更低版本時,如有指定執行階段識別碼,則預設值為 'true'。 Command '{0}' conflicts with an existing command from another tool. - Command '{0}' conflicts with an existing command from another tool. + 命令 '{0}' 與來自另一個工具的現有命令發生衝突。 Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. - Search for available workload versions or what comprises a workload version. Use 'dotnet workload search version --help' for more information. + 搜尋可用的工作負載版本或工作負載版本的組成部分。如需詳細資訊,請使用 'dotnet workload search version --help'。 {Locked="dotnet workload search version --help"} Show command line help. - Show command line help. + 顯示命令列說明。 The shutdown command failed: {0} - The shutdown command failed: {0} + 關機命令失敗: {0} Solution - Solution + 解決方案 Solution {0} already contains project {1}. - Solution {0} already contains project {1}. + 解決方案 {0} 已經包含專案 {1}。 Solution argument '{0}' is misplaced. - Solution argument '{0}' is misplaced. + 解決方案引數 '{0}' 位置錯誤。 Specified solution file {0} does not exist, or there is no solution file in the directory. - Specified solution file {0} does not exist, or there is no solution file in the directory. + 指定的方案檔 {0} 不存在,或目錄中沒有方案檔。 The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. - The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + 要操作的專案或解決方案。若未指定檔案,命令就會在目前的目錄中搜尋一個檔案。 PROJECT | SOLUTION - PROJECT | SOLUTION + PROJECT | SOLUTION The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. - The project or solution or C# (file-based program) file to operate on. If a file is not specified, the command will search the current directory for a project or solution. + 要執行的專案或解決方案或 C# (基於檔案的程式) 檔案。若未指定檔案,命令就會在目前的目錄中搜尋專案或解決方案。 PROJECT | SOLUTION | FILE - PROJECT | SOLUTION | FILE + 專案 | 解決方案 | 檔案 Specify at least one {0}. - Specify at least one {0}. + 請至少指定一個 {0}。 You must specify at least one project to add. - You must specify at least one project to add. + 您必須指定至少一個要新增的專案。 You must specify at least one project to remove. - You must specify at least one project to remove. + 您必須至少指定一個要移除的專案。 You must specify at least one reference to remove. - You must specify at least one reference to remove. + 您必須指定至少一個要刪除的參考。 {0}: tool library found {1} - {0}: tool library found {1} + {0}: 找到工具程式庫 {1} Missing 'version' entry. - Missing 'version' entry. + 遺漏 'version' 項目。 Tool '{0}' (version '{1}') is already installed. - Tool '{0}' (version '{1}') is already installed. + 工具 '{0}' ('{1}' 版) 已經安裝。 Package {0} is not a .NET tool. - Package {0} is not a .NET tool. + 套件 {0} 不是 .NET 工具。 Command '{0}' contains one or more of the following invalid characters: {1}. - Command '{0}' contains one or more of the following invalid characters: {1}. + 命令 '{0}' 包含下列一或多個無效的字元: {1}。 The command name '{0}' cannot begin with a leading dot (.). - The command name '{0}' cannot begin with a leading dot (.). + 命令名稱 '{0}' 的開頭不能為點 (.)。 Invalid XML: {0} - Invalid XML: {0} + XML 無效: {0} Tool defines a command with a missing name setting. - Tool defines a command with a missing name setting. + 工具使用了缺少的名稱設定定義命令。 Command '{0}' is missing an entry point setting. - Command '{0}' is missing an entry point setting. + 命令 '{0}' 缺少進入點設定。 More than one command is defined for the tool. - More than one command is defined for the tool. + 為工具定義了多個命令。 Tool '{0}' uses unsupported runner '{1}'." - Tool '{0}' uses unsupported runner '{1}'." + 工具 '{0}' 使用不支援的執行器 '{1}'。" The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} - The tool does not support the current architecture or operating system ({0}). Supported runtimes: {1} + 該工具不支援目前的結構或作業系統 ({0})。支援的執行階段: {1} Type - Type + 類型 The requested certificate chain policy could not be checked: {0} - The requested certificate chain policy could not be checked: {0} + 無法檢查要求的憑證鏈結原則: {0} unable to delete temporary deps.json file: {0} - unable to delete temporary deps.json file: {0} + 無法刪除暫存 deps.json 檔: {0} Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} - Unable to generate deps.json, it may have been already generated. You can specify the "-d" option option after "dotnet" for diagnostic output (for example, "dotnet -d <toolname>": {0} + Deps.json 可能已經產生,因此無法再產生。您可於診斷輸出 "dotnet" 之後, 指定 "-d" 選項 (例如 "dotnet-d <toolname>": {0}) Unable to locate dotnet multiplexer - Unable to locate dotnet multiplexer + 找不到 dotnet multiplexer Expected a {0} for property '{1}'. - Expected a {0} for property '{1}'. + 對屬性 '{1}' 來說應為 {0}。 Unrecognized command or argument '{0}' - Unrecognized command or argument '{0}' + 無法辨識的命令或引數 '{0}' Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. - Project '{0}' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support. + 專案 '{0}' 的專案類型不明,因而無法新增至解決方案檔。請連絡 SDK 提供者,以取得支援。 Update - Update + 更新 VB/C# compiler server - VB/C# compiler server + VB/C# 編譯器伺服器 Value - Value + Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. - Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. + 設定 MSBuild 的詳細程度層級。允許的值為 q[uiet]、m[inimal]、n[ormal]、d[etailed] 及 diag[nostic]。 Verified that the NuGet package "{0}" has a valid signature. - Verified that the NuGet package "{0}" has a valid signature. + 已驗證 NuGet 套件「{0}」具備有效簽章。 Version for package `{0}` could not be resolved. - Version for package `{0}` could not be resolved. + 無法解析套件 `{0}` 的版本。 Version {0} is invalid. - Version {0} is invalid. + 版本 {0} 不正確。 VERSION_SUFFIX - VERSION_SUFFIX + VERSION_SUFFIX An issue was encountered verifying workloads. For more information, run "dotnet workload update". - An issue was encountered verifying workloads. For more information, run "dotnet workload update". + 驗證工作負載時發生問題。如需詳細資訊,請執行 "dotnet workload update"。 {Locked="dotnet workload update"} Accept all confirmation prompts using "yes." - Accept all confirmation prompts using "yes." + 使用「是」,以接受所有確認提示。 From f284d9f49aec157d49233ab5785cbcf78ed1ea58 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 23 Feb 2026 15:22:54 +0100 Subject: [PATCH 105/179] [release/10.0.3xx] Manual backflow of sdk release/10.0.3xx (#53090) --- eng/Version.Details.props | 122 +++++++++---------- eng/Version.Details.xml | 246 +++++++++++++++++++------------------- global.json | 4 +- 3 files changed, 186 insertions(+), 186 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 490480a5f416..fc316bc18258 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,68 +6,68 @@ This file should be imported by eng/Versions.props - 10.0.0-preview.26113.102 - 18.3.0-preview-26113-102 - 18.3.0-preview-26113-102 - 7.5.0-rc.11402 - 10.0.300-alpha.26113.102 - 5.5.0-2.26113.102 - 5.5.0-2.26113.102 - 5.5.0-2.26113.102 - 5.5.0-2.26113.102 - 5.5.0-2.26113.102 - 5.5.0-2.26113.102 - 5.5.0-2.26113.102 - 5.5.0-2.26113.102 - 10.0.0-preview.26113.102 - 5.5.0-2.26113.102 - 5.5.0-2.26113.102 - 10.0.0-beta.26113.102 - 10.0.0-beta.26113.102 - 10.0.0-beta.26113.102 - 10.0.0-beta.26113.102 - 10.0.0-beta.26113.102 - 10.0.0-beta.26113.102 - 10.0.0-beta.26113.102 - 10.0.0-beta.26113.102 - 15.2.300-servicing.26113.102 - 5.5.0-2.26113.102 - 5.5.0-2.26113.102 + 10.0.0-preview.26118.105 + 18.3.0-preview-26118-105 + 18.3.0-preview-26118-105 + 7.5.0-rc.11905 + 10.0.300-alpha.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 10.0.0-preview.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 15.2.300-servicing.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 10.0.0-preview.7.25377.103 - 10.0.0-preview.26113.102 - 18.3.0-release-26113-102 - 10.0.300-alpha.26113.102 - 10.0.300-alpha.26113.102 - 10.0.300-alpha.26113.102 - 10.0.300-alpha.26113.102 - 10.0.300-alpha.26113.102 - 10.0.300-preview.26113.102 - 10.0.300-preview.26113.102 - 10.0.300-preview.26113.102 - 10.0.300-preview.26113.102 - 10.0.300-preview.26113.102 - 10.0.300-preview.26113.102 - 10.0.300-preview.26113.102 - 10.0.300-preview.26113.102 - 10.0.300-preview.26113.102 - 18.3.0-release-26113-102 - 18.3.0-release-26113-102 - 7.5.0-rc.11402 - 7.5.0-rc.11402 - 7.5.0-rc.11402 - 7.5.0-rc.11402 - 7.5.0-rc.11402 - 7.5.0-rc.11402 - 7.5.0-rc.11402 - 7.5.0-rc.11402 - 7.5.0-rc.11402 - 7.5.0-rc.11402 - 7.5.0-rc.11402 - 7.5.0-rc.11402 - 7.5.0-rc.11402 - 7.5.0-rc.11402 - 7.5.0-rc.11402 - 7.5.0-rc.11402 + 10.0.0-preview.26118.105 + 18.3.0-release-26118-105 + 10.0.300-alpha.26118.105 + 10.0.300-alpha.26118.105 + 10.0.300-alpha.26118.105 + 10.0.300-alpha.26118.105 + 10.0.300-alpha.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 18.3.0-release-26118-105 + 18.3.0-release-26118-105 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 10.0.2-servicing.25612.105 10.0.2-servicing.25612.105 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8c47c11bdf60..762e1e184c32 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,42 +1,42 @@ - + - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -72,138 +72,138 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -370,25 +370,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -405,29 +405,29 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 @@ -519,9 +519,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -529,37 +529,37 @@ - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - 262dff34a707ed423ac562a418fd84cb79d5f13f + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet diff --git a/global.json b/global.json index e0837b5f987d..b1ab2c7674d8 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26113.102", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26113.102", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26118.105", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26118.105", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 7022f4d0df3bfacc2e0a9892689ebe5d2df0bba1 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 24 Feb 2026 02:02:47 +0000 Subject: [PATCH 106/179] Update dependencies from https://github.com/microsoft/testfx build 20260223.1 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26121.1 -> To Version 2.2.0-preview.26123.1 MSTest From Version 4.2.0-preview.26121.1 -> To Version 4.2.0-preview.26123.1 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 4cb26bf976a9..5296fe433539 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26121.1 - 4.2.0-preview.26121.1 + 2.2.0-preview.26123.1 + 4.2.0-preview.26123.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 585d977881c4..7a4d0dad1157 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 - + https://github.com/microsoft/testfx - abbd85a373b4bdbd82cc879b4ac67f451b8d3484 + c703adb8f0d0cb60eaa3061d2e63efd829726196 - + https://github.com/microsoft/testfx - abbd85a373b4bdbd82cc879b4ac67f451b8d3484 + c703adb8f0d0cb60eaa3061d2e63efd829726196 https://github.com/dotnet/dotnet From 07018101786d45aaf7a2493374fdc2da1190cef7 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 24 Feb 2026 02:03:37 +0000 Subject: [PATCH 107/179] Update dependencies from https://github.com/microsoft/testfx build 20260223.1 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26121.1 -> To Version 2.2.0-preview.26123.1 MSTest From Version 4.2.0-preview.26121.1 -> To Version 4.2.0-preview.26123.1 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 9fbf61846054..554a5cac0129 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -144,8 +144,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26121.1 - 4.2.0-preview.26121.1 + 2.2.0-preview.26123.1 + 4.2.0-preview.26123.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 492658ac33c0..80bc3b6f88d7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -564,13 +564,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - abbd85a373b4bdbd82cc879b4ac67f451b8d3484 + c703adb8f0d0cb60eaa3061d2e63efd829726196 - + https://github.com/microsoft/testfx - abbd85a373b4bdbd82cc879b4ac67f451b8d3484 + c703adb8f0d0cb60eaa3061d2e63efd829726196 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet From ec8ea613b17e3a4e379089f083b30331cc18ed7d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 24 Feb 2026 02:35:46 +0000 Subject: [PATCH 108/179] Backflow from https://github.com/dotnet/dotnet / 983bf0e build 303089 [[ commit created by automation ]] From 717564b898ba99f8ea187033080ea6ef082d411f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 24 Feb 2026 02:36:05 +0000 Subject: [PATCH 109/179] Update dependencies from build 303089 Updated Dependencies: dotnet-dev-certs, dotnet-user-jwts, dotnet-user-secrets, Microsoft.AspNetCore.Analyzers, Microsoft.AspNetCore.App.Ref.Internal, Microsoft.AspNetCore.Components.SdkAnalyzers, Microsoft.AspNetCore.DeveloperCertificates.XPlat, Microsoft.AspNetCore.Mvc.Analyzers, Microsoft.AspNetCore.Mvc.Api.Analyzers, Microsoft.Dotnet.WinForms.ProjectTemplates, Microsoft.DotNet.Wpf.ProjectTemplates, Microsoft.NET.HostModel, Microsoft.NET.Sdk.WindowsDesktop, Microsoft.NETCore.Platforms, Microsoft.WindowsDesktop.App.Internal (Version 10.0.5-servicing.26122.102 -> 10.0.5-servicing.26123.114) Microsoft.AspNetCore.App.Ref, Microsoft.AspNetCore.Authentication.Facebook, Microsoft.AspNetCore.Authentication.Google, Microsoft.AspNetCore.Authentication.MicrosoftAccount, Microsoft.AspNetCore.Authorization, Microsoft.AspNetCore.Components, Microsoft.AspNetCore.Components.Analyzers, Microsoft.AspNetCore.Components.Forms, Microsoft.AspNetCore.Components.Web, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.AspNetCore.Components.WebAssembly.Server, Microsoft.AspNetCore.Components.WebView, Microsoft.AspNetCore.Metadata, Microsoft.AspNetCore.TestHost, Microsoft.Bcl.AsyncInterfaces, Microsoft.DotNet.Web.ItemTemplates.10.0, Microsoft.DotNet.Web.ProjectTemplates.10.0, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Embedded, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.ObjectPool, Microsoft.JSInterop, Microsoft.NET.ILLink.Tasks, Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64, Microsoft.NETCore.App.Ref, Microsoft.Win32.SystemEvents, Microsoft.WindowsDesktop.App.Ref, System.CodeDom, System.ComponentModel.Composition, System.Composition.AttributedModel, System.Composition.Convention, System.Composition.Hosting, System.Composition.Runtime, System.Composition.TypedParts, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Formats.Asn1, System.IO.Hashing, System.Reflection.MetadataLoadContext, System.Resources.Extensions, System.Security.Cryptography.Pkcs, System.Security.Cryptography.ProtectedData, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encoding.CodePages, System.Text.Json, System.Windows.Extensions (Version 10.0.5 -> 10.0.5) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26122.102 -> 10.0.0-preview.26123.114) Microsoft.Build (Version 18.0.11 -> 18.0.11) Microsoft.Build.Localization (Version 18.0.11-servicing-26122-102 -> 18.0.11-servicing-26123-114) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.0.2-rc.12302 -> 7.0.2-rc.12414) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab, Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common (Version 10.0.105 -> 10.0.105) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.0.0-2.26122.102 -> 5.0.0-2.26123.114) Microsoft.Deployment.DotNet.Releases (Version 2.0.0-preview.1.26122.102 -> 2.0.0-preview.1.26123.114) Microsoft.DiaSymReader (Version 2.2.5 -> 2.2.5) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26122.102 -> 10.0.0-beta.26123.114) Microsoft.FSharp.Compiler (Version 14.0.105-servicing.26122.102 -> 14.0.105-servicing.26123.114) Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.0.1-release-26122-102 -> 18.0.1-release-26123-114) Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.105-servicing.26122.102 -> 10.0.105-servicing.26123.114) Microsoft.Web.Xdt (Version 3.2.5 -> 3.2.5) System.CommandLine (Version 2.0.5 -> 2.0.5) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++---- eng/Version.Details.xml | 392 ++++++++++++------------ eng/common/templates/steps/vmr-sync.yml | 21 -- eng/common/templates/vmr-build-pr.yml | 1 + eng/common/tools.ps1 | 5 + eng/common/tools.sh | 8 +- eng/common/vmr-sync.ps1 | 38 ++- eng/common/vmr-sync.sh | 30 +- global.json | 4 +- 10 files changed, 332 insertions(+), 295 deletions(-) diff --git a/NuGet.config b/NuGet.config index 621bd8d19f49..0650bbda17cb 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 4cb26bf976a9..12852d403444 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.5-servicing.26122.102 - 10.0.5-servicing.26122.102 - 10.0.5-servicing.26122.102 - 10.0.5-servicing.26122.102 + 10.0.5-servicing.26123.114 + 10.0.5-servicing.26123.114 + 10.0.5-servicing.26123.114 + 10.0.5-servicing.26123.114 10.0.5 - 10.0.5-servicing.26122.102 + 10.0.5-servicing.26123.114 10.0.5 10.0.5 10.0.5 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26122.102 + 10.0.5-servicing.26123.114 10.0.5 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26122.102 + 10.0.5-servicing.26123.114 10.0.5 - 10.0.5-servicing.26122.102 - 10.0.5-servicing.26122.102 - 10.0.0-preview.26122.102 + 10.0.5-servicing.26123.114 + 10.0.5-servicing.26123.114 + 10.0.0-preview.26123.114 10.0.5 10.0.5 18.0.11 - 18.0.11-servicing-26122-102 - 7.0.2-rc.12302 + 18.0.11-servicing-26123-114 + 7.0.2-rc.12414 10.0.105 - 5.0.0-2.26122.102 - 5.0.0-2.26122.102 - 5.0.0-2.26122.102 - 5.0.0-2.26122.102 - 5.0.0-2.26122.102 - 5.0.0-2.26122.102 - 5.0.0-2.26122.102 - 10.0.0-preview.26122.102 - 5.0.0-2.26122.102 - 5.0.0-2.26122.102 - 2.0.0-preview.1.26122.102 + 5.0.0-2.26123.114 + 5.0.0-2.26123.114 + 5.0.0-2.26123.114 + 5.0.0-2.26123.114 + 5.0.0-2.26123.114 + 5.0.0-2.26123.114 + 5.0.0-2.26123.114 + 10.0.0-preview.26123.114 + 5.0.0-2.26123.114 + 5.0.0-2.26123.114 + 2.0.0-preview.1.26123.114 2.2.5 - 10.0.0-beta.26122.102 - 10.0.0-beta.26122.102 - 10.0.0-beta.26122.102 - 10.0.0-beta.26122.102 - 10.0.0-beta.26122.102 - 10.0.0-beta.26122.102 + 10.0.0-beta.26123.114 + 10.0.0-beta.26123.114 + 10.0.0-beta.26123.114 + 10.0.0-beta.26123.114 + 10.0.0-beta.26123.114 + 10.0.0-beta.26123.114 10.0.5 10.0.5 - 10.0.5-servicing.26122.102 - 10.0.5-servicing.26122.102 - 10.0.0-beta.26122.102 - 10.0.0-beta.26122.102 + 10.0.5-servicing.26123.114 + 10.0.5-servicing.26123.114 + 10.0.0-beta.26123.114 + 10.0.0-beta.26123.114 10.0.5 10.0.5 10.0.5 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 14.0.105-servicing.26122.102 + 14.0.105-servicing.26123.114 10.0.5 - 5.0.0-2.26122.102 - 5.0.0-2.26122.102 - 10.0.5-servicing.26122.102 + 5.0.0-2.26123.114 + 5.0.0-2.26123.114 + 10.0.5-servicing.26123.114 10.0.5 10.0.5 10.0.0-preview.7.25377.103 - 10.0.0-preview.26122.102 - 10.0.5-servicing.26122.102 - 18.0.1-release-26122-102 + 10.0.0-preview.26123.114 + 10.0.5-servicing.26123.114 + 18.0.1-release-26123-114 10.0.5 - 10.0.5-servicing.26122.102 + 10.0.5-servicing.26123.114 10.0.105 10.0.105 10.0.105 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.105 10.0.105 10.0.105 - 10.0.105-servicing.26122.102 + 10.0.105-servicing.26123.114 10.0.105 - 10.0.105-servicing.26122.102 + 10.0.105-servicing.26123.114 10.0.105 10.0.105 - 10.0.105-servicing.26122.102 - 18.0.1-release-26122-102 - 18.0.1-release-26122-102 + 10.0.105-servicing.26123.114 + 18.0.1-release-26123-114 + 18.0.1-release-26123-114 3.2.5 10.0.5 - 10.0.5-servicing.26122.102 + 10.0.5-servicing.26123.114 10.0.5 - 7.0.2-rc.12302 - 7.0.2-rc.12302 - 7.0.2-rc.12302 - 7.0.2-rc.12302 - 7.0.2-rc.12302 - 7.0.2-rc.12302 - 7.0.2-rc.12302 - 7.0.2-rc.12302 - 7.0.2-rc.12302 - 7.0.2-rc.12302 - 7.0.2-rc.12302 - 7.0.2-rc.12302 - 7.0.2-rc.12302 - 7.0.2-rc.12302 - 7.0.2-rc.12302 - 7.0.2-rc.12302 + 7.0.2-rc.12414 + 7.0.2-rc.12414 + 7.0.2-rc.12414 + 7.0.2-rc.12414 + 7.0.2-rc.12414 + 7.0.2-rc.12414 + 7.0.2-rc.12414 + 7.0.2-rc.12414 + 7.0.2-rc.12414 + 7.0.2-rc.12414 + 7.0.2-rc.12414 + 7.0.2-rc.12414 + 7.0.2-rc.12414 + 7.0.2-rc.12414 + 7.0.2-rc.12414 + 7.0.2-rc.12414 10.0.5 2.0.5 10.0.5 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 585d977881c4..8cf32d877ced 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 - + https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - e3f0655801bae4b7f1b7b5ceb3a1a60eb748e115 + 983bf0e912ce6327d43649b65ea0947372a8a1e7 diff --git a/eng/common/templates/steps/vmr-sync.yml b/eng/common/templates/steps/vmr-sync.yml index 599afb6186b8..eb619c502683 100644 --- a/eng/common/templates/steps/vmr-sync.yml +++ b/eng/common/templates/steps/vmr-sync.yml @@ -38,27 +38,6 @@ steps: displayName: Label PR commit workingDirectory: $(Agent.BuildDirectory)/repo -- script: | - vmr_sha=$(grep -oP '(?<=Sha=")[^"]*' $(Agent.BuildDirectory)/repo/eng/Version.Details.xml) - echo "##vso[task.setvariable variable=vmr_sha]$vmr_sha" - displayName: Obtain the vmr sha from Version.Details.xml (Unix) - condition: ne(variables['Agent.OS'], 'Windows_NT') - workingDirectory: $(Agent.BuildDirectory)/repo - -- powershell: | - [xml]$xml = Get-Content -Path $(Agent.BuildDirectory)/repo/eng/Version.Details.xml - $vmr_sha = $xml.SelectSingleNode("//Source").Sha - Write-Output "##vso[task.setvariable variable=vmr_sha]$vmr_sha" - displayName: Obtain the vmr sha from Version.Details.xml (Windows) - condition: eq(variables['Agent.OS'], 'Windows_NT') - workingDirectory: $(Agent.BuildDirectory)/repo - -- script: | - git fetch --all - git checkout $(vmr_sha) - displayName: Checkout VMR at correct sha for repo flow - workingDirectory: ${{ parameters.vmrPath }} - - script: | git config --global user.name "dotnet-maestro[bot]" git config --global user.email "dotnet-maestro[bot]@users.noreply.github.com" diff --git a/eng/common/templates/vmr-build-pr.yml b/eng/common/templates/vmr-build-pr.yml index ce3c29a62faf..2f3694fa1323 100644 --- a/eng/common/templates/vmr-build-pr.yml +++ b/eng/common/templates/vmr-build-pr.yml @@ -34,6 +34,7 @@ resources: type: github name: dotnet/dotnet endpoint: dotnet + ref: refs/heads/main # Set to whatever VMR branch the PR build should insert into stages: - template: /eng/pipelines/templates/stages/vmr-build.yml@vmr diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 049fe6db994e..977a2d4b1039 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -824,6 +824,11 @@ function MSBuild-Core() { $cmdArgs = "$($buildTool.Command) /m /nologo /clp:Summary /v:$verbosity /nr:$nodeReuse /p:ContinuousIntegrationBuild=$ci" + # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable + if ($env:MSBUILD_MT_ENABLED -eq "1") { + $cmdArgs += ' -mt' + } + if ($warnAsError) { $cmdArgs += ' /warnaserror /p:TreatWarningsAsErrors=true' } diff --git a/eng/common/tools.sh b/eng/common/tools.sh index c1841c9dfd0f..1b296f646c23 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -526,7 +526,13 @@ function MSBuild-Core { } } - RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" + # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable + local mt_switch="" + if [[ "${MSBUILD_MT_ENABLED:-}" == "1" ]]; then + mt_switch="-mt" + fi + + RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch $mt_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" } function GetDarc { diff --git a/eng/common/vmr-sync.ps1 b/eng/common/vmr-sync.ps1 index 97302f3205be..b37992d91cf0 100755 --- a/eng/common/vmr-sync.ps1 +++ b/eng/common/vmr-sync.ps1 @@ -103,12 +103,20 @@ Set-StrictMode -Version Latest Highlight 'Installing .NET, preparing the tooling..' . .\eng\common\tools.ps1 $dotnetRoot = InitializeDotNetCli -install:$true +$env:DOTNET_ROOT = $dotnetRoot $darc = Get-Darc -$dotnet = "$dotnetRoot\dotnet.exe" Highlight "Starting the synchronization of VMR.." # Synchronize the VMR +$versionDetailsPath = Resolve-Path (Join-Path $PSScriptRoot '..\Version.Details.xml') | Select-Object -ExpandProperty Path +[xml]$versionDetails = Get-Content -Path $versionDetailsPath +$repoName = $versionDetails.SelectSingleNode('//Source').Mapping +if (-not $repoName) { + Fail "Failed to resolve repo mapping from $versionDetailsPath" + exit 1 +} + $darcArgs = ( "vmr", "forwardflow", "--tmp", $tmpDir, @@ -130,9 +138,27 @@ if ($LASTEXITCODE -eq 0) { Highlight "Synchronization succeeded" } else { - Fail "Synchronization of repo to VMR failed!" - Fail "'$vmrDir' is left in its last state (re-run of this script will reset it)." - Fail "Please inspect the logs which contain path to the failing patch file (use -debugOutput to get all the details)." - Fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script." - exit 1 + Highlight "Failed to flow code into the local VMR. Falling back to resetting the VMR to match repo contents..." + git -C $vmrDir reset --hard + + $resetArgs = ( + "vmr", "reset", + "${repoName}:HEAD", + "--vmr", $vmrDir, + "--tmp", $tmpDir, + "--additional-remotes", "${repoName}:${repoRoot}" + ) + + & "$darc" $resetArgs + + if ($LASTEXITCODE -eq 0) { + Highlight "Successfully reset the VMR using 'darc vmr reset'" + } + else { + Fail "Synchronization of repo to VMR failed!" + Fail "'$vmrDir' is left in its last state (re-run of this script will reset it)." + Fail "Please inspect the logs which contain path to the failing patch file (use -debugOutput to get all the details)." + Fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script." + exit 1 + } } diff --git a/eng/common/vmr-sync.sh b/eng/common/vmr-sync.sh index 44239e331c0c..198caec59bd4 100755 --- a/eng/common/vmr-sync.sh +++ b/eng/common/vmr-sync.sh @@ -186,6 +186,13 @@ fi # Synchronize the VMR +version_details_path=$(cd "$scriptroot/.."; pwd -P)/Version.Details.xml +repo_name=$(grep -m 1 ' Date: Tue, 24 Feb 2026 10:28:01 +0000 Subject: [PATCH 110/179] Update dependencies from build 303150 Updated Dependencies: dotnet-dev-certs, dotnet-user-jwts, dotnet-user-secrets, Microsoft.AspNetCore.Analyzers, Microsoft.AspNetCore.App.Ref.Internal, Microsoft.AspNetCore.Components.SdkAnalyzers, Microsoft.AspNetCore.DeveloperCertificates.XPlat, Microsoft.AspNetCore.Mvc.Analyzers, Microsoft.AspNetCore.Mvc.Api.Analyzers, Microsoft.Dotnet.WinForms.ProjectTemplates, Microsoft.DotNet.Wpf.ProjectTemplates, Microsoft.NET.HostModel, Microsoft.NET.Sdk.WindowsDesktop, Microsoft.NETCore.Platforms, Microsoft.WindowsDesktop.App.Internal (Version 10.0.5-servicing.26123.114 -> 10.0.5-servicing.26123.124) Microsoft.AspNetCore.App.Ref, Microsoft.AspNetCore.Authentication.Facebook, Microsoft.AspNetCore.Authentication.Google, Microsoft.AspNetCore.Authentication.MicrosoftAccount, Microsoft.AspNetCore.Authorization, Microsoft.AspNetCore.Components, Microsoft.AspNetCore.Components.Analyzers, Microsoft.AspNetCore.Components.Forms, Microsoft.AspNetCore.Components.Web, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.AspNetCore.Components.WebAssembly.Server, Microsoft.AspNetCore.Components.WebView, Microsoft.AspNetCore.Metadata, Microsoft.AspNetCore.TestHost, Microsoft.Bcl.AsyncInterfaces, Microsoft.DotNet.Web.ItemTemplates.10.0, Microsoft.DotNet.Web.ProjectTemplates.10.0, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Embedded, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.ObjectPool, Microsoft.JSInterop, Microsoft.NET.ILLink.Tasks, Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64, Microsoft.NETCore.App.Ref, Microsoft.Win32.SystemEvents, Microsoft.WindowsDesktop.App.Ref, System.CodeDom, System.ComponentModel.Composition, System.Composition.AttributedModel, System.Composition.Convention, System.Composition.Hosting, System.Composition.Runtime, System.Composition.TypedParts, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Formats.Asn1, System.IO.Hashing, System.Reflection.MetadataLoadContext, System.Resources.Extensions, System.Security.Cryptography.Pkcs, System.Security.Cryptography.ProtectedData, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encoding.CodePages, System.Text.Json, System.Windows.Extensions (Version 10.0.5 -> 10.0.5) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26123.114 -> 10.0.0-preview.26123.124) Microsoft.Build (Version 18.0.11 -> 18.0.11) Microsoft.Build.Localization (Version 18.0.11-servicing-26123-114 -> 18.0.11-servicing-26123-124) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.0.2-rc.12414 -> 7.0.2-rc.12424) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab, Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common (Version 10.0.105 -> 10.0.105) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.0.0-2.26123.114 -> 5.0.0-2.26123.124) Microsoft.Deployment.DotNet.Releases (Version 2.0.0-preview.1.26123.114 -> 2.0.0-preview.1.26123.124) Microsoft.DiaSymReader (Version 2.2.5 -> 2.2.5) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26123.114 -> 10.0.0-beta.26123.124) Microsoft.FSharp.Compiler (Version 14.0.105-servicing.26123.114 -> 14.0.105-servicing.26123.124) Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.0.1-release-26123-114 -> 18.0.1-release-26123-124) Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.105-servicing.26123.114 -> 10.0.105-servicing.26123.124) Microsoft.Web.Xdt (Version 3.2.5 -> 3.2.5) System.CommandLine (Version 2.0.5 -> 2.0.5) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index 0650bbda17cb..4674f95aeef5 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 3e6e47abd31c..875eddcaaeb0 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.5-servicing.26123.114 - 10.0.5-servicing.26123.114 - 10.0.5-servicing.26123.114 - 10.0.5-servicing.26123.114 + 10.0.5-servicing.26123.124 + 10.0.5-servicing.26123.124 + 10.0.5-servicing.26123.124 + 10.0.5-servicing.26123.124 10.0.5 - 10.0.5-servicing.26123.114 + 10.0.5-servicing.26123.124 10.0.5 10.0.5 10.0.5 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26123.114 + 10.0.5-servicing.26123.124 10.0.5 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26123.114 + 10.0.5-servicing.26123.124 10.0.5 - 10.0.5-servicing.26123.114 - 10.0.5-servicing.26123.114 - 10.0.0-preview.26123.114 + 10.0.5-servicing.26123.124 + 10.0.5-servicing.26123.124 + 10.0.0-preview.26123.124 10.0.5 10.0.5 18.0.11 - 18.0.11-servicing-26123-114 - 7.0.2-rc.12414 + 18.0.11-servicing-26123-124 + 7.0.2-rc.12424 10.0.105 - 5.0.0-2.26123.114 - 5.0.0-2.26123.114 - 5.0.0-2.26123.114 - 5.0.0-2.26123.114 - 5.0.0-2.26123.114 - 5.0.0-2.26123.114 - 5.0.0-2.26123.114 - 10.0.0-preview.26123.114 - 5.0.0-2.26123.114 - 5.0.0-2.26123.114 - 2.0.0-preview.1.26123.114 + 5.0.0-2.26123.124 + 5.0.0-2.26123.124 + 5.0.0-2.26123.124 + 5.0.0-2.26123.124 + 5.0.0-2.26123.124 + 5.0.0-2.26123.124 + 5.0.0-2.26123.124 + 10.0.0-preview.26123.124 + 5.0.0-2.26123.124 + 5.0.0-2.26123.124 + 2.0.0-preview.1.26123.124 2.2.5 - 10.0.0-beta.26123.114 - 10.0.0-beta.26123.114 - 10.0.0-beta.26123.114 - 10.0.0-beta.26123.114 - 10.0.0-beta.26123.114 - 10.0.0-beta.26123.114 + 10.0.0-beta.26123.124 + 10.0.0-beta.26123.124 + 10.0.0-beta.26123.124 + 10.0.0-beta.26123.124 + 10.0.0-beta.26123.124 + 10.0.0-beta.26123.124 10.0.5 10.0.5 - 10.0.5-servicing.26123.114 - 10.0.5-servicing.26123.114 - 10.0.0-beta.26123.114 - 10.0.0-beta.26123.114 + 10.0.5-servicing.26123.124 + 10.0.5-servicing.26123.124 + 10.0.0-beta.26123.124 + 10.0.0-beta.26123.124 10.0.5 10.0.5 10.0.5 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 14.0.105-servicing.26123.114 + 14.0.105-servicing.26123.124 10.0.5 - 5.0.0-2.26123.114 - 5.0.0-2.26123.114 - 10.0.5-servicing.26123.114 + 5.0.0-2.26123.124 + 5.0.0-2.26123.124 + 10.0.5-servicing.26123.124 10.0.5 10.0.5 10.0.0-preview.7.25377.103 - 10.0.0-preview.26123.114 - 10.0.5-servicing.26123.114 - 18.0.1-release-26123-114 + 10.0.0-preview.26123.124 + 10.0.5-servicing.26123.124 + 18.0.1-release-26123-124 10.0.5 - 10.0.5-servicing.26123.114 + 10.0.5-servicing.26123.124 10.0.105 10.0.105 10.0.105 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.105 10.0.105 10.0.105 - 10.0.105-servicing.26123.114 + 10.0.105-servicing.26123.124 10.0.105 - 10.0.105-servicing.26123.114 + 10.0.105-servicing.26123.124 10.0.105 10.0.105 - 10.0.105-servicing.26123.114 - 18.0.1-release-26123-114 - 18.0.1-release-26123-114 + 10.0.105-servicing.26123.124 + 18.0.1-release-26123-124 + 18.0.1-release-26123-124 3.2.5 10.0.5 - 10.0.5-servicing.26123.114 + 10.0.5-servicing.26123.124 10.0.5 - 7.0.2-rc.12414 - 7.0.2-rc.12414 - 7.0.2-rc.12414 - 7.0.2-rc.12414 - 7.0.2-rc.12414 - 7.0.2-rc.12414 - 7.0.2-rc.12414 - 7.0.2-rc.12414 - 7.0.2-rc.12414 - 7.0.2-rc.12414 - 7.0.2-rc.12414 - 7.0.2-rc.12414 - 7.0.2-rc.12414 - 7.0.2-rc.12414 - 7.0.2-rc.12414 - 7.0.2-rc.12414 + 7.0.2-rc.12424 + 7.0.2-rc.12424 + 7.0.2-rc.12424 + 7.0.2-rc.12424 + 7.0.2-rc.12424 + 7.0.2-rc.12424 + 7.0.2-rc.12424 + 7.0.2-rc.12424 + 7.0.2-rc.12424 + 7.0.2-rc.12424 + 7.0.2-rc.12424 + 7.0.2-rc.12424 + 7.0.2-rc.12424 + 7.0.2-rc.12424 + 7.0.2-rc.12424 + 7.0.2-rc.12424 10.0.5 2.0.5 10.0.5 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 169dd4d0184c..4ca37227b6c1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 983bf0e912ce6327d43649b65ea0947372a8a1e7 + f8e4f7d30c6813e5fb21e641f1b323fb67921108 diff --git a/global.json b/global.json index a0684ffd2a54..8ab387fb0280 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26123.114", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26123.114", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26123.124", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26123.124", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 32c9942cd2768f53029e055b7998aa48cba9b3b1 Mon Sep 17 00:00:00 2001 From: Jan Jones Date: Tue, 24 Feb 2026 13:49:22 +0100 Subject: [PATCH 111/179] File-based apps: add support for `#:include` (#52347) --- documentation/general/dotnet-run-file.md | 180 +-- .../FileBasedProgramsResources.resx | 71 +- .../FileLevelDirectiveHelpers.cs | 238 ++- .../InternalAPI.Unshipped.txt | 32 +- .../xlf/FileBasedProgramsResources.cs.xlf | 23 +- .../xlf/FileBasedProgramsResources.de.xlf | 23 +- .../xlf/FileBasedProgramsResources.es.xlf | 23 +- .../xlf/FileBasedProgramsResources.fr.xlf | 23 +- .../xlf/FileBasedProgramsResources.it.xlf | 23 +- .../xlf/FileBasedProgramsResources.ja.xlf | 23 +- .../xlf/FileBasedProgramsResources.ko.xlf | 23 +- .../xlf/FileBasedProgramsResources.pl.xlf | 23 +- .../xlf/FileBasedProgramsResources.pt-BR.xlf | 23 +- .../xlf/FileBasedProgramsResources.ru.xlf | 23 +- .../xlf/FileBasedProgramsResources.tr.xlf | 23 +- .../FileBasedProgramsResources.zh-Hans.xlf | 23 +- .../FileBasedProgramsResources.zh-Hant.xlf | 23 +- .../Commands/Package/Add/PackageAddCommand.cs | 9 +- .../Project/Convert/ProjectConvertCommand.cs | 68 +- .../dotnet/Commands/Run/Api/RunApiCommand.cs | 24 +- src/Cli/dotnet/Commands/Run/RunCommand.cs | 15 +- .../Run/VirtualProjectBuildingCommand.cs | 176 ++- .../Resources.resx | 11 + .../VirtualProjectBuilder.cs | 367 ++++- .../xlf/Resources.cs.xlf | 15 + .../xlf/Resources.de.xlf | 15 + .../xlf/Resources.es.xlf | 15 + .../xlf/Resources.fr.xlf | 15 + .../xlf/Resources.it.xlf | 15 + .../xlf/Resources.ja.xlf | 15 + .../xlf/Resources.ko.xlf | 15 + .../xlf/Resources.pl.xlf | 15 + .../xlf/Resources.pt-BR.xlf | 15 + .../xlf/Resources.ru.xlf | 15 + .../xlf/Resources.tr.xlf | 15 + .../xlf/Resources.zh-Hans.xlf | 15 + .../xlf/Resources.zh-Hant.xlf | 15 + .../Assertions/DirectoryInfoAssertions.cs | 35 + .../Convert/DotnetProjectConvertTests.cs | 427 ++++-- .../CommandTests/Run/RunFileTests.cs | 1336 ++++++++++++++--- 40 files changed, 2862 insertions(+), 621 deletions(-) diff --git a/documentation/general/dotnet-run-file.md b/documentation/general/dotnet-run-file.md index 6a0e393daefd..3fe98605ab2b 100644 --- a/documentation/general/dotnet-run-file.md +++ b/documentation/general/dotnet-run-file.md @@ -58,8 +58,12 @@ Additionally, the implicit project file has the following customizations: in case there is a project or solution in the same directory as the file-based app. This ensures that items from nested projects and artifacts are not included by the app. + - `EnableDefaultCompileItems` property is set to `false` and there is a special `Compile` item for the entry-point file instead. + See [multiple files](#multiple-files) for more details. + - `EnableDefaultEmbeddedResourceItems` and `EnableDefaultNoneItems` properties are set to `false` if the default SDK (`Microsoft.NET.Sdk`) is being used. This avoids including files like `./**/*.resx` in simple file-based apps where users usually don't expect that. + See [multiple files](#multiple-files) for more details. ## Grow up @@ -72,16 +76,13 @@ This action should not change the behavior of the target program. dotnet project convert file.cs ``` -The command takes a path which can be either -- path to the entry-point file in case of single entry-point programs, or -- path to the target directory (then all entry points are converted; - it is not possible to convert just a single entry point in multi-entry-point program). +The command takes a path to the entry-point file. ## Target path The path passed to `dotnet run ./some/path.cs` is called *the target path*. -The target path must be a file which either has the `.cs` file extension, -or a file whose contents start with `#!`. +The target path must point to *the entry-point file* which +either has the `.cs` file extension, or whose contents start with `#!`. *The target directory* is the directory of the target file. ## Integration into the existing `dotnet run` command @@ -95,6 +96,7 @@ The file-based build and run kicks in only when: Otherwise, project-based `dotnet run` fallback is used and you might get an error like "Couldn't find a project to run." You can explicitly use the `--file` option to avoid the fallback behavior. +However, it is discouraged to put file-based apps in the same directory as a `.csproj` file (such file-based apps might not be properly recognized by tooling). File-based programs are processed by `dotnet run` equivalently to project-based programs unless specified otherwise in this document. For example, the remaining command-line arguments after the first argument (the target path) are passed through to the target app @@ -128,81 +130,24 @@ Command `dotnet clean file.cs` can be used to clean build artifacts of the file- Commands `dotnet package add PackageName --file app.cs` and `dotnet package remove PackageName --file app.cs` can be used to manipulate `#:package` directives in the C# files, similarly to what the commands do for project-based apps. -## Entry points - -If a file is given to `dotnet run`, it has to be an *entry-point file*, otherwise an error is reported. -We want to report an error for non-entry-point files to avoid the confusion of being able to `dotnet run util.cs`. - -Internally, the SDK CLI detects entry points by parsing all `.cs` files in the directory tree of the entry point file with default parsing options (in particular, no ``) -and checking which ones contain top-level statements (`Main` methods are not supported for now as that would require full semantic analysis, not just parsing). -Results of this detection are used to exclude other entry points from [builds](#multiple-entry-points) and [file-level directive collection](#directives-for-project-metadata). -This means the CLI might consider a file to be an entry point which later the compiler doesn't -(for example because its top-level statements are under `#if !SYMBOL` and the build has `DefineConstants=SYMBOL`). -However such inconsistencies should be rare and hence that is a better trade off than letting the compiler decide which files are entry points -because that could require multiple builds (first determine entry points and then re-build with file-level directives except those from other entry points). -To avoid parsing all C# files twice (in CLI and in the compiler), the CLI could use the compiler server for parsing so the trees are reused -(unless the parse options change via the directives), and also [cache](#optimizations) the results to avoid parsing on subsequent runs. - -## Multiple C# files - -Because of the [implicit project file](#implicit-project-file), -other files in the target directory or its subdirectories are included in the compilation. -For example, other `.cs` files but also `.resx` (embedded resources). -Similarly, implicit build files like `Directory.Build.props` or `Directory.Packages.props` are used during the build. - -> [!CAUTION] -> Multi-file support is postponed for .NET 11. -> In .NET 10, only the single file passed as the command-line argument to `dotnet run` is part of the compilation. -> Specifically, the virtual project has property `EnableDefaultCompileItems=false` -> (which can be customized via `#:property` directive), and a `Compile` item for the entry point file. -> During [conversion](#grow-up), any `Content`, `None`, `Compile`, and `EmbeddedResource` items that do not have metadata `ExcludeFromFileBasedAppConversion=true` -> and that are files inside the entry point file's directory tree are copied to the converted directory. - -### Nested files - -If there are nested project files like -``` -App/File.cs -App/Nested/Nested.csproj -App/Nested/File.cs -``` -executing `dotnet run app/file.cs` includes the nested `.cs` file in the compilation. -That is consistent with normal builds with explicit project files -and usually the build fails because there are multiple entry points or other clashes. - -For `.csproj` files inside the target directory and its parent directories, we do not report any errors/warnings. -That's because it might be perfectly reasonable to have file-based programs nested in another project-based program -(most likely excluded from that project's compilation via something like ``). - -### Multiple entry points +## Multiple files -If there are multiple entry-point files in the target directory, the build ignores other entry-point files. -It is an error to have an entry-point file in a subdirectory of the target directory -(because it is unclear how such program should be converted to a project-based one). +By default, the app only includes the entry-point file (plus any implicit build files like `Directory.Build.props` are considered). +This is achieved by having property `EnableDefaultCompileItems=false` and entry-point file `Compile` item in the virtual project. +(The `Compile` item has `Exclude="@(Compile)"` to avoid duplicate `Compile` items when using e.g., `#:include *.cs` directive). -Thanks to this, it is possible to have a structure like -``` -App/Util.cs -App/Program1.cs -App/Program2.cs -``` -where either `Program1.cs` or `Program2.cs` can be run and both of them have access to `Util.cs`. +Thanks to this, it is possible to have multiple file-based apps in a single directory. -Behind the scenes, there are multiple implicit projects -(and during [grow up](#grow-up), multiple project files are materialized -and the original C# files are moved to the corresponding project subdirectories): -``` -App/Shared/Util.cs -App/Program1/Program1.cs -App/Program1/Program1.csproj -App/Program2/Program2.cs -App/Program2/Program2.csproj -``` +Default items like `.resx` are included in the build only if an `#:sdk` other than `Microsoft.NET.Sdk` is used (to improve performance for simple file-based apps). +Again, this is achieved by setting `EnableDefaultNoneItems=false` and `EnableDefaultEmbeddedResourceItems=false` in the virtual project. -The generated folders might need to be named differently to avoid clashes with existing folders. +To customize this default behavior, you can use the `#:include`/`#:exclude` [directives](#directives-for-project-metadata) +or use some custom MSBuild code like `#:property EnableDefaultCompileItems=true`. -The entry-point projects (`Program1` and `Program2` in our example) -have the shared `.cs` files source-included via ``. +During [conversion](#grow-up), any `Content`, `None`, `Compile`, and `EmbeddedResource` items that do not have metadata `ExcludeFromFileBasedAppConversion=true` are copied into the output directory. +The implicit `EnableDefault*Items` properties and `Compile` item are not preserved in the converted project, +because the constructed project will have the same behavior even if all default items are included thanks to the output directory being isolated +and the conversion process only copying the items that were included in the original virtual project. ## Build outputs @@ -223,9 +168,6 @@ The same cleanup can be performed manually via command `dotnet clean-file-based- It is possible to specify some project metadata via *file-level directives* which are [ignored][ignored-directives] by the C# language but recognized by the SDK CLI. -Directives `sdk`, `package`, `property`, and `project` are translated into -``, ``, ``, and `` project elements, respectively. -Other directives result in an error, reserving them for future use. ```cs #:sdk Microsoft.NET.Sdk.Web @@ -233,12 +175,13 @@ Other directives result in an error, reserving them for future use. #:property LangVersion=preview #:package System.CommandLine@2.0.0-* #:project ../MyLibrary +#:include ./**/*.cs ``` Each directive has a kind (e.g., `package`), a name (e.g., `System.CommandLine`), a separator (e.g., `@`), and a value (e.g., the package version). -The value is required for `#:property`, optional for `#:package`/`#:sdk`, and disallowed for `#:project`. +The value is required for `#:property`, optional for `#:package`/`#:sdk`, and disallowed for `#:project`/`#:include`. -The name must be separated from the kind (`package`/`sdk`/`property`) of the directive by whitespace +The name must be separated from the kind of the directive by whitespace and any leading and trailing white space is not considered part of the name and value. The directives are processed as follows: @@ -247,17 +190,40 @@ The directives are processed as follows: and the subsequent `#:sdk` directive names and values are injected as `` elements (or without the `Version` attribute if it has no value). It is an error if the name is empty (the version is allowed to be empty, but that results in empty `Version=""`). -- A `#:property` is injected as `<{0}>{1}` in a ``. +- Each `#:property` is injected as `<{0}>{1}` in a ``. It is an error if property does not have a value or if its name is empty (the value is allowed to be empty) or contains invalid characters. -- A `#:package` is injected as `` (or without the `Version` attribute if it has no value) in an ``. +- Each `#:package` is injected as `` (or without the `Version` attribute if it has no value) in an ``. It is an error if its name is empty (the value, i.e., package version, is allowed to be empty, but that results in empty `Version=""`). -- A `#:project` is injected as `` in an ``. + It is valid to have a `#:package` directive without a version. + That's useful when central package management (CPM) is used. + NuGet will report an appropriate error if the version is missing and CPM is not enabled. + +- Each `#:project` is injected as `` in an ``. + It is an error if the value is empty. If the path points to an existing directory, a project file is found inside that directory and its path is used instead (because `ProjectReference` items don't support directory paths). An error is reported if zero or more than one projects are found in the directory, just like `dotnet reference add` would do. +- Each `#:include` is injected as `<{1} Include="{0}" />` in an `` + where `{0}` is the directive's value and `{1}` is determined by its extension. + The mapping can be customized by setting the MSBuild property `FileBasedProgramsItemMapping` + which is by default set to `.cs=Compile;.resx=EmbeddedResource;.json=None;.razor=Content`. + (The mapping customization is currently gated under a feature flag that can be enabled by setting the MSBuild property `ExperimentalFileBasedProgramEnableItemMapping=true`.) + + It is an error if the value is empty. + + Relative paths are resolved relative to the file containing the directive. + + This directive is currently gated under a feature flag that can be enabled by setting the MSBuild property `ExperimentalFileBasedProgramEnableIncludeDirective=true`. + +- Each `#:exclude` is injected similarly to `#:include` but with `Remove="{0}"` instead of `Include="{0}"`. + + This directive is currently gated under a feature flag that can be enabled by setting the MSBuild property `ExperimentalFileBasedProgramEnableExcludeDirective=true`. + +- Other directive kinds result in an error, reserving them for future use. + Directive values support MSBuild variables (like `$(..)`) normally as they are translated literally and left to MSBuild engine to process. However, in `#:project` directives, variables might not be preserved during [grow up](#grow-up), because there is additional processing of those directives that makes it technically challenging to preserve variables in all cases @@ -272,7 +238,9 @@ Because these directives are limited by the C# language to only appear before th dotnet CLI can look for them via a regex or Roslyn lexer without any knowledge of defined conditional symbols and can do that efficiently by stopping the search when it sees the first "C# token". -For a given `dotnet run file.cs`, we include directives from the current entry point file (`file.cs`) and all other non-entry-point files. +For a given `dotnet run file.cs`, we include directives from the current entry point file (`file.cs`) and all other non-entry-point C# files, +specifically from all `Compile` items included in the project, no matter whether the `Compile` items are specified in some MSBuild code or inferred from `#:include`. +(Processing directives from other files is currently gated under a feature flag that can be enabled by setting the MSBuild property `ExperimentalFileBasedProgramEnableTransitiveDirectives=true`.) The order in which other files are processed is currently unspecified (can change across SDK versions) but deterministic (stable in a given SDK version). We do not limit these directives to appear only in entry point files because it allows: - a non-entry-point file like `Util.cs` to be self-contained and have all the `#:package`s it needs specified in it, @@ -285,11 +253,7 @@ Later with deduplication, separate "self-contained" utilities could reference ov even if they end up in the same compilation. For example, properties could be concatenated via `;`, more specific package versions could override less specific ones. -It is valid to have a `#:package` directive without a version. -That's useful when central package management (CPM) is used. -NuGet will report an appropriate error if the version is missing and CPM is not enabled. - -During [grow up](#grow-up), `#:` directives are removed from the `.cs` files and turned into elements in the corresponding `.csproj` files. +During [grow up](#grow-up), `#:` directives are removed from the `.cs` files and turned into elements in the converted `.csproj` file. For project-based programs, `#:` directives are an error (reported by Roslyn when it's told it is in "project-based" mode). `#!` directives are also removed during grow up, although we could consider to have an option to preserve them (since they might still be valid after grow up, depending on which program they are actually specifying to "interpret" the file, i.e., it might not be `dotnet run` at all). @@ -346,40 +310,18 @@ would need to search for a file-based program in the current directory instead o We could add a universal option that works with both project-based and file-based programs, like `dotnet run --directory ./dir/`. For inspiration, `dotnet test` also has a `--directory` option. We already have a `--file` option. Both could be unified as `--path`. - -If we want to also support [multi-entry-point scenarios](#multiple-entry-points), -we might need an option like `dotnet run --entry ./dir/name` which would work for both `./dir/name.cs` and `./dir/name/name.csproj`. +Since there can be multiple entry points in a single directory, it would be useful to have +an option like `dotnet run --entry ./dir/name` which would work for both `./dir/name.cs` and `./dir/name/name.csproj`. ### Nested files errors -Performance issues might arise if there are many [nested files](#nested-files) (possibly unintentionally), -and it might not be clear to users that `dotnet run file.cs` will include other `.cs` files in the compilation. -Therefore, we could consider some switch (a command-line option and/or a `#` language directive) to enable/disable this behavior. -When disabled, [grow up](#grow-up) would generate projects in subdirectories -similarly to [multi-entry-point scenarios](#multiple-entry-points) to preserve the program's behavior. - -Including `.cs` files from nested folders which contain `.csproj`s might be unexpected, -hence we could consider excluding items from nested project folders. - -Similarly, we could report an error if there are many nested directories and files, -so for example, if someone puts a C# file into `C:/sources` and executes `dotnet run C:/sources/file.cs` or opens that in the IDE, -we do not walk all user's sources. Again, this problem exists with project-based programs as well. -Note that having a project-based or file-based program in the drive root would result in +We could report an error if there are many nested directories and files, +so for example, if someone puts a C# file with `#:include **.cs` into `C:/sources` +and executes `dotnet run C:/sources/file.cs` or opens that in the IDE, +we do not walk all user's sources. Note that this problem exists with project-based programs as well. +Also, having a project-based or file-based program in the drive root would result in [error MSB5029](https://learn.microsoft.com/visualstudio/msbuild/errors/msb5029). -### Multiple entry points implementation - -We could consider using `InternalsVisibleTo` attribute but that might result in slight differences between single- and multi-entry-point programs -(if not now then perhaps in the future if [some "more internal" accessibility](https://github.com/dotnet/csharplang/issues/6794) is added to C# which doesn't respect `InternalsVisibleTo`) -which would be undesirable when users start with a single entry point and later add another. -Also, `InternalsVisibleTo` needs to be added into a C# file as an attribute, or via a complex-looking `AssemblyAttribute` item group into the `.csproj` like: - -```xml - - - -``` - ### Shebang support Some shells do not support multiple command-line arguments in the shebang diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileBasedProgramsResources.resx b/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileBasedProgramsResources.resx index 0af28bb5fd1f..b2c4f12785eb 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileBasedProgramsResources.resx +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileBasedProgramsResources.resx @@ -1,17 +1,17 @@  - @@ -134,6 +134,10 @@ The property directive needs to have two parts separated by '=' like '#:property PropertyName=PropertyValue'. {Locked="#:property"} + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' + Static graph restore is not supported for file-based apps. Remove the '#:property'. {Locked="#:property"} @@ -169,7 +173,16 @@ Unrecognized directive '{0}'. {0} is the directive name like 'package' or 'sdk'. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs b/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs index 8ee092cf6123..1e4d853c08b2 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs @@ -115,6 +115,7 @@ public static void FindLeadingDirectives( var whiteSpace = GetWhiteSpaceInfo(triviaList, index); var info = new CSharpDirective.ParseInfo { + SourceFile = sourceFile, Span = span, LeadingWhiteSpace = whiteSpace.Leading, TrailingWhiteSpace = whiteSpace.Trailing, @@ -138,12 +139,12 @@ public static void FindLeadingDirectives( { Info = new() { + SourceFile = sourceFile, Span = span, LeadingWhiteSpace = whiteSpace.Leading, TrailingWhiteSpace = whiteSpace.Trailing, }, ReportError = reportError, - SourceFile = sourceFile, DirectiveKind = name, DirectiveText = value, }; @@ -229,6 +230,11 @@ public static SourceFile Load(string filePath) return new SourceFile(filePath, SourceText.From(stream, encoding: null)); } + public SourceFile WithPath(string newPath) + { + return new SourceFile(newPath, Text); + } + public SourceFile WithText(SourceText newText) { return new SourceFile(Path, newText); @@ -280,6 +286,7 @@ internal abstract class CSharpDirective(in CSharpDirective.ParseInfo info) public readonly struct ParseInfo { + public required SourceFile SourceFile { get; init; } /// /// Span of the full line including the trailing line break. /// @@ -292,7 +299,6 @@ public readonly struct ParseContext { public required ParseInfo Info { get; init; } public required ErrorReporter ReportError { get; init; } - public required SourceFile SourceFile { get; init; } public required string DirectiveKind { get; init; } public required string DirectiveText { get; init; } } @@ -305,10 +311,11 @@ public readonly struct ParseContext case "property": return Property.Parse(context); case "package": return Package.Parse(context); case "project": return Project.Parse(context); + case "include" or "exclude": return IncludeOrExclude.Parse(context); default: - context.ReportError(context.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.UnrecognizedDirective, context.DirectiveKind)); + context.ReportError(context.Info.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.UnrecognizedDirective, context.DirectiveKind)); return null; - }; + } } private static (string, string?)? ParseOptionalTwoParts(in ParseContext context, char separator) @@ -319,14 +326,14 @@ private static (string, string?)? ParseOptionalTwoParts(in ParseContext context, string directiveKind = context.DirectiveKind; if (firstPart.IsWhiteSpace()) { - context.ReportError(context.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.MissingDirectiveName, directiveKind)); + context.ReportError(context.Info.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.MissingDirectiveName, directiveKind)); return null; } // If the name contains characters that resemble separators, report an error to avoid any confusion. if (Patterns.DisallowedNameCharacters.Match(context.DirectiveText, beginning: 0, length: firstPart.Length).Success) { - context.ReportError(context.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.InvalidDirectiveName, directiveKind, separator)); + context.ReportError(context.Info.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.InvalidDirectiveName, directiveKind, separator)); return null; } @@ -402,7 +409,7 @@ public sealed class Property(in ParseInfo info) : Named(info) if (propertyValue is null) { - context.ReportError(context.SourceFile, context.Info.Span, FileBasedProgramsResources.PropertyDirectiveMissingParts); + context.ReportError(context.Info.SourceFile, context.Info.Span, FileBasedProgramsResources.PropertyDirectiveMissingParts); return null; } @@ -412,14 +419,14 @@ public sealed class Property(in ParseInfo info) : Named(info) } catch (XmlException ex) { - context.ReportError(context.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.PropertyDirectiveInvalidName, ex.Message)); + context.ReportError(context.Info.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.PropertyDirectiveInvalidName, ex.Message), ex); return null; } if (propertyName.Equals("RestoreUseStaticGraphEvaluation", StringComparison.OrdinalIgnoreCase) && MSBuildUtilities.ConvertStringToBool(propertyValue)) { - context.ReportError(context.SourceFile, context.Info.Span, FileBasedProgramsResources.StaticGraphRestoreNotSupported); + context.ReportError(context.Info.SourceFile, context.Info.Span, FileBasedProgramsResources.StaticGraphRestoreNotSupported); } return new Property(context.Info) @@ -492,7 +499,7 @@ public Project(in ParseInfo info, string name) : base(info) if (directiveText.IsWhiteSpace()) { string directiveKind = context.DirectiveKind; - context.ReportError(context.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.MissingDirectiveName, directiveKind)); + context.ReportError(context.Info.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.MissingDirectiveName, directiveKind)); return null; } @@ -530,14 +537,14 @@ public Project WithName(string name, NameKind kind) /// /// If the directive points to a directory, returns a new directive pointing to the corresponding project file. /// - public Project EnsureProjectFilePath(SourceFile sourceFile, ErrorReporter reportError) + public Project EnsureProjectFilePath(ErrorReporter reportError) { var resolvedName = Name; // If the path is a directory like '../lib', transform it to a project file path like '../lib/lib.csproj'. // Also normalize backslashes to forward slashes to ensure the directive works on all platforms. - var sourceDirectory = Path.GetDirectoryName(sourceFile.Path) - ?? throw new InvalidOperationException($"Source file path '{sourceFile.Path}' does not have a containing directory."); + var sourceDirectory = Path.GetDirectoryName(Info.SourceFile.Path) + ?? throw new InvalidOperationException($"Source file path '{Info.SourceFile.Path}' does not have a containing directory."); var resolvedProjectPath = Path.Combine(sourceDirectory, resolvedName.Replace('\\', '/')); if (Directory.Exists(resolvedProjectPath)) @@ -551,12 +558,12 @@ public Project EnsureProjectFilePath(SourceFile sourceFile, ErrorReporter report } else { - reportError(sourceFile, Info.Span, string.Format(FileBasedProgramsResources.InvalidProjectDirective, error)); + reportError(Info.SourceFile, Info.Span, string.Format(FileBasedProgramsResources.InvalidProjectDirective, error)); } } else if (!File.Exists(resolvedProjectPath)) { - reportError(sourceFile, Info.Span, + reportError(Info.SourceFile, Info.Span, string.Format(FileBasedProgramsResources.InvalidProjectDirective, string.Format(FileBasedProgramsResources.CouldNotFindProjectOrDirectory, resolvedProjectPath))); } @@ -565,6 +572,201 @@ public Project EnsureProjectFilePath(SourceFile sourceFile, ErrorReporter report public override string ToString() => $"#:project {Name}"; } + + public enum IncludeOrExcludeKind + { + Include, + Exclude, + } + + /// + /// #:include or #:exclude directive. + /// + public sealed class IncludeOrExclude(in ParseInfo info) : Named(info) + { + public const string ExperimentalFileBasedProgramEnableIncludeDirective = nameof(ExperimentalFileBasedProgramEnableIncludeDirective); + public const string ExperimentalFileBasedProgramEnableExcludeDirective = nameof(ExperimentalFileBasedProgramEnableExcludeDirective); + public const string ExperimentalFileBasedProgramEnableTransitiveDirectives = nameof(ExperimentalFileBasedProgramEnableTransitiveDirectives); + public const string ExperimentalFileBasedProgramEnableItemMapping = nameof(ExperimentalFileBasedProgramEnableItemMapping); + + public const string MappingPropertyName = "FileBasedProgramsItemMapping"; + + public static string DefaultMappingString => ".cs=Compile;.resx=EmbeddedResource;.json=None;.razor=Content"; + + public static ImmutableArray<(string Extension, string ItemType)> DefaultMapping + { + get + { + if (field.IsDefault) + { + field = + [ + (".cs", "Compile"), + (".resx", "EmbeddedResource"), + (".json", "None"), + (".razor", "Content"), + ]; + } + + return field; + } + } + + /// + /// Preserved across calls, i.e., + /// this is the original directive text as entered by the user. + /// + public required string OriginalName { get; init; } + + public required IncludeOrExcludeKind Kind { get; init; } + + public string? ItemType { get; init; } + + public static new IncludeOrExclude? Parse(in ParseContext context) + { + var directiveText = context.DirectiveText; + if (directiveText.IsWhiteSpace()) + { + string directiveKind = context.DirectiveKind; + context.ReportError(context.Info.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.MissingDirectiveName, directiveKind)); + return null; + } + + return new IncludeOrExclude(context.Info) + { + OriginalName = directiveText, + Name = directiveText, + Kind = KindFromString(context.DirectiveKind), + }; + } + + /// + /// See . + /// + public IncludeOrExclude WithDeterminedItemType(ErrorReporter reportError, ImmutableArray<(string Extension, string ItemType)> mapping) + { + Debug.Assert(ItemType is null); + + string? itemType = null; + foreach (var entry in mapping) + { + if (Name.EndsWith(entry.Extension, StringComparison.OrdinalIgnoreCase)) + { + itemType = entry.ItemType; + break; + } + } + + if (itemType is null) + { + reportError(Info.SourceFile, Info.Span, + string.Format(FileBasedProgramsResources.IncludeOrExcludeDirectiveUnknownFileType, + $"#:{KindToString()}", + string.Join(", ", mapping.Select(static e => e.Extension)))); + return this; + } + + return new IncludeOrExclude(Info) + { + OriginalName = OriginalName, + Name = Name, + Kind = Kind, + ItemType = itemType, + }; + } + + public IncludeOrExclude WithName(string name) + { + if (Name == name) + { + return this; + } + + return new IncludeOrExclude(Info) + { + OriginalName = OriginalName, + Name = name, + Kind = Kind, + ItemType = ItemType, + }; + } + + private static IncludeOrExcludeKind KindFromString(string kind) + { + return kind switch + { + "include" => IncludeOrExcludeKind.Include, + "exclude" => IncludeOrExcludeKind.Exclude, + _ => throw new InvalidOperationException($"Unexpected include/exclude directive kind '{kind}'."), + }; + } + + public string KindToString() + { + return Kind switch + { + IncludeOrExcludeKind.Include => "include", + IncludeOrExcludeKind.Exclude => "exclude", + _ => throw new InvalidOperationException($"Unexpected {nameof(IncludeOrExcludeKind)} value '{Kind}'."), + }; + } + + public string KindToMSBuildString() + { + return Kind switch + { + IncludeOrExcludeKind.Include => "Include", + IncludeOrExcludeKind.Exclude => "Remove", + _ => throw new InvalidOperationException($"Unexpected {nameof(IncludeOrExcludeKind)} value '{Kind}'."), + }; + } + + public override string ToString() => $"#:{KindToString()} {Name}"; + + /// + /// Parses a in the format .protobuf=Protobuf;.cshtml=Content. + /// Should come from MSBuild property with name . + /// + public static ImmutableArray<(string Extension, string ItemType)> ParseMapping( + string value, + SourceFile sourceFile, + ErrorReporter reportError) + { + var pairs = value.Split(';'); + + var builder = ImmutableArray.CreateBuilder<(string Extension, string ItemType)>(pairs.Length); + + foreach (var pair in pairs) + { + var parts = pair.Split('='); + + if (parts.Length != 2) + { + reportError(sourceFile, default, string.Format(FileBasedProgramsResources.InvalidIncludeExcludeMappingEntry, pair)); + continue; + } + + var extension = parts[0].Trim(); + var itemType = parts[1].Trim(); + + if (extension is not ['.', _, ..]) + { + reportError(sourceFile, default, string.Format(FileBasedProgramsResources.InvalidIncludeExcludeMappingExtension, extension, pair)); + continue; + } + + if (itemType.IsWhiteSpace()) + { + reportError(sourceFile, default, string.Format(FileBasedProgramsResources.InvalidIncludeExcludeMappingItemType, itemType, pair)); + continue; + } + + builder.Add((extension, itemType)); + } + + return builder.DrainToImmutable(); + } + } } /// @@ -615,18 +817,18 @@ public readonly struct Position } } -internal delegate void ErrorReporter(SourceFile sourceFile, TextSpan textSpan, string message); +internal delegate void ErrorReporter(SourceFile sourceFile, TextSpan textSpan, string message, Exception? innerException = null); internal static partial class ErrorReporters { public static readonly ErrorReporter IgnoringReporter = - static (_, _, _) => { }; + static (_, _, _, _) => { }; public static ErrorReporter CreateCollectingReporter(out ImmutableArray.Builder builder) { var capturedBuilder = builder = ImmutableArray.CreateBuilder(); - return (sourceFile, textSpan, message) => + return (sourceFile, textSpan, message, _) => capturedBuilder.Add(new SimpleDiagnostic { Location = new SimpleDiagnostic.Position() diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/InternalAPI.Unshipped.txt b/src/Cli/Microsoft.DotNet.FileBasedPrograms/InternalAPI.Unshipped.txt index 9376a191aa0c..74c5d7f313bb 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/InternalAPI.Unshipped.txt +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/InternalAPI.Unshipped.txt @@ -1,5 +1,25 @@ +const Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableExcludeDirective = "ExperimentalFileBasedProgramEnableExcludeDirective" -> string! +const Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableIncludeDirective = "ExperimentalFileBasedProgramEnableIncludeDirective" -> string! +const Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableItemMapping = "ExperimentalFileBasedProgramEnableItemMapping" -> string! +const Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableTransitiveDirectives = "ExperimentalFileBasedProgramEnableTransitiveDirectives" -> string! +const Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.MappingPropertyName = "FileBasedProgramsItemMapping" -> string! Microsoft.DotNet.FileBasedPrograms.CSharpDirective Microsoft.DotNet.FileBasedPrograms.CSharpDirective.CSharpDirective(in Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo info) -> void +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.IncludeOrExclude(in Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo info) -> void +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.ItemType.get -> string? +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.ItemType.init -> void +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.Kind.get -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExcludeKind +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.Kind.init -> void +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.KindToMSBuildString() -> string! +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.KindToString() -> string! +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.OriginalName.get -> string! +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.OriginalName.init -> void +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.WithDeterminedItemType(Microsoft.DotNet.FileBasedPrograms.ErrorReporter! reportError, System.Collections.Immutable.ImmutableArray<(string! Extension, string! ItemType)> mapping) -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude! +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.WithName(string! name) -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude! +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExcludeKind +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExcludeKind.Exclude = 1 -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExcludeKind +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExcludeKind.Include = 0 -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExcludeKind Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Info.get -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Named Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Named.Name.get -> string! @@ -25,12 +45,14 @@ Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo.LeadingWhiteSpace.get -> Microsoft.DotNet.FileBasedPrograms.WhiteSpaceInfo Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo.LeadingWhiteSpace.init -> void Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo.ParseInfo() -> void +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo.SourceFile.get -> Microsoft.DotNet.FileBasedPrograms.SourceFile +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo.SourceFile.init -> void Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo.Span.get -> Microsoft.CodeAnalysis.Text.TextSpan Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo.Span.init -> void Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo.TrailingWhiteSpace.get -> Microsoft.DotNet.FileBasedPrograms.WhiteSpaceInfo Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo.TrailingWhiteSpace.init -> void Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project -Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project.EnsureProjectFilePath(Microsoft.DotNet.FileBasedPrograms.SourceFile sourceFile, Microsoft.DotNet.FileBasedPrograms.ErrorReporter! reportError) -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project! +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project.EnsureProjectFilePath(Microsoft.DotNet.FileBasedPrograms.ErrorReporter! reportError) -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project! Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project.ExpandedName.get -> string? Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project.ExpandedName.init -> void Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project.NameKind @@ -90,6 +112,7 @@ Microsoft.DotNet.FileBasedPrograms.SourceFile.SourceFile() -> void Microsoft.DotNet.FileBasedPrograms.SourceFile.SourceFile(string! Path, Microsoft.CodeAnalysis.Text.SourceText! Text) -> void Microsoft.DotNet.FileBasedPrograms.SourceFile.Text.get -> Microsoft.CodeAnalysis.Text.SourceText! Microsoft.DotNet.FileBasedPrograms.SourceFile.Text.init -> void +Microsoft.DotNet.FileBasedPrograms.SourceFile.WithPath(string! newPath) -> Microsoft.DotNet.FileBasedPrograms.SourceFile Microsoft.DotNet.FileBasedPrograms.SourceFile.WithText(Microsoft.CodeAnalysis.Text.SourceText! newText) -> Microsoft.DotNet.FileBasedPrograms.SourceFile Microsoft.DotNet.FileBasedPrograms.WhiteSpaceInfo Microsoft.DotNet.FileBasedPrograms.WhiteSpaceInfo.LineBreaks -> int @@ -97,12 +120,17 @@ Microsoft.DotNet.FileBasedPrograms.WhiteSpaceInfo.TotalLength -> int Microsoft.DotNet.FileBasedPrograms.WhiteSpaceInfo.WhiteSpaceInfo() -> void Microsoft.DotNet.ProjectTools.ProjectLocator override abstract Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ToString() -> string! +override Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.ToString() -> string! override Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Package.ToString() -> string! override Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project.ToString() -> string! override Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Property.ToString() -> string! override Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Sdk.ToString() -> string! override Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Shebang.ToString() -> string! override Microsoft.DotNet.FileBasedPrograms.SourceFile.GetHashCode() -> int +static Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.DefaultMapping.get -> System.Collections.Immutable.ImmutableArray<(string! Extension, string! ItemType)> +static Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.DefaultMappingString.get -> string! +static Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.Parse(in Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext context) -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude? +static Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.ParseMapping(string! value, Microsoft.DotNet.FileBasedPrograms.SourceFile sourceFile, Microsoft.DotNet.FileBasedPrograms.ErrorReporter! reportError) -> System.Collections.Immutable.ImmutableArray<(string! Extension, string! ItemType)> static Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Package.Parse(in Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext context) -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Package? static Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Parse(in Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext context) -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Named? static Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project.Parse(in Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext context) -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project? @@ -126,6 +154,6 @@ static Microsoft.DotNet.FileBasedPrograms.SourceFile.operator ==(Microsoft.DotNe static Microsoft.DotNet.ProjectTools.ProjectLocator.TryGetProjectFileFromDirectory(string! projectDirectory, out string? projectFilePath, out string? error) -> bool static readonly Microsoft.DotNet.FileBasedPrograms.ErrorReporters.IgnoringReporter -> Microsoft.DotNet.FileBasedPrograms.ErrorReporter! static readonly Microsoft.DotNet.FileBasedPrograms.NamedDirectiveComparer.Instance -> Microsoft.DotNet.FileBasedPrograms.NamedDirectiveComparer! -virtual Microsoft.DotNet.FileBasedPrograms.ErrorReporter.Invoke(Microsoft.DotNet.FileBasedPrograms.SourceFile sourceFile, Microsoft.CodeAnalysis.Text.TextSpan textSpan, string! message) -> void +virtual Microsoft.DotNet.FileBasedPrograms.ErrorReporter.Invoke(Microsoft.DotNet.FileBasedPrograms.SourceFile sourceFile, Microsoft.CodeAnalysis.Text.TextSpan textSpan, string! message, System.Exception? innerException = null) -> void ~override Microsoft.DotNet.FileBasedPrograms.SourceFile.Equals(object obj) -> bool ~override Microsoft.DotNet.FileBasedPrograms.SourceFile.ToString() -> string \ No newline at end of file diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf index 37292a467a31..70e6d2d7252b 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf @@ -27,16 +27,31 @@ Duplicitní direktivy nejsou podporovány: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Nelze určit cestu k dočasnému adresáři. Zvažte konfiguraci proměnné prostředí TEMP v systému Windows nebo místní datové složky aplikace v systému Unix. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. Direktiva by měla obsahovat název bez speciálních znaků a volitelnou hodnotu oddělenou znakem {1}, například #:{0} Název{1}Hodnota. {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} Direktiva #:project je neplatná: {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf index 991dcca846e4..a6e86cdb09d8 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf @@ -27,16 +27,31 @@ Doppelte Anweisungen werden nicht unterstützt: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Ein temporärer Verzeichnispfad kann nicht ermittelt werden. Erwägen Sie, die TEMP-Umgebungsvariable unter Windows oder den lokalen App-Datenordner unter Unix zu konfigurieren. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. Die Anweisung sollte einen Namen ohne Sonderzeichen und einen optionalen Wert enthalten, die durch „{1}“ getrennt sind, wie „#:{0} Name{1}Wert“. {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} Die Anweisung „#:p roject“ ist ungültig: {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf index 2983aa595df6..76d8f9968652 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf @@ -27,16 +27,31 @@ No se admiten directivas duplicadas: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - No se puede determinar una ruta de acceso temporal al directorio. Considere la posibilidad de configurar la variable de entorno TEMP en Windows o la carpeta de datos de la aplicación local en Unix. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. La directiva debe contener un nombre sin caracteres especiales y un valor opcional separado por "{1}" como "#:{0} Nombre{1}Valor". {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} La directiva "#:project" no es válida: {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf index 1fabce52be8a..8d6c4042d47a 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf @@ -27,16 +27,31 @@ Les directives dupliquées ne sont pas prises en charge : {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Impossible de déterminer un chemin d’accès pour le répertoire temporaire. Nous vous recommandons de configurer la variable d’environnement TEMP sous Windows ou le dossier des données d’application locale sous Unix. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. La directive dans doit contenir un nom sans caractères spéciaux et une valeur facultative séparée par « {1} » comme « # :{0} Nom{1}Valeur ». {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} La directive « #:project » n’est pas valide : {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf index 93fdb8209fd1..b630dba53574 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf @@ -27,16 +27,31 @@ Le direttive duplicate non supportate: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Non è possibile determinare un percorso per la directory temporanea. Considerare la configurazione della variabile di ambiente TEMP in Windows o della cartella dei dati locali dell'app in Unix. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. La direttiva deve contenere un nome senza caratteri speciali e un valore facoltativo delimitato da '{1}' come '#:{0}Nome {1}Valore'. {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} La direttiva '#:project' non è valida: {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf index f76d2b528243..9c0a354e501f 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf @@ -27,16 +27,31 @@ 重複するディレクティブはサポートされていません: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - 一時ディレクトリ パスを特定できません。Windows で TEMP 環境変数を構成するか、Unix でローカル アプリ データ フォルダーを構成することを検討してください。 - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. ディレクティブには、特殊文字を含まない名前と、'#:{0} Name{1}Value' などの '{1}' で区切られた省略可能な値を含める必要があります。 {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} '#:p roject' ディレクティブが無効です: {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf index afdd17c8f433..a10e12d4353a 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf @@ -27,16 +27,31 @@ 중복 지시문은 지원되지 않습니다. {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - 임시 디렉터리 경로를 확인할 수 없습니다. Windows에서는 TEMP 환경 변수를, Unix에서는 로컬 앱 데이터 폴더를 설정하는 것이 좋습니다. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. 지시문에는 특수 문자가 없는 이름과 '#:{0} 이름{1}값'과 같이 '{1}'(으)로 구분된 선택적 값이 포함되어야 합니다. {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} '#:p roject' 지시문이 잘못되었습니다. {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf index 5e91ebbb30cf..0892381d07be 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf @@ -27,16 +27,31 @@ Zduplikowane dyrektywy nie są obsługiwane: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Nie można określić tymczasowej ścieżki katalogu. Rozważ skonfigurowanie zmiennej środowiskowej TEMP w systemie Windows lub folderze danych aplikacji lokalnej w systemie Unix. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. Dyrektywa powinna zawierać nazwę bez znaków specjalnych i opcjonalną wartość rozdzieloną znakiem "{1}#:{0} Name{1}Value". {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} Dyrektywa „#:project” jest nieprawidłowa: {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf index f44fda05d927..27d61a6c0cf8 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf @@ -27,16 +27,31 @@ Diretivas duplicadas não são suportadas:{0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Não é possível determinar um caminho de diretório temporário. Considere configurar a variável de ambiente TEMP no Windows ou a pasta de dados do aplicativo local no Unix. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. A diretiva deve conter um nome sem caracteres especiais e um valor opcional separado por '{1}' como '#:{0} Nome{1}Valor'. {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} A diretiva '#:project' é inválida:{0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf index 5e9af0ed594f..381e8f4b8038 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf @@ -27,16 +27,31 @@ Повторяющиеся директивы не поддерживаются: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Не удалось определить путь к временному каталогу. Рассмотрите возможность настроить переменную среды TEMP в Windows или папку локальных данных приложений в Unix. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. Директива должна содержать имя без специальных символов и необязательное значение, разделенные символом-разделителем "{1}", например "#:{0} Имя{1}Значение". {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} Недопустимая директива "#:project": {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf index 93c4d39ae84d..014caf69d8ae 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf @@ -27,16 +27,31 @@ Yinelenen yönergeler desteklenmez: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Geçici dizin yolu saptanamıyor. Windows'da TEMP ortam değişkenini veya Unix'te yerel uygulama verileri klasörünü yapılandırmayı göz önünde bulundurun. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. Yönerge, özel karakterler içermeyen bir ad ve ‘#:{0} Ad{1}Değer’ gibi '{1}' ile ayrılmış isteğe bağlı bir değer içermelidir. {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} ‘#:project’ yönergesi geçersizdir: {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf index 27b469f6394b..b0223d61e6ca 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf @@ -27,16 +27,31 @@ 不支持重复指令: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - 无法确定临时目录路径。请考虑在 Windows 上配置 TEMP 环境变量,或在 Unix 上配置本地应用数据文件夹。 - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. 该指令应包含一个不带特殊字符的名称,以及一个以 '#:{0} Name{1}Value' 等 ‘{1}’ 分隔的可选值。 {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} '#:project' 指令无效: {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf index f5a7d9f89eea..b141d76c8c90 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf @@ -27,16 +27,31 @@ 不支援重複的指示詞: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - 無法判斷暫存 目錄路徑。考慮在 Windows 上或 Unix 上的本機應用程式資料資料資料夾上設定 TEMP 環境變數。 - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. 指示詞應包含不含特殊字元的名稱,以及 '{1}' 分隔的選用值,例如 '#:{0} Name{1}Value'。 {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} '#:project' 指示詞無效: {0} diff --git a/src/Cli/dotnet/Commands/Package/Add/PackageAddCommand.cs b/src/Cli/dotnet/Commands/Package/Add/PackageAddCommand.cs index 8ff1c997d93c..7c2bbed46ac4 100644 --- a/src/Cli/dotnet/Commands/Package/Add/PackageAddCommand.cs +++ b/src/Cli/dotnet/Commands/Package/Add/PackageAddCommand.cs @@ -232,7 +232,11 @@ private int ExecuteForFileBasedApp(string path) { var lockFile = new LockFileFormat().Read(projectAssetsFile); var library = lockFile.Libraries.FirstOrDefault(l => string.Equals(l.Name, _packageId.Id, StringComparison.OrdinalIgnoreCase)); - if (library != null) + if (library == null) + { + Reporter.Verbose.WriteLine($"Package '{_packageId.Id}' not found in assets file: {projectAssetsFile}"); + } + else { var restoredVersion = library.Version.ToString(); if (central is { } centralValue) @@ -329,8 +333,7 @@ static void NoOp() { } { // Get the ItemGroup to add a PackageVersion to or create a new one. var itemGroup = directoryPackagesPropsProject.Xml.ItemGroups - .Where(e => e.Items.Any(i => string.Equals(i.ItemType, packageVersionItemType, StringComparison.OrdinalIgnoreCase))) - .FirstOrDefault() + .FirstOrDefault(e => e.Items.Any(i => string.Equals(i.ItemType, packageVersionItemType, StringComparison.OrdinalIgnoreCase))) ?? directoryPackagesPropsProject.Xml.AddItemGroup(); // Add a PackageVersion item. diff --git a/src/Cli/dotnet/Commands/Project/Convert/ProjectConvertCommand.cs b/src/Cli/dotnet/Commands/Project/Convert/ProjectConvertCommand.cs index 3c0952b37688..3a7256ef34d3 100644 --- a/src/Cli/dotnet/Commands/Project/Convert/ProjectConvertCommand.cs +++ b/src/Cli/dotnet/Commands/Project/Convert/ProjectConvertCommand.cs @@ -55,7 +55,6 @@ public override int Execute() // Find other items to copy over, e.g., default Content items like JSON files in Web apps. var includeItems = FindIncludedItems().ToList(); - CreateDirectory(targetDirectory); var targetFile = Path.Join(targetDirectory, Path.GetFileName(file)); @@ -68,7 +67,7 @@ public override int Execute() } else { - VirtualProjectBuilder.RemoveDirectivesFromFile(evaluatedDirectives, builder.EntryPointSourceFile.Text, targetFile); + VirtualProjectBuilder.RemoveDirectivesFromFile(evaluatedDirectives, builder.EntryPointSourceFile, targetFile); } // Create project file. @@ -81,7 +80,10 @@ public override int Execute() { using var stream = File.Open(projectFile, FileMode.Create, FileAccess.Write); using var writer = new StreamWriter(stream, Encoding.UTF8); - VirtualProjectBuilder.WriteProjectFile(writer, UpdateDirectives(evaluatedDirectives), isVirtualProject: false, + VirtualProjectBuilder.WriteProjectFile( + writer, + UpdateDirectives(evaluatedDirectives), + isVirtualProject: false, userSecretsId: DetermineUserSecretsId(), defaultProperties: GetDefaultProperties()); } @@ -99,7 +101,24 @@ public override int Execute() string targetItemDirectory = Path.GetDirectoryName(targetItemFullPath)!; CreateDirectory(targetItemDirectory); - CopyFile(item.FullPath, targetItemFullPath); + + if (item.ItemType == "Compile") + { + if (_dryRun) + { + Reporter.Output.WriteLine(CliCommandStrings.ProjectConvertWouldCopyFile, item.FullPath, targetItemFullPath); + Reporter.Output.WriteLine(CliCommandStrings.ProjectConvertWouldConvertFile, targetItemFullPath); + } + else + { + var sourceFile = SourceFile.Load(item.FullPath); + VirtualProjectBuilder.RemoveDirectivesFromFile(evaluatedDirectives, sourceFile, targetItemFullPath); + } + } + else + { + CopyFile(item.FullPath, targetItemFullPath); + } } return 0; @@ -131,13 +150,16 @@ void CopyFile(string source, string target) } } - IEnumerable<(string FullPath, string RelativePath)> FindIncludedItems() + IEnumerable<(string ItemType, string FullPath, string RelativePath)> FindIncludedItems() { string entryPointFileDirectory = PathUtilities.EnsureTrailingSlash(Path.GetDirectoryName(file)!); // Include only items we know are files. - string[] itemTypes = ["Content", "None", "Compile", "EmbeddedResource"]; - var items = itemTypes.SelectMany(t => projectInstance.GetItems(t)); + var mapping = builder.GetItemMapping(projectInstance, VirtualProjectBuildingCommand.ThrowingReporter); + + var items = mapping.SelectMany(e => projectInstance.GetItems(e.ItemType)); + + var topLevelFileNames = new HashSet(StringComparer.OrdinalIgnoreCase); foreach (var item in items) { @@ -148,12 +170,7 @@ void CopyFile(string source, string target) continue; } - // Exclude items that are not contained within the entry point file directory. string itemFullPath = Path.GetFullPath(path: item.GetMetadataValue("FullPath"), basePath: entryPointFileDirectory); - if (!itemFullPath.StartsWith(entryPointFileDirectory, StringComparison.OrdinalIgnoreCase)) - { - continue; - } // Exclude items that do not exist. if (!File.Exists(itemFullPath)) @@ -162,7 +179,32 @@ void CopyFile(string source, string target) } string itemRelativePath = Path.GetRelativePath(relativeTo: entryPointFileDirectory, path: itemFullPath); - yield return (FullPath: itemFullPath, RelativePath: itemRelativePath); + + // Files outside the source directory should be copied into the target directory at the top level. + // Possibly with a number suffix to avoid conflicts. + // For C# files, this is needed so we can remove directives from them. + // For others, this is consistent but also we can omit the item groups from the converted project file and keep it simple. + if (itemRelativePath.StartsWith($"..{Path.DirectorySeparatorChar}", StringComparison.Ordinal)) + { + itemRelativePath = Path.GetFileName(itemFullPath); + string fileNameWithoutExtension; + string extension; + if (!topLevelFileNames.Add(itemRelativePath)) + { + fileNameWithoutExtension = Path.GetFileNameWithoutExtension(itemRelativePath); + extension = Path.GetExtension(itemRelativePath); + + var counter = 1; + do + { + counter++; + itemRelativePath = $"{fileNameWithoutExtension}_{counter}{extension}"; + } + while (!topLevelFileNames.Add(itemRelativePath)); + } + } + + yield return (item.ItemType, FullPath: itemFullPath, RelativePath: itemRelativePath); } } diff --git a/src/Cli/dotnet/Commands/Run/Api/RunApiCommand.cs b/src/Cli/dotnet/Commands/Run/Api/RunApiCommand.cs index 40e5a2cd07fc..75a333573d09 100644 --- a/src/Cli/dotnet/Commands/Run/Api/RunApiCommand.cs +++ b/src/Cli/dotnet/Commands/Run/Api/RunApiCommand.cs @@ -1,12 +1,12 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.Collections.Frozen; using System.Collections.Immutable; using System.Collections.ObjectModel; using System.CommandLine; using System.Text.Json; using System.Text.Json.Serialization; +using Microsoft.Build.Evaluation; using Microsoft.DotNet.Cli.Utils; using Microsoft.DotNet.FileBasedPrograms; using Microsoft.DotNet.ProjectTools; @@ -65,18 +65,28 @@ public sealed class GetProject : RunApiInput public override RunApiOutput Execute() { - var sourceFile = SourceFile.Load(EntryPointFileFullPath); - var directives = FileLevelDirectiveHelpers.FindDirectives(sourceFile, reportAllErrors: true, ErrorReporters.CreateCollectingReporter(out var diagnostics)); - string artifactsPath = ArtifactsPath ?? VirtualProjectBuilder.GetArtifactsPath(EntryPointFileFullPath); + var builder = new VirtualProjectBuilder( + entryPointFileFullPath: EntryPointFileFullPath, + targetFrameworkVersion: VirtualProjectBuildingCommand.TargetFrameworkVersion, + artifactsPath: ArtifactsPath); + + var errorReporter = ErrorReporters.CreateCollectingReporter(out var diagnostics); + + builder.CreateProjectInstance( + new ProjectCollection(), + errorReporter, + out _, + out var evaluatedDirectives, + validateAllDirectives: true); var csprojWriter = new StringWriter(); VirtualProjectBuilder.WriteProjectFile( csprojWriter, - directives, + evaluatedDirectives, VirtualProjectBuilder.GetDefaultProperties(VirtualProjectBuildingCommand.TargetFrameworkVersion), isVirtualProject: true, - targetFilePath: EntryPointFileFullPath, - artifactsPath: artifactsPath); + entryPointFilePath: EntryPointFileFullPath, + artifactsPath: builder.ArtifactsPath); return new RunApiOutput.Project { diff --git a/src/Cli/dotnet/Commands/Run/RunCommand.cs b/src/Cli/dotnet/Commands/Run/RunCommand.cs index 71c142ae9e0d..e5d36444e661 100644 --- a/src/Cli/dotnet/Commands/Run/RunCommand.cs +++ b/src/Cli/dotnet/Commands/Run/RunCommand.cs @@ -483,7 +483,7 @@ private void EnsureProjectIsBuilt(out Func? projectBuilder = CreateProjectBuilder(); buildResult = projectBuilder.Execute(); projectFactory = CanUseRunPropertiesForCscBuiltProgram(projectBuilder.LastBuild.Level, projectBuilder.LastBuild.Cache?.PreviousEntry) ? null : projectBuilder.CreateProjectInstance; - cachedRunProperties = projectBuilder.LastBuild.Cache?.CurrentEntry.Run; + cachedRunProperties = projectBuilder.LastRunProperties ?? projectBuilder.LastBuild.Cache?.CurrentEntry.Run; } else { @@ -1034,7 +1034,18 @@ private void SendFileBasedTelemetry( Debug.Assert(EntryPointFileFullPath != null); var projectIdentifier = RunTelemetry.GetFileBasedIdentifier(EntryPointFileFullPath, Sha256Hasher.Hash); - var directives = projectBuilder.Directives; + var directives = projectBuilder.EvaluatedDirectives; + + if (directives.IsDefault) + { + directives = projectBuilder.Directives; + } + + if (directives.IsDefault) + { + directives = []; + } + var sdkCount = RunTelemetry.CountSdks(directives); var packageReferenceCount = RunTelemetry.CountPackageReferences(directives); var projectReferenceCount = RunTelemetry.CountProjectReferences(directives); diff --git a/src/Cli/dotnet/Commands/Run/VirtualProjectBuildingCommand.cs b/src/Cli/dotnet/Commands/Run/VirtualProjectBuildingCommand.cs index 967cdc7fd884..25c047e8f53b 100644 --- a/src/Cli/dotnet/Commands/Run/VirtualProjectBuildingCommand.cs +++ b/src/Cli/dotnet/Commands/Run/VirtualProjectBuildingCommand.cs @@ -4,6 +4,7 @@ using System.Collections.Immutable; using System.Collections.ObjectModel; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.Text.Json; using System.Text.Json.Serialization; using Microsoft.Build.Evaluation; @@ -98,6 +99,11 @@ internal sealed class VirtualProjectBuildingCommand : CommandBase /// public (BuildLevel Level, CacheInfo? Cache) LastBuild { get; private set; } + /// + /// Filled during . + /// + public RunProperties? LastRunProperties { get; private set; } + /// /// If , no build markers are written /// (like and ). @@ -122,9 +128,15 @@ public ImmutableArray Directives return field; } - set; + set + { + field = value; + EvaluatedDirectives = default; + } } + public ImmutableArray EvaluatedDirectives { get; private set; } + public VirtualProjectBuildingCommand( string entryPointFileFullPath, MSBuildArgs msbuildArgs, @@ -179,13 +191,13 @@ public override int Execute() if (NoCache) { cache = ComputeCacheEntry(); - cache.CurrentEntry.BuildLevel = BuildLevel.All; + cache?.CurrentEntry.BuildLevel = BuildLevel.All; LastBuild = (BuildLevel.All, cache); } else { var buildLevel = GetBuildLevel(out cache); - cache.CurrentEntry.BuildLevel = buildLevel; + cache?.CurrentEntry.BuildLevel = buildLevel; LastBuild = (buildLevel, cache); if (buildLevel is BuildLevel.None) @@ -196,7 +208,7 @@ public override int Execute() } // No rebuild, can reuse run properties. - cache.CurrentEntry.Run = cache.PreviousEntry?.Run; + cache?.CurrentEntry.Run = cache.PreviousEntry?.Run; MarkArtifactsFolderUsed(); return 0; @@ -204,6 +216,8 @@ public override int Execute() if (buildLevel is BuildLevel.Csc) { + Debug.Assert(cache is not null); + MarkBuildStart(); // Execute CSC. @@ -221,6 +235,7 @@ public override int Execute() { if (result == 0) { + ReuseInfoFromPreviousCacheEntry(cache); MarkBuildSuccess(cache); } @@ -311,21 +326,19 @@ public override int Execute() if (exitCode == 0 && !msbuildGet) { - Debug.Assert(cache != null); Debug.Assert(buildRequest.ProjectInstance != null); // Cache run info (to avoid re-evaluating the project instance). - cache.CurrentEntry.Run = RunProperties.TryFromProject(buildRequest.ProjectInstance, out var runProperties) + LastRunProperties = RunProperties.TryFromProject(buildRequest.ProjectInstance, out var runProperties) ? runProperties : null; - if (!MSBuildUtilities.ConvertStringToBool(buildRequest.ProjectInstance.GetPropertyValue(FileBasedProgramCanSkipMSBuild), defaultValue: true)) - { - Reporter.Verbose.WriteLine($"Not saving cache because there is an opt-out via MSBuild property {FileBasedProgramCanSkipMSBuild}."); - } - else + if (cache is not null && CanSaveCache(buildRequest.ProjectInstance)) { + cache.CurrentEntry.Run = LastRunProperties; + CacheCscArguments(cache, buildResult); + CollectAdditionalSources(cache, buildRequest.ProjectInstance); MarkBuildSuccess(cache); } @@ -361,15 +374,18 @@ public override int Execute() Environment.SetEnvironmentVariable(key, value); } - binaryLogger?.Value.ReallyShutdown(); + if (binaryLogger?.IsValueCreated == true) binaryLogger.Value.ReallyShutdown(); consoleLogger?.Shutdown(); } static Action> AddRestoreGlobalProperties(ReadOnlyDictionary? restoreProperties) { + // Compute the session ID outside the lambda to ensure it's the same for all project instances + // (since there can be multiple project instances created while evaluating file-level directives). + var sessionId = Guid.NewGuid().ToString("D"); return globalProperties => { - globalProperties["MSBuildRestoreSessionId"] = Guid.NewGuid().ToString("D"); + globalProperties["MSBuildRestoreSessionId"] = sessionId; globalProperties["MSBuildIsRestoring"] = bool.TrueString; foreach (var (key, value) in RestoringCommand.RestoreOptimizationProperties) { @@ -417,14 +433,6 @@ static Action> AddRestoreGlobalProperties(ReadOnlyDi void CacheCscArguments(CacheInfo cache, BuildResult result) { - // We cannot reuse CSC arguments from previous run and skip MSBuild if there are project references - // because we cannot easily detect whether any referenced projects have changed. - if (Directives.Any(static d => d is CSharpDirective.Project)) - { - Reporter.Verbose.WriteLine("Not saving CSC arguments because there is a project directive."); - return; - } - if (result.TryGetResultsForTarget(Constants.CoreCompile, out var coreCompileResult) && coreCompileResult.ResultCode == TargetResultCode.Success && result.TryGetResultsForTarget(Constants.Build, out var buildResult) && @@ -467,6 +475,72 @@ static string Escape(string arg) } } + void ReuseInfoFromPreviousCacheEntry(CacheInfo cache) + { + Debug.Assert(cache.CurrentEntry.AdditionalSources.Count == 0); + + if (cache.PreviousEntry != null) + { + foreach (var file in cache.PreviousEntry.AdditionalSources) + { + cache.CurrentEntry.AdditionalSources.Add(file); + } + } + } + + bool CanSaveCache(ProjectInstance projectInstance) + { + if (!MSBuildUtilities.ConvertStringToBool(projectInstance.GetPropertyValue(FileBasedProgramCanSkipMSBuild), defaultValue: true)) + { + Reporter.Verbose.WriteLine($"Not saving cache because there is an opt-out via MSBuild property {FileBasedProgramCanSkipMSBuild}."); + return false; + } + + if (EvaluatedDirectives.Any(static d => d is CSharpDirective.Project)) + { + Reporter.Verbose.WriteLine("Not saving cache because there is a project directive."); + return false; + } + + if (EvaluatedDirectives.Any(static d => + d is CSharpDirective.IncludeOrExclude { Kind: CSharpDirective.IncludeOrExcludeKind.Include } includeDirective && + includeDirective.Name.AsSpan().ContainsAny('*', '?'))) + { + Reporter.Verbose.WriteLine("Not saving cache because there is a glob include directive."); + return false; + } + + return true; + } + + void CollectAdditionalSources(CacheInfo cache, ProjectInstance projectInstance) + { + Debug.Assert(cache.CurrentEntry.AdditionalSources.Count == 0); + + var entryPointFileDirectory = Path.GetDirectoryName(Builder.EntryPointFileFullPath); + Debug.Assert(entryPointFileDirectory != null); + + var mapping = Builder.GetItemMapping(projectInstance, ErrorReporters.IgnoringReporter); + foreach (var entry in mapping) + { + if (string.Equals(entry.ItemType, "None", StringComparison.OrdinalIgnoreCase)) + { + continue; + } + + foreach (var item in projectInstance.GetItems(entry.ItemType)) + { + var fullPath = Path.GetFullPath( + path: item.GetMetadataValue("FullPath"), + basePath: entryPointFileDirectory); + + cache.CurrentEntry.AdditionalSources.Add(fullPath); + } + } + + cache.CurrentEntry.AdditionalSources.Remove(Builder.EntryPointFileFullPath); + } + void PrintBuildInformation(ProjectCollection projectCollection, ProjectInstance projectInstance, BuildResult? buildOrRestoreResult) { var resultOutputFile = MSBuildArgs.GetResultOutputFile is [{ } file, ..] ? file : null; @@ -650,14 +724,20 @@ public bool DetermineFinalCanReuseAuxiliaryFiles() } /// - /// Compute current cache entry - we need to do this always: + /// Compute current cache entry - we need to do this always (except if we already know we will skip saving the cache): /// /// if we can skip build, we still need to check everything in the cache entry (e.g., implicit build files) /// if we have to build, we need to have the cache entry to write it to the success cache file /// /// - private CacheInfo ComputeCacheEntry() + private CacheInfo? ComputeCacheEntry() { + if (Directives.Any(static d => d is CSharpDirective.Project)) + { + Reporter.Verbose.WriteLine("Skipping computing cache because there are project directives."); + return null; + } + var cacheEntry = new RunFileBuildCacheEntry(MSBuildArgs.GlobalProperties?.ToDictionary(StringComparer.OrdinalIgnoreCase) ?? new Dictionary(StringComparer.OrdinalIgnoreCase)) { Directives = Directives @@ -669,9 +749,11 @@ private CacheInfo ComputeCacheEntry() }; var entryPointFile = new FileInfo(Builder.EntryPointFileFullPath); + var entryPointFileDirectory = entryPointFile.Directory; + Debug.Assert(entryPointFileDirectory != null); // Collect current implicit build files. - CollectImplicitBuildFiles(entryPointFile.Directory, cacheEntry.ImplicitBuildFiles, out var exampleMSBuildFile); + CollectImplicitBuildFiles(entryPointFileDirectory, cacheEntry.ImplicitBuildFiles, out var exampleMSBuildFile); return new CacheInfo { @@ -682,9 +764,8 @@ private CacheInfo ComputeCacheEntry() } // internal for testing - internal static void CollectImplicitBuildFiles(DirectoryInfo? startDirectory, HashSet collectedPaths, out string? exampleMSBuildFile) + internal static void CollectImplicitBuildFiles(DirectoryInfo startDirectory, HashSet collectedPaths, out string? exampleMSBuildFile) { - Debug.Assert(startDirectory != null); exampleMSBuildFile = null; for (DirectoryInfo? directory = startDirectory; directory != null; directory = directory.Parent) { @@ -704,13 +785,12 @@ internal static void CollectImplicitBuildFiles(DirectoryInfo? startDirectory, Ha } } - private bool NeedsToBuild(out CacheInfo cache) + private bool NeedsToBuild([NotNullWhen(returnValue: false)] out CacheInfo? cache) { cache = ComputeCacheEntry(); - if (Directives.Any(static d => d is CSharpDirective.Project)) + if (cache is null) { - Reporter.Verbose.WriteLine("Building because there are project directives."); return true; } @@ -837,6 +917,20 @@ Building because previous global properties count ({previousCacheEntry.GlobalPro } } + // Check that additional sources are not modified. + // NOTE: We currently don't support the CSC-arg-reuse optimization through additional sources (i.e., we don't set `CanUseCscViaPreviousArguments=true` here). + // If that changes, we will also need to make sure `RunFileBuildCacheEntry.Directives` contains directives from other files + // (as that is used to determine whether we can reuse CSC args, see `GetReasonToNotReuseCscArguments`). + foreach (var additionalSourcePath in previousCacheEntry.AdditionalSources) + { + var additionalSourceFileInfo = ResolveLinkTargetOrSelf(new FileInfo(additionalSourcePath)); + if (!additionalSourceFileInfo.Exists || additionalSourceFileInfo.LastWriteTimeUtc > buildTimeUtc) + { + Reporter.Verbose.WriteLine("Building because additional source file is missing or modified: " + additionalSourceFileInfo.FullName); + return true; + } + } + // If we might be able to reuse CSC arguments, check whether the source file is modified. // NOTE: This must be the last check (otherwise setting cache.CanUseCscViaPreviousArguments would be incorrect). if (reasonToNotReuseCscArguments == null && targetFile.LastWriteTimeUtc > buildTimeUtc) @@ -911,7 +1005,7 @@ private void EnsurePreviousCacheEntry(CacheInfo cache) } } - private BuildLevel GetBuildLevel(out CacheInfo cache) + private BuildLevel GetBuildLevel(out CacheInfo? cache) { if (!NeedsToBuild(out cache)) { @@ -919,6 +1013,11 @@ private BuildLevel GetBuildLevel(out CacheInfo cache) return BuildLevel.None; } + if (cache is null) + { + return BuildLevel.All; + } + if (cache.CanUseCscViaPreviousArguments) { Reporter.Verbose.WriteLine("We have CSC arguments from previous run. Skipping MSBuild and using CSC only."); @@ -1051,7 +1150,7 @@ public ProjectInstance CreateProjectInstance(ProjectCollection projectCollection Directives, addGlobalProperties); - Directives = evaluatedDirectives; + EvaluatedDirectives = evaluatedDirectives; return project; } @@ -1076,7 +1175,9 @@ public static void CreateTempSubdirectory(string path) } public static readonly ErrorReporter ThrowingReporter = - static (sourceFile, textSpan, message) => throw new GracefulException($"{sourceFile.GetLocationString(textSpan)}: {FileBasedProgramsResources.DirectiveError}: {message}"); + static (sourceFile, textSpan, message, innerException) => throw new GracefulException( + $"{sourceFile.GetLocationString(textSpan)}: {FileBasedProgramsResources.DirectiveError}: {message}", + innerException); } internal sealed class RunFileBuildCacheEntry @@ -1099,10 +1200,17 @@ internal sealed class RunFileBuildCacheEntry public HashSet ImplicitBuildFiles { get; } /// - /// s recognized by the SDK (i.e., except shebang). + /// s from the entry point file recognized by the SDK (i.e., except shebang). /// public ImmutableArray Directives { get; set; } = []; + /// + /// Full paths of non-entry-point files that participate in the build + /// (e.g., default items like .resx and C# source files from #:include directives). + /// + [JsonObjectCreationHandling(JsonObjectCreationHandling.Populate)] + public HashSet AdditionalSources { get; } + public BuildLevel BuildLevel { get; set; } public string? SdkVersion { get; set; } // should be required and init-only but https://github.com/dotnet/runtime/issues/92877 @@ -1126,6 +1234,7 @@ public RunFileBuildCacheEntry() { GlobalProperties = new(GlobalPropertiesComparer); ImplicitBuildFiles = new(FilePathComparer); + AdditionalSources = new(FilePathComparer); } public RunFileBuildCacheEntry(Dictionary globalProperties) @@ -1133,6 +1242,7 @@ public RunFileBuildCacheEntry(Dictionary globalProperties) Debug.Assert(globalProperties.Comparer == GlobalPropertiesComparer); GlobalProperties = globalProperties; ImplicitBuildFiles = new(FilePathComparer); + AdditionalSources = new(FilePathComparer); } } diff --git a/src/Microsoft.DotNet.ProjectTools/Resources.resx b/src/Microsoft.DotNet.ProjectTools/Resources.resx index 0c69ccc49b2f..117e6b5642f2 100644 --- a/src/Microsoft.DotNet.ProjectTools/Resources.resx +++ b/src/Microsoft.DotNet.ProjectTools/Resources.resx @@ -155,4 +155,15 @@ Make the profile names distinct. (Default) + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + diff --git a/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs b/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs index ace65c8c4726..146947972766 100644 --- a/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs +++ b/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs @@ -19,6 +19,8 @@ internal sealed class VirtualProjectBuilder { private readonly IEnumerable<(string name, string value)> _defaultProperties; + private (ImmutableArray Original, ImmutableArray Evaluated)? _evaluatedDirectives; + public string EntryPointFileFullPath { get; } public SourceFile EntryPointSourceFile @@ -43,7 +45,8 @@ public VirtualProjectBuilder( string entryPointFileFullPath, string targetFrameworkVersion, string[]? requestedTargets = null, - string? artifactsPath = null) + string? artifactsPath = null, + SourceText? sourceText = null) { Debug.Assert(Path.IsPathFullyQualified(entryPointFileFullPath)); @@ -51,6 +54,11 @@ public VirtualProjectBuilder( RequestedTargets = requestedTargets; ArtifactsPath = artifactsPath; _defaultProperties = GetDefaultProperties(targetFrameworkVersion); + + if (sourceText != null) + { + EntryPointSourceFile = new SourceFile(entryPointFileFullPath, sourceText); + } } /// @@ -88,7 +96,7 @@ public static string GetTempSubdirectory() if (string.IsNullOrEmpty(directory)) { - throw new InvalidOperationException(FileBasedProgramsResources.EmptyTempPath); + throw new InvalidOperationException(Resources.EmptyTempPath); } return Path.Join(directory, "dotnet", "runfile"); @@ -129,77 +137,181 @@ public static bool IsValidEntryPointPath(string entryPointFilePath) } /// - /// If there are any #:project , - /// evaluates their values as MSBuild expressions (i.e. substitutes $() and @() with property and item values, etc.) and - /// resolves the evaluated values to full project file paths (e.g. if the evaluted value is a directory finds a project in that directory). + /// Evaluates against a and the file system. /// - internal static ImmutableArray EvaluateDirectives( - ProjectInstance? project, + /// + /// All directives that need some other evaluation (described below) are expanded as MSBuild expressions + /// (i.e., $() and @() are substituted with property and item values, etc.). + /// + /// #:project directives are resolved to full project file paths + /// (e.g., if the evaluated value is a directory, finds a project in that directory). + /// + /// #:include/#:exclude have their determined + /// and relative paths resolved relative to their containing file. + /// + private ImmutableArray EvaluateDirectives( + ProjectInstance project, ImmutableArray directives, - SourceFile sourceFile, - ErrorReporter errorReporter) + ErrorReporter reportError) { - if (directives.OfType().Any()) + if (!directives.Any(static d => d is CSharpDirective.Project or CSharpDirective.IncludeOrExclude)) { - return directives - .Select(d => d is CSharpDirective.Project p - ? (project is null - ? p - : p.WithName(project.ExpandString(p.Name), CSharpDirective.Project.NameKind.Expanded)) - .EnsureProjectFilePath(sourceFile, errorReporter) - : d) - .ToImmutableArray(); + return directives; + } + + var builder = ImmutableArray.CreateBuilder(directives.Length); + + ImmutableArray<(string Extension, string ItemType)> mapping = default; + + foreach (var directive in directives) + { + switch (directive) + { + case CSharpDirective.Project projectDirective: + projectDirective = projectDirective.WithName(project.ExpandString(projectDirective.Name), CSharpDirective.Project.NameKind.Expanded); + projectDirective = projectDirective.EnsureProjectFilePath(reportError); + + builder.Add(projectDirective); + break; + + case CSharpDirective.IncludeOrExclude includeOrExcludeDirective: + var expandedPath = project.ExpandString(includeOrExcludeDirective.Name); + var fullPath = Path.GetFullPath(path: expandedPath, basePath: Path.GetDirectoryName(includeOrExcludeDirective.Info.SourceFile.Path)!); + includeOrExcludeDirective = includeOrExcludeDirective.WithName(fullPath); + + if (mapping.IsDefault) + { + mapping = GetItemMapping(project, reportError); + } + + includeOrExcludeDirective = includeOrExcludeDirective.WithDeterminedItemType(reportError, mapping); + + builder.Add(includeOrExcludeDirective); + break; + + default: + builder.Add(directive); + break; + } } - return directives; + return builder.DrainToImmutable(); + } + + public ImmutableArray<(string Extension, string ItemType)> GetItemMapping(ProjectInstance project, ErrorReporter reportError) + { + return MSBuildUtilities.ConvertStringToBool(project.GetPropertyValue(CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableItemMapping)) + ? CSharpDirective.IncludeOrExclude.ParseMapping( + project.GetPropertyValue(CSharpDirective.IncludeOrExclude.MappingPropertyName), + EntryPointSourceFile, + reportError) + : CSharpDirective.IncludeOrExclude.DefaultMapping; } public void CreateProjectInstance( ProjectCollection projectCollection, - ErrorReporter errorReporter, + ErrorReporter reportError, out ProjectInstance project, out ImmutableArray evaluatedDirectives, ImmutableArray directives = default, Action>? addGlobalProperties = null, bool validateAllDirectives = false) { + var directivesOriginal = directives; + if (directives.IsDefault) { - directives = FileLevelDirectiveHelpers.FindDirectives(EntryPointSourceFile, validateAllDirectives, errorReporter); + directives = FileLevelDirectiveHelpers.FindDirectives(EntryPointSourceFile, validateAllDirectives, reportError); } - project = CreateProjectInstance(projectCollection, directives, addGlobalProperties); + (string ProjectFileText, ProjectInstance ProjectInstance)? lastProject = null; - evaluatedDirectives = EvaluateDirectives(project, directives, EntryPointSourceFile, errorReporter); - if (evaluatedDirectives != directives) + // If we evaluated directives previously (e.g., during restore), reuse them. + // We don't use the additional properties from `addGlobalProperties` + // during directive evaluation anyway, so the directives can be reused safely. + if (_evaluatedDirectives is { } cached && + cached.Original == directivesOriginal) { - project = CreateProjectInstance(projectCollection, evaluatedDirectives, addGlobalProperties); + evaluatedDirectives = cached.Evaluated; + project = CreateProjectInstanceNoEvaluation( + projectCollection, + evaluatedDirectives, + addGlobalProperties); + + CheckDirectives(project, evaluatedDirectives, reportError); + + return; } - } - private ProjectInstance CreateProjectInstance( - ProjectCollection projectCollection, - ImmutableArray directives, - Action>? addGlobalProperties = null) - { - var projectRoot = CreateProjectRootElement(projectCollection); + var entryPointDirectory = Path.GetDirectoryName(EntryPointFileFullPath)!; + var seenFiles = new HashSet(1, StringComparer.Ordinal) { EntryPointFileFullPath }; + var filesToProcess = new Queue(); + var evaluatedDirectiveBuilder = ImmutableArray.CreateBuilder(); - var globalProperties = projectCollection.GlobalProperties; - if (addGlobalProperties is not null) + do { - globalProperties = new Dictionary(projectCollection.GlobalProperties, StringComparer.OrdinalIgnoreCase); - addGlobalProperties(globalProperties); + // Create a project with properties from #:property directives so they can be expanded inside EvaluateDirectives. + project = CreateProjectInstanceNoEvaluation( + projectCollection, + [.. evaluatedDirectiveBuilder, .. directives], + addGlobalProperties); + + // Evaluate directives, e.g., determine item types for #:include/#:exclude from their file extension. + var fileEvaluatedDirectives = EvaluateDirectives(project, directives, reportError); + + evaluatedDirectiveBuilder.AddRange(fileEvaluatedDirectives); + + if (fileEvaluatedDirectives != directives) + { + // This project will contain items from #:include/#:exclude directives which we will traverse recursively. + project = CreateProjectInstanceNoEvaluation( + projectCollection, + evaluatedDirectiveBuilder.ToImmutable(), + addGlobalProperties); + } + + var compileItems = project.GetItems("Compile"); + foreach (var compileItem in compileItems) + { + var compilePath = Path.GetFullPath( + path: compileItem.GetMetadataValue("FullPath"), + basePath: entryPointDirectory); + if (seenFiles.Add(compilePath)) + { + filesToProcess.Enqueue(compilePath); + } + } } + while (TryGetNextFileToProcess()); - return ProjectInstance.FromProjectRootElement(projectRoot, new ProjectOptions + evaluatedDirectives = evaluatedDirectiveBuilder.ToImmutable(); + _evaluatedDirectives = (directivesOriginal, evaluatedDirectives); + + CheckDirectives(project, evaluatedDirectives, reportError); + + bool TryGetNextFileToProcess() { - ProjectCollection = projectCollection, - GlobalProperties = globalProperties, - }); + while (filesToProcess.TryDequeue(out var filePath)) + { + if (!File.Exists(filePath)) + { + reportError(EntryPointSourceFile, default, string.Format(Resources.IncludedFileNotFound, filePath)); + continue; + } + + var sourceFile = SourceFile.Load(filePath); + directives = FileLevelDirectiveHelpers.FindDirectives(sourceFile, validateAllDirectives, reportError); + return true; + } - ProjectRootElement CreateProjectRootElement(ProjectCollection projectCollection) + return false; + } + + ProjectInstance CreateProjectInstanceNoEvaluation( + ProjectCollection projectCollection, + ImmutableArray directives, + Action>? addGlobalProperties = null) { - var projectFileFullPath = Path.ChangeExtension(EntryPointFileFullPath, ".csproj"); var projectFileWriter = new StringWriter(); WriteProjectFile( @@ -207,17 +319,89 @@ ProjectRootElement CreateProjectRootElement(ProjectCollection projectCollection) directives, _defaultProperties, isVirtualProject: true, - targetFilePath: EntryPointFileFullPath, + entryPointFilePath: EntryPointFileFullPath, artifactsPath: ArtifactsPath, includeRuntimeConfigInformation: RequestedTargets?.ContainsAny("Publish", "Pack") != true); var projectFileText = projectFileWriter.ToString(); - using var reader = new StringReader(projectFileText); - using var xmlReader = XmlReader.Create(reader); - var projectRoot = ProjectRootElement.Create(xmlReader, projectCollection); - projectRoot.FullPath = projectFileFullPath; - return projectRoot; + // If nothing changed, reuse the previous project instance to avoid unnecessary re-evaluations. + if (lastProject is { } cachedProject && cachedProject.ProjectFileText == projectFileText) + { + return cachedProject.ProjectInstance; + } + + var projectRoot = CreateProjectRootElement(projectFileText, projectCollection); + + var globalProperties = projectCollection.GlobalProperties; + if (addGlobalProperties is not null) + { + globalProperties = new Dictionary(projectCollection.GlobalProperties, StringComparer.OrdinalIgnoreCase); + addGlobalProperties(globalProperties); + } + + var result = ProjectInstance.FromProjectRootElement(projectRoot, new ProjectOptions + { + ProjectCollection = projectCollection, + GlobalProperties = globalProperties, + }); + + lastProject = (projectFileText, result); + + return result; + + ProjectRootElement CreateProjectRootElement(string projectFileText, ProjectCollection projectCollection) + { + using var reader = new StringReader(projectFileText); + using var xmlReader = XmlReader.Create(reader); + var projectRoot = ProjectRootElement.Create(xmlReader, projectCollection); + projectRoot.FullPath = Path.ChangeExtension(EntryPointFileFullPath, ".csproj"); + return projectRoot; + } + } + } + + private void CheckDirectives( + ProjectInstance project, + ImmutableArray directives, + ErrorReporter reportError) + { + bool? includeEnabled = null; + bool? excludeEnabled = null; + bool? transitiveEnabled = null; + + foreach (var directive in directives) + { + if (directive is CSharpDirective.IncludeOrExclude includeOrExcludeDirective) + { + if (includeOrExcludeDirective.Kind == CSharpDirective.IncludeOrExcludeKind.Include) + { + CheckFlagEnabled(ref includeEnabled, CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableIncludeDirective, directive); + } + else + { + Debug.Assert(includeOrExcludeDirective.Kind == CSharpDirective.IncludeOrExcludeKind.Exclude); + CheckFlagEnabled(ref excludeEnabled, CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableExcludeDirective, directive); + } + } + + if (directive.Info.SourceFile.Path != EntryPointSourceFile.Path) + { + CheckFlagEnabled(ref transitiveEnabled, CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableTransitiveDirectives, directive); + } + } + + void CheckFlagEnabled(ref bool? flag, string flagName, CSharpDirective directive) + { + bool value = flag ??= MSBuildUtilities.ConvertStringToBool(project.GetPropertyValue(flagName)); + + if (!value) + { + reportError( + directive.Info.SourceFile, + directive.Info.Span, + string.Format(Resources.ExperimentalFeatureDisabled, flagName)); + } } } @@ -226,7 +410,7 @@ public static void WriteProjectFile( ImmutableArray directives, IEnumerable<(string name, string value)> defaultProperties, bool isVirtualProject, - string? targetFilePath = null, + string? entryPointFilePath = null, string? artifactsPath = null, bool includeRuntimeConfigInformation = true, string? userSecretsId = null) @@ -239,6 +423,7 @@ public static void WriteProjectFile( var propertyDirectives = directives.OfType(); var packageDirectives = directives.OfType(); var projectDirectives = directives.OfType(); + var includeOrExcludeDirectives = directives.OfType(); const string defaultSdkName = "Microsoft.NET.Sdk"; string firstSdkName; @@ -272,6 +457,7 @@ public static void WriteProjectFile( artifacts/$(MSBuildProjectName) artifacts/$(MSBuildProjectName) true + {CSharpDirective.IncludeOrExclude.DefaultMappingString} false true """); @@ -282,7 +468,7 @@ public static void WriteProjectFile( bool usingOnlyDefaultSdk = firstSdkName == defaultSdkName && sdkDirectives.Count() <= 1; if (usingOnlyDefaultSdk) { - writer.WriteLine($""" + writer.WriteLine(""" false false """); @@ -413,6 +599,43 @@ public static void WriteProjectFile( """); } + if (!isVirtualProject) + { + // In the real project, files are included by the conversion copying them to the output directory, + // hence we don't need to transfer the #:include/#:exclude directives over. + processedDirectives += includeOrExcludeDirectives.Count(); + } + else if (includeOrExcludeDirectives.Any()) + { + writer.WriteLine(""" + + """); + + foreach (var includeOrExclude in includeOrExcludeDirectives) + { + processedDirectives++; + + var itemType = includeOrExclude.ItemType; + + if (itemType == null) + { + // Before directives are evaluated, the item type is null. + // We still need to create the project (so that we can evaluate $() properties), + // but we can skip the items. + continue; + } + + writer.WriteLine($""" + <{itemType} {includeOrExclude.KindToMSBuildString()}="{EscapeValue(includeOrExclude.Name)}" /> + """); + } + + writer.WriteLine(""" + + + """); + } + if (packageDirectives.Any()) { writer.WriteLine(""" @@ -468,25 +691,25 @@ public static void WriteProjectFile( if (isVirtualProject) { - Debug.Assert(targetFilePath is not null); + Debug.Assert(entryPointFilePath is not null); - // Only add explicit Compile item when EnableDefaultCompileItems is not true. - // When EnableDefaultCompileItems=true, the file is included via default MSBuild globbing. - // See https://github.com/dotnet/sdk/issues/51785 + // We Exclude existing Compile items (which could be added e.g. + // in Microsoft.NET.Sdk.DefaultItems.props when user sets EnableDefaultCompileItems=true, + // or above via #:include/#:exclude directives). writer.WriteLine($""" - + """); if (includeRuntimeConfigInformation) { - var targetDirectory = Path.GetDirectoryName(targetFilePath) ?? ""; + var entryPointDirectory = Path.GetDirectoryName(entryPointFilePath) ?? ""; writer.WriteLine($""" - - + + """); @@ -531,29 +754,37 @@ static void WriteImport(TextWriter writer, string project, CSharpDirective.Sdk s } } - public static SourceText? RemoveDirectivesFromFile(ImmutableArray directives, SourceText text) + public static SourceFile RemoveDirectivesFromFile(ImmutableArray directives, SourceFile sourceFile) { if (directives.Length == 0) { - return null; + return sourceFile; } - Debug.Assert(directives.OrderBy(d => d.Info.Span.Start).SequenceEqual(directives), "Directives should be ordered by source location."); +#if DEBUG + var filteredDirectives = directives.Where(d => d.Info.SourceFile.Path == sourceFile.Path); + Debug.Assert( + filteredDirectives.OrderBy(static d => d.Info.Span.Start).SequenceEqual(filteredDirectives), + "Directives should be ordered by source location."); +#endif + + var text = sourceFile.Text; for (int i = directives.Length - 1; i >= 0; i--) { var directive = directives[i]; - text = text.Replace(directive.Info.Span, string.Empty); + if (directive.Info.SourceFile.Path == sourceFile.Path) + { + text = text.Replace(directive.Info.Span, string.Empty); + } } - return text; + return sourceFile.WithText(text); } - public static void RemoveDirectivesFromFile(ImmutableArray directives, SourceText text, string filePath) + public static void RemoveDirectivesFromFile(ImmutableArray directives, SourceFile sourceFile, string targetFilePath) { - if (RemoveDirectivesFromFile(directives, text) is { } modifiedText) - { - new SourceFile(filePath, modifiedText).Save(); - } + var modifiedFile = RemoveDirectivesFromFile(directives, sourceFile); + modifiedFile.WithPath(targetFilePath).Save(); } } diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.cs.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.cs.xlf index 6b4ff5bb55d0..805d86638902 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.cs.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.cs.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Nastavte odlišné názvy profilů. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. Profil spuštění s názvem {0} neexistuje. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.de.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.de.xlf index 93d3cd733313..ed5ebbf7e42d 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.de.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.de.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Erstellen Sie eindeutige Profilnamen. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. Es ist kein Startprofil mit dem Namen "{0}" vorhanden. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.es.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.es.xlf index 5e37b3de70aa..b91740a132ba 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.es.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.es.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Defina nombres de perfiles distintos. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. No existe ningún perfil de inicio con el nombre "{0}". diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.fr.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.fr.xlf index 6440e8fe7f38..de61a273b3c4 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.fr.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.fr.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Faites en sorte que les noms de profil soient distincts. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. Un profil de lancement avec le nom '{0}' n'existe pas. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.it.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.it.xlf index 37441888832a..ece8ec04b6fe 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.it.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.it.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Rendi distinti i nomi profilo. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. Non esiste un profilo di avvio con il nome '{0}'. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ja.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ja.xlf index 7a932cd4791f..84d999508982 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ja.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ja.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. プロファイル名を区別できるようにしてください。 + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. '{0} ' という名前の起動プロファイルは存在しません。 diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ko.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ko.xlf index 738033adb535..d00ea6c13a2a 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ko.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ko.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. 고유한 프로필 이름을 사용하세요. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. 이름이 '{0}'인 시작 프로필이 없습니다. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pl.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pl.xlf index cfd4a8d9cf5e..54df3d9fe109 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pl.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pl.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Rozróżnij nazwy profilów. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. Profil uruchamiania o nazwie „{0}” nie istnieje. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pt-BR.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pt-BR.xlf index 68e6a06dfb3d..4f89fd87a677 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pt-BR.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pt-BR.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Diferencie os nomes dos perfis. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. Um perfil de lançamento com o nome '{0}' não existe. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ru.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ru.xlf index 4261e1e952ec..68b5f2c01a03 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ru.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ru.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Сделайте имена профилей разными. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. Профиль запуска с именем "{0}" не существует. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.tr.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.tr.xlf index 6bd01ca3bd48..9502066ed859 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.tr.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.tr.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Profil adlarının birbirinden farklı olmasını sağlayın. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. '{0}' adlı bir başlatma profili yok. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hans.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hans.xlf index 9aded33cb3cd..f88c8de849d4 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hans.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hans.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. 将配置文件名称设为可区分的名称。 + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. 名为“{0}”的启动配置文件不存在。 diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hant.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hant.xlf index 8650ca7c10db..a28cdbc5580b 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hant.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hant.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. 請讓設定檔名稱相異。 + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. 名稱為 '{0}' 的啟動設定檔不存在。 diff --git a/test/Microsoft.NET.TestFramework/Assertions/DirectoryInfoAssertions.cs b/test/Microsoft.NET.TestFramework/Assertions/DirectoryInfoAssertions.cs index 0931e571dd49..e27e3d7cc86b 100644 --- a/test/Microsoft.NET.TestFramework/Assertions/DirectoryInfoAssertions.cs +++ b/test/Microsoft.NET.TestFramework/Assertions/DirectoryInfoAssertions.cs @@ -33,6 +33,20 @@ public AndConstraint HaveFile(string expectedFile) return new AndConstraint(this); } + public AndConstraint HaveFileContent(string relativePath, string expectedContent) + { + _dirInfo.File(relativePath).Should().Exist().And.Contain(expectedContent); + return new AndConstraint(this); + } + + public AndConstraint HaveFileContentPattern(string relativePath, string expectedContentWildcardPattern) + { + var file = _dirInfo.File(relativePath); + file.Should().Exist(); + File.ReadAllText(file.FullName).Should().Match(expectedContentWildcardPattern); + return new AndConstraint(this); + } + public AndConstraint NotHaveFile(string expectedFile) { var file = _dirInfo.EnumerateFiles(expectedFile, SearchOption.TopDirectoryOnly).SingleOrDefault() ?? new FileInfo(Path.Combine(_dirInfo.FullName, expectedFile)); @@ -151,5 +165,26 @@ public AndConstraint NotHaveSubDirectories(params strin return new AndConstraint(this); } + +#if NET + public AndConstraint HaveSubtree(string expectedSubtree) + { + string actualSubtree = string.Join(Environment.NewLine, _dirInfo.EnumerateFileSystemInfos("*", SearchOption.AllDirectories) + .Select(f => + { + var path = Path.GetRelativePath(relativeTo: _dirInfo.FullName, path: f.FullName).Replace('\\', '/'); + return f is DirectoryInfo ? $"{path}/" : path; + }) + .Order(StringComparer.Ordinal)); + + actualSubtree.Should().Be(expected: expectedSubtree, because: $""" + actual is: + {actualSubtree} + + """); + + return new AndConstraint(this); + } +#endif } } diff --git a/test/dotnet.Tests/CommandTests/Project/Convert/DotnetProjectConvertTests.cs b/test/dotnet.Tests/CommandTests/Project/Convert/DotnetProjectConvertTests.cs index 1b800a103c8b..87a1e4100431 100644 --- a/test/dotnet.Tests/CommandTests/Project/Convert/DotnetProjectConvertTests.cs +++ b/test/dotnet.Tests/CommandTests/Project/Convert/DotnetProjectConvertTests.cs @@ -4,11 +4,11 @@ using System.Collections.Immutable; using System.Security; using System.Text.RegularExpressions; +using Microsoft.Build.Evaluation; using Microsoft.CodeAnalysis.Text; using Microsoft.DotNet.Cli.Commands; using Microsoft.DotNet.Cli.Commands.Run; using Microsoft.DotNet.Cli.Run.Tests; -using Microsoft.DotNet.Cli.Utils; using Microsoft.DotNet.FileBasedPrograms; using Microsoft.DotNet.ProjectTools; @@ -595,14 +595,18 @@ public void DefaultItems_ExcludedViaMetadata() public void DefaultItems_ImplicitBuildFileInDirectory() { var testInstance = _testAssetsManager.CreateTestDirectory(); - File.WriteAllText(Path.Join(testInstance.Path, "Program.cs"), """ + + var srcDir = Path.Join(testInstance.Path, "src"); + Directory.CreateDirectory(srcDir); + + File.WriteAllText(Path.Join(srcDir, "Program.cs"), """ #:sdk Microsoft.NET.Sdk.Web Console.WriteLine(Util.GetText()); """); - File.WriteAllText(Path.Join(testInstance.Path, "Util.cs"), """ + File.WriteAllText(Path.Join(srcDir, "Util.cs"), """ class Util { public static string GetText() => "Hi from Util"; } """); - File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ + File.WriteAllText(Path.Join(srcDir, "Directory.Build.props"), """ @@ -613,29 +617,40 @@ class Util { public static string GetText() => "Hi from Util"; } // The app works before conversion. string expectedOutput = "Hi from Util"; new DotnetCommand(Log, "run", "Program.cs") - .WithWorkingDirectory(testInstance.Path) + .WithWorkingDirectory(srcDir) .Execute() .Should().Pass() .And.HaveStdOut(expectedOutput); // Convert. - new DotnetCommand(Log, "project", "convert", "Program.cs") - .WithWorkingDirectory(testInstance.Path) + new DotnetCommand(Log, "project", "convert", "Program.cs", "-o", "../out") + .WithWorkingDirectory(srcDir) .Execute() .Should().Pass(); - new DirectoryInfo(testInstance.Path) + new DirectoryInfo(srcDir) .EnumerateFileSystemInfos().Select(f => f.Name).Order() - .Should().BeEquivalentTo(["Directory.Build.props", "Program", "Program.cs", "Util.cs"]); + .Should().BeEquivalentTo(["Directory.Build.props", "Program.cs", "Util.cs"]); + + var outDir = Path.Join(testInstance.Path, "out"); // Directory.Build.props is included as it's a None item. - new DirectoryInfo(Path.Join(testInstance.Path, "Program")) + new DirectoryInfo(outDir) .EnumerateFileSystemInfos().Select(f => f.Name).Order() .Should().BeEquivalentTo(["Directory.Build.props", "Program.csproj", "Program.cs", "Util.cs"]); - // The app works after conversion. - new DotnetCommand(Log, "run", "Program/Program.cs") - .WithWorkingDirectory(testInstance.Path) + // The app doesn't work immediately after conversion due to the Directory.Build.props file. + new DotnetCommand(Log, "run") + .WithWorkingDirectory(outDir) + .Execute() + .Should().Fail() + // error NETSDK1022: Duplicate 'Compile' items were included. + .And.HaveStdOutContaining("NETSDK1022"); + + File.Delete(Path.Join(outDir, "Directory.Build.props")); + + new DotnetCommand(Log, "run") + .WithWorkingDirectory(outDir) .Execute() .Should().Pass() .And.HaveStdOut(expectedOutput); @@ -645,7 +660,8 @@ class Util { public static string GetText() => "Hi from Util"; } public void DefaultItems_ImplicitBuildFileOutsideDirectory() { var testInstance = _testAssetsManager.CreateTestDirectory(); - var subdir = Path.Join(testInstance.Path, "subdir"); + var srcDir = Path.Join(testInstance.Path, "src"); + var subdir = Path.Join(srcDir, "subdir"); Directory.CreateDirectory(subdir); File.WriteAllText(Path.Join(subdir, "Program.cs"), """ Console.WriteLine(Util.GetText()); @@ -653,7 +669,7 @@ public void DefaultItems_ImplicitBuildFileOutsideDirectory() File.WriteAllText(Path.Join(subdir, "Util.cs"), """ class Util { public static string GetText() => "Hi from Util"; } """); - File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ + File.WriteAllText(Path.Join(srcDir, "Directory.Build.props"), """ @@ -670,22 +686,24 @@ class Util { public static string GetText() => "Hi from Util"; } .And.HaveStdOut(expectedOutput); // Convert. - new DotnetCommand(Log, "project", "convert", "Program.cs") + new DotnetCommand(Log, "project", "convert", "Program.cs", "-o", "../../out") .WithWorkingDirectory(subdir) .Execute() .Should().Pass(); new DirectoryInfo(subdir) .EnumerateFileSystemInfos().Select(f => f.Name).Order() - .Should().BeEquivalentTo(["Program", "Program.cs", "Util.cs"]); + .Should().BeEquivalentTo(["Program.cs", "Util.cs"]); + + var outDir = Path.Join(testInstance.Path, "out"); - new DirectoryInfo(Path.Join(subdir, "Program")) + new DirectoryInfo(outDir) .EnumerateFileSystemInfos().Select(f => f.Name).Order() .Should().BeEquivalentTo(["Program.csproj", "Program.cs", "Util.cs"]); // The app works after conversion. - new DotnetCommand(Log, "run", "Program/Program.cs") - .WithWorkingDirectory(subdir) + new DotnetCommand(Log, "run") + .WithWorkingDirectory(outDir) .Execute() .Should().Pass() .And.HaveStdOut(expectedOutput); @@ -695,15 +713,16 @@ class Util { public static string GetText() => "Hi from Util"; } public void DefaultItems_ImplicitBuildFileAndUtilOutsideDirectory() { var testInstance = _testAssetsManager.CreateTestDirectory(); - var subdir = Path.Join(testInstance.Path, "subdir"); + var srcDir = Path.Join(testInstance.Path, "src"); + var subdir = Path.Join(srcDir, "subdir"); Directory.CreateDirectory(subdir); File.WriteAllText(Path.Join(subdir, "Program.cs"), """ Console.WriteLine(Util.GetText()); """); - File.WriteAllText(Path.Join(testInstance.Path, "Util.cs"), """ + File.WriteAllText(Path.Join(srcDir, "Util.cs"), """ class Util { public static string GetText() => "Hi from Util"; } """); - File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ + File.WriteAllText(Path.Join(srcDir, "Directory.Build.props"), """ @@ -720,22 +739,24 @@ class Util { public static string GetText() => "Hi from Util"; } .And.HaveStdOut(expectedOutput); // Convert. - new DotnetCommand(Log, "project", "convert", "Program.cs") + new DotnetCommand(Log, "project", "convert", "Program.cs", "-o", "../../out") .WithWorkingDirectory(subdir) .Execute() .Should().Pass(); new DirectoryInfo(subdir) .EnumerateFileSystemInfos().Select(f => f.Name).Order() - .Should().BeEquivalentTo(["Program", "Program.cs"]); + .Should().BeEquivalentTo(["Program.cs"]); + + var outDir = Path.Join(testInstance.Path, "out"); - new DirectoryInfo(Path.Join(subdir, "Program")) + new DirectoryInfo(outDir) .EnumerateFileSystemInfos().Select(f => f.Name).Order() - .Should().BeEquivalentTo(["Program.csproj", "Program.cs"]); + .Should().BeEquivalentTo(["Program.csproj", "Program.cs", "Util.cs"]); // The app works after conversion. - new DotnetCommand(Log, "run", "Program/Program.cs") - .WithWorkingDirectory(subdir) + new DotnetCommand(Log, "run") + .WithWorkingDirectory(outDir) .Execute() .Should().Pass() .And.HaveStdOut(expectedOutput); @@ -1052,7 +1073,9 @@ public void ForceOption_On() [Fact] public void Directives() { + var testInstance = _testAssetsManager.CreateTestDirectory(); VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #!/program #:sdk Microsoft.NET.Sdk @@ -1095,7 +1118,9 @@ public void Directives() [Fact] public void Directives_AllDefaultOverridden() { + var testInstance = _testAssetsManager.CreateTestDirectory(); VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #!/program #:sdk Microsoft.NET.Web.Sdk @@ -1132,7 +1157,9 @@ public void Directives_AllDefaultOverridden() [Fact] public void Directives_Variable() { + var testInstance = _testAssetsManager.CreateTestDirectory(); VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #:package MyPackage@$(MyProp) #:property MyProp=MyValue @@ -1169,9 +1196,14 @@ public void Directives_DirectoryPath() Directory.CreateDirectory(libDir); File.WriteAllText(Path.Join(libDir, "Lib.csproj"), "test"); + var appDir = Path.Join(testInstance.Path, "app"); + Directory.CreateDirectory(appDir); + var slash = Path.DirectorySeparatorChar; VerifyConversion( - filePath: Path.Join(testInstance.Path, "app", "Program.cs"), + baseDirectory: testInstance.Path, + filePath: Path.Join(appDir, "Program.cs"), + evaluateDirectives: true, inputCSharp: """ #:project ../lib """, @@ -1197,10 +1229,96 @@ public void Directives_DirectoryPath() expectedCSharp: ""); } + [Fact] + public void Directives_IncludeExclude() + { + var testInstance = _testAssetsManager.CreateTestDirectory(); + + File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ + + + true + true + + + """); + + VerifyConversion( + baseDirectory: testInstance.Path, + evaluateDirectives: true, + inputCSharp: """ + #:include A.cs + #:include ./**/*.cs + #:exclude B.cs + #:include C.ReSX + #:include D.json + #:include E.razor + #:include F.cshtml + #:exclude **/* + #:include |.cs + """, + expectedProject: $""" + + + + Exe + {ToolsetInfo.CurrentTargetFramework} + enable + enable + true + true + + + + + """, + expectedCSharp: "", + expectedErrors: + [ + (7, string.Format(FileBasedProgramsResources.IncludeOrExcludeDirectiveUnknownFileType, "#:include", RunFileTests.s_includeExcludeDefaultKnownExtensions)), + (8, string.Format(FileBasedProgramsResources.IncludeOrExcludeDirectiveUnknownFileType, "#:exclude", RunFileTests.s_includeExcludeDefaultKnownExtensions)), + (1, string.Format(Resources.IncludedFileNotFound, Path.Join(testInstance.Path, "A.cs"))), + (1, string.Format(Resources.IncludedFileNotFound, Path.Join(testInstance.Path, "|.cs"))), + ]); + } + + [Fact] + public void Directives_IncludeExclude_FilesCopied() + { + var testInstance = _testAssetsManager.CreateTestDirectory(); + File.WriteAllText(Path.Join(testInstance.Path, "Program.cs"), """ + #:property ExperimentalFileBasedProgramEnableIncludeDirective=true + #:property ExperimentalFileBasedProgramEnableExcludeDirective=true + #:include **/*.cs + #:include *.json + #:exclude my.json + #:include */*.resx + Console.WriteLine(); + """); + File.WriteAllText(Path.Join(testInstance.Path, "my.json"), ""); + File.WriteAllText(Path.Join(testInstance.Path, "Resources.resx"), ""); + File.WriteAllText(Path.Join(testInstance.Path, "Util.cs"), ""); + + new DotnetCommand(Log, "project", "convert", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Pass(); + + new DirectoryInfo(testInstance.Path) + .EnumerateFileSystemInfos().Select(f => f.Name).Order() + .Should().BeEquivalentTo(["Program", "Program.cs", "Resources.resx", "Util.cs", "my.json"]); + + new DirectoryInfo(Path.Join(testInstance.Path, "Program")) + .EnumerateFileSystemInfos().Select(f => f.Name).Order() + .Should().BeEquivalentTo(["Program.csproj", "Program.cs", "Util.cs"]); + } + [Fact] public void Directives_Separators() { + var testInstance = _testAssetsManager.CreateTestDirectory(); VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #:property Prop1 = One=a/b #:property Prop2 = Two/a=b @@ -1245,35 +1363,57 @@ public void Directives_Separators() [InlineData("SDK")] public void Directives_Unknown(string directive) { - VerifyConversionThrows( + var testInstance = _testAssetsManager.CreateTestDirectory(); + VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: $""" #:sdk Test #:{directive} Test """, - expectedWildcardPattern: RunFileTests.DirectiveError("/app/Program.cs", 2, FileBasedProgramsResources.UnrecognizedDirective, directive)); + expectedCSharp: $""" + #:{directive} Test + """, + expectedErrors: + [ + (2, string.Format(FileBasedProgramsResources.UnrecognizedDirective, directive)), + ]); } [Fact] public void Directives_Empty() { - VerifyConversionThrows( + var testInstance = _testAssetsManager.CreateTestDirectory(); + VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #: #:sdk Test """, - expectedWildcardPattern: RunFileTests.DirectiveError("/app/Program.cs", 1, FileBasedProgramsResources.UnrecognizedDirective, "")); + expectedCSharp: """ + #: + + """, + expectedErrors: + [ + (1, string.Format(FileBasedProgramsResources.UnrecognizedDirective, "")), + ]); } [Theory, CombinatorialData] public void Directives_EmptyName( - [CombinatorialValues("sdk", "property", "package", "project")] string directive, + [CombinatorialValues("sdk", "property", "package", "project", "include", "exclude")] string directive, [CombinatorialValues(" ", "")] string value) { - VerifyConversionThrows( + var testInstance = _testAssetsManager.CreateTestDirectory(); + VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: $""" #:{directive}{value} """, - expectedWildcardPattern: RunFileTests.DirectiveError("/app/Program.cs", 1, FileBasedProgramsResources.MissingDirectiveName, directive)); + expectedErrors: + [ + (1, string.Format(FileBasedProgramsResources.MissingDirectiveName, directive)), + ]); } [Theory] @@ -1281,7 +1421,9 @@ public void Directives_EmptyName( [InlineData(" ")] public void Directives_EmptyValue(string value) { + var testInstance = _testAssetsManager.CreateTestDirectory(); VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: $""" #:property TargetFramework={value} #:property Prop1={value} @@ -1313,33 +1455,47 @@ public void Directives_EmptyValue(string value) """, expectedCSharp: ""); - VerifyConversionThrows( + VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: $""" #:project{value} """, - expectedWildcardPattern: RunFileTests.DirectiveError("/app/Program.cs", 1, FileBasedProgramsResources.MissingDirectiveName, "project")); + expectedErrors: + [ + (1, string.Format(FileBasedProgramsResources.MissingDirectiveName, "project")), + ]); } [Fact] public void Directives_MissingPropertyValue() { - VerifyConversionThrows( + var testInstance = _testAssetsManager.CreateTestDirectory(); + VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #:property Test """, - expectedWildcardPattern: RunFileTests.DirectiveError("/app/Program.cs", 1, FileBasedProgramsResources.PropertyDirectiveMissingParts)); + expectedErrors: + [ + (1, FileBasedProgramsResources.PropertyDirectiveMissingParts), + ]); } [Fact] public void Directives_InvalidPropertyName() { - VerifyConversionThrows( + var testInstance = _testAssetsManager.CreateTestDirectory(); + VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #:property 123Name=Value """, - expectedWildcardPattern: RunFileTests.DirectiveError("/app/Program.cs", 1, FileBasedProgramsResources.PropertyDirectiveInvalidName, """ - Name cannot begin with the '1' character, hexadecimal value 0x31. - """)); + expectedErrors: + [ + (1, string.Format(FileBasedProgramsResources.PropertyDirectiveInvalidName, """ + Name cannot begin with the '1' character, hexadecimal value 0x31. + """)), + ]); } [Theory] @@ -1354,15 +1510,22 @@ public void Directives_InvalidPropertyName() [InlineData("property", "=", "@")] public void Directives_InvalidName(string directiveKind, string expectedSeparator, string actualSeparator) { - VerifyConversionThrows( + var testInstance = _testAssetsManager.CreateTestDirectory(); + VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: $"#:{directiveKind} Abc{actualSeparator}Xyz", - expectedWildcardPattern: RunFileTests.DirectiveError("/app/Program.cs", 1, FileBasedProgramsResources.InvalidDirectiveName, directiveKind, expectedSeparator)); + expectedErrors: + [ + (1, string.Format(FileBasedProgramsResources.InvalidDirectiveName, directiveKind, expectedSeparator)), + ]); } [Fact] public void Directives_Escaping() { + var testInstance = _testAssetsManager.CreateTestDirectory(); VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #:property Prop= #:sdk @="<>te'st @@ -1410,7 +1573,9 @@ public void Directives_Escaping() [Fact] public void Directives_Whitespace() { + var testInstance = _testAssetsManager.CreateTestDirectory(); VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #: sdk TestSdk #:property Name = Value @@ -1470,7 +1635,9 @@ public void Directives_BlankLines() """; + var testInstance = _testAssetsManager.CreateTestDirectory(); VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #:package A@B @@ -1483,6 +1650,7 @@ public void Directives_BlankLines() """); VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #:package A@B @@ -1509,13 +1677,10 @@ public void Directives_AfterToken() #:property Prop1=3 """; - VerifyConversionThrows( - inputCSharp: source, - expectedWildcardPattern: RunFileTests.DirectiveError("/app/Program.cs", 5, FileBasedProgramsResources.CannotConvertDirective)); - + var testInstance = _testAssetsManager.CreateTestDirectory(); VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: source, - force: true, expectedProject: $""" @@ -1537,7 +1702,11 @@ public void Directives_AfterToken() #define X Console.WriteLine(); #:property Prop1=3 - """); + """, + expectedErrors: + [ + (5, FileBasedProgramsResources.CannotConvertDirective), + ]); } /// @@ -1556,13 +1725,10 @@ public void Directives_AfterIf() #:property Prop2=4 """; - VerifyConversionThrows( - inputCSharp: source, - expectedWildcardPattern: RunFileTests.DirectiveError("/app/Program.cs", 5, FileBasedProgramsResources.CannotConvertDirective)); - + var testInstance = _testAssetsManager.CreateTestDirectory(); VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: source, - force: true, expectedProject: $""" @@ -1586,7 +1752,12 @@ public void Directives_AfterIf() #:property Prop1=3 #endif #:property Prop2=4 - """); + """, + expectedErrors: + [ + (5, FileBasedProgramsResources.CannotConvertDirective), + (7, FileBasedProgramsResources.CannotConvertDirective), + ]); } /// @@ -1595,7 +1766,9 @@ public void Directives_AfterIf() [Fact] public void Directives_Comments() { + var testInstance = _testAssetsManager.CreateTestDirectory(); VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ // License for this file #:sdk MySdk @@ -1640,67 +1813,79 @@ public void Directives_Comments() [Fact] public void Directives_Duplicate() { - VerifyDirectiveConversionErrors( + var testInstance = _testAssetsManager.CreateTestDirectory(); + VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #:property Prop=1 #:property Prop=2 """, + expectedCSharp: "", expectedErrors: [ (2, string.Format(FileBasedProgramsResources.DuplicateDirective, "#:property Prop")), ]); - VerifyDirectiveConversionErrors( + VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #:sdk Name #:sdk Name@X #:sdk Name #:sdk Name2 """, + expectedCSharp: "", expectedErrors: [ (2, string.Format(FileBasedProgramsResources.DuplicateDirective, "#:sdk Name")), (3, string.Format(FileBasedProgramsResources.DuplicateDirective, "#:sdk Name")), ]); - VerifyDirectiveConversionErrors( + VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #:package Name #:package Name@X #:package Name #:package Name2 """, + expectedCSharp: "", expectedErrors: [ (2, string.Format(FileBasedProgramsResources.DuplicateDirective, "#:package Name")), (3, string.Format(FileBasedProgramsResources.DuplicateDirective, "#:package Name")), ]); - VerifyDirectiveConversionErrors( + VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #:sdk Prop@1 #:property Prop=2 """, - expectedErrors: []); + expectedCSharp: ""); - VerifyDirectiveConversionErrors( + VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #:property Prop=1 #:property Prop=2 #:property Prop2=3 #:property Prop=4 """, + expectedCSharp: "", expectedErrors: [ (2, string.Format(FileBasedProgramsResources.DuplicateDirective, "#:property Prop")), (4, string.Format(FileBasedProgramsResources.DuplicateDirective, "#:property Prop")), ]); - VerifyDirectiveConversionErrors( + VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #:property prop=1 #:property PROP=2 """, + expectedCSharp: "", expectedErrors: [ (2, string.Format(FileBasedProgramsResources.DuplicateDirective, "#:property prop")), @@ -1710,7 +1895,9 @@ public void Directives_Duplicate() [Fact] // https://github.com/dotnet/sdk/issues/49797 public void Directives_VersionedSdkFirst() { + var testInstance = _testAssetsManager.CreateTestDirectory(); VerifyConversion( + baseDirectory: testInstance.Path, inputCSharp: """ #:sdk Microsoft.NET.Sdk@9.0.0 Console.WriteLine(); @@ -1735,62 +1922,96 @@ public void Directives_VersionedSdkFirst() """); } - private const string programPath = "/app/Program.cs"; + private static string GetProgramPath(string baseDirectory) + { + return Path.Join(baseDirectory, "Program.cs"); + } - private static void Convert(string inputCSharp, out string actualProject, out string? actualCSharp, bool force, string? filePath, - bool collectDiagnostics, out ImmutableArray.Builder? actualDiagnostics) + private static void Convert( + string inputCSharp, + out string actualProject, + out string? actualCSharp, + string filePath, + bool evaluateDirectives, + out ImmutableArray.Builder? actualDiagnostics) { - var sourceFile = new SourceFile(filePath ?? programPath, SourceText.From(inputCSharp, Encoding.UTF8)); - actualDiagnostics = null; - var diagnosticBag = collectDiagnostics ? ErrorReporters.CreateCollectingReporter(out actualDiagnostics) : VirtualProjectBuildingCommand.ThrowingReporter; - var directives = FileLevelDirectiveHelpers.FindDirectives(sourceFile, reportAllErrors: !force, diagnosticBag); - directives = VirtualProjectBuilder.EvaluateDirectives(project: null, directives, sourceFile, diagnosticBag); + var builder = new VirtualProjectBuilder( + entryPointFileFullPath: filePath, + targetFrameworkVersion: VirtualProjectBuildingCommand.TargetFrameworkVersion, + sourceText: SourceText.From(inputCSharp, Encoding.UTF8)); + + var errorReporter = ErrorReporters.CreateCollectingReporter(out actualDiagnostics); + + ImmutableArray directives; + if (evaluateDirectives) + { + builder.CreateProjectInstance( + new ProjectCollection(), + errorReporter, + out _, + out directives); + } + else + { + directives = FileLevelDirectiveHelpers.FindDirectives( + builder.EntryPointSourceFile, + reportAllErrors: true, + errorReporter); + } + var projectWriter = new StringWriter(); - VirtualProjectBuilder.WriteProjectFile(projectWriter, directives, VirtualProjectBuilder.GetDefaultProperties(VirtualProjectBuildingCommand.TargetFrameworkVersion), isVirtualProject: false); + VirtualProjectBuilder.WriteProjectFile( + projectWriter, + directives, + VirtualProjectBuilder.GetDefaultProperties(VirtualProjectBuildingCommand.TargetFrameworkVersion), + isVirtualProject: false); + actualProject = projectWriter.ToString(); - actualCSharp = VirtualProjectBuilder.RemoveDirectivesFromFile(directives, sourceFile.Text)?.ToString(); + + var convertedFile = VirtualProjectBuilder.RemoveDirectivesFromFile(directives, builder.EntryPointSourceFile); + actualCSharp = convertedFile.Text != builder.EntryPointSourceFile.Text ? convertedFile.Text.ToString() : null; } + /// + /// means we don't care about the resulting project in this test. + /// /// /// means the conversion should not touch the C# content. /// - private static void VerifyConversion(string inputCSharp, string expectedProject, string? expectedCSharp, bool force = false, string? filePath = null, - IEnumerable<(int LineNumber, string Message)>? expectedErrors = null) + private static void VerifyConversion( + string baseDirectory, + string inputCSharp, + string? expectedProject = null, + string? expectedCSharp = null, + string? filePath = null, + IEnumerable<(int LineNumber, string Message)>? expectedErrors = null, + bool evaluateDirectives = false) { - Convert(inputCSharp, out var actualProject, out var actualCSharp, force: force, filePath: filePath, - collectDiagnostics: expectedErrors != null, out var actualDiagnostics); - actualProject.Should().Be(expectedProject); - actualCSharp.Should().Be(expectedCSharp); - VerifyErrors(actualDiagnostics, expectedErrors); - } + filePath ??= GetProgramPath(baseDirectory); - private static void VerifyConversionThrows(string inputCSharp, string expectedWildcardPattern) - { - var convert = () => Convert(inputCSharp, out _, out _, force: false, filePath: null, collectDiagnostics: false, out _); - convert.Should().Throw().WithMessage(expectedWildcardPattern); - } + Convert( + inputCSharp, + out var actualProject, + out var actualCSharp, + filePath: filePath, + evaluateDirectives: evaluateDirectives, + out var actualDiagnostics); - private static void VerifyDirectiveConversionErrors(string inputCSharp, IEnumerable<(int LineNumber, string Message)> expectedErrors) - { - var sourceFile = new SourceFile(programPath, SourceText.From(inputCSharp, Encoding.UTF8)); - FileLevelDirectiveHelpers.FindDirectives(sourceFile, reportAllErrors: true, ErrorReporters.CreateCollectingReporter(out var diagnostics)); - VerifyErrors(diagnostics, expectedErrors); - } + if (expectedProject != null) actualProject.Should().Be(expectedProject); + actualCSharp.Should().Be(expectedCSharp); - private static void VerifyErrors(ImmutableArray.Builder? actual, IEnumerable<(int LineNumber, string Message)>? expected) - { - if (actual is null) + if (actualDiagnostics is null or []) { - Assert.Null(expected); + Assert.Null(expectedErrors); } - else if (expected is null) + else if (expectedErrors is null) { - Assert.Null(actual); + Assert.Null(actualDiagnostics); } else { - Assert.All(actual, d => { Assert.Equal(programPath, d.Location.Path); }); - actual.Select(d => (d.Location.Span.Start.Line + 1, d.Message)).Should().BeEquivalentTo(expected); + Assert.All(actualDiagnostics, d => { Assert.Equal(filePath, d.Location.Path); }); + actualDiagnostics.Select(d => (d.Location.Span.Start.Line + 1, d.Message)).Should().BeEquivalentTo(expectedErrors); } } } diff --git a/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs b/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs index e775adea5da0..732de1dde6b2 100644 --- a/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs +++ b/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs @@ -1,12 +1,14 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Collections.Immutable; using System.Runtime.Versioning; using System.Text.Json; using Basic.CompilerLog.Util; using Microsoft.Build.Framework; using Microsoft.Build.Logging.StructuredLogger; using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.Text; using Microsoft.DotNet.Cli.Commands; using Microsoft.DotNet.Cli.Commands.Run; using Microsoft.DotNet.Cli.Utils; @@ -17,6 +19,9 @@ namespace Microsoft.DotNet.Cli.Run.Tests; public sealed class RunFileTests(ITestOutputHelper log) : SdkTest(log) { + internal static string s_includeExcludeDefaultKnownExtensions + => field ??= string.Join(", ", CSharpDirective.IncludeOrExclude.DefaultMapping.Select(static e => e.Extension)); + private static readonly string s_program = /* lang=C#-Test */ """ if (args.Length > 0) { @@ -890,6 +895,47 @@ public void MultipleFiles_EnableDefaultCompileItemsViaDirectoryBuildProps() .And.HaveStdOut("Hello, String from Util"); } + /// + /// Directives in other files are considered even if those files are included via manual MSBuild rather than #:include. + /// + [Fact] + public void MultipleFiles_DirectivesInOtherFiles() + { + var testInstance = _testAssetsManager.CreateTestDirectory(); + File.WriteAllText(Path.Join(testInstance.Path, "A.cs"), """ + Console.WriteLine(B.M()); + #if !DEBUG + Console.WriteLine("Release config"); + #endif + """); + File.WriteAllText(Path.Join(testInstance.Path, "B.cs"), """ + #:property Configuration=Release + public static class B + { + public static string M() => "String from Util"; + } + """); + File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ + + + true + + + + + + """); + + new DotnetCommand(Log, "run", "A.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Pass() + .And.HaveStdOut(""" + String from Util + Release config + """); + } + /// /// dotnet run util.cs fails if util.cs is not the entry-point. /// @@ -1010,7 +1056,8 @@ public void WorkingDirectory(bool cscOnly) File.WriteAllText(programPath, code); - var workDir = TestPathUtility.ResolveTempPrefixLink(Path.GetTempPath()).TrimEnd(Path.DirectorySeparatorChar); + var tempDir = Directory.CreateTempSubdirectory(); + var workDir = TestPathUtility.ResolveTempPrefixLink(tempDir.FullName).TrimEnd(Path.DirectorySeparatorChar); var artifactsDir = VirtualProjectBuilder.GetArtifactsPath(programPath); if (Directory.Exists(artifactsDir)) Directory.Delete(artifactsDir, recursive: true); @@ -1030,6 +1077,8 @@ public void WorkingDirectory(bool cscOnly) workDir: workDir, expectedOutput: GetExpectedOutput("v2", workDir)); + tempDir.Delete(); + string GetExpectedOutput(string version, string workDir) => $""" {version} {workDir} @@ -1059,7 +1108,8 @@ public void WorkingDirectory_CscOnly_AfterMSBuild() File.WriteAllText(programPath, code); - var workDir = TestPathUtility.ResolveTempPrefixLink(Path.GetTempPath()).TrimEnd(Path.DirectorySeparatorChar); + var tempDir = Directory.CreateTempSubdirectory(); + var workDir = TestPathUtility.ResolveTempPrefixLink(tempDir.FullName).TrimEnd(Path.DirectorySeparatorChar); var artifactsDir = VirtualProjectBuilder.GetArtifactsPath(programPath); if (Directory.Exists(artifactsDir)) Directory.Delete(artifactsDir, recursive: true); @@ -1100,6 +1150,8 @@ public void WorkingDirectory_CscOnly_AfterMSBuild() workDir: workDir, expectedOutput: GetExpectedOutput("v2", workDir2)); + tempDir.Delete(); + string GetExpectedOutput(string version, string workDir) => $""" {version} {workDir} @@ -1425,7 +1477,7 @@ Release config } /// - /// dotnet run --bl file.cs produces a binary log. + /// dotnet run -bl file.cs produces a binary log. /// [Theory, CombinatorialData] public void BinaryLog_Run(bool beforeFile) @@ -1576,12 +1628,102 @@ public void BinaryLog_EvaluationData() string binaryLogPath = Path.Join(testInstance.Path, "msbuild.binlog"); new FileInfo(binaryLogPath).Should().Exist(); + // There should be exactly three - two for restore, one for build. + VerifyBinLogEvaluationDataCount(binaryLogPath, expectedCount: 3); + } + + private static void VerifyBinLogEvaluationDataCount(string binaryLogPath, int expectedCount) + { var records = BinaryLog.ReadRecords(binaryLogPath).ToList(); + records.Count(static r => r.Args is ProjectEvaluationStartedEventArgs).Should().Be(expectedCount); + records.Count(static r => r.Args is ProjectEvaluationFinishedEventArgs).Should().Be(expectedCount); + } + + /// + /// Binary logs from our in-memory projects should have evaluation data. + /// + [Fact] + public void BinaryLog_EvaluationData_MultiFile() + { + var testInstance = _testAssetsManager.CreateTestDirectory(); + + File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ + + + true + + + """); + + File.WriteAllText(Path.Join(testInstance.Path, "Program.cs"), + $""" + #:include *.cs + {s_programDependingOnUtil} + """); + + var utilPath = Path.Join(testInstance.Path, "Util.cs"); + File.WriteAllText(utilPath, s_util); + + new DotnetCommand(Log, "run", "--no-cache", "Program.cs", "-bl:first.binlog") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Pass() + .And.HaveStdOut("Hello, String from Util"); + + string binaryLogPath = Path.Join(testInstance.Path, "first.binlog"); + new FileInfo(binaryLogPath).Should().Exist(); + + // There should be exactly four - two for restore and one for build as usual, plus one for initial directive evaluation. + var expectedCount = 4; + VerifyBinLogEvaluationDataCount(binaryLogPath, expectedCount: expectedCount); + + File.WriteAllText(utilPath, s_util.Replace("String from Util", "v2")); - // There should be at least two - one for restore, one for build. - // But the restore targets might re-evaluate the project via inner MSBuild task invocations. - records.Count(static r => r.Args is ProjectEvaluationStartedEventArgs).Should().BeGreaterThanOrEqualTo(2); - records.Count(static r => r.Args is ProjectEvaluationFinishedEventArgs).Should().BeGreaterThanOrEqualTo(2); + new DotnetCommand(Log, "run", "Program.cs", "-bl:second.binlog") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Pass() + .And.HaveStdOut("Hello, v2"); + + binaryLogPath = Path.Join(testInstance.Path, "second.binlog"); + new FileInfo(binaryLogPath).Should().Exist(); + + // After rebuild, there should be the same number of evaluations. + VerifyBinLogEvaluationDataCount(binaryLogPath, expectedCount: expectedCount); + } + + /// + /// If we skip build due to up-to-date check, no binlog should be created. + /// + [Fact] + public void BinaryLog_EvaluationData_UpToDate() + { + var testInstance = _testAssetsManager.CreateTestDirectory(); + + var programPath = Path.Join(testInstance.Path, "Program.cs"); + File.WriteAllText(programPath, s_program); + + var expectedOutput = "Hello from Program"; + + new DotnetCommand(Log, "run", "--no-cache", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Pass() + .And.HaveStdOut(expectedOutput); + + string binaryLogPath = Path.Join(testInstance.Path, "msbuild.binlog"); + new FileInfo(binaryLogPath).Should().NotExist(); + + new DotnetCommand(Log, "run", "Program.cs", "-bl") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Pass() + .And.HaveStdOut($""" + {CliCommandStrings.NoBinaryLogBecauseUpToDate} + {expectedOutput} + """); + + new FileInfo(binaryLogPath).Should().NotExist(); } [Theory, CombinatorialData] @@ -2659,7 +2801,7 @@ Hello from First Message: 'First1' """); - new DotnetCommand(Log, "run", "-v", "q", "Second.cs") + new DotnetCommand(Log, "run", "-v", "q", "Second.cs") .WithWorkingDirectory(testInstance.Path) .Execute() .Should().Pass() @@ -2971,153 +3113,902 @@ public void ProjectReference_Duplicate(string? subdir) .And.HaveStdOut("Hello"); } - [Theory] // https://github.com/dotnet/aspnetcore/issues/63440 - [InlineData(true, null)] - [InlineData(false, null)] - [InlineData(true, "test-id")] - [InlineData(false, "test-id")] - public void UserSecrets(bool useIdArg, string? userSecretsId) + [Theory, CombinatorialData] + public void IncludeDirective( + [CombinatorialValues("Util.cs", "**/*.cs", "**/*.$(MyProp1)")] string includePattern, + [CombinatorialValues("", "#:exclude Program.$(MyProp1)")] string additionalDirectives) { var testInstance = _testAssetsManager.CreateTestDirectory(); - string code = $""" - #:package Microsoft.Extensions.Configuration.UserSecrets@{CSharpCompilerCommand.RuntimeVersion} - {(userSecretsId is null ? "" : $"#:property UserSecretsId={userSecretsId}")} + File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ + + + true + true + + + """); - using Microsoft.Extensions.Configuration; + File.WriteAllText(Path.Join(testInstance.Path, "Program.cs"), $""" + #:include {includePattern} + {additionalDirectives} + #:property MyProp1=cs + {s_programDependingOnUtil} + """); - IConfigurationRoot config = new ConfigurationBuilder() - .AddUserSecrets() - .Build(); + File.WriteAllText(Path.Join(testInstance.Path, "Util.cs"), s_util); - Console.WriteLine("v1"); - Console.WriteLine(config.GetDebugView()); - """; + new DotnetCommand(Log, "run", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Pass() + .And.HaveStdOut("Hello, String from Util"); + } - var programPath = Path.Join(testInstance.Path, "Program.cs"); - File.WriteAllText(programPath, code); + [Fact] + public void IncludeDirective_WorkingDirectory() + { + var testInstance = _testAssetsManager.CreateTestDirectory(); - // Remove artifacts from possible previous runs of this test. - var artifactsDir = VirtualProjectBuilder.GetArtifactsPath(programPath); - if (Directory.Exists(artifactsDir)) Directory.Delete(artifactsDir, recursive: true); + File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ + + + true + + + """); - if (useIdArg) - { - if (userSecretsId == null) - { - var result = new DotnetCommand(Log, "build", "-getProperty:UserSecretsId", "Program.cs") - .WithWorkingDirectory(testInstance.Path) - .Execute(); - result.Should().Pass(); - userSecretsId = result.StdOut!.Trim(); - } + var srcDir = Path.Join(testInstance.Path, "src"); + Directory.CreateDirectory(srcDir); - new DotnetCommand(Log, "user-secrets", "set", "MySecret", "MyValue", "--id", userSecretsId) - .WithWorkingDirectory(testInstance.Path) - .Execute() - .Should().Pass(); - } - else - { - new DotnetCommand(Log, "user-secrets", "set", "MySecret", "MyValue", "--file", "Program.cs") - .WithWorkingDirectory(testInstance.Path) - .Execute() - .Should().Pass(); - } + var a = """ + Console.WriteLine(B.M()); + """; - Build(testInstance, BuildLevel.All, expectedOutput: """ - v1 - MySecret=MyValue (JsonConfigurationProvider for 'secrets.json' (Optional)) + File.WriteAllText(Path.Join(srcDir, "A.cs"), $""" + #:include B.cs + {a} """); - code = code.Replace("v1", "v2"); - File.WriteAllText(programPath, code); - - Build(testInstance, BuildLevel.Csc, expectedOutput: """ - v2 - MySecret=MyValue (JsonConfigurationProvider for 'secrets.json' (Optional)) - """); - } + var b = """ + static class B { public static string M() => "Hello from B"; } + """; - /// - /// Verifies that msbuild-based runs use CSC args equivalent to csc-only runs. - /// Can regenerate CSC arguments template in . - /// - [Fact] - public void CscArguments() - { - var testInstance = _testAssetsManager.CreateTestDirectory(baseDirectory: OutOfTreeBaseDirectory); - const string programName = "TestProgram"; - const string fileName = $"{programName}.cs"; - string entryPointPath = Path.Join(testInstance.Path, fileName); - File.WriteAllText(entryPointPath, s_program); + File.WriteAllText(Path.Join(srcDir, "B.cs"), b); - // Remove artifacts from possible previous runs of this test. - var artifactsDir = VirtualProjectBuilder.GetArtifactsPath(entryPointPath); - if (Directory.Exists(artifactsDir)) Directory.Delete(artifactsDir, recursive: true); + var expectedOutput = "Hello from B"; - // Build using MSBuild. - new DotnetCommand(Log, "run", fileName, "-bl", "--no-cache") + new DotnetCommand(Log, "run", "src/A.cs") .WithWorkingDirectory(testInstance.Path) .Execute() .Should().Pass() - .And.HaveStdOut($"Hello from {programName}"); - - // Find the csc args used by the build. - var msbuildCall = FindCompilerCall(Path.Join(testInstance.Path, "msbuild.binlog")); - var msbuildCallArgs = msbuildCall.GetArguments(); - var msbuildCallArgsString = ArgumentEscaper.EscapeAndConcatenateArgArrayForProcessStart(msbuildCallArgs); + .And.HaveStdOut(expectedOutput); - // Generate argument template code. - string sdkPath = NormalizePath(TestContext.Current.ToolsetUnderTest.SdkFolderUnderTest); - string dotNetRootPath = NormalizePath(TestContext.Current.ToolsetUnderTest.DotNetRoot); - string nuGetCachePath = NormalizePath(TestContext.Current.NuGetCachePath!); - string artifactsDirNormalized = NormalizePath(artifactsDir); - string objPath = $"{artifactsDirNormalized}/obj/debug"; - string entryPointPathNormalized = NormalizePath(entryPointPath); - var msbuildArgsToVerify = new List(); - var nuGetPackageFilePaths = new List(); - var code = new StringBuilder(); - code.AppendLine($$""" - // Licensed to the .NET Foundation under one or more agreements. - // The .NET Foundation licenses this file to you under the MIT license. + // Convert to a project. + new DotnetCommand(Log, "project", "convert", "src/A.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Pass(); - namespace Microsoft.DotNet.Cli.Commands.Run; + new DirectoryInfo(testInstance.Path) + .Should().HaveSubtree(""" + Directory.Build.props + src/ + src/A.cs + src/A/ + src/A/A.cs + src/A/A.csproj + src/A/B.cs + src/B.cs + """) + .And.HaveFileContent("src/A/A.cs", a) + .And.HaveFileContent("src/A/B.cs", b) + .And.HaveFileContentPattern("src/A/A.csproj", """ + - // Generated by test `{{nameof(RunFileTests)}}.{{nameof(CscArguments)}}`. - partial class CSharpCompilerCommand - { - private IEnumerable GetCscArguments( - string fileNameWithoutExtension, - string objDir, - string binDir) - { - return - [ - """); - foreach (var arg in msbuildCallArgs) - { - // This option needs to be passed on the command line, not in an RSP file. - if (arg is "/noconfig") - { - continue; - } + + Exe + net10.0 + enable + enable + true + true + A-* + - // We don't need to generate a ref assembly. - if (arg.StartsWith("/refout:", StringComparison.Ordinal)) - { - continue; - } + - // There should be no source link arguments. - if (arg.StartsWith("/sourcelink:", StringComparison.Ordinal)) - { - Assert.Fail($"Unexpected source link argument: {arg}"); - } + """); - // PreferredUILang is normally not set by default but can be in builds, so ignore it. - if (arg.StartsWith("/preferreduilang:", StringComparison.Ordinal)) - { + // Run the converted project. + new DotnetCommand(Log, "run") + .WithWorkingDirectory(Path.Join(testInstance.Path, "src/A")) + .Execute() + .Should().Pass() + .And.HaveStdOut(expectedOutput); + } + + [Fact] + public void IncludeDirective_Transitive() + { + var testInstance = _testAssetsManager.CreateTestDirectory(); + + Directory.CreateDirectory(Path.Join(testInstance.Path, "dir1/dir2")); + Directory.CreateDirectory(Path.Join(testInstance.Path, "dir3")); + + File.WriteAllText(Path.Join(testInstance.Path, "dir1/Directory.Build.props"), """ + + + true + true + + + """); + + var a = """ + B.M(); + """; + + File.WriteAllText(Path.Join(testInstance.Path, "dir1/A.cs"), $""" + #:include dir2/B.cs + {a} + """); + + var b = """ + static class B { public static void M() { C.M(); } } + """; + + File.WriteAllText(Path.Join(testInstance.Path, "dir1/dir2/B.cs"), $""" + #:include ../../dir3/$(P1).cs + #:property P1=C + {b} + """); + + var c = """ + static class C { public static void M() { D.M(); } } + """; + + File.WriteAllText(Path.Join(testInstance.Path, "dir3/C.cs"), $""" + #:include ../$(P1).cs + {c} + """); + + var d = """ + static class D + { + public static void M() + { + var asm = System.Reflection.Assembly.GetExecutingAssembly(); + using var stream = asm.GetManifestResourceStream($"{asm.GetName().Name}.Resources.resources")!; + using var reader = new System.Resources.ResourceReader(stream); + Console.WriteLine(reader.Cast().Single()); + } + } + """; + + File.WriteAllText(Path.Join(testInstance.Path, "C.cs"), $""" + #:include Resources.resx + {d} + """); + + File.WriteAllText(Path.Join(testInstance.Path, "Resources.resx"), s_resx); + + var expectedOutput = "[MyString, TestValue]"; + + new DotnetCommand(Log, "run", "A.cs") + .WithWorkingDirectory(Path.Join(testInstance.Path, "dir1")) + .Execute() + .Should().Pass() + .And.HaveStdOut(expectedOutput); + + // Convert to a project. + new DotnetCommand(Log, "project", "convert", "A.cs") + .WithWorkingDirectory(Path.Join(testInstance.Path, "dir1")) + .Execute() + .Should().Pass(); + + new DirectoryInfo(Path.Join(testInstance.Path, "dir1/A")) + .Should().HaveSubtree(""" + A.cs + A.csproj + C.cs + C_2.cs + Resources.resx + dir2/ + dir2/B.cs + """) + .And.HaveFileContent("A.cs", a) + .And.HaveFileContent("dir2/B.cs", b) + .And.HaveFileContent("C.cs", c) + .And.HaveFileContent("C_2.cs", d) + .And.HaveFileContent("Resources.resx", s_resx) + .And.HaveFileContentPattern("A.csproj", """ + + + + Exe + net10.0 + enable + enable + true + true + A-* + C + + + + + """); + + // Run the converted project. + new DotnetCommand(Log, "run") + .WithWorkingDirectory(Path.Join(testInstance.Path, "dir1/A")) + .Execute() + .Should().Pass() + .And.HaveStdOut(expectedOutput); + } + + [Fact] + public void IncludeDirective_FileNotFound() + { + var testInstance = _testAssetsManager.CreateTestDirectory(); + + File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ + + + true + + + """); + + var programPath = Path.Join(testInstance.Path, "A.cs"); + + File.WriteAllText(programPath, """ + #:include B.cs + Console.WriteLine("Hello"); + """); + + new DotnetCommand(Log, "run", "A.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Fail() + .And.HaveStdErrContaining(DirectiveError(programPath, 1, Resources.IncludedFileNotFound, Path.Join(testInstance.Path, "B.cs"))); + } + + /// + /// Combination of optimization and #:include directive. + /// + [Theory] + [InlineData("*")] + [InlineData("$(_Star)")] + [InlineData("Util?")] + public void IncludeDirective_UpToDate_Glob(string glob) + { + var testInstance = _testAssetsManager.CreateTestDirectory(); + + File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ + + + true + + + """); + + var programPath = Path.Join(testInstance.Path, "Program.cs"); + File.WriteAllText(programPath, $""" + #:include {glob}.cs + #:property _Star=* + {s_programDependingOnUtil} + """); + + var utilPath = Path.Join(testInstance.Path, "Util1.cs"); + var utilCode = s_util; + File.WriteAllText(utilPath, utilCode); + + var artifactsDir = VirtualProjectBuilder.GetArtifactsPath(programPath); + if (Directory.Exists(artifactsDir)) Directory.Delete(artifactsDir, recursive: true); + + var expectedOutput = "Hello, String from Util"; + + Build(testInstance, BuildLevel.All, expectedOutput: expectedOutput); + + Build(testInstance, BuildLevel.All, expectedOutput: expectedOutput); + + utilCode = utilCode.Replace("String from Util", "v2"); + File.WriteAllText(utilPath, utilCode); + + Build(testInstance, BuildLevel.All, expectedOutput: "Hello, v2"); + + utilCode = utilCode.Replace("v2", "v3"); + File.WriteAllText(utilPath, utilCode); + + Build(testInstance, BuildLevel.All, expectedOutput: "Hello, v3"); + + var util2Path = Path.Join(testInstance.Path, "Util2.cs"); + File.WriteAllText(util2Path, """ + using System.Runtime.CompilerServices; + + file class C + { + [ModuleInitializer] + internal static void Initialize() + { + Console.WriteLine("Hello from Util2"); + } + } + """); + + Build(testInstance, BuildLevel.All, expectedOutput: """ + Hello from Util2 + Hello, v3 + """); + } + + /// + /// Combination of optimization and #:include directive. + /// + [Fact] + public void IncludeDirective_UpToDate_NoGlob() + { + var testInstance = _testAssetsManager.CreateTestDirectory(); + + File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ + + + true + + + """); + + var programPath = Path.Join(testInstance.Path, "Program.cs"); + File.WriteAllText(programPath, $""" + #:include Util.cs + {s_programDependingOnUtil} + """); + + var utilPath = Path.Join(testInstance.Path, "Util.cs"); + var utilCode = s_util; + File.WriteAllText(utilPath, utilCode); + + var artifactsDir = VirtualProjectBuilder.GetArtifactsPath(programPath); + if (Directory.Exists(artifactsDir)) Directory.Delete(artifactsDir, recursive: true); + + var expectedOutput = "Hello, String from Util"; + + Build(testInstance, BuildLevel.All, expectedOutput: expectedOutput); + + Build(testInstance, BuildLevel.None, expectedOutput: expectedOutput); + + utilCode = utilCode.Replace("String from Util", "v2"); + File.WriteAllText(utilPath, utilCode); + + Build(testInstance, BuildLevel.All, expectedOutput: "Hello, v2"); + + utilCode = utilCode.Replace("v2", "v3"); + File.WriteAllText(utilPath, utilCode); + + Build(testInstance, BuildLevel.All, expectedOutput: "Hello, v3"); + + var util2Path = Path.Join(testInstance.Path, "Util2.cs"); + File.WriteAllText(util2Path, """ + using System.Runtime.CompilerServices; + + file class C + { + [ModuleInitializer] + internal static void Initialize() + { + Console.WriteLine("Hello from Util2"); + } + } + """); + + Build(testInstance, BuildLevel.None, expectedOutput: "Hello, v3"); + + Build(testInstance, BuildLevel.All, args: ["--no-cache"], expectedOutput: "Hello, v3"); + } + + /// + /// Combination of test and #:include directive. + /// + [Fact] + public void IncludeDirective_UpToDate_ProjectReference() + { + var testInstance = _testAssetsManager.CreateTestDirectory(); + + File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ + + + true + true + + + """); + + var libDir = Path.Join(testInstance.Path, "Lib"); + Directory.CreateDirectory(libDir); + + File.WriteAllText(Path.Join(libDir, "Lib.csproj"), $""" + + + {ToolsetInfo.CurrentTargetFramework} + + + """); + + var libPath = Path.Join(libDir, "Lib.cs"); + var libCode = """ + namespace Lib; + public class LibClass + { + public static string GetMessage() => "Lib(v1)"; + } + """; + File.WriteAllText(libPath, libCode); + + var appDir = Path.Join(testInstance.Path, "App"); + Directory.CreateDirectory(appDir); + + var utilPath = Path.Join(appDir, "Util.cs"); + var utilCode = """ + #:project ../Lib + class UtilClass + { + public static string GetMessage() => "Util(v1) " + Lib.LibClass.GetMessage(); + } + """; + File.WriteAllText(utilPath, utilCode); + + var programPath = Path.Join(appDir, "Program.cs"); + var programCode = """ + #:include Util.cs + Console.WriteLine("Program(v1) " + UtilClass.GetMessage()); + """; + File.WriteAllText(programPath, programCode); + + var artifactsDir = VirtualProjectBuilder.GetArtifactsPath(programPath); + if (Directory.Exists(artifactsDir)) Directory.Delete(artifactsDir, recursive: true); + + var expectedOutput = "Program(v1) Util(v1) Lib(v1)"; + + Build(testInstance, BuildLevel.All, expectedOutput: expectedOutput, workDir: appDir); + + Build(testInstance, BuildLevel.All, expectedOutput: expectedOutput, workDir: appDir); + + libCode = libCode.Replace("v1", "v2"); + File.WriteAllText(libPath, libCode); + + expectedOutput = "Program(v1) Util(v1) Lib(v2)"; + + Build(testInstance, BuildLevel.All, expectedOutput: expectedOutput, workDir: appDir); + } + + [Fact] + public void IncludeDirective_FeatureFlags() + { + var testInstance = _testAssetsManager.CreateTestDirectory(); + + var programPath = Path.Join(testInstance.Path, "Program.cs"); + File.WriteAllText(programPath, $""" + #:include *.cs + {s_programDependingOnUtil} + """); + + var utilPath = Path.Join(testInstance.Path, "Util.cs"); + File.WriteAllText(utilPath, $""" + #:exclude Other.cs + {s_util} + """); + + new DotnetCommand(Log, "run", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Fail() + .And.HaveStdErr($""" + {DirectiveError(programPath, 1, Resources.ExperimentalFeatureDisabled, CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableIncludeDirective)} + + {CliCommandStrings.RunCommandException} + """); + + new DotnetCommand(Log, "run", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .WithEnvironmentVariable(CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableIncludeDirective, "true") + .Execute() + .Should().Fail() + .And.HaveStdErr($""" + {DirectiveError(utilPath, 1, Resources.ExperimentalFeatureDisabled, CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableExcludeDirective)} + + {CliCommandStrings.RunCommandException} + """); + + new DotnetCommand(Log, "run", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .WithEnvironmentVariable(CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableIncludeDirective, "true") + .WithEnvironmentVariable(CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableExcludeDirective, "true") + .Execute() + .Should().Fail() + .And.HaveStdErr($""" + {DirectiveError(utilPath, 1, Resources.ExperimentalFeatureDisabled, CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableTransitiveDirectives)} + + {CliCommandStrings.RunCommandException} + """); + + new DotnetCommand(Log, "run", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .WithEnvironmentVariable(CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableIncludeDirective, "true") + .WithEnvironmentVariable(CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableExcludeDirective, "true") + .WithEnvironmentVariable(CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableTransitiveDirectives, "true") + .Execute() + .Should().Pass() + .And.HaveStdOut("Hello, String from Util"); + } + + [Fact] + public void IncludeDirective_CustomMapping() + { + var testInstance = _testAssetsManager.CreateTestDirectory(); + + File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ + + + true + true + + + """); + + var programPath = Path.Join(testInstance.Path, "Program.cs"); + File.WriteAllText(programPath, $""" + #:property FileBasedProgramsItemMapping=.json=Content + #:include *.cs + {s_programDependingOnUtil} + """); + + var utilPath = Path.Join(testInstance.Path, "Util.cs"); + File.WriteAllText(utilPath, s_util); + + new DotnetCommand(Log, "run", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Fail() + .And.HaveStdErr($""" + {DirectiveError(programPath, 2, FileBasedProgramsResources.IncludeOrExcludeDirectiveUnknownFileType, "#:include", ".json")} + + {CliCommandStrings.RunCommandException} + """); + + File.WriteAllText(programPath, $""" + #:property FileBasedProgramsItemMapping=.cs=Content + #:include *.cs + {s_programDependingOnUtil} + """); + + new DotnetCommand(Log, "run", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Fail() + // error CS0103: The name 'Util' does not exist in the current context + .And.HaveStdOutContaining("error CS0103"); + + File.WriteAllText(programPath, $""" + #:property FileBasedProgramsItemMapping=.cs=Compile + #:include *.cs + {s_programDependingOnUtil} + """); + + new DotnetCommand(Log, "run", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Pass() + .And.HaveStdOut("Hello, String from Util"); + } + + [Fact] + public void IncludeDirective_CustomMapping_ParseErrors() + { + var testInstance = _testAssetsManager.CreateTestDirectory(); + + File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ + + + true + true + + + """); + + var programPath = Path.Join(testInstance.Path, "Program.cs"); + File.WriteAllText(programPath, """ + #:property FileBasedProgramsItemMapping=x + """); + + new DotnetCommand(Log, "run", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Fail() + // error CS5001: Program does not contain a static 'Main' method suitable for an entry point + .And.HaveStdOutContaining("error CS5001"); + + File.WriteAllText(programPath, """ + #:property FileBasedProgramsItemMapping=x + #:include *.* + """); + + new DotnetCommand(Log, "run", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Fail() + .And.HaveStdErr($""" + {DirectiveError(programPath, 1, FileBasedProgramsResources.InvalidIncludeExcludeMappingEntry, "x")} + + {CliCommandStrings.RunCommandException} + """); + + File.WriteAllText(programPath, """ + #:property FileBasedProgramsItemMapping=.=X;y + #:include *.* + """); + + new DotnetCommand(Log, "run", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Fail() + .And.HaveStdErr($""" + {DirectiveError(programPath, 1, FileBasedProgramsResources.InvalidIncludeExcludeMappingExtension, ".", ".=X")} + + {CliCommandStrings.RunCommandException} + """); + + File.WriteAllText(programPath, """ + #:property FileBasedProgramsItemMapping=.cs=;y + #:include *.* + """); + + new DotnetCommand(Log, "run", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Fail() + .And.HaveStdErr($""" + {DirectiveError(programPath, 1, FileBasedProgramsResources.InvalidIncludeExcludeMappingItemType, "", ".cs=")} + + {CliCommandStrings.RunCommandException} + """); + + File.WriteAllText(programPath, """ + #:property FileBasedProgramsItemMapping=.x=X;y + #:include *.* + """); + + new DotnetCommand(Log, "run", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Fail() + .And.HaveStdErr($""" + {DirectiveError(programPath, 1, FileBasedProgramsResources.InvalidIncludeExcludeMappingEntry, "y")} + + {CliCommandStrings.RunCommandException} + """); + } + + /// + /// Demonstrates that consumers (e.g., IDE) can use the API to create an approximate virtual project without needing to know the full mapping. + /// + [Fact] + public void IncludeDirective_CustomMapping_Api() + { + var testInstance = _testAssetsManager.CreateTestDirectory(); + + var programPath = Path.Join(testInstance.Path, "Program.cs"); + + var code = """ + #:include B.cs + #:include C.proto + Console.WriteLine(); + """; + + var builder = new VirtualProjectBuilder( + entryPointFileFullPath: programPath, + targetFrameworkVersion: VirtualProjectBuildingCommand.TargetFrameworkVersion, + sourceText: SourceText.From(code, Encoding.UTF8)); + + var directives = FileLevelDirectiveHelpers.FindDirectives( + builder.EntryPointSourceFile, + reportAllErrors: true, + VirtualProjectBuildingCommand.ThrowingReporter); + + ImmutableArray<(string Extension, string ItemType)> mapping = [(".cs", "Compile")]; + + var evaluatedBuilder = ImmutableArray.CreateBuilder(directives.Length); + + foreach (var directive in directives) + { + if (directive is CSharpDirective.IncludeOrExclude includeOrExcludeDirective) + { + var evaluated = includeOrExcludeDirective.WithDeterminedItemType(ErrorReporters.IgnoringReporter, mapping); + evaluatedBuilder.Add(evaluated); + } + else + { + evaluatedBuilder.Add(directive); + } + } + + var evaluatedDirectives = evaluatedBuilder.DrainToImmutable(); + + var projectWriter = new System.IO.StringWriter(); + VirtualProjectBuilder.WriteProjectFile( + projectWriter, + evaluatedDirectives, + VirtualProjectBuilder.GetDefaultProperties(VirtualProjectBuildingCommand.TargetFrameworkVersion), + isVirtualProject: true, + entryPointFilePath: programPath, + artifactsPath: builder.ArtifactsPath); + + var actualProject = projectWriter.ToString(); + + Log.WriteLine(actualProject); + + actualProject.Should().Contain(""""""); + + actualProject.Should().NotContain(".proto"); + } + + [Fact] + public void IncludeDirective_DefaultMapping_InSync() + { + var parsed = CSharpDirective.IncludeOrExclude.ParseMapping(CSharpDirective.IncludeOrExclude.DefaultMappingString, + sourceFile: default, + VirtualProjectBuildingCommand.ThrowingReporter); + parsed.Should().BeEquivalentTo(CSharpDirective.IncludeOrExclude.DefaultMapping); + } + + [Theory] // https://github.com/dotnet/aspnetcore/issues/63440 + [InlineData(true, null)] + [InlineData(false, null)] + [InlineData(true, "test-id")] + [InlineData(false, "test-id")] + public void UserSecrets(bool useIdArg, string? userSecretsId) + { + var testInstance = _testAssetsManager.CreateTestDirectory(); + + string code = $""" + #:package Microsoft.Extensions.Configuration.UserSecrets@{CSharpCompilerCommand.RuntimeVersion} + {(userSecretsId is null ? "" : $"#:property UserSecretsId={userSecretsId}")} + + using Microsoft.Extensions.Configuration; + + IConfigurationRoot config = new ConfigurationBuilder() + .AddUserSecrets() + .Build(); + + Console.WriteLine("v1"); + Console.WriteLine(config.GetDebugView()); + """; + + var programPath = Path.Join(testInstance.Path, "Program.cs"); + File.WriteAllText(programPath, code); + + // Remove artifacts from possible previous runs of this test. + var artifactsDir = VirtualProjectBuilder.GetArtifactsPath(programPath); + if (Directory.Exists(artifactsDir)) Directory.Delete(artifactsDir, recursive: true); + + if (useIdArg) + { + if (userSecretsId == null) + { + var result = new DotnetCommand(Log, "build", "-getProperty:UserSecretsId", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute(); + result.Should().Pass(); + userSecretsId = result.StdOut!.Trim(); + } + + new DotnetCommand(Log, "user-secrets", "set", "MySecret", "MyValue", "--id", userSecretsId) + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Pass(); + } + else + { + new DotnetCommand(Log, "user-secrets", "set", "MySecret", "MyValue", "--file", "Program.cs") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Pass(); + } + + Build(testInstance, BuildLevel.All, expectedOutput: """ + v1 + MySecret=MyValue (JsonConfigurationProvider for 'secrets.json' (Optional)) + """); + + code = code.Replace("v1", "v2"); + File.WriteAllText(programPath, code); + + Build(testInstance, BuildLevel.Csc, expectedOutput: """ + v2 + MySecret=MyValue (JsonConfigurationProvider for 'secrets.json' (Optional)) + """); + } + + /// + /// Verifies that msbuild-based runs use CSC args equivalent to csc-only runs. + /// Can regenerate CSC arguments template in . + /// + [Fact] + public void CscArguments() + { + var testInstance = _testAssetsManager.CreateTestDirectory(baseDirectory: OutOfTreeBaseDirectory); + const string programName = "TestProgram"; + const string fileName = $"{programName}.cs"; + string entryPointPath = Path.Join(testInstance.Path, fileName); + File.WriteAllText(entryPointPath, s_program); + + // Remove artifacts from possible previous runs of this test. + var artifactsDir = VirtualProjectBuilder.GetArtifactsPath(entryPointPath); + if (Directory.Exists(artifactsDir)) Directory.Delete(artifactsDir, recursive: true); + + // Build using MSBuild. + new DotnetCommand(Log, "run", fileName, "-bl", "--no-cache") + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Pass() + .And.HaveStdOut($"Hello from {programName}"); + + // Find the csc args used by the build. + var msbuildCall = FindCompilerCall(Path.Join(testInstance.Path, "msbuild.binlog")); + var msbuildCallArgs = msbuildCall.GetArguments(); + var msbuildCallArgsString = ArgumentEscaper.EscapeAndConcatenateArgArrayForProcessStart(msbuildCallArgs); + + // Generate argument template code. + string sdkPath = NormalizePath(TestContext.Current.ToolsetUnderTest.SdkFolderUnderTest); + string dotNetRootPath = NormalizePath(TestContext.Current.ToolsetUnderTest.DotNetRoot); + string nuGetCachePath = NormalizePath(TestContext.Current.NuGetCachePath!); + string artifactsDirNormalized = NormalizePath(artifactsDir); + string objPath = $"{artifactsDirNormalized}/obj/debug"; + string entryPointPathNormalized = NormalizePath(entryPointPath); + var msbuildArgsToVerify = new List(); + var nuGetPackageFilePaths = new List(); + var code = new StringBuilder(); + code.AppendLine($$""" + // Licensed to the .NET Foundation under one or more agreements. + // The .NET Foundation licenses this file to you under the MIT license. + + namespace Microsoft.DotNet.Cli.Commands.Run; + + // Generated by test `{{nameof(RunFileTests)}}.{{nameof(CscArguments)}}`. + partial class CSharpCompilerCommand + { + private IEnumerable GetCscArguments( + string fileNameWithoutExtension, + string objDir, + string binDir) + { + return + [ + """); + foreach (var arg in msbuildCallArgs) + { + // This option needs to be passed on the command line, not in an RSP file. + if (arg is "/noconfig") + { + continue; + } + + // We don't need to generate a ref assembly. + if (arg.StartsWith("/refout:", StringComparison.Ordinal)) + { + continue; + } + + // There should be no source link arguments. + if (arg.StartsWith("/sourcelink:", StringComparison.Ordinal)) + { + Assert.Fail($"Unexpected source link argument: {arg}"); + } + + // PreferredUILang is normally not set by default but can be in builds, so ignore it. + if (arg.StartsWith("/preferreduilang:", StringComparison.Ordinal)) + { continue; } @@ -3718,9 +4609,12 @@ public class LibClass } /// - /// Up-to-date checks and optimizations currently don't support other included files. + /// optimization considers default items. + /// Also tests optimization. + /// (We cannot test because that optimization doesn't support neither #:property nor #:sdk which we need to enable default items.) + /// See . /// - [Theory, CombinatorialData] // https://github.com/dotnet/sdk/issues/50912 + [Theory, CombinatorialData] public void UpToDate_DefaultItems(bool optOut) { var testInstance = _testAssetsManager.CreateTestDirectory(); @@ -3730,60 +4624,67 @@ public void UpToDate_DefaultItems(bool optOut) {s_programReadingEmbeddedResource} """; File.WriteAllText(Path.Join(testInstance.Path, "Program.cs"), code); + + Build(testInstance, BuildLevel.All, expectedOutput: "Resource not found"); + File.WriteAllText(Path.Join(testInstance.Path, "Resources.resx"), s_resx); - Build(testInstance, BuildLevel.All, expectedOutput: "[MyString, TestValue]"); + if (!optOut) + { + // Adding a default item is currently not recognized (https://github.com/dotnet/sdk/issues/50912). + Build(testInstance, BuildLevel.None, expectedOutput: "Resource not found"); + Build(testInstance, BuildLevel.All, args: ["--no-cache"], expectedOutput: "[MyString, TestValue]"); + } + else + { + Build(testInstance, BuildLevel.All, expectedOutput: "[MyString, TestValue]"); + } // Update the RESX file. File.WriteAllText(Path.Join(testInstance.Path, "Resources.resx"), s_resx.Replace("TestValue", "UpdatedValue")); - Build(testInstance, optOut ? BuildLevel.All : BuildLevel.None, expectedOutput: optOut ? "[MyString, UpdatedValue]" : "[MyString, TestValue]"); // note: outdated output (build skipped) + Build(testInstance, BuildLevel.All, expectedOutput: "[MyString, UpdatedValue]"); // Update the C# file. File.WriteAllText(Path.Join(testInstance.Path, "Program.cs"), "//v2\n" + code); - Build(testInstance, optOut ? BuildLevel.All : BuildLevel.Csc, expectedOutput: optOut ? "[MyString, UpdatedValue]" : "[MyString, TestValue]"); // note: outdated output (only CSC used) + Build(testInstance, optOut ? BuildLevel.All : BuildLevel.Csc, expectedOutput: "[MyString, UpdatedValue]"); - Build(testInstance, BuildLevel.All, ["--no-cache"], expectedOutput: "[MyString, UpdatedValue]"); + // Update the RESX file again (to verify the CSC only compilation didn't corrupt the list of additional files in the cache). + File.WriteAllText(Path.Join(testInstance.Path, "Resources.resx"), s_resx.Replace("TestValue", "UpdatedValue2")); + + Build(testInstance, BuildLevel.All, expectedOutput: "[MyString, UpdatedValue2]"); } /// - /// Combination of with optimization. + /// Similar to but for .razor files instead of .resx files. /// - /// - /// Note: we cannot test because that optimization doesn't support neither #:property nor #:sdk which we need to enable default items. - /// - [Theory, CombinatorialData] // https://github.com/dotnet/sdk/issues/50912 - public void UpToDate_DefaultItems_CscOnly_AfterMSBuild(bool optOut) + [Fact] + public void UpToDate_DefaultItems_Razor() { - var testInstance = _testAssetsManager.CreateTestDirectory(baseDirectory: OutOfTreeBaseDirectory); - var code = $""" - #:property Configuration=Release - {(optOut ? "#:property FileBasedProgramCanSkipMSBuild=false" : "")} - #:property EnableDefaultEmbeddedResourceItems=true - {s_programReadingEmbeddedResource} - """; - File.WriteAllText(Path.Join(testInstance.Path, "Program.cs"), code); - File.WriteAllText(Path.Join(testInstance.Path, "Resources.resx"), s_resx); - - Build(testInstance, BuildLevel.All, expectedOutput: "[MyString, TestValue]"); - - // Update the C# file. - File.WriteAllText(Path.Join(testInstance.Path, "Program.cs"), "//v2\n" + code); - - Build(testInstance, optOut ? BuildLevel.All : BuildLevel.Csc, expectedOutput: optOut ? "[MyString, TestValue]" : "[MyString, TestValue]"); + var testInstance = _testAssetsManager.CreateTestDirectory(); + var programFileName = "MyRazorApp.cs"; + File.WriteAllText(Path.Join(testInstance.Path, programFileName), """ + #:sdk Microsoft.NET.Sdk.Web + _ = new MyRazorApp.MyCoolApp(); + Console.WriteLine("Hello from Program"); + """); - // Update the RESX file. - File.WriteAllText(Path.Join(testInstance.Path, "Resources.resx"), s_resx.Replace("TestValue", "UpdatedValue")); + var razorFilePath = Path.Join(testInstance.Path, "MyCoolApp.razor"); + File.WriteAllText(razorFilePath, ""); - Build(testInstance, optOut ? BuildLevel.All : BuildLevel.None, expectedOutput: optOut ? "[MyString, UpdatedValue]" : "[MyString, TestValue]"); + Build(testInstance, BuildLevel.All, programFileName: programFileName); - // Update the C# file. - File.WriteAllText(Path.Join(testInstance.Path, "Program.cs"), "//v3\n" + code); + Build(testInstance, BuildLevel.None, programFileName: programFileName); - Build(testInstance, optOut ? BuildLevel.All : BuildLevel.Csc, expectedOutput: optOut ? "[MyString, UpdatedValue]" : "[MyString, TestValue]"); + File.Delete(razorFilePath); - Build(testInstance, BuildLevel.All, ["--no-cache"], expectedOutput: "[MyString, UpdatedValue]"); + new DotnetCommand(Log, "run", programFileName) + .WithWorkingDirectory(testInstance.Path) + .Execute() + .Should().Fail() + // error CS0246: The type or namespace name 'MyRazorApp' could not be found + .And.HaveStdOutContaining("error CS0246"); } [Fact] @@ -4232,7 +5133,7 @@ Release config code = code.Replace("Hello", "Hi"); File.WriteAllText(programPath, code); - Build(testInstance, BuildLevel.Csc, ["test", "args"], expectedOutput: """ + Build(testInstance, BuildLevel.Csc, args: ["test", "args"], expectedOutput: """ echo args:test;args Hi from Program Release config @@ -4611,7 +5512,7 @@ public void Api() File.WriteAllText(programPath, """ #!/program #:sdk Microsoft.NET.Sdk - #:sdk Aspire.Hosting.Sdk@9.1.0 + #:sdk Aspire.AppHost.Sdk@9.1.0 #:property TargetFramework=net11.0 #:package System.CommandLine@2.0.0-beta4.22272.1 #:property LangVersion=preview @@ -4634,6 +5535,7 @@ public void Api() artifacts/$(MSBuildProjectName) artifacts/$(MSBuildProjectName) true + .cs=Compile;.resx=EmbeddedResource;.json=None;.razor=Content false true Exe @@ -4649,7 +5551,7 @@ public void Api() - + net11.0 @@ -4663,7 +5565,96 @@ public void Api() - + + + + + + + + + + + + + + """)}},"Diagnostics":[]} + """); + } + + /// + /// Directives should be evaluated before the project for run-api is constructed. + /// + [Fact] + public void Api_Evaluation() + { + var testInstance = _testAssetsManager.CreateTestDirectory(); + + File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ + + + true + + + """); + + var programPath = Path.Join(testInstance.Path, "A.cs"); + File.WriteAllText(programPath, """ + #:property P1=cs + #:include B.$(P1) + Console.WriteLine(); + """); + + var bPath = Path.Join(testInstance.Path, "B.cs"); + File.WriteAllText(bPath, ""); + + new DotnetCommand(Log, "run-api") + .WithStandardInput($$""" + {"$type":"GetProject","EntryPointFileFullPath":{{ToJson(programPath)}},"ArtifactsPath":"/artifacts"} + """) + .Execute() + .Should().Pass() + .And.HaveStdOut($$""" + {"$type":"Project","Version":1,"Content":{{ToJson($""" + + + + false + /artifacts + artifacts/$(MSBuildProjectName) + artifacts/$(MSBuildProjectName) + true + .cs=Compile;.resx=EmbeddedResource;.json=None;.razor=Content + false + true + false + false + Exe + {ToolsetInfo.CurrentTargetFramework} + enable + enable + true + true + + + + + + + + + + cs + false + $(Features);FileBasedProgram + + + + + + + + @@ -4672,7 +5663,6 @@ public void Api() - @@ -4706,6 +5696,7 @@ public void Api_Diagnostic_01() artifacts/$(MSBuildProjectName) artifacts/$(MSBuildProjectName) true + .cs=Compile;.resx=EmbeddedResource;.json=None;.razor=Content false true false @@ -4730,7 +5721,7 @@ public void Api_Diagnostic_01() - + @@ -4776,6 +5767,7 @@ public void Api_Diagnostic_02() artifacts/$(MSBuildProjectName) artifacts/$(MSBuildProjectName) true + .cs=Compile;.resx=EmbeddedResource;.json=None;.razor=Content false true false @@ -4800,7 +5792,7 @@ public void Api_Diagnostic_02() - + From eefbe4e7ffd5ac1588ff5f67d7dbf2ec8fc65ddf Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Tue, 24 Feb 2026 05:29:37 -0800 Subject: [PATCH 112/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2911575 --- .../xlf/FileBasedProgramsResources.cs.xlf | 23 +++++++++++++++---- .../xlf/FileBasedProgramsResources.de.xlf | 23 +++++++++++++++---- .../xlf/FileBasedProgramsResources.es.xlf | 23 +++++++++++++++---- .../xlf/FileBasedProgramsResources.fr.xlf | 23 +++++++++++++++---- .../xlf/FileBasedProgramsResources.it.xlf | 23 +++++++++++++++---- .../xlf/FileBasedProgramsResources.ja.xlf | 23 +++++++++++++++---- .../xlf/FileBasedProgramsResources.ko.xlf | 23 +++++++++++++++---- .../xlf/FileBasedProgramsResources.pl.xlf | 23 +++++++++++++++---- .../xlf/FileBasedProgramsResources.pt-BR.xlf | 23 +++++++++++++++---- .../xlf/FileBasedProgramsResources.ru.xlf | 23 +++++++++++++++---- .../xlf/FileBasedProgramsResources.tr.xlf | 23 +++++++++++++++---- .../FileBasedProgramsResources.zh-Hans.xlf | 23 +++++++++++++++---- .../FileBasedProgramsResources.zh-Hant.xlf | 23 +++++++++++++++---- 13 files changed, 247 insertions(+), 52 deletions(-) diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf index 37292a467a31..70e6d2d7252b 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf @@ -27,16 +27,31 @@ Duplicitní direktivy nejsou podporovány: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Nelze určit cestu k dočasnému adresáři. Zvažte konfiguraci proměnné prostředí TEMP v systému Windows nebo místní datové složky aplikace v systému Unix. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. Direktiva by měla obsahovat název bez speciálních znaků a volitelnou hodnotu oddělenou znakem {1}, například #:{0} Název{1}Hodnota. {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} Direktiva #:project je neplatná: {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf index 991dcca846e4..a6e86cdb09d8 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf @@ -27,16 +27,31 @@ Doppelte Anweisungen werden nicht unterstützt: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Ein temporärer Verzeichnispfad kann nicht ermittelt werden. Erwägen Sie, die TEMP-Umgebungsvariable unter Windows oder den lokalen App-Datenordner unter Unix zu konfigurieren. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. Die Anweisung sollte einen Namen ohne Sonderzeichen und einen optionalen Wert enthalten, die durch „{1}“ getrennt sind, wie „#:{0} Name{1}Wert“. {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} Die Anweisung „#:p roject“ ist ungültig: {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf index 2983aa595df6..76d8f9968652 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf @@ -27,16 +27,31 @@ No se admiten directivas duplicadas: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - No se puede determinar una ruta de acceso temporal al directorio. Considere la posibilidad de configurar la variable de entorno TEMP en Windows o la carpeta de datos de la aplicación local en Unix. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. La directiva debe contener un nombre sin caracteres especiales y un valor opcional separado por "{1}" como "#:{0} Nombre{1}Valor". {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} La directiva "#:project" no es válida: {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf index 1fabce52be8a..8d6c4042d47a 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf @@ -27,16 +27,31 @@ Les directives dupliquées ne sont pas prises en charge : {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Impossible de déterminer un chemin d’accès pour le répertoire temporaire. Nous vous recommandons de configurer la variable d’environnement TEMP sous Windows ou le dossier des données d’application locale sous Unix. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. La directive dans doit contenir un nom sans caractères spéciaux et une valeur facultative séparée par « {1} » comme « # :{0} Nom{1}Valeur ». {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} La directive « #:project » n’est pas valide : {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf index 93fdb8209fd1..b630dba53574 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf @@ -27,16 +27,31 @@ Le direttive duplicate non supportate: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Non è possibile determinare un percorso per la directory temporanea. Considerare la configurazione della variabile di ambiente TEMP in Windows o della cartella dei dati locali dell'app in Unix. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. La direttiva deve contenere un nome senza caratteri speciali e un valore facoltativo delimitato da '{1}' come '#:{0}Nome {1}Valore'. {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} La direttiva '#:project' non è valida: {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf index f76d2b528243..9c0a354e501f 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf @@ -27,16 +27,31 @@ 重複するディレクティブはサポートされていません: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - 一時ディレクトリ パスを特定できません。Windows で TEMP 環境変数を構成するか、Unix でローカル アプリ データ フォルダーを構成することを検討してください。 - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. ディレクティブには、特殊文字を含まない名前と、'#:{0} Name{1}Value' などの '{1}' で区切られた省略可能な値を含める必要があります。 {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} '#:p roject' ディレクティブが無効です: {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf index afdd17c8f433..a10e12d4353a 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf @@ -27,16 +27,31 @@ 중복 지시문은 지원되지 않습니다. {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - 임시 디렉터리 경로를 확인할 수 없습니다. Windows에서는 TEMP 환경 변수를, Unix에서는 로컬 앱 데이터 폴더를 설정하는 것이 좋습니다. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. 지시문에는 특수 문자가 없는 이름과 '#:{0} 이름{1}값'과 같이 '{1}'(으)로 구분된 선택적 값이 포함되어야 합니다. {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} '#:p roject' 지시문이 잘못되었습니다. {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf index 5e91ebbb30cf..0892381d07be 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf @@ -27,16 +27,31 @@ Zduplikowane dyrektywy nie są obsługiwane: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Nie można określić tymczasowej ścieżki katalogu. Rozważ skonfigurowanie zmiennej środowiskowej TEMP w systemie Windows lub folderze danych aplikacji lokalnej w systemie Unix. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. Dyrektywa powinna zawierać nazwę bez znaków specjalnych i opcjonalną wartość rozdzieloną znakiem "{1}#:{0} Name{1}Value". {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} Dyrektywa „#:project” jest nieprawidłowa: {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf index f44fda05d927..27d61a6c0cf8 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf @@ -27,16 +27,31 @@ Diretivas duplicadas não são suportadas:{0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Não é possível determinar um caminho de diretório temporário. Considere configurar a variável de ambiente TEMP no Windows ou a pasta de dados do aplicativo local no Unix. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. A diretiva deve conter um nome sem caracteres especiais e um valor opcional separado por '{1}' como '#:{0} Nome{1}Valor'. {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} A diretiva '#:project' é inválida:{0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf index 5e9af0ed594f..381e8f4b8038 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf @@ -27,16 +27,31 @@ Повторяющиеся директивы не поддерживаются: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Не удалось определить путь к временному каталогу. Рассмотрите возможность настроить переменную среды TEMP в Windows или папку локальных данных приложений в Unix. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. Директива должна содержать имя без специальных символов и необязательное значение, разделенные символом-разделителем "{1}", например "#:{0} Имя{1}Значение". {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} Недопустимая директива "#:project": {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf index 93c4d39ae84d..014caf69d8ae 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf @@ -27,16 +27,31 @@ Yinelenen yönergeler desteklenmez: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Geçici dizin yolu saptanamıyor. Windows'da TEMP ortam değişkenini veya Unix'te yerel uygulama verileri klasörünü yapılandırmayı göz önünde bulundurun. - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. Yönerge, özel karakterler içermeyen bir ad ve ‘#:{0} Ad{1}Değer’ gibi '{1}' ile ayrılmış isteğe bağlı bir değer içermelidir. {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} ‘#:project’ yönergesi geçersizdir: {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf index 27b469f6394b..b0223d61e6ca 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf @@ -27,16 +27,31 @@ 不支持重复指令: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - 无法确定临时目录路径。请考虑在 Windows 上配置 TEMP 环境变量,或在 Unix 上配置本地应用数据文件夹。 - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. 该指令应包含一个不带特殊字符的名称,以及一个以 '#:{0} Name{1}Value' 等 ‘{1}’ 分隔的可选值。 {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} '#:project' 指令无效: {0} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf index f5a7d9f89eea..b141d76c8c90 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf @@ -27,16 +27,31 @@ 不支援重複的指示詞: {0} {0} is the directive type and name. - - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - 無法判斷暫存 目錄路徑。考慮在 Windows 上或 Unix 上的本機應用程式資料資料資料夾上設定 TEMP 環境變數。 - + + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'. 指示詞應包含不含特殊字元的名稱,以及 '{1}' 分隔的選用值,例如 '#:{0} Name{1}Value'。 {0} is the directive type like 'package' or 'sdk'. {1} is the expected separator like '@' or '='. + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + + + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} + The '#:project' directive is invalid: {0} '#:project' 指示詞無效: {0} From 9a05f7153e3612d058013bf6df8417f90fcf071d Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Tue, 24 Feb 2026 05:34:50 -0800 Subject: [PATCH 113/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2911575 --- .../xlf/Resources.cs.xlf | 15 +++++++++++++++ .../xlf/Resources.de.xlf | 15 +++++++++++++++ .../xlf/Resources.es.xlf | 15 +++++++++++++++ .../xlf/Resources.fr.xlf | 15 +++++++++++++++ .../xlf/Resources.it.xlf | 15 +++++++++++++++ .../xlf/Resources.ja.xlf | 15 +++++++++++++++ .../xlf/Resources.ko.xlf | 15 +++++++++++++++ .../xlf/Resources.pl.xlf | 15 +++++++++++++++ .../xlf/Resources.pt-BR.xlf | 15 +++++++++++++++ .../xlf/Resources.ru.xlf | 15 +++++++++++++++ .../xlf/Resources.tr.xlf | 15 +++++++++++++++ .../xlf/Resources.zh-Hans.xlf | 15 +++++++++++++++ .../xlf/Resources.zh-Hant.xlf | 15 +++++++++++++++ 13 files changed, 195 insertions(+) diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.cs.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.cs.xlf index 6b4ff5bb55d0..805d86638902 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.cs.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.cs.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Nastavte odlišné názvy profilů. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. Profil spuštění s názvem {0} neexistuje. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.de.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.de.xlf index 93d3cd733313..ed5ebbf7e42d 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.de.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.de.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Erstellen Sie eindeutige Profilnamen. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. Es ist kein Startprofil mit dem Namen "{0}" vorhanden. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.es.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.es.xlf index 5e37b3de70aa..b91740a132ba 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.es.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.es.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Defina nombres de perfiles distintos. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. No existe ningún perfil de inicio con el nombre "{0}". diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.fr.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.fr.xlf index 6440e8fe7f38..de61a273b3c4 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.fr.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.fr.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Faites en sorte que les noms de profil soient distincts. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. Un profil de lancement avec le nom '{0}' n'existe pas. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.it.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.it.xlf index 37441888832a..ece8ec04b6fe 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.it.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.it.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Rendi distinti i nomi profilo. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. Non esiste un profilo di avvio con il nome '{0}'. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ja.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ja.xlf index 7a932cd4791f..84d999508982 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ja.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ja.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. プロファイル名を区別できるようにしてください。 + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. '{0} ' という名前の起動プロファイルは存在しません。 diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ko.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ko.xlf index 738033adb535..d00ea6c13a2a 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ko.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ko.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. 고유한 프로필 이름을 사용하세요. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. 이름이 '{0}'인 시작 프로필이 없습니다. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pl.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pl.xlf index cfd4a8d9cf5e..54df3d9fe109 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pl.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pl.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Rozróżnij nazwy profilów. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. Profil uruchamiania o nazwie „{0}” nie istnieje. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pt-BR.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pt-BR.xlf index 68e6a06dfb3d..4f89fd87a677 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pt-BR.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pt-BR.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Diferencie os nomes dos perfis. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. Um perfil de lançamento com o nome '{0}' não existe. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ru.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ru.xlf index 4261e1e952ec..68b5f2c01a03 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ru.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ru.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Сделайте имена профилей разными. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. Профиль запуска с именем "{0}" не существует. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.tr.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.tr.xlf index 6bd01ca3bd48..9502066ed859 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.tr.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.tr.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. Profil adlarının birbirinden farklı olmasını sağlayın. + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. '{0}' adlı bir başlatma profili yok. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hans.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hans.xlf index 9aded33cb3cd..f88c8de849d4 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hans.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hans.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. 将配置文件名称设为可区分的名称。 + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. 名为“{0}”的启动配置文件不存在。 diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hant.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hant.xlf index 8650ca7c10db..a28cdbc5580b 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hant.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hant.xlf @@ -21,6 +21,21 @@ Make the profile names distinct. 請讓設定檔名稱相異。 + + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + + + + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. + + + File included via #:include directive (or Compile item) not found: {0} + File included via #:include directive (or Compile item) not found: {0} + {Locked="#:include"}{Locked="Compile"}. {0} is file path. + A launch profile with the name '{0}' doesn't exist. 名稱為 '{0}' 的啟動設定檔不存在。 From ba6ab4ae38703f26e2cbc341a08be991fab0bb95 Mon Sep 17 00:00:00 2001 From: YuliiaKovalova <95473390+YuliiaKovalova@users.noreply.github.com> Date: Tue, 24 Feb 2026 19:22:24 +0100 Subject: [PATCH 114/179] Add DotNetSdkSupportsVSHostObjectRemoting property (#53100) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../packaging/build/Microsoft.NET.Build.Containers.props | 2 ++ .../Publish/Targets/Microsoft.NET.Sdk.Publish.targets | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/src/Containers/packaging/build/Microsoft.NET.Build.Containers.props b/src/Containers/packaging/build/Microsoft.NET.Build.Containers.props index 82178233188c..a59da4835066 100644 --- a/src/Containers/packaging/build/Microsoft.NET.Build.Containers.props +++ b/src/Containers/packaging/build/Microsoft.NET.Build.Containers.props @@ -6,6 +6,8 @@ net10.0 net472 containerize + + true $(MSBuildThisFileDirectory)..\$(ContainerTaskFolderName)\$(ContainerTaskFramework)\ $(MSBuildThisFileDirectory)..\$(ContainerizeFolderName)\ diff --git a/src/WebSdk/Publish/Targets/Microsoft.NET.Sdk.Publish.targets b/src/WebSdk/Publish/Targets/Microsoft.NET.Sdk.Publish.targets index c5206449c345..3f8f3ed76ebc 100644 --- a/src/WebSdk/Publish/Targets/Microsoft.NET.Sdk.Publish.targets +++ b/src/WebSdk/Publish/Targets/Microsoft.NET.Sdk.Publish.targets @@ -19,6 +19,12 @@ Copyright (C) Microsoft Corporation. All rights reserved. true + + + true <_PublishTaskFramework Condition=" '$(MSBuildRuntimeType)' == 'Core'">net10.0 <_PublishTaskFramework Condition=" '$(_PublishTaskFramework)' == ''">net472 <_PublishTasksDir Condition=" '$(_PublishTasksDir)'=='' ">$(MSBuildThisFileDirectory)..\tools\$(_PublishTaskFramework)\ From 8cbac4a5cdf27c2bb606a282cc47e60a7c4ced45 Mon Sep 17 00:00:00 2001 From: Jan Jones Date: Tue, 24 Feb 2026 21:58:12 +0100 Subject: [PATCH 115/179] Clean up some file-based app APIs (#53056) Co-authored-by: tmat --- .editorconfig | 1 + .../FileLevelDirectiveHelpers.cs | 95 +++++++++---------- .../InternalAPI.Unshipped.txt | 20 ++-- .../Project/Convert/ProjectConvertCommand.cs | 4 +- .../dotnet/Commands/Run/Api/RunApiCommand.cs | 4 +- .../Commands/Run/FileBasedAppSourceEditor.cs | 4 +- .../Run/VirtualProjectBuildingCommand.cs | 8 +- .../LaunchSettings/ExecutableLaunchProfile.cs | 2 +- .../LaunchSettings/LaunchProfile.cs | 2 +- .../LaunchProfileParseResult.cs | 2 +- .../LaunchSettings/LaunchSettings.cs | 8 +- .../LaunchSettings/ProjectLaunchProfile.cs | 2 +- .../Microsoft.DotNet.ProjectTools.csproj | 11 ++- .../PublicAPI.Shipped.txt | 1 + .../PublicAPI.Unshipped.txt | 6 ++ .../Utilities/Sha256Hasher.cs | 2 +- .../VirtualProjectBuilder.cs | 48 +++++----- .../Convert/DotnetProjectConvertTests.cs | 4 +- .../CommandTests/Run/RunFileTests.cs | 7 +- 19 files changed, 123 insertions(+), 108 deletions(-) create mode 100644 src/Microsoft.DotNet.ProjectTools/PublicAPI.Shipped.txt create mode 100644 src/Microsoft.DotNet.ProjectTools/PublicAPI.Unshipped.txt diff --git a/.editorconfig b/.editorconfig index 1caf766b86fe..cc2382db994b 100644 --- a/.editorconfig +++ b/.editorconfig @@ -170,6 +170,7 @@ file_header_template = Licensed to the .NET Foundation under one or more agreeme dotnet_code_quality.ca1802.api_surface = private, internal dotnet_code_quality.ca1822.api_surface = private, internal dotnet_code_quality.ca2208.api_surface = public +dotnet_public_api_analyzer.require_api_files = true # Mark attributes with AttributeUsageAttribute dotnet_diagnostic.CA1018.severity = warning # Properties should not be write only diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs b/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs index 1e4d853c08b2..99e7ba172924 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs @@ -36,7 +36,7 @@ public static SyntaxTokenParser CreateTokenizer(SourceText text) /// The latter is useful for dotnet run file.cs where if there are app directives after the first token, /// compiler reports anyway, so we speed up success scenarios by not parsing the whole file up front in the SDK CLI. /// - public static ImmutableArray FindDirectives(SourceFile sourceFile, bool reportAllErrors, ErrorReporter reportError) + public static ImmutableArray FindDirectives(SourceFile sourceFile, bool reportAllErrors, ErrorReporter errorReporter) { var builder = ImmutableArray.CreateBuilder(); var tokenizer = CreateTokenizer(sourceFile.Text); @@ -44,7 +44,7 @@ public static ImmutableArray FindDirectives(SourceFile sourceFi var result = tokenizer.ParseLeadingTrivia(); var triviaList = result.Token.LeadingTrivia; - FindLeadingDirectives(sourceFile, triviaList, reportError, builder); + FindLeadingDirectives(sourceFile, triviaList, errorReporter, builder); // In conversion mode, we want to report errors for any invalid directives in the rest of the file // so users don't end up with invalid directives in the converted project. @@ -73,7 +73,7 @@ void ReportErrorFor(SyntaxTrivia trivia) { if (trivia.ContainsDiagnostics && trivia.IsKind(SyntaxKind.IgnoredDirectiveTrivia)) { - reportError(sourceFile, trivia.Span, FileBasedProgramsResources.CannotConvertDirective); + errorReporter(sourceFile.Text, sourceFile.Path, trivia.Span, FileBasedProgramsResources.CannotConvertDirective); } } @@ -86,7 +86,7 @@ void ReportErrorFor(SyntaxTrivia trivia) public static void FindLeadingDirectives( SourceFile sourceFile, SyntaxTriviaList triviaList, - ErrorReporter reportError, + ErrorReporter errorReporter, ImmutableArray.Builder? builder) { var deduplicated = new Dictionary(NamedDirectiveComparer.Instance); @@ -144,7 +144,7 @@ public static void FindLeadingDirectives( LeadingWhiteSpace = whiteSpace.Leading, TrailingWhiteSpace = whiteSpace.Trailing, }, - ReportError = reportError, + ErrorReporter = errorReporter, DirectiveKind = name, DirectiveText = value, }; @@ -152,7 +152,7 @@ public static void FindLeadingDirectives( // Block quotes now so we can later support quoted values without a breaking change. https://github.com/dotnet/sdk/issues/49367 if (value.Contains('"')) { - reportError(sourceFile, context.Info.Span, FileBasedProgramsResources.QuoteInDirective); + context.ReportError(FileBasedProgramsResources.QuoteInDirective); } if (CSharpDirective.Parse(context) is { } directive) @@ -161,7 +161,7 @@ public static void FindLeadingDirectives( if (deduplicated.TryGetValue(directive, out var existingDirective)) { var typeAndName = $"#:{existingDirective.GetType().Name.ToLowerInvariant()} {existingDirective.Name}"; - reportError(sourceFile, directive.Info.Span, string.Format(FileBasedProgramsResources.DuplicateDirective, typeAndName)); + context.ReportError(directive.Info.Span, string.Format(FileBasedProgramsResources.DuplicateDirective, typeAndName)); } else { @@ -230,16 +230,6 @@ public static SourceFile Load(string filePath) return new SourceFile(filePath, SourceText.From(stream, encoding: null)); } - public SourceFile WithPath(string newPath) - { - return new SourceFile(newPath, Text); - } - - public SourceFile WithText(SourceText newText) - { - return new SourceFile(Path, newText); - } - public void Save() { using var stream = File.Open(Path, FileMode.Create, FileAccess.Write); @@ -249,15 +239,9 @@ public void Save() Text.Write(writer); } - public FileLinePositionSpan GetFileLinePositionSpan(TextSpan span) - { - return new FileLinePositionSpan(Path, Text.Lines.GetLinePositionSpan(span)); - } - public string GetLocationString(TextSpan span) { - var positionSpan = GetFileLinePositionSpan(span); - return $"{positionSpan.Path}({positionSpan.StartLinePosition.Line + 1})"; + return $"{Path}({Text.Lines.GetLinePositionSpan(span).Start.Line + 1})"; } } @@ -298,9 +282,15 @@ public readonly struct ParseInfo public readonly struct ParseContext { public required ParseInfo Info { get; init; } - public required ErrorReporter ReportError { get; init; } + public required ErrorReporter ErrorReporter { get; init; } public required string DirectiveKind { get; init; } public required string DirectiveText { get; init; } + + public void ReportError(string message) + => ErrorReporter(Info.SourceFile.Text, Info.SourceFile.Path, Info.Span, message); + + public void ReportError(TextSpan span, string message) + => ErrorReporter(Info.SourceFile.Text, Info.SourceFile.Path, span, message); } public static Named? Parse(in ParseContext context) @@ -313,7 +303,7 @@ public readonly struct ParseContext case "project": return Project.Parse(context); case "include" or "exclude": return IncludeOrExclude.Parse(context); default: - context.ReportError(context.Info.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.UnrecognizedDirective, context.DirectiveKind)); + context.ReportError(string.Format(FileBasedProgramsResources.UnrecognizedDirective, context.DirectiveKind)); return null; } } @@ -326,14 +316,14 @@ private static (string, string?)? ParseOptionalTwoParts(in ParseContext context, string directiveKind = context.DirectiveKind; if (firstPart.IsWhiteSpace()) { - context.ReportError(context.Info.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.MissingDirectiveName, directiveKind)); + context.ReportError(string.Format(FileBasedProgramsResources.MissingDirectiveName, directiveKind)); return null; } // If the name contains characters that resemble separators, report an error to avoid any confusion. if (Patterns.DisallowedNameCharacters.Match(context.DirectiveText, beginning: 0, length: firstPart.Length).Success) { - context.ReportError(context.Info.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.InvalidDirectiveName, directiveKind, separator)); + context.ReportError(string.Format(FileBasedProgramsResources.InvalidDirectiveName, directiveKind, separator)); return null; } @@ -409,7 +399,7 @@ public sealed class Property(in ParseInfo info) : Named(info) if (propertyValue is null) { - context.ReportError(context.Info.SourceFile, context.Info.Span, FileBasedProgramsResources.PropertyDirectiveMissingParts); + context.ReportError(FileBasedProgramsResources.PropertyDirectiveMissingParts); return null; } @@ -419,14 +409,14 @@ public sealed class Property(in ParseInfo info) : Named(info) } catch (XmlException ex) { - context.ReportError(context.Info.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.PropertyDirectiveInvalidName, ex.Message), ex); + context.ReportError(string.Format(FileBasedProgramsResources.PropertyDirectiveInvalidName, ex.Message)); return null; } if (propertyName.Equals("RestoreUseStaticGraphEvaluation", StringComparison.OrdinalIgnoreCase) && MSBuildUtilities.ConvertStringToBool(propertyValue)) { - context.ReportError(context.Info.SourceFile, context.Info.Span, FileBasedProgramsResources.StaticGraphRestoreNotSupported); + context.ReportError(FileBasedProgramsResources.StaticGraphRestoreNotSupported); } return new Property(context.Info) @@ -498,8 +488,7 @@ public Project(in ParseInfo info, string name) : base(info) var directiveText = context.DirectiveText; if (directiveText.IsWhiteSpace()) { - string directiveKind = context.DirectiveKind; - context.ReportError(context.Info.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.MissingDirectiveName, directiveKind)); + context.ReportError(string.Format(FileBasedProgramsResources.MissingDirectiveName, context.DirectiveKind)); return null; } @@ -537,14 +526,15 @@ public Project WithName(string name, NameKind kind) /// /// If the directive points to a directory, returns a new directive pointing to the corresponding project file. /// - public Project EnsureProjectFilePath(ErrorReporter reportError) + public Project EnsureProjectFilePath(ErrorReporter errorReporter) { var resolvedName = Name; + var sourcePath = Info.SourceFile.Path; // If the path is a directory like '../lib', transform it to a project file path like '../lib/lib.csproj'. // Also normalize backslashes to forward slashes to ensure the directive works on all platforms. - var sourceDirectory = Path.GetDirectoryName(Info.SourceFile.Path) - ?? throw new InvalidOperationException($"Source file path '{Info.SourceFile.Path}' does not have a containing directory."); + var sourceDirectory = Path.GetDirectoryName(sourcePath) + ?? throw new InvalidOperationException($"Source file path '{sourcePath}' does not have a containing directory."); var resolvedProjectPath = Path.Combine(sourceDirectory, resolvedName.Replace('\\', '/')); if (Directory.Exists(resolvedProjectPath)) @@ -558,16 +548,18 @@ public Project EnsureProjectFilePath(ErrorReporter reportError) } else { - reportError(Info.SourceFile, Info.Span, string.Format(FileBasedProgramsResources.InvalidProjectDirective, error)); + ReportError(string.Format(FileBasedProgramsResources.InvalidProjectDirective, error)); } } else if (!File.Exists(resolvedProjectPath)) { - reportError(Info.SourceFile, Info.Span, - string.Format(FileBasedProgramsResources.InvalidProjectDirective, string.Format(FileBasedProgramsResources.CouldNotFindProjectOrDirectory, resolvedProjectPath))); + ReportError(string.Format(FileBasedProgramsResources.InvalidProjectDirective, string.Format(FileBasedProgramsResources.CouldNotFindProjectOrDirectory, resolvedProjectPath))); } return WithName(resolvedName, NameKind.ProjectFilePath); + + void ReportError(string message) + => errorReporter(Info.SourceFile.Text, sourcePath, Info.Span, message); } public override string ToString() => $"#:project {Name}"; @@ -628,7 +620,7 @@ public sealed class IncludeOrExclude(in ParseInfo info) : Named(info) if (directiveText.IsWhiteSpace()) { string directiveKind = context.DirectiveKind; - context.ReportError(context.Info.SourceFile, context.Info.Span, string.Format(FileBasedProgramsResources.MissingDirectiveName, directiveKind)); + context.ReportError(string.Format(FileBasedProgramsResources.MissingDirectiveName, directiveKind)); return null; } @@ -659,7 +651,7 @@ public IncludeOrExclude WithDeterminedItemType(ErrorReporter reportError, Immuta if (itemType is null) { - reportError(Info.SourceFile, Info.Span, + reportError(Info.SourceFile.Text, Info.SourceFile.Path, Info.Span, string.Format(FileBasedProgramsResources.IncludeOrExcludeDirectiveUnknownFileType, $"#:{KindToString()}", string.Join(", ", mapping.Select(static e => e.Extension)))); @@ -730,7 +722,7 @@ public string KindToMSBuildString() public static ImmutableArray<(string Extension, string ItemType)> ParseMapping( string value, SourceFile sourceFile, - ErrorReporter reportError) + ErrorReporter errorReporter) { var pairs = value.Split(';'); @@ -742,7 +734,7 @@ public string KindToMSBuildString() if (parts.Length != 2) { - reportError(sourceFile, default, string.Format(FileBasedProgramsResources.InvalidIncludeExcludeMappingEntry, pair)); + ReportError(string.Format(FileBasedProgramsResources.InvalidIncludeExcludeMappingEntry, pair)); continue; } @@ -751,13 +743,13 @@ public string KindToMSBuildString() if (extension is not ['.', _, ..]) { - reportError(sourceFile, default, string.Format(FileBasedProgramsResources.InvalidIncludeExcludeMappingExtension, extension, pair)); + ReportError(string.Format(FileBasedProgramsResources.InvalidIncludeExcludeMappingExtension, extension, pair)); continue; } if (itemType.IsWhiteSpace()) { - reportError(sourceFile, default, string.Format(FileBasedProgramsResources.InvalidIncludeExcludeMappingItemType, itemType, pair)); + ReportError(string.Format(FileBasedProgramsResources.InvalidIncludeExcludeMappingItemType, itemType, pair)); continue; } @@ -765,6 +757,9 @@ public string KindToMSBuildString() } return builder.DrainToImmutable(); + + void ReportError(string message) + => errorReporter(sourceFile.Text, sourceFile.Path, default, message); } } } @@ -817,25 +812,25 @@ public readonly struct Position } } -internal delegate void ErrorReporter(SourceFile sourceFile, TextSpan textSpan, string message, Exception? innerException = null); +internal delegate void ErrorReporter(SourceText text, string path, TextSpan textSpan, string message, Exception? innerException = null); internal static partial class ErrorReporters { public static readonly ErrorReporter IgnoringReporter = - static (_, _, _, _) => { }; + static (_, _, _, _, _) => { }; public static ErrorReporter CreateCollectingReporter(out ImmutableArray.Builder builder) { var capturedBuilder = builder = ImmutableArray.CreateBuilder(); - return (sourceFile, textSpan, message, _) => + return (text, path, textSpan, message, _) => capturedBuilder.Add(new SimpleDiagnostic { Location = new SimpleDiagnostic.Position() { - Path = sourceFile.Path, + Path = path, TextSpan = textSpan, - Span = sourceFile.GetFileLinePositionSpan(textSpan).Span + Span = text.Lines.GetLinePositionSpan(textSpan) }, Message = message }); diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/InternalAPI.Unshipped.txt b/src/Cli/Microsoft.DotNet.FileBasedPrograms/InternalAPI.Unshipped.txt index 74c5d7f313bb..df17c8e67fc1 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/InternalAPI.Unshipped.txt +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/InternalAPI.Unshipped.txt @@ -34,11 +34,13 @@ Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext.DirectiveKind.ge Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext.DirectiveKind.init -> void Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext.DirectiveText.get -> string! Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext.DirectiveText.init -> void +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext.ErrorReporter.get -> Microsoft.DotNet.FileBasedPrograms.ErrorReporter! +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext.ErrorReporter.init -> void Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext.Info.get -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext.Info.init -> void Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext.ParseContext() -> void -Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext.ReportError.get -> Microsoft.DotNet.FileBasedPrograms.ErrorReporter! -Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext.ReportError.init -> void +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext.ReportError(Microsoft.CodeAnalysis.Text.TextSpan span, string! message) -> void +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext.ReportError(string! message) -> void Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext.SourceFile.get -> Microsoft.DotNet.FileBasedPrograms.SourceFile Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext.SourceFile.init -> void Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo @@ -52,7 +54,7 @@ Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo.Span.init -> void Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo.TrailingWhiteSpace.get -> Microsoft.DotNet.FileBasedPrograms.WhiteSpaceInfo Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo.TrailingWhiteSpace.init -> void Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project -Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project.EnsureProjectFilePath(Microsoft.DotNet.FileBasedPrograms.ErrorReporter! reportError) -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project! +Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project.EnsureProjectFilePath(Microsoft.DotNet.FileBasedPrograms.ErrorReporter! errorReporter) -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project! Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project.ExpandedName.get -> string? Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project.ExpandedName.init -> void Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project.NameKind @@ -103,7 +105,6 @@ Microsoft.DotNet.FileBasedPrograms.SimpleDiagnostic.SimpleDiagnostic() -> void Microsoft.DotNet.FileBasedPrograms.SourceFile Microsoft.DotNet.FileBasedPrograms.SourceFile.Deconstruct(out string! Path, out Microsoft.CodeAnalysis.Text.SourceText! Text) -> void Microsoft.DotNet.FileBasedPrograms.SourceFile.Equals(Microsoft.DotNet.FileBasedPrograms.SourceFile other) -> bool -Microsoft.DotNet.FileBasedPrograms.SourceFile.GetFileLinePositionSpan(Microsoft.CodeAnalysis.Text.TextSpan span) -> Microsoft.CodeAnalysis.FileLinePositionSpan Microsoft.DotNet.FileBasedPrograms.SourceFile.GetLocationString(Microsoft.CodeAnalysis.Text.TextSpan span) -> string! Microsoft.DotNet.FileBasedPrograms.SourceFile.Path.get -> string! Microsoft.DotNet.FileBasedPrograms.SourceFile.Path.init -> void @@ -112,8 +113,6 @@ Microsoft.DotNet.FileBasedPrograms.SourceFile.SourceFile() -> void Microsoft.DotNet.FileBasedPrograms.SourceFile.SourceFile(string! Path, Microsoft.CodeAnalysis.Text.SourceText! Text) -> void Microsoft.DotNet.FileBasedPrograms.SourceFile.Text.get -> Microsoft.CodeAnalysis.Text.SourceText! Microsoft.DotNet.FileBasedPrograms.SourceFile.Text.init -> void -Microsoft.DotNet.FileBasedPrograms.SourceFile.WithPath(string! newPath) -> Microsoft.DotNet.FileBasedPrograms.SourceFile -Microsoft.DotNet.FileBasedPrograms.SourceFile.WithText(Microsoft.CodeAnalysis.Text.SourceText! newText) -> Microsoft.DotNet.FileBasedPrograms.SourceFile Microsoft.DotNet.FileBasedPrograms.WhiteSpaceInfo Microsoft.DotNet.FileBasedPrograms.WhiteSpaceInfo.LineBreaks -> int Microsoft.DotNet.FileBasedPrograms.WhiteSpaceInfo.TotalLength -> int @@ -130,7 +129,7 @@ override Microsoft.DotNet.FileBasedPrograms.SourceFile.GetHashCode() -> int static Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.DefaultMapping.get -> System.Collections.Immutable.ImmutableArray<(string! Extension, string! ItemType)> static Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.DefaultMappingString.get -> string! static Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.Parse(in Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext context) -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude? -static Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.ParseMapping(string! value, Microsoft.DotNet.FileBasedPrograms.SourceFile sourceFile, Microsoft.DotNet.FileBasedPrograms.ErrorReporter! reportError) -> System.Collections.Immutable.ImmutableArray<(string! Extension, string! ItemType)> +static Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.ParseMapping(string! value, Microsoft.DotNet.FileBasedPrograms.SourceFile sourceFile, Microsoft.DotNet.FileBasedPrograms.ErrorReporter! errorReporter) -> System.Collections.Immutable.ImmutableArray<(string! Extension, string! ItemType)> static Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Package.Parse(in Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext context) -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Package? static Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Parse(in Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext context) -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Named? static Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project.Parse(in Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseContext context) -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Project? @@ -141,9 +140,8 @@ static Microsoft.DotNet.FileBasedPrograms.ExternalHelpers.CombineHashCodes(int v static Microsoft.DotNet.FileBasedPrograms.ExternalHelpers.GetRelativePath(string! relativeTo, string! path) -> string! static Microsoft.DotNet.FileBasedPrograms.ExternalHelpers.IsPathFullyQualified(string! path) -> bool static Microsoft.DotNet.FileBasedPrograms.FileLevelDirectiveHelpers.CreateTokenizer(Microsoft.CodeAnalysis.Text.SourceText! text) -> Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser! -static Microsoft.DotNet.FileBasedPrograms.FileLevelDirectiveHelpers.EvaluateDirectives(Microsoft.Build.Execution.ProjectInstance? project, System.Collections.Immutable.ImmutableArray directives, Microsoft.DotNet.FileBasedPrograms.SourceFile sourceFile, Microsoft.DotNet.FileBasedPrograms.ErrorReporter! errorReporter) -> System.Collections.Immutable.ImmutableArray -static Microsoft.DotNet.FileBasedPrograms.FileLevelDirectiveHelpers.FindDirectives(Microsoft.DotNet.FileBasedPrograms.SourceFile sourceFile, bool reportAllErrors, Microsoft.DotNet.FileBasedPrograms.ErrorReporter! reportError) -> System.Collections.Immutable.ImmutableArray -static Microsoft.DotNet.FileBasedPrograms.FileLevelDirectiveHelpers.FindLeadingDirectives(Microsoft.DotNet.FileBasedPrograms.SourceFile sourceFile, Microsoft.CodeAnalysis.SyntaxTriviaList triviaList, Microsoft.DotNet.FileBasedPrograms.ErrorReporter! reportError, System.Collections.Immutable.ImmutableArray.Builder? builder) -> void +static Microsoft.DotNet.FileBasedPrograms.FileLevelDirectiveHelpers.FindDirectives(Microsoft.DotNet.FileBasedPrograms.SourceFile sourceFile, bool reportAllErrors, Microsoft.DotNet.FileBasedPrograms.ErrorReporter! errorReporter) -> System.Collections.Immutable.ImmutableArray +static Microsoft.DotNet.FileBasedPrograms.FileLevelDirectiveHelpers.FindLeadingDirectives(Microsoft.DotNet.FileBasedPrograms.SourceFile sourceFile, Microsoft.CodeAnalysis.SyntaxTriviaList triviaList, Microsoft.DotNet.FileBasedPrograms.ErrorReporter! errorReporter, System.Collections.Immutable.ImmutableArray.Builder? builder) -> void static Microsoft.DotNet.FileBasedPrograms.MSBuildUtilities.ConvertStringToBool(string? parameterValue, bool defaultValue = false) -> bool static Microsoft.DotNet.FileBasedPrograms.Patterns.DisallowedNameCharacters.get -> System.Text.RegularExpressions.Regex! static Microsoft.DotNet.FileBasedPrograms.Patterns.EscapedCompilerOption.get -> System.Text.RegularExpressions.Regex! @@ -154,6 +152,6 @@ static Microsoft.DotNet.FileBasedPrograms.SourceFile.operator ==(Microsoft.DotNe static Microsoft.DotNet.ProjectTools.ProjectLocator.TryGetProjectFileFromDirectory(string! projectDirectory, out string? projectFilePath, out string? error) -> bool static readonly Microsoft.DotNet.FileBasedPrograms.ErrorReporters.IgnoringReporter -> Microsoft.DotNet.FileBasedPrograms.ErrorReporter! static readonly Microsoft.DotNet.FileBasedPrograms.NamedDirectiveComparer.Instance -> Microsoft.DotNet.FileBasedPrograms.NamedDirectiveComparer! -virtual Microsoft.DotNet.FileBasedPrograms.ErrorReporter.Invoke(Microsoft.DotNet.FileBasedPrograms.SourceFile sourceFile, Microsoft.CodeAnalysis.Text.TextSpan textSpan, string! message, System.Exception? innerException = null) -> void +virtual Microsoft.DotNet.FileBasedPrograms.ErrorReporter.Invoke(Microsoft.CodeAnalysis.Text.SourceText! text, string! path, Microsoft.CodeAnalysis.Text.TextSpan textSpan, string! message, System.Exception? innerException = null) -> void ~override Microsoft.DotNet.FileBasedPrograms.SourceFile.Equals(object obj) -> bool ~override Microsoft.DotNet.FileBasedPrograms.SourceFile.ToString() -> string \ No newline at end of file diff --git a/src/Cli/dotnet/Commands/Project/Convert/ProjectConvertCommand.cs b/src/Cli/dotnet/Commands/Project/Convert/ProjectConvertCommand.cs index 3a7256ef34d3..4cf768909127 100644 --- a/src/Cli/dotnet/Commands/Project/Convert/ProjectConvertCommand.cs +++ b/src/Cli/dotnet/Commands/Project/Convert/ProjectConvertCommand.cs @@ -43,7 +43,7 @@ public override int Execute() // Create a project instance for evaluation. var projectCollection = new ProjectCollection(); - var builder = new VirtualProjectBuilder(file, VirtualProjectBuildingCommand.TargetFrameworkVersion); + var builder = new VirtualProjectBuilder(file, VirtualProjectBuildingCommand.TargetFramework); builder.CreateProjectInstance( projectCollection, @@ -276,7 +276,7 @@ ImmutableArray UpdateDirectives(ImmutableArray IEnumerable<(string name, string value)> GetDefaultProperties() { - foreach (var (name, defaultValue) in VirtualProjectBuilder.GetDefaultProperties(VirtualProjectBuildingCommand.TargetFrameworkVersion)) + foreach (var (name, defaultValue) in VirtualProjectBuilder.GetDefaultProperties(VirtualProjectBuildingCommand.TargetFramework)) { string projectValue = projectInstance.GetPropertyValue(name); if (string.Equals(projectValue, defaultValue, StringComparison.OrdinalIgnoreCase)) diff --git a/src/Cli/dotnet/Commands/Run/Api/RunApiCommand.cs b/src/Cli/dotnet/Commands/Run/Api/RunApiCommand.cs index 75a333573d09..8960eabd51cc 100644 --- a/src/Cli/dotnet/Commands/Run/Api/RunApiCommand.cs +++ b/src/Cli/dotnet/Commands/Run/Api/RunApiCommand.cs @@ -67,7 +67,7 @@ public override RunApiOutput Execute() { var builder = new VirtualProjectBuilder( entryPointFileFullPath: EntryPointFileFullPath, - targetFrameworkVersion: VirtualProjectBuildingCommand.TargetFrameworkVersion, + targetFramework: VirtualProjectBuildingCommand.TargetFramework, artifactsPath: ArtifactsPath); var errorReporter = ErrorReporters.CreateCollectingReporter(out var diagnostics); @@ -83,7 +83,7 @@ public override RunApiOutput Execute() VirtualProjectBuilder.WriteProjectFile( csprojWriter, evaluatedDirectives, - VirtualProjectBuilder.GetDefaultProperties(VirtualProjectBuildingCommand.TargetFrameworkVersion), + VirtualProjectBuilder.GetDefaultProperties(VirtualProjectBuildingCommand.TargetFramework), isVirtualProject: true, entryPointFilePath: EntryPointFileFullPath, artifactsPath: builder.ArtifactsPath); diff --git a/src/Cli/dotnet/Commands/Run/FileBasedAppSourceEditor.cs b/src/Cli/dotnet/Commands/Run/FileBasedAppSourceEditor.cs index 27ac23b56687..764aeec88f95 100644 --- a/src/Cli/dotnet/Commands/Run/FileBasedAppSourceEditor.cs +++ b/src/Cli/dotnet/Commands/Run/FileBasedAppSourceEditor.cs @@ -80,7 +80,7 @@ static string GetNewLine(SourceText text) public void Add(CSharpDirective directive) { var change = DetermineAddChange(directive); - SourceFile = SourceFile.WithText(SourceFile.Text.WithChanges([change])); + SourceFile = SourceFile with { Text = SourceFile.Text.WithChanges([change]) }; } private TextChange DetermineAddChange(CSharpDirective directive) @@ -231,7 +231,7 @@ public void Remove(CSharpDirective directive) var span = directive.Info.Span; var start = span.Start; var length = span.Length + DetermineTrailingLengthToRemove(directive); - SourceFile = SourceFile.WithText(SourceFile.Text.Replace(start: start, length: length, newText: string.Empty)); + SourceFile = SourceFile with { Text = SourceFile.Text.Replace(start: start, length: length, newText: string.Empty) }; } private static int DetermineTrailingLengthToRemove(CSharpDirective directive) diff --git a/src/Cli/dotnet/Commands/Run/VirtualProjectBuildingCommand.cs b/src/Cli/dotnet/Commands/Run/VirtualProjectBuildingCommand.cs index 25c047e8f53b..3cbd7b9bd1e8 100644 --- a/src/Cli/dotnet/Commands/Run/VirtualProjectBuildingCommand.cs +++ b/src/Cli/dotnet/Commands/Run/VirtualProjectBuildingCommand.cs @@ -83,6 +83,7 @@ internal sealed class VirtualProjectBuildingCommand : CommandBase ]; public static string TargetFrameworkVersion => Product.TargetFrameworkVersion; + public static string TargetFramework => $"net{Product.TargetFrameworkVersion}"; public bool NoRestore { get; init; } @@ -151,7 +152,7 @@ public VirtualProjectBuildingCommand( } .AsReadOnly()); - Builder = new VirtualProjectBuilder(entryPointFileFullPath, TargetFrameworkVersion, MSBuildArgs.GetResolvedTargets(), artifactsPath); + Builder = new VirtualProjectBuilder(entryPointFileFullPath, TargetFramework, MSBuildArgs.GetResolvedTargets(), artifactsPath); } public override int Execute() @@ -1175,8 +1176,9 @@ public static void CreateTempSubdirectory(string path) } public static readonly ErrorReporter ThrowingReporter = - static (sourceFile, textSpan, message, innerException) => throw new GracefulException( - $"{sourceFile.GetLocationString(textSpan)}: {FileBasedProgramsResources.DirectiveError}: {message}", + static (text, path, textSpan, message, innerException) => + throw new GracefulException( + $"{new SourceFile(path, text).GetLocationString(textSpan)}: {FileBasedProgramsResources.DirectiveError}: {message}", innerException); } diff --git a/src/Microsoft.DotNet.ProjectTools/LaunchSettings/ExecutableLaunchProfile.cs b/src/Microsoft.DotNet.ProjectTools/LaunchSettings/ExecutableLaunchProfile.cs index 67db2e0b93ce..e5b000fe50a8 100644 --- a/src/Microsoft.DotNet.ProjectTools/LaunchSettings/ExecutableLaunchProfile.cs +++ b/src/Microsoft.DotNet.ProjectTools/LaunchSettings/ExecutableLaunchProfile.cs @@ -5,7 +5,7 @@ namespace Microsoft.DotNet.ProjectTools; -public sealed class ExecutableLaunchProfile : LaunchProfile +internal sealed class ExecutableLaunchProfile : LaunchProfile { public const string WorkingDirectoryPropertyName = "workingDirectory"; public const string ExecutablePathPropertyName = "executablePath"; diff --git a/src/Microsoft.DotNet.ProjectTools/LaunchSettings/LaunchProfile.cs b/src/Microsoft.DotNet.ProjectTools/LaunchSettings/LaunchProfile.cs index 87f6275e83b3..e994f6635cd7 100644 --- a/src/Microsoft.DotNet.ProjectTools/LaunchSettings/LaunchProfile.cs +++ b/src/Microsoft.DotNet.ProjectTools/LaunchSettings/LaunchProfile.cs @@ -6,7 +6,7 @@ namespace Microsoft.DotNet.ProjectTools; -public abstract class LaunchProfile +internal abstract class LaunchProfile { [JsonIgnore] public string? LaunchProfileName { get; init; } diff --git a/src/Microsoft.DotNet.ProjectTools/LaunchSettings/LaunchProfileParseResult.cs b/src/Microsoft.DotNet.ProjectTools/LaunchSettings/LaunchProfileParseResult.cs index bf735a81cf0a..7bc2e979e3b9 100644 --- a/src/Microsoft.DotNet.ProjectTools/LaunchSettings/LaunchProfileParseResult.cs +++ b/src/Microsoft.DotNet.ProjectTools/LaunchSettings/LaunchProfileParseResult.cs @@ -5,7 +5,7 @@ namespace Microsoft.DotNet.ProjectTools; -public sealed class LaunchProfileParseResult +internal sealed class LaunchProfileParseResult { public string? FailureReason { get; } diff --git a/src/Microsoft.DotNet.ProjectTools/LaunchSettings/LaunchSettings.cs b/src/Microsoft.DotNet.ProjectTools/LaunchSettings/LaunchSettings.cs index ae1c60161b27..e2f9725f18fd 100644 --- a/src/Microsoft.DotNet.ProjectTools/LaunchSettings/LaunchSettings.cs +++ b/src/Microsoft.DotNet.ProjectTools/LaunchSettings/LaunchSettings.cs @@ -18,12 +18,12 @@ public static class LaunchSettings { ExecutableLaunchProfileParser.CommandName, ExecutableLaunchProfileParser.Instance } }; - public static IEnumerable SupportedProfileTypes => s_providers.Keys; + internal static IEnumerable SupportedProfileTypes => s_providers.Keys; - public static string GetPropertiesLaunchSettingsPath(string directoryPath, string propertiesDirectoryName) + internal static string GetPropertiesLaunchSettingsPath(string directoryPath, string propertiesDirectoryName) => Path.Combine(directoryPath, propertiesDirectoryName, "launchSettings.json"); - public static string GetFlatLaunchSettingsPath(string directoryPath, string projectNameWithoutExtension) + internal static string GetFlatLaunchSettingsPath(string directoryPath, string projectNameWithoutExtension) => Path.Join(directoryPath, $"{projectNameWithoutExtension}.run.json"); public static string? TryFindLaunchSettingsFile(string projectOrEntryPointFilePath, string? launchProfile, Action report) @@ -71,7 +71,7 @@ public static string GetFlatLaunchSettingsPath(string directoryPath, string proj return null; } - public static LaunchProfileParseResult ReadProfileSettingsFromFile(string launchSettingsPath, string? profileName = null) + internal static LaunchProfileParseResult ReadProfileSettingsFromFile(string launchSettingsPath, string? profileName = null) { try { diff --git a/src/Microsoft.DotNet.ProjectTools/LaunchSettings/ProjectLaunchProfile.cs b/src/Microsoft.DotNet.ProjectTools/LaunchSettings/ProjectLaunchProfile.cs index a107dc29db84..d131b1f5c29d 100644 --- a/src/Microsoft.DotNet.ProjectTools/LaunchSettings/ProjectLaunchProfile.cs +++ b/src/Microsoft.DotNet.ProjectTools/LaunchSettings/ProjectLaunchProfile.cs @@ -5,7 +5,7 @@ namespace Microsoft.DotNet.ProjectTools; -public sealed class ProjectLaunchProfile : LaunchProfile +internal sealed class ProjectLaunchProfile : LaunchProfile { [JsonPropertyName("launchBrowser")] public bool LaunchBrowser { get; init; } diff --git a/src/Microsoft.DotNet.ProjectTools/Microsoft.DotNet.ProjectTools.csproj b/src/Microsoft.DotNet.ProjectTools/Microsoft.DotNet.ProjectTools.csproj index 9de97043c331..ecea66d30440 100644 --- a/src/Microsoft.DotNet.ProjectTools/Microsoft.DotNet.ProjectTools.csproj +++ b/src/Microsoft.DotNet.ProjectTools/Microsoft.DotNet.ProjectTools.csproj @@ -12,14 +12,21 @@ - + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + - + + + diff --git a/src/Microsoft.DotNet.ProjectTools/PublicAPI.Shipped.txt b/src/Microsoft.DotNet.ProjectTools/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Microsoft.DotNet.ProjectTools/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Microsoft.DotNet.ProjectTools/PublicAPI.Unshipped.txt b/src/Microsoft.DotNet.ProjectTools/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..e22fc3a5db63 --- /dev/null +++ b/src/Microsoft.DotNet.ProjectTools/PublicAPI.Unshipped.txt @@ -0,0 +1,6 @@ +#nullable enable +Microsoft.DotNet.ProjectTools.LaunchSettings +Microsoft.DotNet.ProjectTools.VirtualProjectBuilder +static Microsoft.DotNet.ProjectTools.LaunchSettings.TryFindLaunchSettingsFile(string! projectOrEntryPointFilePath, string? launchProfile, System.Action! report) -> string? +static Microsoft.DotNet.ProjectTools.VirtualProjectBuilder.GetVirtualProjectPath(string! entryPointFilePath) -> string! +static Microsoft.DotNet.ProjectTools.VirtualProjectBuilder.IsValidEntryPointPath(string! entryPointFilePath) -> bool diff --git a/src/Microsoft.DotNet.ProjectTools/Utilities/Sha256Hasher.cs b/src/Microsoft.DotNet.ProjectTools/Utilities/Sha256Hasher.cs index 176173e776c5..7a7941e02a39 100644 --- a/src/Microsoft.DotNet.ProjectTools/Utilities/Sha256Hasher.cs +++ b/src/Microsoft.DotNet.ProjectTools/Utilities/Sha256Hasher.cs @@ -5,7 +5,7 @@ namespace Microsoft.DotNet.Utilities; -public static class Sha256Hasher +internal static class Sha256Hasher { /// /// The hashed mac address needs to be the same hashed value as produced by the other distinct sources given the same input. (e.g. VsCode) diff --git a/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs b/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs index 146947972766..0245bef68abc 100644 --- a/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs +++ b/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs @@ -15,15 +15,15 @@ namespace Microsoft.DotNet.ProjectTools; -internal sealed class VirtualProjectBuilder +public sealed class VirtualProjectBuilder { private readonly IEnumerable<(string name, string value)> _defaultProperties; private (ImmutableArray Original, ImmutableArray Evaluated)? _evaluatedDirectives; - public string EntryPointFileFullPath { get; } + internal string EntryPointFileFullPath { get; } - public SourceFile EntryPointSourceFile + internal SourceFile EntryPointSourceFile { get { @@ -36,14 +36,14 @@ public SourceFile EntryPointSourceFile } } - public string ArtifactsPath + internal string ArtifactsPath => field ??= GetArtifactsPath(EntryPointFileFullPath); - public string[]? RequestedTargets { get; } + internal string[]? RequestedTargets { get; } - public VirtualProjectBuilder( + internal VirtualProjectBuilder( string entryPointFileFullPath, - string targetFrameworkVersion, + string targetFramework, string[]? requestedTargets = null, string? artifactsPath = null, SourceText? sourceText = null) @@ -53,7 +53,7 @@ public VirtualProjectBuilder( EntryPointFileFullPath = entryPointFileFullPath; RequestedTargets = requestedTargets; ArtifactsPath = artifactsPath; - _defaultProperties = GetDefaultProperties(targetFrameworkVersion); + _defaultProperties = GetDefaultProperties(targetFramework); if (sourceText != null) { @@ -64,17 +64,17 @@ public VirtualProjectBuilder( /// /// Kept in sync with the default dotnet new console project file (enforced by DotnetProjectConvertTests.SameAsTemplate). /// - public static IEnumerable<(string name, string value)> GetDefaultProperties(string targetFrameworkVersion) => + internal static IEnumerable<(string name, string value)> GetDefaultProperties(string targetFramework) => [ ("OutputType", "Exe"), - ("TargetFramework", $"net{targetFrameworkVersion}"), + ("TargetFramework", targetFramework), ("ImplicitUsings", "enable"), ("Nullable", "enable"), ("PublishAot", "true"), ("PackAsTool", "true"), ]; - public static string GetArtifactsPath(string entryPointFileFullPath) + internal static string GetArtifactsPath(string entryPointFileFullPath) { // Include entry point file name so the directory name is not completely opaque. string fileName = Path.GetFileNameWithoutExtension(entryPointFileFullPath); @@ -84,10 +84,13 @@ public static string GetArtifactsPath(string entryPointFileFullPath) return GetTempSubpath(directoryName); } + public static string GetVirtualProjectPath(string entryPointFilePath) + => Path.ChangeExtension(entryPointFilePath, ".csproj"); + /// /// Obtains a temporary subdirectory for file-based app artifacts, e.g., /tmp/dotnet/runfile/. /// - public static string GetTempSubdirectory() + internal static string GetTempSubdirectory() { // We want a location where permissions are expected to be restricted to the current user. string directory = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) @@ -105,7 +108,7 @@ public static string GetTempSubdirectory() /// /// Obtains a specific temporary path in a subdirectory for file-based app artifacts, e.g., /tmp/dotnet/runfile/{name}. /// - public static string GetTempSubpath(string name) + internal static string GetTempSubpath(string name) { return Path.Join(GetTempSubdirectory(), name); } @@ -198,7 +201,7 @@ private ImmutableArray EvaluateDirectives( return builder.DrainToImmutable(); } - public ImmutableArray<(string Extension, string ItemType)> GetItemMapping(ProjectInstance project, ErrorReporter reportError) + internal ImmutableArray<(string Extension, string ItemType)> GetItemMapping(ProjectInstance project, ErrorReporter reportError) { return MSBuildUtilities.ConvertStringToBool(project.GetPropertyValue(CSharpDirective.IncludeOrExclude.ExperimentalFileBasedProgramEnableItemMapping)) ? CSharpDirective.IncludeOrExclude.ParseMapping( @@ -208,7 +211,7 @@ private ImmutableArray EvaluateDirectives( : CSharpDirective.IncludeOrExclude.DefaultMapping; } - public void CreateProjectInstance( + internal void CreateProjectInstance( ProjectCollection projectCollection, ErrorReporter reportError, out ProjectInstance project, @@ -295,7 +298,7 @@ bool TryGetNextFileToProcess() { if (!File.Exists(filePath)) { - reportError(EntryPointSourceFile, default, string.Format(Resources.IncludedFileNotFound, filePath)); + reportError(EntryPointSourceFile.Text, EntryPointSourceFile.Path, default, string.Format(Resources.IncludedFileNotFound, filePath)); continue; } @@ -398,14 +401,15 @@ void CheckFlagEnabled(ref bool? flag, string flagName, CSharpDirective directive if (!value) { reportError( - directive.Info.SourceFile, + directive.Info.SourceFile.Text, + directive.Info.SourceFile.Path, directive.Info.Span, string.Format(Resources.ExperimentalFeatureDisabled, flagName)); } } } - public static void WriteProjectFile( + internal static void WriteProjectFile( TextWriter writer, ImmutableArray directives, IEnumerable<(string name, string value)> defaultProperties, @@ -754,7 +758,7 @@ static void WriteImport(TextWriter writer, string project, CSharpDirective.Sdk s } } - public static SourceFile RemoveDirectivesFromFile(ImmutableArray directives, SourceFile sourceFile) + internal static SourceFile RemoveDirectivesFromFile(ImmutableArray directives, SourceFile sourceFile) { if (directives.Length == 0) { @@ -779,12 +783,12 @@ public static SourceFile RemoveDirectivesFromFile(ImmutableArray directives, SourceFile sourceFile, string targetFilePath) + internal static void RemoveDirectivesFromFile(ImmutableArray directives, SourceFile sourceFile, string targetFilePath) { var modifiedFile = RemoveDirectivesFromFile(directives, sourceFile); - modifiedFile.WithPath(targetFilePath).Save(); + (modifiedFile with { Path = targetFilePath }).Save(); } } diff --git a/test/dotnet.Tests/CommandTests/Project/Convert/DotnetProjectConvertTests.cs b/test/dotnet.Tests/CommandTests/Project/Convert/DotnetProjectConvertTests.cs index 87a1e4100431..b379f8eee8bb 100644 --- a/test/dotnet.Tests/CommandTests/Project/Convert/DotnetProjectConvertTests.cs +++ b/test/dotnet.Tests/CommandTests/Project/Convert/DotnetProjectConvertTests.cs @@ -1937,7 +1937,7 @@ private static void Convert( { var builder = new VirtualProjectBuilder( entryPointFileFullPath: filePath, - targetFrameworkVersion: VirtualProjectBuildingCommand.TargetFrameworkVersion, + targetFramework: VirtualProjectBuildingCommand.TargetFramework, sourceText: SourceText.From(inputCSharp, Encoding.UTF8)); var errorReporter = ErrorReporters.CreateCollectingReporter(out actualDiagnostics); @@ -1963,7 +1963,7 @@ private static void Convert( VirtualProjectBuilder.WriteProjectFile( projectWriter, directives, - VirtualProjectBuilder.GetDefaultProperties(VirtualProjectBuildingCommand.TargetFrameworkVersion), + VirtualProjectBuilder.GetDefaultProperties(VirtualProjectBuildingCommand.TargetFramework), isVirtualProject: false); actualProject = projectWriter.ToString(); diff --git a/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs b/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs index 732de1dde6b2..c908a7142cf2 100644 --- a/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs +++ b/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs @@ -5,6 +5,7 @@ using System.Runtime.Versioning; using System.Text.Json; using Basic.CompilerLog.Util; +using Microsoft.Build.Evaluation; using Microsoft.Build.Framework; using Microsoft.Build.Logging.StructuredLogger; using Microsoft.CodeAnalysis; @@ -3808,7 +3809,7 @@ public void IncludeDirective_CustomMapping_Api() var builder = new VirtualProjectBuilder( entryPointFileFullPath: programPath, - targetFrameworkVersion: VirtualProjectBuildingCommand.TargetFrameworkVersion, + targetFramework: VirtualProjectBuildingCommand.TargetFramework, sourceText: SourceText.From(code, Encoding.UTF8)); var directives = FileLevelDirectiveHelpers.FindDirectives( @@ -5513,7 +5514,7 @@ public void Api() #!/program #:sdk Microsoft.NET.Sdk #:sdk Aspire.AppHost.Sdk@9.1.0 - #:property TargetFramework=net11.0 + #:property TargetFramework=net5.0 #:package System.CommandLine@2.0.0-beta4.22272.1 #:property LangVersion=preview Console.WriteLine(); @@ -5554,7 +5555,7 @@ public void Api() - net11.0 + net5.0 preview false $(Features);FileBasedProgram From ff3de9f59c0b50a808d6a18b09778275a7b56ff6 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 25 Feb 2026 01:43:26 +0000 Subject: [PATCH 116/179] Update dependencies from build 303263 Updated Dependencies: dotnet-dev-certs, dotnet-user-jwts, dotnet-user-secrets, Microsoft.AspNetCore.Analyzers, Microsoft.AspNetCore.App.Ref.Internal, Microsoft.AspNetCore.Components.SdkAnalyzers, Microsoft.AspNetCore.DeveloperCertificates.XPlat, Microsoft.AspNetCore.Mvc.Analyzers, Microsoft.AspNetCore.Mvc.Api.Analyzers, Microsoft.Dotnet.WinForms.ProjectTemplates, Microsoft.DotNet.Wpf.ProjectTemplates, Microsoft.NET.HostModel, Microsoft.NET.Sdk.WindowsDesktop, Microsoft.NETCore.Platforms, Microsoft.WindowsDesktop.App.Internal (Version 10.0.5-servicing.26123.124 -> 10.0.5-servicing.26124.113) Microsoft.AspNetCore.App.Ref, Microsoft.AspNetCore.Authentication.Facebook, Microsoft.AspNetCore.Authentication.Google, Microsoft.AspNetCore.Authentication.MicrosoftAccount, Microsoft.AspNetCore.Authorization, Microsoft.AspNetCore.Components, Microsoft.AspNetCore.Components.Analyzers, Microsoft.AspNetCore.Components.Forms, Microsoft.AspNetCore.Components.Web, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.AspNetCore.Components.WebAssembly.Server, Microsoft.AspNetCore.Components.WebView, Microsoft.AspNetCore.Metadata, Microsoft.AspNetCore.TestHost, Microsoft.Bcl.AsyncInterfaces, Microsoft.DotNet.Web.ItemTemplates.10.0, Microsoft.DotNet.Web.ProjectTemplates.10.0, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Embedded, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.ObjectPool, Microsoft.JSInterop, Microsoft.NET.ILLink.Tasks, Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64, Microsoft.NETCore.App.Ref, Microsoft.Win32.SystemEvents, Microsoft.WindowsDesktop.App.Ref, System.CodeDom, System.ComponentModel.Composition, System.Composition.AttributedModel, System.Composition.Convention, System.Composition.Hosting, System.Composition.Runtime, System.Composition.TypedParts, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Formats.Asn1, System.IO.Hashing, System.Reflection.MetadataLoadContext, System.Resources.Extensions, System.Security.Cryptography.Pkcs, System.Security.Cryptography.ProtectedData, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encoding.CodePages, System.Text.Json, System.Windows.Extensions (Version 10.0.5 -> 10.0.5) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26123.124 -> 10.0.0-preview.26124.113) Microsoft.Build (Version 18.0.11 -> 18.0.11) Microsoft.Build.Localization (Version 18.0.11-servicing-26123-124 -> 18.0.11-servicing-26124-113) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.0.2-rc.12424 -> 7.0.2-rc.12513) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab, Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common (Version 10.0.105 -> 10.0.105) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.0.0-2.26123.124 -> 5.0.0-2.26124.113) Microsoft.Deployment.DotNet.Releases (Version 2.0.0-preview.1.26123.124 -> 2.0.0-preview.1.26124.113) Microsoft.DiaSymReader (Version 2.2.5 -> 2.2.5) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26123.124 -> 10.0.0-beta.26124.113) Microsoft.FSharp.Compiler (Version 14.0.105-servicing.26123.124 -> 14.0.105-servicing.26124.113) Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.0.1-release-26123-124 -> 18.0.1-release-26124-113) Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.105-servicing.26123.124 -> 10.0.105-servicing.26124.113) Microsoft.Web.Xdt (Version 3.2.5 -> 3.2.5) System.CommandLine (Version 2.0.5 -> 2.0.5) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index 4674f95aeef5..47972b83c700 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 875eddcaaeb0..7b70a7af141d 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.5-servicing.26123.124 - 10.0.5-servicing.26123.124 - 10.0.5-servicing.26123.124 - 10.0.5-servicing.26123.124 + 10.0.5-servicing.26124.113 + 10.0.5-servicing.26124.113 + 10.0.5-servicing.26124.113 + 10.0.5-servicing.26124.113 10.0.5 - 10.0.5-servicing.26123.124 + 10.0.5-servicing.26124.113 10.0.5 10.0.5 10.0.5 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26123.124 + 10.0.5-servicing.26124.113 10.0.5 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26123.124 + 10.0.5-servicing.26124.113 10.0.5 - 10.0.5-servicing.26123.124 - 10.0.5-servicing.26123.124 - 10.0.0-preview.26123.124 + 10.0.5-servicing.26124.113 + 10.0.5-servicing.26124.113 + 10.0.0-preview.26124.113 10.0.5 10.0.5 18.0.11 - 18.0.11-servicing-26123-124 - 7.0.2-rc.12424 + 18.0.11-servicing-26124-113 + 7.0.2-rc.12513 10.0.105 - 5.0.0-2.26123.124 - 5.0.0-2.26123.124 - 5.0.0-2.26123.124 - 5.0.0-2.26123.124 - 5.0.0-2.26123.124 - 5.0.0-2.26123.124 - 5.0.0-2.26123.124 - 10.0.0-preview.26123.124 - 5.0.0-2.26123.124 - 5.0.0-2.26123.124 - 2.0.0-preview.1.26123.124 + 5.0.0-2.26124.113 + 5.0.0-2.26124.113 + 5.0.0-2.26124.113 + 5.0.0-2.26124.113 + 5.0.0-2.26124.113 + 5.0.0-2.26124.113 + 5.0.0-2.26124.113 + 10.0.0-preview.26124.113 + 5.0.0-2.26124.113 + 5.0.0-2.26124.113 + 2.0.0-preview.1.26124.113 2.2.5 - 10.0.0-beta.26123.124 - 10.0.0-beta.26123.124 - 10.0.0-beta.26123.124 - 10.0.0-beta.26123.124 - 10.0.0-beta.26123.124 - 10.0.0-beta.26123.124 + 10.0.0-beta.26124.113 + 10.0.0-beta.26124.113 + 10.0.0-beta.26124.113 + 10.0.0-beta.26124.113 + 10.0.0-beta.26124.113 + 10.0.0-beta.26124.113 10.0.5 10.0.5 - 10.0.5-servicing.26123.124 - 10.0.5-servicing.26123.124 - 10.0.0-beta.26123.124 - 10.0.0-beta.26123.124 + 10.0.5-servicing.26124.113 + 10.0.5-servicing.26124.113 + 10.0.0-beta.26124.113 + 10.0.0-beta.26124.113 10.0.5 10.0.5 10.0.5 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 14.0.105-servicing.26123.124 + 14.0.105-servicing.26124.113 10.0.5 - 5.0.0-2.26123.124 - 5.0.0-2.26123.124 - 10.0.5-servicing.26123.124 + 5.0.0-2.26124.113 + 5.0.0-2.26124.113 + 10.0.5-servicing.26124.113 10.0.5 10.0.5 10.0.0-preview.7.25377.103 - 10.0.0-preview.26123.124 - 10.0.5-servicing.26123.124 - 18.0.1-release-26123-124 + 10.0.0-preview.26124.113 + 10.0.5-servicing.26124.113 + 18.0.1-release-26124-113 10.0.5 - 10.0.5-servicing.26123.124 + 10.0.5-servicing.26124.113 10.0.105 10.0.105 10.0.105 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.105 10.0.105 10.0.105 - 10.0.105-servicing.26123.124 + 10.0.105-servicing.26124.113 10.0.105 - 10.0.105-servicing.26123.124 + 10.0.105-servicing.26124.113 10.0.105 10.0.105 - 10.0.105-servicing.26123.124 - 18.0.1-release-26123-124 - 18.0.1-release-26123-124 + 10.0.105-servicing.26124.113 + 18.0.1-release-26124-113 + 18.0.1-release-26124-113 3.2.5 10.0.5 - 10.0.5-servicing.26123.124 + 10.0.5-servicing.26124.113 10.0.5 - 7.0.2-rc.12424 - 7.0.2-rc.12424 - 7.0.2-rc.12424 - 7.0.2-rc.12424 - 7.0.2-rc.12424 - 7.0.2-rc.12424 - 7.0.2-rc.12424 - 7.0.2-rc.12424 - 7.0.2-rc.12424 - 7.0.2-rc.12424 - 7.0.2-rc.12424 - 7.0.2-rc.12424 - 7.0.2-rc.12424 - 7.0.2-rc.12424 - 7.0.2-rc.12424 - 7.0.2-rc.12424 + 7.0.2-rc.12513 + 7.0.2-rc.12513 + 7.0.2-rc.12513 + 7.0.2-rc.12513 + 7.0.2-rc.12513 + 7.0.2-rc.12513 + 7.0.2-rc.12513 + 7.0.2-rc.12513 + 7.0.2-rc.12513 + 7.0.2-rc.12513 + 7.0.2-rc.12513 + 7.0.2-rc.12513 + 7.0.2-rc.12513 + 7.0.2-rc.12513 + 7.0.2-rc.12513 + 7.0.2-rc.12513 10.0.5 2.0.5 10.0.5 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4ca37227b6c1..5d8c5bdb3211 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - f8e4f7d30c6813e5fb21e641f1b323fb67921108 + 4f2d31c20fb1dea7a279c108c4fb2bf02824afee diff --git a/global.json b/global.json index 8ab387fb0280..0b49fb996278 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26123.124", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26123.124", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26124.113", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26124.113", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 16665f27a9a39b876d760896028577683cc3ecb4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 25 Feb 2026 02:02:06 +0000 Subject: [PATCH 117/179] Update dependencies from https://github.com/microsoft/testfx build 20260224.2 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26123.1 -> To Version 2.2.0-preview.26124.2 MSTest From Version 4.2.0-preview.26123.1 -> To Version 4.2.0-preview.26124.2 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 875eddcaaeb0..0e174786a63a 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26123.1 - 4.2.0-preview.26123.1 + 2.2.0-preview.26124.2 + 4.2.0-preview.26124.2 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4ca37227b6c1..a600c3a4e8a4 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet f8e4f7d30c6813e5fb21e641f1b323fb67921108 - + https://github.com/microsoft/testfx - c703adb8f0d0cb60eaa3061d2e63efd829726196 + 1b29252aa39fe78bb4ada5fc2c238da99f3b4e9c - + https://github.com/microsoft/testfx - c703adb8f0d0cb60eaa3061d2e63efd829726196 + 1b29252aa39fe78bb4ada5fc2c238da99f3b4e9c https://github.com/dotnet/dotnet From 85a8a33ee91950f908585f98432e6e45ddffb6d0 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 25 Feb 2026 02:02:24 +0000 Subject: [PATCH 118/179] Update dependencies from https://github.com/microsoft/testfx build 20260224.2 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26123.1 -> To Version 2.2.0-preview.26124.2 MSTest From Version 4.2.0-preview.26123.1 -> To Version 4.2.0-preview.26124.2 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index c02f081f33db..f6f22c57654f 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -144,8 +144,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26123.1 - 4.2.0-preview.26123.1 + 2.2.0-preview.26124.2 + 4.2.0-preview.26124.2 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 19d096941bbe..bf8a632c3640 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -564,13 +564,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - c703adb8f0d0cb60eaa3061d2e63efd829726196 + 1b29252aa39fe78bb4ada5fc2c238da99f3b4e9c - + https://github.com/microsoft/testfx - c703adb8f0d0cb60eaa3061d2e63efd829726196 + 1b29252aa39fe78bb4ada5fc2c238da99f3b4e9c https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet From d40b21888fc01357ea0e54361ee6401c9daa37bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Matou=C5=A1ek?= Date: Tue, 24 Feb 2026 18:51:15 -0800 Subject: [PATCH 119/179] Move dotnet-format (#53138) --- CODEOWNERS | 8 +++----- eng/dotnet-format/dotnet-format-integration.yml | 2 +- sdk.slnx | 2 +- .../dotnet-format.slnf | 2 +- .../Analyzers/AnalyzerFinderHelpers.cs | 0 .../dotnet-format/Analyzers/AnalyzerFormatter.cs | 0 .../Analyzers/AnalyzerOptionExtensions.cs | 0 .../AnalyzerReferenceInformationProvider.cs | 0 .../dotnet-format/Analyzers/AnalyzerRunner.cs | 0 .../dotnet-format/Analyzers/AnalyzersAndFixers.cs | 0 .../dotnet-format/Analyzers/CodeAnalysisResult.cs | 0 .../Analyzers/CodeStyleInformationProvider.cs | 0 .../dotnet-format/Analyzers/Extensions.cs | 0 .../Interfaces/IAnalyzerInformationProvider.cs | 0 .../Analyzers/Interfaces/IAnalyzerRunner.cs | 0 .../Analyzers/Interfaces/ICodeFixApplier.cs | 0 .../Analyzers/SolutionCodeFixApplier.cs | 0 .../dotnet-format/CodeFormatter.cs | 0 .../Commands/FormatAnalyzersCommand.cs | 0 .../dotnet-format/Commands/FormatCommandCommon.cs | 0 .../dotnet-format/Commands/FormatStyleCommand.cs | 0 .../Commands/FormatWhitespaceCommand.cs | 0 .../dotnet-format/Commands/RootFormatCommand.cs | 0 .../dotnet-format/FileChange.cs | 0 .../dotnet-format/FixCategory.cs | 0 .../dotnet-format/FixSeverity.cs | 0 .../dotnet-format/FormatOptions.cs | 0 .../dotnet-format/FormattedFile.cs | 0 .../dotnet-format/Formatters/CharsetFormatter.cs | 0 .../dotnet-format/Formatters/DocumentFormatter.cs | 0 .../dotnet-format/Formatters/EndOfLineFormatter.cs | 0 .../Formatters/FinalNewlineFormatter.cs | 0 .../dotnet-format/Formatters/ICodeFormatter.cs | 0 .../Formatters/OrganizeImportsFormatter.cs | 0 .../dotnet-format/Formatters/WhitespaceFormatter.cs | 0 .../dotnet-format/Logging/IIssueFormatter.cs | 0 .../dotnet-format/Logging/ILoggerExtensions.cs | 0 .../dotnet-format/Logging/MSBuildIssueFormatter.cs | 0 .../dotnet-format/Logging/NullScope.cs | 0 .../dotnet-format/Logging/SimpleConsoleLogger.cs | 0 .../Logging/SimpleConsoleLoggerFactoryExtensions.cs | 0 .../Logging/SimpleConsoleLoggerProvider.cs | 0 .../dotnet-format/Program.cs | 0 .../dotnet-format/Properties/launchSettings.json | 0 .../dotnet-format/README.md | 0 .../Reflection/RemoveUnnecessaryImportsHelper.cs | 0 .../dotnet-format/ReportWriter.cs | 0 .../dotnet-format/Resources.resx | 0 .../dotnet-format/Resources/icon.png | Bin .../dotnet-format/Utilities/DotNetHelper.cs | 0 .../dotnet-format/Utilities/EditorConfigFinder.cs | 0 .../dotnet-format/Utilities/EditorConfigOptions.cs | 0 .../Utilities/GeneratedCodeUtilities.cs | 0 .../dotnet-format/Utilities/ProcessRunner.cs | 0 .../dotnet-format/Utilities/SourceFileMatcher.cs | 0 .../dotnet-format/WorkspaceFormatResult.cs | 0 .../dotnet-format/WorkspaceType.cs | 0 .../dotnet-format/Workspaces/FolderWorkspace.cs | 0 .../FolderWorkspace_CSharpProjectLoader.cs | 0 .../FolderWorkspace_FolderSolutionLoader.cs | 0 .../Workspaces/FolderWorkspace_ProjectLoader.cs | 0 .../FolderWorkspace_VisualBasicProjectLoader.cs | 0 .../Workspaces/MSBuildWorkspaceFinder.cs | 0 .../Workspaces/MSBuildWorkspaceLoader.cs | 0 .../dotnet-format/dotnet-format.csproj | 0 .../dotnet-format/xlf/Resources.cs.xlf | 0 .../dotnet-format/xlf/Resources.de.xlf | 0 .../dotnet-format/xlf/Resources.es.xlf | 0 .../dotnet-format/xlf/Resources.fr.xlf | 0 .../dotnet-format/xlf/Resources.it.xlf | 0 .../dotnet-format/xlf/Resources.ja.xlf | 0 .../dotnet-format/xlf/Resources.ko.xlf | 0 .../dotnet-format/xlf/Resources.pl.xlf | 0 .../dotnet-format/xlf/Resources.pt-BR.xlf | 0 .../dotnet-format/xlf/Resources.ru.xlf | 0 .../dotnet-format/xlf/Resources.tr.xlf | 0 .../dotnet-format/xlf/Resources.zh-Hans.xlf | 0 .../dotnet-format/xlf/Resources.zh-Hant.xlf | 0 src/Layout/redist/redist.csproj | 2 +- .../dotnet-format.UnitTests.csproj | 2 +- 80 files changed, 8 insertions(+), 10 deletions(-) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format.slnf (69%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Analyzers/AnalyzerFinderHelpers.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Analyzers/AnalyzerFormatter.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Analyzers/AnalyzerOptionExtensions.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Analyzers/AnalyzerReferenceInformationProvider.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Analyzers/AnalyzerRunner.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Analyzers/AnalyzersAndFixers.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Analyzers/CodeAnalysisResult.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Analyzers/CodeStyleInformationProvider.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Analyzers/Extensions.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Analyzers/Interfaces/IAnalyzerInformationProvider.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Analyzers/Interfaces/IAnalyzerRunner.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Analyzers/Interfaces/ICodeFixApplier.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Analyzers/SolutionCodeFixApplier.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/CodeFormatter.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Commands/FormatAnalyzersCommand.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Commands/FormatCommandCommon.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Commands/FormatStyleCommand.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Commands/FormatWhitespaceCommand.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Commands/RootFormatCommand.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/FileChange.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/FixCategory.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/FixSeverity.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/FormatOptions.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/FormattedFile.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Formatters/CharsetFormatter.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Formatters/DocumentFormatter.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Formatters/EndOfLineFormatter.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Formatters/FinalNewlineFormatter.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Formatters/ICodeFormatter.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Formatters/OrganizeImportsFormatter.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Formatters/WhitespaceFormatter.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Logging/IIssueFormatter.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Logging/ILoggerExtensions.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Logging/MSBuildIssueFormatter.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Logging/NullScope.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Logging/SimpleConsoleLogger.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Logging/SimpleConsoleLoggerFactoryExtensions.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Logging/SimpleConsoleLoggerProvider.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Program.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Properties/launchSettings.json (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/README.md (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Reflection/RemoveUnnecessaryImportsHelper.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/ReportWriter.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Resources.resx (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Resources/icon.png (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Utilities/DotNetHelper.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Utilities/EditorConfigFinder.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Utilities/EditorConfigOptions.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Utilities/GeneratedCodeUtilities.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Utilities/ProcessRunner.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Utilities/SourceFileMatcher.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/WorkspaceFormatResult.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/WorkspaceType.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Workspaces/FolderWorkspace.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Workspaces/FolderWorkspace_CSharpProjectLoader.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Workspaces/FolderWorkspace_FolderSolutionLoader.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Workspaces/FolderWorkspace_ProjectLoader.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Workspaces/FolderWorkspace_VisualBasicProjectLoader.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Workspaces/MSBuildWorkspaceFinder.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/Workspaces/MSBuildWorkspaceLoader.cs (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/dotnet-format.csproj (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/xlf/Resources.cs.xlf (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/xlf/Resources.de.xlf (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/xlf/Resources.es.xlf (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/xlf/Resources.fr.xlf (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/xlf/Resources.it.xlf (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/xlf/Resources.ja.xlf (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/xlf/Resources.ko.xlf (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/xlf/Resources.pl.xlf (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/xlf/Resources.pt-BR.xlf (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/xlf/Resources.ru.xlf (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/xlf/Resources.tr.xlf (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/xlf/Resources.zh-Hans.xlf (100%) rename src/{BuiltInTools => Dotnet.Format}/dotnet-format/xlf/Resources.zh-Hant.xlf (100%) diff --git a/CODEOWNERS b/CODEOWNERS index a3dc756e44fa..d93147292fd8 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -30,8 +30,9 @@ /src/WasmSdk @lewing @akoeplinger @pavelsavara @maraf # Area-Format -/src/Cli/dotnet/commands/dotnet-format @phil-allen-msft -/test/dotnet-format.UnitTests @phil-allen-msft +/src/Cli/dotnet/commands/Format @dotnet/roslyn-ide +/test/dotnet-format.UnitTests @dotnet/roslyn-ide +/src/Dotnet.Format @dotnet/roslyn-ide # Area-NuGet /src/Cli/dotnet/Commands/NuGet @dotnet/nuget-team @@ -106,8 +107,5 @@ /test/Microsoft.NET.Build.Containers.IntegrationTests @dotnet/sdk-container-builds-maintainers /test/Microsoft.NET.Build.Containers.UnitTests @dotnet/sdk-container-builds-maintainers -# dotnet-format -/src/BuiltInTools/dotnet-format @dotnet/roslyn-ide -/test/dotnet-format.UnitTests @dotnet/roslyn-ide /src/Microsoft.CodeAnalysis.NetAnalyzers @dotnet/dotnet-analyzers diff --git a/eng/dotnet-format/dotnet-format-integration.yml b/eng/dotnet-format/dotnet-format-integration.yml index 77b3baec5db9..26ecd59edc46 100644 --- a/eng/dotnet-format/dotnet-format-integration.yml +++ b/eng/dotnet-format/dotnet-format-integration.yml @@ -83,7 +83,7 @@ jobs: displayName: 🟣 Restore dependencies - script: | .\artifacts\sdk-build-env.bat - dotnet run --project .\src\BuiltInTools\dotnet-format\dotnet-format.csproj -c Release -- @eng\dotnet-format\validate.rsp + dotnet run --project .\src\Dotnet.Format\dotnet-format\dotnet-format.csproj -c Release -- @eng\dotnet-format\validate.rsp displayName: 🟣 Run dotnet-format - task: ${{ parameters.oneESCompat.publishTaskPrefix }}PublishBuildArtifacts@1 displayName: 🟣 Publish Logs diff --git a/sdk.slnx b/sdk.slnx index 1f9a8f45530d..b5f5c625b0c2 100644 --- a/sdk.slnx +++ b/sdk.slnx @@ -43,7 +43,7 @@ - + diff --git a/src/BuiltInTools/dotnet-format.slnf b/src/Dotnet.Format/dotnet-format.slnf similarity index 69% rename from src/BuiltInTools/dotnet-format.slnf rename to src/Dotnet.Format/dotnet-format.slnf index afa68f4acfff..6f3ae502a927 100644 --- a/src/BuiltInTools/dotnet-format.slnf +++ b/src/Dotnet.Format/dotnet-format.slnf @@ -2,7 +2,7 @@ "solution": { "path": "..\\..\\sdk.slnx", "projects": [ - "src\\BuiltInTools\\dotnet-format\\dotnet-format.csproj", + "src\\Dotnet.Format\\dotnet-format\\dotnet-format.csproj", "test\\dotnet-format.UnitTests\\dotnet-format.UnitTests.csproj" ] } diff --git a/src/BuiltInTools/dotnet-format/Analyzers/AnalyzerFinderHelpers.cs b/src/Dotnet.Format/dotnet-format/Analyzers/AnalyzerFinderHelpers.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Analyzers/AnalyzerFinderHelpers.cs rename to src/Dotnet.Format/dotnet-format/Analyzers/AnalyzerFinderHelpers.cs diff --git a/src/BuiltInTools/dotnet-format/Analyzers/AnalyzerFormatter.cs b/src/Dotnet.Format/dotnet-format/Analyzers/AnalyzerFormatter.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Analyzers/AnalyzerFormatter.cs rename to src/Dotnet.Format/dotnet-format/Analyzers/AnalyzerFormatter.cs diff --git a/src/BuiltInTools/dotnet-format/Analyzers/AnalyzerOptionExtensions.cs b/src/Dotnet.Format/dotnet-format/Analyzers/AnalyzerOptionExtensions.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Analyzers/AnalyzerOptionExtensions.cs rename to src/Dotnet.Format/dotnet-format/Analyzers/AnalyzerOptionExtensions.cs diff --git a/src/BuiltInTools/dotnet-format/Analyzers/AnalyzerReferenceInformationProvider.cs b/src/Dotnet.Format/dotnet-format/Analyzers/AnalyzerReferenceInformationProvider.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Analyzers/AnalyzerReferenceInformationProvider.cs rename to src/Dotnet.Format/dotnet-format/Analyzers/AnalyzerReferenceInformationProvider.cs diff --git a/src/BuiltInTools/dotnet-format/Analyzers/AnalyzerRunner.cs b/src/Dotnet.Format/dotnet-format/Analyzers/AnalyzerRunner.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Analyzers/AnalyzerRunner.cs rename to src/Dotnet.Format/dotnet-format/Analyzers/AnalyzerRunner.cs diff --git a/src/BuiltInTools/dotnet-format/Analyzers/AnalyzersAndFixers.cs b/src/Dotnet.Format/dotnet-format/Analyzers/AnalyzersAndFixers.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Analyzers/AnalyzersAndFixers.cs rename to src/Dotnet.Format/dotnet-format/Analyzers/AnalyzersAndFixers.cs diff --git a/src/BuiltInTools/dotnet-format/Analyzers/CodeAnalysisResult.cs b/src/Dotnet.Format/dotnet-format/Analyzers/CodeAnalysisResult.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Analyzers/CodeAnalysisResult.cs rename to src/Dotnet.Format/dotnet-format/Analyzers/CodeAnalysisResult.cs diff --git a/src/BuiltInTools/dotnet-format/Analyzers/CodeStyleInformationProvider.cs b/src/Dotnet.Format/dotnet-format/Analyzers/CodeStyleInformationProvider.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Analyzers/CodeStyleInformationProvider.cs rename to src/Dotnet.Format/dotnet-format/Analyzers/CodeStyleInformationProvider.cs diff --git a/src/BuiltInTools/dotnet-format/Analyzers/Extensions.cs b/src/Dotnet.Format/dotnet-format/Analyzers/Extensions.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Analyzers/Extensions.cs rename to src/Dotnet.Format/dotnet-format/Analyzers/Extensions.cs diff --git a/src/BuiltInTools/dotnet-format/Analyzers/Interfaces/IAnalyzerInformationProvider.cs b/src/Dotnet.Format/dotnet-format/Analyzers/Interfaces/IAnalyzerInformationProvider.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Analyzers/Interfaces/IAnalyzerInformationProvider.cs rename to src/Dotnet.Format/dotnet-format/Analyzers/Interfaces/IAnalyzerInformationProvider.cs diff --git a/src/BuiltInTools/dotnet-format/Analyzers/Interfaces/IAnalyzerRunner.cs b/src/Dotnet.Format/dotnet-format/Analyzers/Interfaces/IAnalyzerRunner.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Analyzers/Interfaces/IAnalyzerRunner.cs rename to src/Dotnet.Format/dotnet-format/Analyzers/Interfaces/IAnalyzerRunner.cs diff --git a/src/BuiltInTools/dotnet-format/Analyzers/Interfaces/ICodeFixApplier.cs b/src/Dotnet.Format/dotnet-format/Analyzers/Interfaces/ICodeFixApplier.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Analyzers/Interfaces/ICodeFixApplier.cs rename to src/Dotnet.Format/dotnet-format/Analyzers/Interfaces/ICodeFixApplier.cs diff --git a/src/BuiltInTools/dotnet-format/Analyzers/SolutionCodeFixApplier.cs b/src/Dotnet.Format/dotnet-format/Analyzers/SolutionCodeFixApplier.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Analyzers/SolutionCodeFixApplier.cs rename to src/Dotnet.Format/dotnet-format/Analyzers/SolutionCodeFixApplier.cs diff --git a/src/BuiltInTools/dotnet-format/CodeFormatter.cs b/src/Dotnet.Format/dotnet-format/CodeFormatter.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/CodeFormatter.cs rename to src/Dotnet.Format/dotnet-format/CodeFormatter.cs diff --git a/src/BuiltInTools/dotnet-format/Commands/FormatAnalyzersCommand.cs b/src/Dotnet.Format/dotnet-format/Commands/FormatAnalyzersCommand.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Commands/FormatAnalyzersCommand.cs rename to src/Dotnet.Format/dotnet-format/Commands/FormatAnalyzersCommand.cs diff --git a/src/BuiltInTools/dotnet-format/Commands/FormatCommandCommon.cs b/src/Dotnet.Format/dotnet-format/Commands/FormatCommandCommon.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Commands/FormatCommandCommon.cs rename to src/Dotnet.Format/dotnet-format/Commands/FormatCommandCommon.cs diff --git a/src/BuiltInTools/dotnet-format/Commands/FormatStyleCommand.cs b/src/Dotnet.Format/dotnet-format/Commands/FormatStyleCommand.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Commands/FormatStyleCommand.cs rename to src/Dotnet.Format/dotnet-format/Commands/FormatStyleCommand.cs diff --git a/src/BuiltInTools/dotnet-format/Commands/FormatWhitespaceCommand.cs b/src/Dotnet.Format/dotnet-format/Commands/FormatWhitespaceCommand.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Commands/FormatWhitespaceCommand.cs rename to src/Dotnet.Format/dotnet-format/Commands/FormatWhitespaceCommand.cs diff --git a/src/BuiltInTools/dotnet-format/Commands/RootFormatCommand.cs b/src/Dotnet.Format/dotnet-format/Commands/RootFormatCommand.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Commands/RootFormatCommand.cs rename to src/Dotnet.Format/dotnet-format/Commands/RootFormatCommand.cs diff --git a/src/BuiltInTools/dotnet-format/FileChange.cs b/src/Dotnet.Format/dotnet-format/FileChange.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/FileChange.cs rename to src/Dotnet.Format/dotnet-format/FileChange.cs diff --git a/src/BuiltInTools/dotnet-format/FixCategory.cs b/src/Dotnet.Format/dotnet-format/FixCategory.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/FixCategory.cs rename to src/Dotnet.Format/dotnet-format/FixCategory.cs diff --git a/src/BuiltInTools/dotnet-format/FixSeverity.cs b/src/Dotnet.Format/dotnet-format/FixSeverity.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/FixSeverity.cs rename to src/Dotnet.Format/dotnet-format/FixSeverity.cs diff --git a/src/BuiltInTools/dotnet-format/FormatOptions.cs b/src/Dotnet.Format/dotnet-format/FormatOptions.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/FormatOptions.cs rename to src/Dotnet.Format/dotnet-format/FormatOptions.cs diff --git a/src/BuiltInTools/dotnet-format/FormattedFile.cs b/src/Dotnet.Format/dotnet-format/FormattedFile.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/FormattedFile.cs rename to src/Dotnet.Format/dotnet-format/FormattedFile.cs diff --git a/src/BuiltInTools/dotnet-format/Formatters/CharsetFormatter.cs b/src/Dotnet.Format/dotnet-format/Formatters/CharsetFormatter.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Formatters/CharsetFormatter.cs rename to src/Dotnet.Format/dotnet-format/Formatters/CharsetFormatter.cs diff --git a/src/BuiltInTools/dotnet-format/Formatters/DocumentFormatter.cs b/src/Dotnet.Format/dotnet-format/Formatters/DocumentFormatter.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Formatters/DocumentFormatter.cs rename to src/Dotnet.Format/dotnet-format/Formatters/DocumentFormatter.cs diff --git a/src/BuiltInTools/dotnet-format/Formatters/EndOfLineFormatter.cs b/src/Dotnet.Format/dotnet-format/Formatters/EndOfLineFormatter.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Formatters/EndOfLineFormatter.cs rename to src/Dotnet.Format/dotnet-format/Formatters/EndOfLineFormatter.cs diff --git a/src/BuiltInTools/dotnet-format/Formatters/FinalNewlineFormatter.cs b/src/Dotnet.Format/dotnet-format/Formatters/FinalNewlineFormatter.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Formatters/FinalNewlineFormatter.cs rename to src/Dotnet.Format/dotnet-format/Formatters/FinalNewlineFormatter.cs diff --git a/src/BuiltInTools/dotnet-format/Formatters/ICodeFormatter.cs b/src/Dotnet.Format/dotnet-format/Formatters/ICodeFormatter.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Formatters/ICodeFormatter.cs rename to src/Dotnet.Format/dotnet-format/Formatters/ICodeFormatter.cs diff --git a/src/BuiltInTools/dotnet-format/Formatters/OrganizeImportsFormatter.cs b/src/Dotnet.Format/dotnet-format/Formatters/OrganizeImportsFormatter.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Formatters/OrganizeImportsFormatter.cs rename to src/Dotnet.Format/dotnet-format/Formatters/OrganizeImportsFormatter.cs diff --git a/src/BuiltInTools/dotnet-format/Formatters/WhitespaceFormatter.cs b/src/Dotnet.Format/dotnet-format/Formatters/WhitespaceFormatter.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Formatters/WhitespaceFormatter.cs rename to src/Dotnet.Format/dotnet-format/Formatters/WhitespaceFormatter.cs diff --git a/src/BuiltInTools/dotnet-format/Logging/IIssueFormatter.cs b/src/Dotnet.Format/dotnet-format/Logging/IIssueFormatter.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Logging/IIssueFormatter.cs rename to src/Dotnet.Format/dotnet-format/Logging/IIssueFormatter.cs diff --git a/src/BuiltInTools/dotnet-format/Logging/ILoggerExtensions.cs b/src/Dotnet.Format/dotnet-format/Logging/ILoggerExtensions.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Logging/ILoggerExtensions.cs rename to src/Dotnet.Format/dotnet-format/Logging/ILoggerExtensions.cs diff --git a/src/BuiltInTools/dotnet-format/Logging/MSBuildIssueFormatter.cs b/src/Dotnet.Format/dotnet-format/Logging/MSBuildIssueFormatter.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Logging/MSBuildIssueFormatter.cs rename to src/Dotnet.Format/dotnet-format/Logging/MSBuildIssueFormatter.cs diff --git a/src/BuiltInTools/dotnet-format/Logging/NullScope.cs b/src/Dotnet.Format/dotnet-format/Logging/NullScope.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Logging/NullScope.cs rename to src/Dotnet.Format/dotnet-format/Logging/NullScope.cs diff --git a/src/BuiltInTools/dotnet-format/Logging/SimpleConsoleLogger.cs b/src/Dotnet.Format/dotnet-format/Logging/SimpleConsoleLogger.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Logging/SimpleConsoleLogger.cs rename to src/Dotnet.Format/dotnet-format/Logging/SimpleConsoleLogger.cs diff --git a/src/BuiltInTools/dotnet-format/Logging/SimpleConsoleLoggerFactoryExtensions.cs b/src/Dotnet.Format/dotnet-format/Logging/SimpleConsoleLoggerFactoryExtensions.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Logging/SimpleConsoleLoggerFactoryExtensions.cs rename to src/Dotnet.Format/dotnet-format/Logging/SimpleConsoleLoggerFactoryExtensions.cs diff --git a/src/BuiltInTools/dotnet-format/Logging/SimpleConsoleLoggerProvider.cs b/src/Dotnet.Format/dotnet-format/Logging/SimpleConsoleLoggerProvider.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Logging/SimpleConsoleLoggerProvider.cs rename to src/Dotnet.Format/dotnet-format/Logging/SimpleConsoleLoggerProvider.cs diff --git a/src/BuiltInTools/dotnet-format/Program.cs b/src/Dotnet.Format/dotnet-format/Program.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Program.cs rename to src/Dotnet.Format/dotnet-format/Program.cs diff --git a/src/BuiltInTools/dotnet-format/Properties/launchSettings.json b/src/Dotnet.Format/dotnet-format/Properties/launchSettings.json similarity index 100% rename from src/BuiltInTools/dotnet-format/Properties/launchSettings.json rename to src/Dotnet.Format/dotnet-format/Properties/launchSettings.json diff --git a/src/BuiltInTools/dotnet-format/README.md b/src/Dotnet.Format/dotnet-format/README.md similarity index 100% rename from src/BuiltInTools/dotnet-format/README.md rename to src/Dotnet.Format/dotnet-format/README.md diff --git a/src/BuiltInTools/dotnet-format/Reflection/RemoveUnnecessaryImportsHelper.cs b/src/Dotnet.Format/dotnet-format/Reflection/RemoveUnnecessaryImportsHelper.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Reflection/RemoveUnnecessaryImportsHelper.cs rename to src/Dotnet.Format/dotnet-format/Reflection/RemoveUnnecessaryImportsHelper.cs diff --git a/src/BuiltInTools/dotnet-format/ReportWriter.cs b/src/Dotnet.Format/dotnet-format/ReportWriter.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/ReportWriter.cs rename to src/Dotnet.Format/dotnet-format/ReportWriter.cs diff --git a/src/BuiltInTools/dotnet-format/Resources.resx b/src/Dotnet.Format/dotnet-format/Resources.resx similarity index 100% rename from src/BuiltInTools/dotnet-format/Resources.resx rename to src/Dotnet.Format/dotnet-format/Resources.resx diff --git a/src/BuiltInTools/dotnet-format/Resources/icon.png b/src/Dotnet.Format/dotnet-format/Resources/icon.png similarity index 100% rename from src/BuiltInTools/dotnet-format/Resources/icon.png rename to src/Dotnet.Format/dotnet-format/Resources/icon.png diff --git a/src/BuiltInTools/dotnet-format/Utilities/DotNetHelper.cs b/src/Dotnet.Format/dotnet-format/Utilities/DotNetHelper.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Utilities/DotNetHelper.cs rename to src/Dotnet.Format/dotnet-format/Utilities/DotNetHelper.cs diff --git a/src/BuiltInTools/dotnet-format/Utilities/EditorConfigFinder.cs b/src/Dotnet.Format/dotnet-format/Utilities/EditorConfigFinder.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Utilities/EditorConfigFinder.cs rename to src/Dotnet.Format/dotnet-format/Utilities/EditorConfigFinder.cs diff --git a/src/BuiltInTools/dotnet-format/Utilities/EditorConfigOptions.cs b/src/Dotnet.Format/dotnet-format/Utilities/EditorConfigOptions.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Utilities/EditorConfigOptions.cs rename to src/Dotnet.Format/dotnet-format/Utilities/EditorConfigOptions.cs diff --git a/src/BuiltInTools/dotnet-format/Utilities/GeneratedCodeUtilities.cs b/src/Dotnet.Format/dotnet-format/Utilities/GeneratedCodeUtilities.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Utilities/GeneratedCodeUtilities.cs rename to src/Dotnet.Format/dotnet-format/Utilities/GeneratedCodeUtilities.cs diff --git a/src/BuiltInTools/dotnet-format/Utilities/ProcessRunner.cs b/src/Dotnet.Format/dotnet-format/Utilities/ProcessRunner.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Utilities/ProcessRunner.cs rename to src/Dotnet.Format/dotnet-format/Utilities/ProcessRunner.cs diff --git a/src/BuiltInTools/dotnet-format/Utilities/SourceFileMatcher.cs b/src/Dotnet.Format/dotnet-format/Utilities/SourceFileMatcher.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Utilities/SourceFileMatcher.cs rename to src/Dotnet.Format/dotnet-format/Utilities/SourceFileMatcher.cs diff --git a/src/BuiltInTools/dotnet-format/WorkspaceFormatResult.cs b/src/Dotnet.Format/dotnet-format/WorkspaceFormatResult.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/WorkspaceFormatResult.cs rename to src/Dotnet.Format/dotnet-format/WorkspaceFormatResult.cs diff --git a/src/BuiltInTools/dotnet-format/WorkspaceType.cs b/src/Dotnet.Format/dotnet-format/WorkspaceType.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/WorkspaceType.cs rename to src/Dotnet.Format/dotnet-format/WorkspaceType.cs diff --git a/src/BuiltInTools/dotnet-format/Workspaces/FolderWorkspace.cs b/src/Dotnet.Format/dotnet-format/Workspaces/FolderWorkspace.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Workspaces/FolderWorkspace.cs rename to src/Dotnet.Format/dotnet-format/Workspaces/FolderWorkspace.cs diff --git a/src/BuiltInTools/dotnet-format/Workspaces/FolderWorkspace_CSharpProjectLoader.cs b/src/Dotnet.Format/dotnet-format/Workspaces/FolderWorkspace_CSharpProjectLoader.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Workspaces/FolderWorkspace_CSharpProjectLoader.cs rename to src/Dotnet.Format/dotnet-format/Workspaces/FolderWorkspace_CSharpProjectLoader.cs diff --git a/src/BuiltInTools/dotnet-format/Workspaces/FolderWorkspace_FolderSolutionLoader.cs b/src/Dotnet.Format/dotnet-format/Workspaces/FolderWorkspace_FolderSolutionLoader.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Workspaces/FolderWorkspace_FolderSolutionLoader.cs rename to src/Dotnet.Format/dotnet-format/Workspaces/FolderWorkspace_FolderSolutionLoader.cs diff --git a/src/BuiltInTools/dotnet-format/Workspaces/FolderWorkspace_ProjectLoader.cs b/src/Dotnet.Format/dotnet-format/Workspaces/FolderWorkspace_ProjectLoader.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Workspaces/FolderWorkspace_ProjectLoader.cs rename to src/Dotnet.Format/dotnet-format/Workspaces/FolderWorkspace_ProjectLoader.cs diff --git a/src/BuiltInTools/dotnet-format/Workspaces/FolderWorkspace_VisualBasicProjectLoader.cs b/src/Dotnet.Format/dotnet-format/Workspaces/FolderWorkspace_VisualBasicProjectLoader.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Workspaces/FolderWorkspace_VisualBasicProjectLoader.cs rename to src/Dotnet.Format/dotnet-format/Workspaces/FolderWorkspace_VisualBasicProjectLoader.cs diff --git a/src/BuiltInTools/dotnet-format/Workspaces/MSBuildWorkspaceFinder.cs b/src/Dotnet.Format/dotnet-format/Workspaces/MSBuildWorkspaceFinder.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Workspaces/MSBuildWorkspaceFinder.cs rename to src/Dotnet.Format/dotnet-format/Workspaces/MSBuildWorkspaceFinder.cs diff --git a/src/BuiltInTools/dotnet-format/Workspaces/MSBuildWorkspaceLoader.cs b/src/Dotnet.Format/dotnet-format/Workspaces/MSBuildWorkspaceLoader.cs similarity index 100% rename from src/BuiltInTools/dotnet-format/Workspaces/MSBuildWorkspaceLoader.cs rename to src/Dotnet.Format/dotnet-format/Workspaces/MSBuildWorkspaceLoader.cs diff --git a/src/BuiltInTools/dotnet-format/dotnet-format.csproj b/src/Dotnet.Format/dotnet-format/dotnet-format.csproj similarity index 100% rename from src/BuiltInTools/dotnet-format/dotnet-format.csproj rename to src/Dotnet.Format/dotnet-format/dotnet-format.csproj diff --git a/src/BuiltInTools/dotnet-format/xlf/Resources.cs.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.cs.xlf similarity index 100% rename from src/BuiltInTools/dotnet-format/xlf/Resources.cs.xlf rename to src/Dotnet.Format/dotnet-format/xlf/Resources.cs.xlf diff --git a/src/BuiltInTools/dotnet-format/xlf/Resources.de.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.de.xlf similarity index 100% rename from src/BuiltInTools/dotnet-format/xlf/Resources.de.xlf rename to src/Dotnet.Format/dotnet-format/xlf/Resources.de.xlf diff --git a/src/BuiltInTools/dotnet-format/xlf/Resources.es.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.es.xlf similarity index 100% rename from src/BuiltInTools/dotnet-format/xlf/Resources.es.xlf rename to src/Dotnet.Format/dotnet-format/xlf/Resources.es.xlf diff --git a/src/BuiltInTools/dotnet-format/xlf/Resources.fr.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.fr.xlf similarity index 100% rename from src/BuiltInTools/dotnet-format/xlf/Resources.fr.xlf rename to src/Dotnet.Format/dotnet-format/xlf/Resources.fr.xlf diff --git a/src/BuiltInTools/dotnet-format/xlf/Resources.it.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.it.xlf similarity index 100% rename from src/BuiltInTools/dotnet-format/xlf/Resources.it.xlf rename to src/Dotnet.Format/dotnet-format/xlf/Resources.it.xlf diff --git a/src/BuiltInTools/dotnet-format/xlf/Resources.ja.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.ja.xlf similarity index 100% rename from src/BuiltInTools/dotnet-format/xlf/Resources.ja.xlf rename to src/Dotnet.Format/dotnet-format/xlf/Resources.ja.xlf diff --git a/src/BuiltInTools/dotnet-format/xlf/Resources.ko.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.ko.xlf similarity index 100% rename from src/BuiltInTools/dotnet-format/xlf/Resources.ko.xlf rename to src/Dotnet.Format/dotnet-format/xlf/Resources.ko.xlf diff --git a/src/BuiltInTools/dotnet-format/xlf/Resources.pl.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.pl.xlf similarity index 100% rename from src/BuiltInTools/dotnet-format/xlf/Resources.pl.xlf rename to src/Dotnet.Format/dotnet-format/xlf/Resources.pl.xlf diff --git a/src/BuiltInTools/dotnet-format/xlf/Resources.pt-BR.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.pt-BR.xlf similarity index 100% rename from src/BuiltInTools/dotnet-format/xlf/Resources.pt-BR.xlf rename to src/Dotnet.Format/dotnet-format/xlf/Resources.pt-BR.xlf diff --git a/src/BuiltInTools/dotnet-format/xlf/Resources.ru.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.ru.xlf similarity index 100% rename from src/BuiltInTools/dotnet-format/xlf/Resources.ru.xlf rename to src/Dotnet.Format/dotnet-format/xlf/Resources.ru.xlf diff --git a/src/BuiltInTools/dotnet-format/xlf/Resources.tr.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.tr.xlf similarity index 100% rename from src/BuiltInTools/dotnet-format/xlf/Resources.tr.xlf rename to src/Dotnet.Format/dotnet-format/xlf/Resources.tr.xlf diff --git a/src/BuiltInTools/dotnet-format/xlf/Resources.zh-Hans.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.zh-Hans.xlf similarity index 100% rename from src/BuiltInTools/dotnet-format/xlf/Resources.zh-Hans.xlf rename to src/Dotnet.Format/dotnet-format/xlf/Resources.zh-Hans.xlf diff --git a/src/BuiltInTools/dotnet-format/xlf/Resources.zh-Hant.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.zh-Hant.xlf similarity index 100% rename from src/BuiltInTools/dotnet-format/xlf/Resources.zh-Hant.xlf rename to src/Dotnet.Format/dotnet-format/xlf/Resources.zh-Hant.xlf diff --git a/src/Layout/redist/redist.csproj b/src/Layout/redist/redist.csproj index 22d3827eab44..80aea476d46c 100644 --- a/src/Layout/redist/redist.csproj +++ b/src/Layout/redist/redist.csproj @@ -67,7 +67,7 @@ - + diff --git a/test/dotnet-format.UnitTests/dotnet-format.UnitTests.csproj b/test/dotnet-format.UnitTests/dotnet-format.UnitTests.csproj index 7180d64a01b9..78265ab3456a 100644 --- a/test/dotnet-format.UnitTests/dotnet-format.UnitTests.csproj +++ b/test/dotnet-format.UnitTests/dotnet-format.UnitTests.csproj @@ -16,7 +16,7 @@ - + From 0103ca18aad1fd6bd20688cc14c0dca5a99625c5 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Tue, 24 Feb 2026 19:30:39 -0800 Subject: [PATCH 120/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2912121 --- .../dotnet-format/xlf/Resources.cs.xlf | 412 ++++++++++++++++++ .../dotnet-format/xlf/Resources.de.xlf | 412 ++++++++++++++++++ .../dotnet-format/xlf/Resources.es.xlf | 412 ++++++++++++++++++ .../dotnet-format/xlf/Resources.fr.xlf | 412 ++++++++++++++++++ .../dotnet-format/xlf/Resources.it.xlf | 412 ++++++++++++++++++ .../dotnet-format/xlf/Resources.ja.xlf | 412 ++++++++++++++++++ .../dotnet-format/xlf/Resources.ko.xlf | 412 ++++++++++++++++++ .../dotnet-format/xlf/Resources.pl.xlf | 412 ++++++++++++++++++ .../dotnet-format/xlf/Resources.pt-BR.xlf | 412 ++++++++++++++++++ .../dotnet-format/xlf/Resources.ru.xlf | 412 ++++++++++++++++++ .../dotnet-format/xlf/Resources.tr.xlf | 412 ++++++++++++++++++ .../dotnet-format/xlf/Resources.zh-Hans.xlf | 412 ++++++++++++++++++ .../dotnet-format/xlf/Resources.zh-Hant.xlf | 412 ++++++++++++++++++ 13 files changed, 5356 insertions(+) create mode 100644 src/Dotnet.Format/dotnet-format/xlf/Resources.cs.xlf create mode 100644 src/Dotnet.Format/dotnet-format/xlf/Resources.de.xlf create mode 100644 src/Dotnet.Format/dotnet-format/xlf/Resources.es.xlf create mode 100644 src/Dotnet.Format/dotnet-format/xlf/Resources.fr.xlf create mode 100644 src/Dotnet.Format/dotnet-format/xlf/Resources.it.xlf create mode 100644 src/Dotnet.Format/dotnet-format/xlf/Resources.ja.xlf create mode 100644 src/Dotnet.Format/dotnet-format/xlf/Resources.ko.xlf create mode 100644 src/Dotnet.Format/dotnet-format/xlf/Resources.pl.xlf create mode 100644 src/Dotnet.Format/dotnet-format/xlf/Resources.pt-BR.xlf create mode 100644 src/Dotnet.Format/dotnet-format/xlf/Resources.ru.xlf create mode 100644 src/Dotnet.Format/dotnet-format/xlf/Resources.tr.xlf create mode 100644 src/Dotnet.Format/dotnet-format/xlf/Resources.zh-Hans.xlf create mode 100644 src/Dotnet.Format/dotnet-format/xlf/Resources.zh-Hant.xlf diff --git a/src/Dotnet.Format/dotnet-format/xlf/Resources.cs.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.cs.xlf new file mode 100644 index 000000000000..5e6f4a6def35 --- /dev/null +++ b/src/Dotnet.Format/dotnet-format/xlf/Resources.cs.xlf @@ -0,0 +1,412 @@ + + + + + + A list of relative file or folder paths to exclude from formatting. + A list of relative file or folder paths to exclude from formatting. + + + + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + + + + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + + + + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + + + + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + + + + Accepts a file path, which if provided, will produce a json report in the given directory. + Accepts a file path, which if provided, will produce a json report in the given directory. + + + + Accepts a file path which if provided will produce a json report in the given directory. + Accepts a file path which if provided will produce a json report in the given directory. + + + + Analysis complete in {0}ms. + Analysis complete in {0}ms. + + + + Analyzer Reference + Analyzer Reference + + + + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + + + + Cannot specify the '--folder' option when fixing style. + Cannot specify the '--folder' option when fixing style. + + + + Cannot specify the '--folder' option when running analyzers. + Cannot specify the '--folder' option when running analyzers. + + + + Cannot specify the '--folder' option with '--no-restore'. + Cannot specify the '--folder' option with '--no-restore'. + + + + Cannot specify the '--folder' option when writing a binary log. + Cannot specify the '--folder' option when writing a binary log. + + + + Code Style + Code Style + + + + Complete in {0}ms. + Complete in {0}ms. + + + + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + + + + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + + + + Delete {0} characters. + Delete {0} characters. + + + + Determining diagnostics... + Determining diagnostics... + + + + Determining formattable files. + Determining formattable files. + + + + Doesn't execute an implicit restore before formatting. + Doesn't execute an implicit restore before formatting. + + + + Failed to apply code fix {0} for {1}: {2} + Failed to apply code fix {0} for {1}: {2} + + + + Failed to save formatting changes. + Failed to save formatting changes. + + + + Fix end of line marker. + Fix end of line marker. + + + + Fix file encoding. + Fix file encoding. + + + + Fix final newline. + Fix final newline. + + + + Fix imports ordering. + Fix imports ordering. + + + + Fix whitespace formatting. + Fix whitespace formatting. + + + + Fixing diagnostics... + Fixing diagnostics... + + + + Format complete in {0}ms. + Format complete in {0}ms. + + + + Format files generated by the SDK. + Format files generated by the SDK. + + + + Formats code to match editorconfig settings. + Formats code to match editorconfig settings. + + + + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + + + + Formatted {0} of {1} files. + Formatted {0} of {1} files. + + + + Formatting code file '{0}'. + Formatting code file '{0}'. + + + + Formatting code files in workspace '{0}'. + Formatting code files in workspace '{0}'. + + + + Include generated code files in formatting operations. + Include generated code files in formatting operations. + + + + Insert '{0}'. + Insert '{0}'. + + + + Loading workspace. + Loading workspace. + + + + Log all project or solution load information to a binary log file. + Log all project or solution load information to a binary log file. + + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Project {0} is using configuration from '{1}'. + Project {0} is using configuration from '{1}'. + + + + Replace {0} characters with '{1}'. + Replace {0} characters with '{1}'. + + + + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + + + + Remove unnecessary import. + Remove unnecessary import. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run code style analyzers and apply fixes. + Run code style analyzers and apply fixes. + + + + Run whitespace formatting. + Run whitespace formatting. + + + + Run whitespace formatting. Run by default when not applying fixes. + Run whitespace formatting. Run by default when not applying fixes. + + + + Running {0} analysis. + Running {0} analysis. + + + + Running {0} analyzers on {1}. + Running {0} analyzers on {1}. + + + + Running formatters. + Running formatters. + + + + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + + + + Skipping referenced project '{0}'. + Skipping referenced project '{0}'. + + + + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + + + + PROJECT | SOLUTION + PROJECT | SOLUTION + + + + Solution {0} has no projects + Solution {0} has no projects + + + + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + + + + The '--diagnostics' option only applies when fixing style or running analyzers. + The '--diagnostics' option only applies when fixing style or running analyzers. + + + + The dotnet CLI version is '{0}'. + The dotnet CLI version is '{0}'. + + + + The dotnet format version is '{0}'. + The dotnet format version is '{0}'. + + + + The dotnet runtime version is '{0}'. + The dotnet runtime version is '{0}'. + + + + The file '{0}' does not appear to be a valid project or solution file. + The file '{0}' does not appear to be a valid project or solution file. + + + + The project file '{0}' does not exist. + The project file '{0}' does not exist. + + + + The severity of diagnostics to fix. Allowed values are info, warn, and error. + The severity of diagnostics to fix. Allowed values are info, warn, and error. + + + + The solution file '{0}' does not exist. + The solution file '{0}' does not exist. + + + + Formatted code file '{0}'. + Formatted code file '{0}'. + + + + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + + + + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + + + + Unable to fix {0}. Code fix {1} returned an unexpected operation. + Unable to fix {0}. Code fix {1} returned an unexpected operation. + + + + Unable to fix {0}. No associated code fix found. + Unable to fix {0}. No associated code fix found. + + + + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + + + + Unable to organize imports for '{0}'. The document is too complex. + Unable to organize imports for '{0}'. The document is too complex. + + + + Using MSBuild.exe located in '{0}'. + Using MSBuild.exe located in '{0}'. + + + + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + + + + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + + + + Whether to treat the `<workspace>` argument as a simple folder of files. + Whether to treat the `<workspace>` argument as a simple folder of files. + + + + Writing formatting report to: '{0}'. + Writing formatting report to: '{0}'. + + + + + \ No newline at end of file diff --git a/src/Dotnet.Format/dotnet-format/xlf/Resources.de.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.de.xlf new file mode 100644 index 000000000000..dc5c12d8bece --- /dev/null +++ b/src/Dotnet.Format/dotnet-format/xlf/Resources.de.xlf @@ -0,0 +1,412 @@ + + + + + + A list of relative file or folder paths to exclude from formatting. + A list of relative file or folder paths to exclude from formatting. + + + + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + + + + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + + + + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + + + + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + + + + Accepts a file path, which if provided, will produce a json report in the given directory. + Accepts a file path, which if provided, will produce a json report in the given directory. + + + + Accepts a file path which if provided will produce a json report in the given directory. + Accepts a file path which if provided will produce a json report in the given directory. + + + + Analysis complete in {0}ms. + Analysis complete in {0}ms. + + + + Analyzer Reference + Analyzer Reference + + + + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + + + + Cannot specify the '--folder' option when fixing style. + Cannot specify the '--folder' option when fixing style. + + + + Cannot specify the '--folder' option when running analyzers. + Cannot specify the '--folder' option when running analyzers. + + + + Cannot specify the '--folder' option with '--no-restore'. + Cannot specify the '--folder' option with '--no-restore'. + + + + Cannot specify the '--folder' option when writing a binary log. + Cannot specify the '--folder' option when writing a binary log. + + + + Code Style + Code Style + + + + Complete in {0}ms. + Complete in {0}ms. + + + + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + + + + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + + + + Delete {0} characters. + Delete {0} characters. + + + + Determining diagnostics... + Determining diagnostics... + + + + Determining formattable files. + Determining formattable files. + + + + Doesn't execute an implicit restore before formatting. + Doesn't execute an implicit restore before formatting. + + + + Failed to apply code fix {0} for {1}: {2} + Failed to apply code fix {0} for {1}: {2} + + + + Failed to save formatting changes. + Failed to save formatting changes. + + + + Fix end of line marker. + Fix end of line marker. + + + + Fix file encoding. + Fix file encoding. + + + + Fix final newline. + Fix final newline. + + + + Fix imports ordering. + Fix imports ordering. + + + + Fix whitespace formatting. + Fix whitespace formatting. + + + + Fixing diagnostics... + Fixing diagnostics... + + + + Format complete in {0}ms. + Format complete in {0}ms. + + + + Format files generated by the SDK. + Format files generated by the SDK. + + + + Formats code to match editorconfig settings. + Formats code to match editorconfig settings. + + + + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + + + + Formatted {0} of {1} files. + Formatted {0} of {1} files. + + + + Formatting code file '{0}'. + Formatting code file '{0}'. + + + + Formatting code files in workspace '{0}'. + Formatting code files in workspace '{0}'. + + + + Include generated code files in formatting operations. + Include generated code files in formatting operations. + + + + Insert '{0}'. + Insert '{0}'. + + + + Loading workspace. + Loading workspace. + + + + Log all project or solution load information to a binary log file. + Log all project or solution load information to a binary log file. + + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Project {0} is using configuration from '{1}'. + Project {0} is using configuration from '{1}'. + + + + Replace {0} characters with '{1}'. + Replace {0} characters with '{1}'. + + + + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + + + + Remove unnecessary import. + Remove unnecessary import. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run code style analyzers and apply fixes. + Run code style analyzers and apply fixes. + + + + Run whitespace formatting. + Run whitespace formatting. + + + + Run whitespace formatting. Run by default when not applying fixes. + Run whitespace formatting. Run by default when not applying fixes. + + + + Running {0} analysis. + Running {0} analysis. + + + + Running {0} analyzers on {1}. + Running {0} analyzers on {1}. + + + + Running formatters. + Running formatters. + + + + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + + + + Skipping referenced project '{0}'. + Skipping referenced project '{0}'. + + + + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + + + + PROJECT | SOLUTION + PROJECT | SOLUTION + + + + Solution {0} has no projects + Solution {0} has no projects + + + + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + + + + The '--diagnostics' option only applies when fixing style or running analyzers. + The '--diagnostics' option only applies when fixing style or running analyzers. + + + + The dotnet CLI version is '{0}'. + The dotnet CLI version is '{0}'. + + + + The dotnet format version is '{0}'. + The dotnet format version is '{0}'. + + + + The dotnet runtime version is '{0}'. + The dotnet runtime version is '{0}'. + + + + The file '{0}' does not appear to be a valid project or solution file. + The file '{0}' does not appear to be a valid project or solution file. + + + + The project file '{0}' does not exist. + The project file '{0}' does not exist. + + + + The severity of diagnostics to fix. Allowed values are info, warn, and error. + The severity of diagnostics to fix. Allowed values are info, warn, and error. + + + + The solution file '{0}' does not exist. + The solution file '{0}' does not exist. + + + + Formatted code file '{0}'. + Formatted code file '{0}'. + + + + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + + + + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + + + + Unable to fix {0}. Code fix {1} returned an unexpected operation. + Unable to fix {0}. Code fix {1} returned an unexpected operation. + + + + Unable to fix {0}. No associated code fix found. + Unable to fix {0}. No associated code fix found. + + + + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + + + + Unable to organize imports for '{0}'. The document is too complex. + Unable to organize imports for '{0}'. The document is too complex. + + + + Using MSBuild.exe located in '{0}'. + Using MSBuild.exe located in '{0}'. + + + + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + + + + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + + + + Whether to treat the `<workspace>` argument as a simple folder of files. + Whether to treat the `<workspace>` argument as a simple folder of files. + + + + Writing formatting report to: '{0}'. + Writing formatting report to: '{0}'. + + + + + \ No newline at end of file diff --git a/src/Dotnet.Format/dotnet-format/xlf/Resources.es.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.es.xlf new file mode 100644 index 000000000000..14678623678d --- /dev/null +++ b/src/Dotnet.Format/dotnet-format/xlf/Resources.es.xlf @@ -0,0 +1,412 @@ + + + + + + A list of relative file or folder paths to exclude from formatting. + A list of relative file or folder paths to exclude from formatting. + + + + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + + + + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + + + + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + + + + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + + + + Accepts a file path, which if provided, will produce a json report in the given directory. + Accepts a file path, which if provided, will produce a json report in the given directory. + + + + Accepts a file path which if provided will produce a json report in the given directory. + Accepts a file path which if provided will produce a json report in the given directory. + + + + Analysis complete in {0}ms. + Analysis complete in {0}ms. + + + + Analyzer Reference + Analyzer Reference + + + + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + + + + Cannot specify the '--folder' option when fixing style. + Cannot specify the '--folder' option when fixing style. + + + + Cannot specify the '--folder' option when running analyzers. + Cannot specify the '--folder' option when running analyzers. + + + + Cannot specify the '--folder' option with '--no-restore'. + Cannot specify the '--folder' option with '--no-restore'. + + + + Cannot specify the '--folder' option when writing a binary log. + Cannot specify the '--folder' option when writing a binary log. + + + + Code Style + Code Style + + + + Complete in {0}ms. + Complete in {0}ms. + + + + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + + + + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + + + + Delete {0} characters. + Delete {0} characters. + + + + Determining diagnostics... + Determining diagnostics... + + + + Determining formattable files. + Determining formattable files. + + + + Doesn't execute an implicit restore before formatting. + Doesn't execute an implicit restore before formatting. + + + + Failed to apply code fix {0} for {1}: {2} + Failed to apply code fix {0} for {1}: {2} + + + + Failed to save formatting changes. + Failed to save formatting changes. + + + + Fix end of line marker. + Fix end of line marker. + + + + Fix file encoding. + Fix file encoding. + + + + Fix final newline. + Fix final newline. + + + + Fix imports ordering. + Fix imports ordering. + + + + Fix whitespace formatting. + Fix whitespace formatting. + + + + Fixing diagnostics... + Fixing diagnostics... + + + + Format complete in {0}ms. + Format complete in {0}ms. + + + + Format files generated by the SDK. + Format files generated by the SDK. + + + + Formats code to match editorconfig settings. + Formats code to match editorconfig settings. + + + + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + + + + Formatted {0} of {1} files. + Formatted {0} of {1} files. + + + + Formatting code file '{0}'. + Formatting code file '{0}'. + + + + Formatting code files in workspace '{0}'. + Formatting code files in workspace '{0}'. + + + + Include generated code files in formatting operations. + Include generated code files in formatting operations. + + + + Insert '{0}'. + Insert '{0}'. + + + + Loading workspace. + Loading workspace. + + + + Log all project or solution load information to a binary log file. + Log all project or solution load information to a binary log file. + + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Project {0} is using configuration from '{1}'. + Project {0} is using configuration from '{1}'. + + + + Replace {0} characters with '{1}'. + Replace {0} characters with '{1}'. + + + + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + + + + Remove unnecessary import. + Remove unnecessary import. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run code style analyzers and apply fixes. + Run code style analyzers and apply fixes. + + + + Run whitespace formatting. + Run whitespace formatting. + + + + Run whitespace formatting. Run by default when not applying fixes. + Run whitespace formatting. Run by default when not applying fixes. + + + + Running {0} analysis. + Running {0} analysis. + + + + Running {0} analyzers on {1}. + Running {0} analyzers on {1}. + + + + Running formatters. + Running formatters. + + + + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + + + + Skipping referenced project '{0}'. + Skipping referenced project '{0}'. + + + + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + + + + PROJECT | SOLUTION + PROJECT | SOLUTION + + + + Solution {0} has no projects + Solution {0} has no projects + + + + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + + + + The '--diagnostics' option only applies when fixing style or running analyzers. + The '--diagnostics' option only applies when fixing style or running analyzers. + + + + The dotnet CLI version is '{0}'. + The dotnet CLI version is '{0}'. + + + + The dotnet format version is '{0}'. + The dotnet format version is '{0}'. + + + + The dotnet runtime version is '{0}'. + The dotnet runtime version is '{0}'. + + + + The file '{0}' does not appear to be a valid project or solution file. + The file '{0}' does not appear to be a valid project or solution file. + + + + The project file '{0}' does not exist. + The project file '{0}' does not exist. + + + + The severity of diagnostics to fix. Allowed values are info, warn, and error. + The severity of diagnostics to fix. Allowed values are info, warn, and error. + + + + The solution file '{0}' does not exist. + The solution file '{0}' does not exist. + + + + Formatted code file '{0}'. + Formatted code file '{0}'. + + + + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + + + + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + + + + Unable to fix {0}. Code fix {1} returned an unexpected operation. + Unable to fix {0}. Code fix {1} returned an unexpected operation. + + + + Unable to fix {0}. No associated code fix found. + Unable to fix {0}. No associated code fix found. + + + + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + + + + Unable to organize imports for '{0}'. The document is too complex. + Unable to organize imports for '{0}'. The document is too complex. + + + + Using MSBuild.exe located in '{0}'. + Using MSBuild.exe located in '{0}'. + + + + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + + + + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + + + + Whether to treat the `<workspace>` argument as a simple folder of files. + Whether to treat the `<workspace>` argument as a simple folder of files. + + + + Writing formatting report to: '{0}'. + Writing formatting report to: '{0}'. + + + + + \ No newline at end of file diff --git a/src/Dotnet.Format/dotnet-format/xlf/Resources.fr.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.fr.xlf new file mode 100644 index 000000000000..a9faec102a76 --- /dev/null +++ b/src/Dotnet.Format/dotnet-format/xlf/Resources.fr.xlf @@ -0,0 +1,412 @@ + + + + + + A list of relative file or folder paths to exclude from formatting. + A list of relative file or folder paths to exclude from formatting. + + + + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + + + + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + + + + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + + + + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + + + + Accepts a file path, which if provided, will produce a json report in the given directory. + Accepts a file path, which if provided, will produce a json report in the given directory. + + + + Accepts a file path which if provided will produce a json report in the given directory. + Accepts a file path which if provided will produce a json report in the given directory. + + + + Analysis complete in {0}ms. + Analysis complete in {0}ms. + + + + Analyzer Reference + Analyzer Reference + + + + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + + + + Cannot specify the '--folder' option when fixing style. + Cannot specify the '--folder' option when fixing style. + + + + Cannot specify the '--folder' option when running analyzers. + Cannot specify the '--folder' option when running analyzers. + + + + Cannot specify the '--folder' option with '--no-restore'. + Cannot specify the '--folder' option with '--no-restore'. + + + + Cannot specify the '--folder' option when writing a binary log. + Cannot specify the '--folder' option when writing a binary log. + + + + Code Style + Code Style + + + + Complete in {0}ms. + Complete in {0}ms. + + + + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + + + + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + + + + Delete {0} characters. + Delete {0} characters. + + + + Determining diagnostics... + Determining diagnostics... + + + + Determining formattable files. + Determining formattable files. + + + + Doesn't execute an implicit restore before formatting. + Doesn't execute an implicit restore before formatting. + + + + Failed to apply code fix {0} for {1}: {2} + Failed to apply code fix {0} for {1}: {2} + + + + Failed to save formatting changes. + Failed to save formatting changes. + + + + Fix end of line marker. + Fix end of line marker. + + + + Fix file encoding. + Fix file encoding. + + + + Fix final newline. + Fix final newline. + + + + Fix imports ordering. + Fix imports ordering. + + + + Fix whitespace formatting. + Fix whitespace formatting. + + + + Fixing diagnostics... + Fixing diagnostics... + + + + Format complete in {0}ms. + Format complete in {0}ms. + + + + Format files generated by the SDK. + Format files generated by the SDK. + + + + Formats code to match editorconfig settings. + Formats code to match editorconfig settings. + + + + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + + + + Formatted {0} of {1} files. + Formatted {0} of {1} files. + + + + Formatting code file '{0}'. + Formatting code file '{0}'. + + + + Formatting code files in workspace '{0}'. + Formatting code files in workspace '{0}'. + + + + Include generated code files in formatting operations. + Include generated code files in formatting operations. + + + + Insert '{0}'. + Insert '{0}'. + + + + Loading workspace. + Loading workspace. + + + + Log all project or solution load information to a binary log file. + Log all project or solution load information to a binary log file. + + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Project {0} is using configuration from '{1}'. + Project {0} is using configuration from '{1}'. + + + + Replace {0} characters with '{1}'. + Replace {0} characters with '{1}'. + + + + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + + + + Remove unnecessary import. + Remove unnecessary import. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run code style analyzers and apply fixes. + Run code style analyzers and apply fixes. + + + + Run whitespace formatting. + Run whitespace formatting. + + + + Run whitespace formatting. Run by default when not applying fixes. + Run whitespace formatting. Run by default when not applying fixes. + + + + Running {0} analysis. + Running {0} analysis. + + + + Running {0} analyzers on {1}. + Running {0} analyzers on {1}. + + + + Running formatters. + Running formatters. + + + + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + + + + Skipping referenced project '{0}'. + Skipping referenced project '{0}'. + + + + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + + + + PROJECT | SOLUTION + PROJECT | SOLUTION + + + + Solution {0} has no projects + Solution {0} has no projects + + + + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + + + + The '--diagnostics' option only applies when fixing style or running analyzers. + The '--diagnostics' option only applies when fixing style or running analyzers. + + + + The dotnet CLI version is '{0}'. + The dotnet CLI version is '{0}'. + + + + The dotnet format version is '{0}'. + The dotnet format version is '{0}'. + + + + The dotnet runtime version is '{0}'. + The dotnet runtime version is '{0}'. + + + + The file '{0}' does not appear to be a valid project or solution file. + The file '{0}' does not appear to be a valid project or solution file. + + + + The project file '{0}' does not exist. + The project file '{0}' does not exist. + + + + The severity of diagnostics to fix. Allowed values are info, warn, and error. + The severity of diagnostics to fix. Allowed values are info, warn, and error. + + + + The solution file '{0}' does not exist. + The solution file '{0}' does not exist. + + + + Formatted code file '{0}'. + Formatted code file '{0}'. + + + + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + + + + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + + + + Unable to fix {0}. Code fix {1} returned an unexpected operation. + Unable to fix {0}. Code fix {1} returned an unexpected operation. + + + + Unable to fix {0}. No associated code fix found. + Unable to fix {0}. No associated code fix found. + + + + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + + + + Unable to organize imports for '{0}'. The document is too complex. + Unable to organize imports for '{0}'. The document is too complex. + + + + Using MSBuild.exe located in '{0}'. + Using MSBuild.exe located in '{0}'. + + + + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + + + + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + + + + Whether to treat the `<workspace>` argument as a simple folder of files. + Whether to treat the `<workspace>` argument as a simple folder of files. + + + + Writing formatting report to: '{0}'. + Writing formatting report to: '{0}'. + + + + + \ No newline at end of file diff --git a/src/Dotnet.Format/dotnet-format/xlf/Resources.it.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.it.xlf new file mode 100644 index 000000000000..cec84b0cb5e2 --- /dev/null +++ b/src/Dotnet.Format/dotnet-format/xlf/Resources.it.xlf @@ -0,0 +1,412 @@ + + + + + + A list of relative file or folder paths to exclude from formatting. + A list of relative file or folder paths to exclude from formatting. + + + + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + + + + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + + + + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + + + + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + + + + Accepts a file path, which if provided, will produce a json report in the given directory. + Accepts a file path, which if provided, will produce a json report in the given directory. + + + + Accepts a file path which if provided will produce a json report in the given directory. + Accepts a file path which if provided will produce a json report in the given directory. + + + + Analysis complete in {0}ms. + Analysis complete in {0}ms. + + + + Analyzer Reference + Analyzer Reference + + + + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + + + + Cannot specify the '--folder' option when fixing style. + Cannot specify the '--folder' option when fixing style. + + + + Cannot specify the '--folder' option when running analyzers. + Cannot specify the '--folder' option when running analyzers. + + + + Cannot specify the '--folder' option with '--no-restore'. + Cannot specify the '--folder' option with '--no-restore'. + + + + Cannot specify the '--folder' option when writing a binary log. + Cannot specify the '--folder' option when writing a binary log. + + + + Code Style + Code Style + + + + Complete in {0}ms. + Complete in {0}ms. + + + + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + + + + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + + + + Delete {0} characters. + Delete {0} characters. + + + + Determining diagnostics... + Determining diagnostics... + + + + Determining formattable files. + Determining formattable files. + + + + Doesn't execute an implicit restore before formatting. + Doesn't execute an implicit restore before formatting. + + + + Failed to apply code fix {0} for {1}: {2} + Failed to apply code fix {0} for {1}: {2} + + + + Failed to save formatting changes. + Failed to save formatting changes. + + + + Fix end of line marker. + Fix end of line marker. + + + + Fix file encoding. + Fix file encoding. + + + + Fix final newline. + Fix final newline. + + + + Fix imports ordering. + Fix imports ordering. + + + + Fix whitespace formatting. + Fix whitespace formatting. + + + + Fixing diagnostics... + Fixing diagnostics... + + + + Format complete in {0}ms. + Format complete in {0}ms. + + + + Format files generated by the SDK. + Format files generated by the SDK. + + + + Formats code to match editorconfig settings. + Formats code to match editorconfig settings. + + + + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + + + + Formatted {0} of {1} files. + Formatted {0} of {1} files. + + + + Formatting code file '{0}'. + Formatting code file '{0}'. + + + + Formatting code files in workspace '{0}'. + Formatting code files in workspace '{0}'. + + + + Include generated code files in formatting operations. + Include generated code files in formatting operations. + + + + Insert '{0}'. + Insert '{0}'. + + + + Loading workspace. + Loading workspace. + + + + Log all project or solution load information to a binary log file. + Log all project or solution load information to a binary log file. + + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Project {0} is using configuration from '{1}'. + Project {0} is using configuration from '{1}'. + + + + Replace {0} characters with '{1}'. + Replace {0} characters with '{1}'. + + + + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + + + + Remove unnecessary import. + Remove unnecessary import. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run code style analyzers and apply fixes. + Run code style analyzers and apply fixes. + + + + Run whitespace formatting. + Run whitespace formatting. + + + + Run whitespace formatting. Run by default when not applying fixes. + Run whitespace formatting. Run by default when not applying fixes. + + + + Running {0} analysis. + Running {0} analysis. + + + + Running {0} analyzers on {1}. + Running {0} analyzers on {1}. + + + + Running formatters. + Running formatters. + + + + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + + + + Skipping referenced project '{0}'. + Skipping referenced project '{0}'. + + + + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + + + + PROJECT | SOLUTION + PROJECT | SOLUTION + + + + Solution {0} has no projects + Solution {0} has no projects + + + + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + + + + The '--diagnostics' option only applies when fixing style or running analyzers. + The '--diagnostics' option only applies when fixing style or running analyzers. + + + + The dotnet CLI version is '{0}'. + The dotnet CLI version is '{0}'. + + + + The dotnet format version is '{0}'. + The dotnet format version is '{0}'. + + + + The dotnet runtime version is '{0}'. + The dotnet runtime version is '{0}'. + + + + The file '{0}' does not appear to be a valid project or solution file. + The file '{0}' does not appear to be a valid project or solution file. + + + + The project file '{0}' does not exist. + The project file '{0}' does not exist. + + + + The severity of diagnostics to fix. Allowed values are info, warn, and error. + The severity of diagnostics to fix. Allowed values are info, warn, and error. + + + + The solution file '{0}' does not exist. + The solution file '{0}' does not exist. + + + + Formatted code file '{0}'. + Formatted code file '{0}'. + + + + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + + + + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + + + + Unable to fix {0}. Code fix {1} returned an unexpected operation. + Unable to fix {0}. Code fix {1} returned an unexpected operation. + + + + Unable to fix {0}. No associated code fix found. + Unable to fix {0}. No associated code fix found. + + + + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + + + + Unable to organize imports for '{0}'. The document is too complex. + Unable to organize imports for '{0}'. The document is too complex. + + + + Using MSBuild.exe located in '{0}'. + Using MSBuild.exe located in '{0}'. + + + + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + + + + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + + + + Whether to treat the `<workspace>` argument as a simple folder of files. + Whether to treat the `<workspace>` argument as a simple folder of files. + + + + Writing formatting report to: '{0}'. + Writing formatting report to: '{0}'. + + + + + \ No newline at end of file diff --git a/src/Dotnet.Format/dotnet-format/xlf/Resources.ja.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.ja.xlf new file mode 100644 index 000000000000..77e0f40de4d4 --- /dev/null +++ b/src/Dotnet.Format/dotnet-format/xlf/Resources.ja.xlf @@ -0,0 +1,412 @@ + + + + + + A list of relative file or folder paths to exclude from formatting. + A list of relative file or folder paths to exclude from formatting. + + + + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + + + + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + + + + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + + + + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + + + + Accepts a file path, which if provided, will produce a json report in the given directory. + Accepts a file path, which if provided, will produce a json report in the given directory. + + + + Accepts a file path which if provided will produce a json report in the given directory. + Accepts a file path which if provided will produce a json report in the given directory. + + + + Analysis complete in {0}ms. + Analysis complete in {0}ms. + + + + Analyzer Reference + Analyzer Reference + + + + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + + + + Cannot specify the '--folder' option when fixing style. + Cannot specify the '--folder' option when fixing style. + + + + Cannot specify the '--folder' option when running analyzers. + Cannot specify the '--folder' option when running analyzers. + + + + Cannot specify the '--folder' option with '--no-restore'. + Cannot specify the '--folder' option with '--no-restore'. + + + + Cannot specify the '--folder' option when writing a binary log. + Cannot specify the '--folder' option when writing a binary log. + + + + Code Style + Code Style + + + + Complete in {0}ms. + Complete in {0}ms. + + + + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + + + + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + + + + Delete {0} characters. + Delete {0} characters. + + + + Determining diagnostics... + Determining diagnostics... + + + + Determining formattable files. + Determining formattable files. + + + + Doesn't execute an implicit restore before formatting. + Doesn't execute an implicit restore before formatting. + + + + Failed to apply code fix {0} for {1}: {2} + Failed to apply code fix {0} for {1}: {2} + + + + Failed to save formatting changes. + Failed to save formatting changes. + + + + Fix end of line marker. + Fix end of line marker. + + + + Fix file encoding. + Fix file encoding. + + + + Fix final newline. + Fix final newline. + + + + Fix imports ordering. + Fix imports ordering. + + + + Fix whitespace formatting. + Fix whitespace formatting. + + + + Fixing diagnostics... + Fixing diagnostics... + + + + Format complete in {0}ms. + Format complete in {0}ms. + + + + Format files generated by the SDK. + Format files generated by the SDK. + + + + Formats code to match editorconfig settings. + Formats code to match editorconfig settings. + + + + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + + + + Formatted {0} of {1} files. + Formatted {0} of {1} files. + + + + Formatting code file '{0}'. + Formatting code file '{0}'. + + + + Formatting code files in workspace '{0}'. + Formatting code files in workspace '{0}'. + + + + Include generated code files in formatting operations. + Include generated code files in formatting operations. + + + + Insert '{0}'. + Insert '{0}'. + + + + Loading workspace. + Loading workspace. + + + + Log all project or solution load information to a binary log file. + Log all project or solution load information to a binary log file. + + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Project {0} is using configuration from '{1}'. + Project {0} is using configuration from '{1}'. + + + + Replace {0} characters with '{1}'. + Replace {0} characters with '{1}'. + + + + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + + + + Remove unnecessary import. + Remove unnecessary import. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run code style analyzers and apply fixes. + Run code style analyzers and apply fixes. + + + + Run whitespace formatting. + Run whitespace formatting. + + + + Run whitespace formatting. Run by default when not applying fixes. + Run whitespace formatting. Run by default when not applying fixes. + + + + Running {0} analysis. + Running {0} analysis. + + + + Running {0} analyzers on {1}. + Running {0} analyzers on {1}. + + + + Running formatters. + Running formatters. + + + + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + + + + Skipping referenced project '{0}'. + Skipping referenced project '{0}'. + + + + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + + + + PROJECT | SOLUTION + PROJECT | SOLUTION + + + + Solution {0} has no projects + Solution {0} has no projects + + + + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + + + + The '--diagnostics' option only applies when fixing style or running analyzers. + The '--diagnostics' option only applies when fixing style or running analyzers. + + + + The dotnet CLI version is '{0}'. + The dotnet CLI version is '{0}'. + + + + The dotnet format version is '{0}'. + The dotnet format version is '{0}'. + + + + The dotnet runtime version is '{0}'. + The dotnet runtime version is '{0}'. + + + + The file '{0}' does not appear to be a valid project or solution file. + The file '{0}' does not appear to be a valid project or solution file. + + + + The project file '{0}' does not exist. + The project file '{0}' does not exist. + + + + The severity of diagnostics to fix. Allowed values are info, warn, and error. + The severity of diagnostics to fix. Allowed values are info, warn, and error. + + + + The solution file '{0}' does not exist. + The solution file '{0}' does not exist. + + + + Formatted code file '{0}'. + Formatted code file '{0}'. + + + + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + + + + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + + + + Unable to fix {0}. Code fix {1} returned an unexpected operation. + Unable to fix {0}. Code fix {1} returned an unexpected operation. + + + + Unable to fix {0}. No associated code fix found. + Unable to fix {0}. No associated code fix found. + + + + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + + + + Unable to organize imports for '{0}'. The document is too complex. + Unable to organize imports for '{0}'. The document is too complex. + + + + Using MSBuild.exe located in '{0}'. + Using MSBuild.exe located in '{0}'. + + + + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + + + + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + + + + Whether to treat the `<workspace>` argument as a simple folder of files. + Whether to treat the `<workspace>` argument as a simple folder of files. + + + + Writing formatting report to: '{0}'. + Writing formatting report to: '{0}'. + + + + + \ No newline at end of file diff --git a/src/Dotnet.Format/dotnet-format/xlf/Resources.ko.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.ko.xlf new file mode 100644 index 000000000000..9d6317800078 --- /dev/null +++ b/src/Dotnet.Format/dotnet-format/xlf/Resources.ko.xlf @@ -0,0 +1,412 @@ + + + + + + A list of relative file or folder paths to exclude from formatting. + A list of relative file or folder paths to exclude from formatting. + + + + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + + + + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + + + + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + + + + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + + + + Accepts a file path, which if provided, will produce a json report in the given directory. + Accepts a file path, which if provided, will produce a json report in the given directory. + + + + Accepts a file path which if provided will produce a json report in the given directory. + Accepts a file path which if provided will produce a json report in the given directory. + + + + Analysis complete in {0}ms. + Analysis complete in {0}ms. + + + + Analyzer Reference + Analyzer Reference + + + + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + + + + Cannot specify the '--folder' option when fixing style. + Cannot specify the '--folder' option when fixing style. + + + + Cannot specify the '--folder' option when running analyzers. + Cannot specify the '--folder' option when running analyzers. + + + + Cannot specify the '--folder' option with '--no-restore'. + Cannot specify the '--folder' option with '--no-restore'. + + + + Cannot specify the '--folder' option when writing a binary log. + Cannot specify the '--folder' option when writing a binary log. + + + + Code Style + Code Style + + + + Complete in {0}ms. + Complete in {0}ms. + + + + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + + + + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + + + + Delete {0} characters. + Delete {0} characters. + + + + Determining diagnostics... + Determining diagnostics... + + + + Determining formattable files. + Determining formattable files. + + + + Doesn't execute an implicit restore before formatting. + Doesn't execute an implicit restore before formatting. + + + + Failed to apply code fix {0} for {1}: {2} + Failed to apply code fix {0} for {1}: {2} + + + + Failed to save formatting changes. + Failed to save formatting changes. + + + + Fix end of line marker. + Fix end of line marker. + + + + Fix file encoding. + Fix file encoding. + + + + Fix final newline. + Fix final newline. + + + + Fix imports ordering. + Fix imports ordering. + + + + Fix whitespace formatting. + Fix whitespace formatting. + + + + Fixing diagnostics... + Fixing diagnostics... + + + + Format complete in {0}ms. + Format complete in {0}ms. + + + + Format files generated by the SDK. + Format files generated by the SDK. + + + + Formats code to match editorconfig settings. + Formats code to match editorconfig settings. + + + + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + + + + Formatted {0} of {1} files. + Formatted {0} of {1} files. + + + + Formatting code file '{0}'. + Formatting code file '{0}'. + + + + Formatting code files in workspace '{0}'. + Formatting code files in workspace '{0}'. + + + + Include generated code files in formatting operations. + Include generated code files in formatting operations. + + + + Insert '{0}'. + Insert '{0}'. + + + + Loading workspace. + Loading workspace. + + + + Log all project or solution load information to a binary log file. + Log all project or solution load information to a binary log file. + + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Project {0} is using configuration from '{1}'. + Project {0} is using configuration from '{1}'. + + + + Replace {0} characters with '{1}'. + Replace {0} characters with '{1}'. + + + + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + + + + Remove unnecessary import. + Remove unnecessary import. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run code style analyzers and apply fixes. + Run code style analyzers and apply fixes. + + + + Run whitespace formatting. + Run whitespace formatting. + + + + Run whitespace formatting. Run by default when not applying fixes. + Run whitespace formatting. Run by default when not applying fixes. + + + + Running {0} analysis. + Running {0} analysis. + + + + Running {0} analyzers on {1}. + Running {0} analyzers on {1}. + + + + Running formatters. + Running formatters. + + + + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + + + + Skipping referenced project '{0}'. + Skipping referenced project '{0}'. + + + + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + + + + PROJECT | SOLUTION + PROJECT | SOLUTION + + + + Solution {0} has no projects + Solution {0} has no projects + + + + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + + + + The '--diagnostics' option only applies when fixing style or running analyzers. + The '--diagnostics' option only applies when fixing style or running analyzers. + + + + The dotnet CLI version is '{0}'. + The dotnet CLI version is '{0}'. + + + + The dotnet format version is '{0}'. + The dotnet format version is '{0}'. + + + + The dotnet runtime version is '{0}'. + The dotnet runtime version is '{0}'. + + + + The file '{0}' does not appear to be a valid project or solution file. + The file '{0}' does not appear to be a valid project or solution file. + + + + The project file '{0}' does not exist. + The project file '{0}' does not exist. + + + + The severity of diagnostics to fix. Allowed values are info, warn, and error. + The severity of diagnostics to fix. Allowed values are info, warn, and error. + + + + The solution file '{0}' does not exist. + The solution file '{0}' does not exist. + + + + Formatted code file '{0}'. + Formatted code file '{0}'. + + + + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + + + + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + + + + Unable to fix {0}. Code fix {1} returned an unexpected operation. + Unable to fix {0}. Code fix {1} returned an unexpected operation. + + + + Unable to fix {0}. No associated code fix found. + Unable to fix {0}. No associated code fix found. + + + + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + + + + Unable to organize imports for '{0}'. The document is too complex. + Unable to organize imports for '{0}'. The document is too complex. + + + + Using MSBuild.exe located in '{0}'. + Using MSBuild.exe located in '{0}'. + + + + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + + + + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + + + + Whether to treat the `<workspace>` argument as a simple folder of files. + Whether to treat the `<workspace>` argument as a simple folder of files. + + + + Writing formatting report to: '{0}'. + Writing formatting report to: '{0}'. + + + + + \ No newline at end of file diff --git a/src/Dotnet.Format/dotnet-format/xlf/Resources.pl.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.pl.xlf new file mode 100644 index 000000000000..a4e40b2075ec --- /dev/null +++ b/src/Dotnet.Format/dotnet-format/xlf/Resources.pl.xlf @@ -0,0 +1,412 @@ + + + + + + A list of relative file or folder paths to exclude from formatting. + A list of relative file or folder paths to exclude from formatting. + + + + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + + + + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + + + + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + + + + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + + + + Accepts a file path, which if provided, will produce a json report in the given directory. + Accepts a file path, which if provided, will produce a json report in the given directory. + + + + Accepts a file path which if provided will produce a json report in the given directory. + Accepts a file path which if provided will produce a json report in the given directory. + + + + Analysis complete in {0}ms. + Analysis complete in {0}ms. + + + + Analyzer Reference + Analyzer Reference + + + + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + + + + Cannot specify the '--folder' option when fixing style. + Cannot specify the '--folder' option when fixing style. + + + + Cannot specify the '--folder' option when running analyzers. + Cannot specify the '--folder' option when running analyzers. + + + + Cannot specify the '--folder' option with '--no-restore'. + Cannot specify the '--folder' option with '--no-restore'. + + + + Cannot specify the '--folder' option when writing a binary log. + Cannot specify the '--folder' option when writing a binary log. + + + + Code Style + Code Style + + + + Complete in {0}ms. + Complete in {0}ms. + + + + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + + + + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + + + + Delete {0} characters. + Delete {0} characters. + + + + Determining diagnostics... + Determining diagnostics... + + + + Determining formattable files. + Determining formattable files. + + + + Doesn't execute an implicit restore before formatting. + Doesn't execute an implicit restore before formatting. + + + + Failed to apply code fix {0} for {1}: {2} + Failed to apply code fix {0} for {1}: {2} + + + + Failed to save formatting changes. + Failed to save formatting changes. + + + + Fix end of line marker. + Fix end of line marker. + + + + Fix file encoding. + Fix file encoding. + + + + Fix final newline. + Fix final newline. + + + + Fix imports ordering. + Fix imports ordering. + + + + Fix whitespace formatting. + Fix whitespace formatting. + + + + Fixing diagnostics... + Fixing diagnostics... + + + + Format complete in {0}ms. + Format complete in {0}ms. + + + + Format files generated by the SDK. + Format files generated by the SDK. + + + + Formats code to match editorconfig settings. + Formats code to match editorconfig settings. + + + + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + + + + Formatted {0} of {1} files. + Formatted {0} of {1} files. + + + + Formatting code file '{0}'. + Formatting code file '{0}'. + + + + Formatting code files in workspace '{0}'. + Formatting code files in workspace '{0}'. + + + + Include generated code files in formatting operations. + Include generated code files in formatting operations. + + + + Insert '{0}'. + Insert '{0}'. + + + + Loading workspace. + Loading workspace. + + + + Log all project or solution load information to a binary log file. + Log all project or solution load information to a binary log file. + + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Project {0} is using configuration from '{1}'. + Project {0} is using configuration from '{1}'. + + + + Replace {0} characters with '{1}'. + Replace {0} characters with '{1}'. + + + + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + + + + Remove unnecessary import. + Remove unnecessary import. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run code style analyzers and apply fixes. + Run code style analyzers and apply fixes. + + + + Run whitespace formatting. + Run whitespace formatting. + + + + Run whitespace formatting. Run by default when not applying fixes. + Run whitespace formatting. Run by default when not applying fixes. + + + + Running {0} analysis. + Running {0} analysis. + + + + Running {0} analyzers on {1}. + Running {0} analyzers on {1}. + + + + Running formatters. + Running formatters. + + + + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + + + + Skipping referenced project '{0}'. + Skipping referenced project '{0}'. + + + + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + + + + PROJECT | SOLUTION + PROJECT | SOLUTION + + + + Solution {0} has no projects + Solution {0} has no projects + + + + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + + + + The '--diagnostics' option only applies when fixing style or running analyzers. + The '--diagnostics' option only applies when fixing style or running analyzers. + + + + The dotnet CLI version is '{0}'. + The dotnet CLI version is '{0}'. + + + + The dotnet format version is '{0}'. + The dotnet format version is '{0}'. + + + + The dotnet runtime version is '{0}'. + The dotnet runtime version is '{0}'. + + + + The file '{0}' does not appear to be a valid project or solution file. + The file '{0}' does not appear to be a valid project or solution file. + + + + The project file '{0}' does not exist. + The project file '{0}' does not exist. + + + + The severity of diagnostics to fix. Allowed values are info, warn, and error. + The severity of diagnostics to fix. Allowed values are info, warn, and error. + + + + The solution file '{0}' does not exist. + The solution file '{0}' does not exist. + + + + Formatted code file '{0}'. + Formatted code file '{0}'. + + + + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + + + + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + + + + Unable to fix {0}. Code fix {1} returned an unexpected operation. + Unable to fix {0}. Code fix {1} returned an unexpected operation. + + + + Unable to fix {0}. No associated code fix found. + Unable to fix {0}. No associated code fix found. + + + + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + + + + Unable to organize imports for '{0}'. The document is too complex. + Unable to organize imports for '{0}'. The document is too complex. + + + + Using MSBuild.exe located in '{0}'. + Using MSBuild.exe located in '{0}'. + + + + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + + + + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + + + + Whether to treat the `<workspace>` argument as a simple folder of files. + Whether to treat the `<workspace>` argument as a simple folder of files. + + + + Writing formatting report to: '{0}'. + Writing formatting report to: '{0}'. + + + + + \ No newline at end of file diff --git a/src/Dotnet.Format/dotnet-format/xlf/Resources.pt-BR.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.pt-BR.xlf new file mode 100644 index 000000000000..3e7451819c16 --- /dev/null +++ b/src/Dotnet.Format/dotnet-format/xlf/Resources.pt-BR.xlf @@ -0,0 +1,412 @@ + + + + + + A list of relative file or folder paths to exclude from formatting. + A list of relative file or folder paths to exclude from formatting. + + + + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + + + + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + + + + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + + + + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + + + + Accepts a file path, which if provided, will produce a json report in the given directory. + Accepts a file path, which if provided, will produce a json report in the given directory. + + + + Accepts a file path which if provided will produce a json report in the given directory. + Accepts a file path which if provided will produce a json report in the given directory. + + + + Analysis complete in {0}ms. + Analysis complete in {0}ms. + + + + Analyzer Reference + Analyzer Reference + + + + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + + + + Cannot specify the '--folder' option when fixing style. + Cannot specify the '--folder' option when fixing style. + + + + Cannot specify the '--folder' option when running analyzers. + Cannot specify the '--folder' option when running analyzers. + + + + Cannot specify the '--folder' option with '--no-restore'. + Cannot specify the '--folder' option with '--no-restore'. + + + + Cannot specify the '--folder' option when writing a binary log. + Cannot specify the '--folder' option when writing a binary log. + + + + Code Style + Code Style + + + + Complete in {0}ms. + Complete in {0}ms. + + + + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + + + + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + + + + Delete {0} characters. + Delete {0} characters. + + + + Determining diagnostics... + Determining diagnostics... + + + + Determining formattable files. + Determining formattable files. + + + + Doesn't execute an implicit restore before formatting. + Doesn't execute an implicit restore before formatting. + + + + Failed to apply code fix {0} for {1}: {2} + Failed to apply code fix {0} for {1}: {2} + + + + Failed to save formatting changes. + Failed to save formatting changes. + + + + Fix end of line marker. + Fix end of line marker. + + + + Fix file encoding. + Fix file encoding. + + + + Fix final newline. + Fix final newline. + + + + Fix imports ordering. + Fix imports ordering. + + + + Fix whitespace formatting. + Fix whitespace formatting. + + + + Fixing diagnostics... + Fixing diagnostics... + + + + Format complete in {0}ms. + Format complete in {0}ms. + + + + Format files generated by the SDK. + Format files generated by the SDK. + + + + Formats code to match editorconfig settings. + Formats code to match editorconfig settings. + + + + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + + + + Formatted {0} of {1} files. + Formatted {0} of {1} files. + + + + Formatting code file '{0}'. + Formatting code file '{0}'. + + + + Formatting code files in workspace '{0}'. + Formatting code files in workspace '{0}'. + + + + Include generated code files in formatting operations. + Include generated code files in formatting operations. + + + + Insert '{0}'. + Insert '{0}'. + + + + Loading workspace. + Loading workspace. + + + + Log all project or solution load information to a binary log file. + Log all project or solution load information to a binary log file. + + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Project {0} is using configuration from '{1}'. + Project {0} is using configuration from '{1}'. + + + + Replace {0} characters with '{1}'. + Replace {0} characters with '{1}'. + + + + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + + + + Remove unnecessary import. + Remove unnecessary import. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run code style analyzers and apply fixes. + Run code style analyzers and apply fixes. + + + + Run whitespace formatting. + Run whitespace formatting. + + + + Run whitespace formatting. Run by default when not applying fixes. + Run whitespace formatting. Run by default when not applying fixes. + + + + Running {0} analysis. + Running {0} analysis. + + + + Running {0} analyzers on {1}. + Running {0} analyzers on {1}. + + + + Running formatters. + Running formatters. + + + + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + + + + Skipping referenced project '{0}'. + Skipping referenced project '{0}'. + + + + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + + + + PROJECT | SOLUTION + PROJECT | SOLUTION + + + + Solution {0} has no projects + Solution {0} has no projects + + + + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + + + + The '--diagnostics' option only applies when fixing style or running analyzers. + The '--diagnostics' option only applies when fixing style or running analyzers. + + + + The dotnet CLI version is '{0}'. + The dotnet CLI version is '{0}'. + + + + The dotnet format version is '{0}'. + The dotnet format version is '{0}'. + + + + The dotnet runtime version is '{0}'. + The dotnet runtime version is '{0}'. + + + + The file '{0}' does not appear to be a valid project or solution file. + The file '{0}' does not appear to be a valid project or solution file. + + + + The project file '{0}' does not exist. + The project file '{0}' does not exist. + + + + The severity of diagnostics to fix. Allowed values are info, warn, and error. + The severity of diagnostics to fix. Allowed values are info, warn, and error. + + + + The solution file '{0}' does not exist. + The solution file '{0}' does not exist. + + + + Formatted code file '{0}'. + Formatted code file '{0}'. + + + + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + + + + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + + + + Unable to fix {0}. Code fix {1} returned an unexpected operation. + Unable to fix {0}. Code fix {1} returned an unexpected operation. + + + + Unable to fix {0}. No associated code fix found. + Unable to fix {0}. No associated code fix found. + + + + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + + + + Unable to organize imports for '{0}'. The document is too complex. + Unable to organize imports for '{0}'. The document is too complex. + + + + Using MSBuild.exe located in '{0}'. + Using MSBuild.exe located in '{0}'. + + + + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + + + + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + + + + Whether to treat the `<workspace>` argument as a simple folder of files. + Whether to treat the `<workspace>` argument as a simple folder of files. + + + + Writing formatting report to: '{0}'. + Writing formatting report to: '{0}'. + + + + + \ No newline at end of file diff --git a/src/Dotnet.Format/dotnet-format/xlf/Resources.ru.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.ru.xlf new file mode 100644 index 000000000000..8152517c7a03 --- /dev/null +++ b/src/Dotnet.Format/dotnet-format/xlf/Resources.ru.xlf @@ -0,0 +1,412 @@ + + + + + + A list of relative file or folder paths to exclude from formatting. + A list of relative file or folder paths to exclude from formatting. + + + + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + + + + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + + + + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + + + + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + + + + Accepts a file path, which if provided, will produce a json report in the given directory. + Accepts a file path, which if provided, will produce a json report in the given directory. + + + + Accepts a file path which if provided will produce a json report in the given directory. + Accepts a file path which if provided will produce a json report in the given directory. + + + + Analysis complete in {0}ms. + Analysis complete in {0}ms. + + + + Analyzer Reference + Analyzer Reference + + + + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + + + + Cannot specify the '--folder' option when fixing style. + Cannot specify the '--folder' option when fixing style. + + + + Cannot specify the '--folder' option when running analyzers. + Cannot specify the '--folder' option when running analyzers. + + + + Cannot specify the '--folder' option with '--no-restore'. + Cannot specify the '--folder' option with '--no-restore'. + + + + Cannot specify the '--folder' option when writing a binary log. + Cannot specify the '--folder' option when writing a binary log. + + + + Code Style + Code Style + + + + Complete in {0}ms. + Complete in {0}ms. + + + + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + + + + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + + + + Delete {0} characters. + Delete {0} characters. + + + + Determining diagnostics... + Determining diagnostics... + + + + Determining formattable files. + Determining formattable files. + + + + Doesn't execute an implicit restore before formatting. + Doesn't execute an implicit restore before formatting. + + + + Failed to apply code fix {0} for {1}: {2} + Failed to apply code fix {0} for {1}: {2} + + + + Failed to save formatting changes. + Failed to save formatting changes. + + + + Fix end of line marker. + Fix end of line marker. + + + + Fix file encoding. + Fix file encoding. + + + + Fix final newline. + Fix final newline. + + + + Fix imports ordering. + Fix imports ordering. + + + + Fix whitespace formatting. + Fix whitespace formatting. + + + + Fixing diagnostics... + Fixing diagnostics... + + + + Format complete in {0}ms. + Format complete in {0}ms. + + + + Format files generated by the SDK. + Format files generated by the SDK. + + + + Formats code to match editorconfig settings. + Formats code to match editorconfig settings. + + + + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + + + + Formatted {0} of {1} files. + Formatted {0} of {1} files. + + + + Formatting code file '{0}'. + Formatting code file '{0}'. + + + + Formatting code files in workspace '{0}'. + Formatting code files in workspace '{0}'. + + + + Include generated code files in formatting operations. + Include generated code files in formatting operations. + + + + Insert '{0}'. + Insert '{0}'. + + + + Loading workspace. + Loading workspace. + + + + Log all project or solution load information to a binary log file. + Log all project or solution load information to a binary log file. + + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Project {0} is using configuration from '{1}'. + Project {0} is using configuration from '{1}'. + + + + Replace {0} characters with '{1}'. + Replace {0} characters with '{1}'. + + + + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + + + + Remove unnecessary import. + Remove unnecessary import. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run code style analyzers and apply fixes. + Run code style analyzers and apply fixes. + + + + Run whitespace formatting. + Run whitespace formatting. + + + + Run whitespace formatting. Run by default when not applying fixes. + Run whitespace formatting. Run by default when not applying fixes. + + + + Running {0} analysis. + Running {0} analysis. + + + + Running {0} analyzers on {1}. + Running {0} analyzers on {1}. + + + + Running formatters. + Running formatters. + + + + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + + + + Skipping referenced project '{0}'. + Skipping referenced project '{0}'. + + + + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + + + + PROJECT | SOLUTION + PROJECT | SOLUTION + + + + Solution {0} has no projects + Solution {0} has no projects + + + + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + + + + The '--diagnostics' option only applies when fixing style or running analyzers. + The '--diagnostics' option only applies when fixing style or running analyzers. + + + + The dotnet CLI version is '{0}'. + The dotnet CLI version is '{0}'. + + + + The dotnet format version is '{0}'. + The dotnet format version is '{0}'. + + + + The dotnet runtime version is '{0}'. + The dotnet runtime version is '{0}'. + + + + The file '{0}' does not appear to be a valid project or solution file. + The file '{0}' does not appear to be a valid project or solution file. + + + + The project file '{0}' does not exist. + The project file '{0}' does not exist. + + + + The severity of diagnostics to fix. Allowed values are info, warn, and error. + The severity of diagnostics to fix. Allowed values are info, warn, and error. + + + + The solution file '{0}' does not exist. + The solution file '{0}' does not exist. + + + + Formatted code file '{0}'. + Formatted code file '{0}'. + + + + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + + + + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + + + + Unable to fix {0}. Code fix {1} returned an unexpected operation. + Unable to fix {0}. Code fix {1} returned an unexpected operation. + + + + Unable to fix {0}. No associated code fix found. + Unable to fix {0}. No associated code fix found. + + + + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + + + + Unable to organize imports for '{0}'. The document is too complex. + Unable to organize imports for '{0}'. The document is too complex. + + + + Using MSBuild.exe located in '{0}'. + Using MSBuild.exe located in '{0}'. + + + + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + + + + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + + + + Whether to treat the `<workspace>` argument as a simple folder of files. + Whether to treat the `<workspace>` argument as a simple folder of files. + + + + Writing formatting report to: '{0}'. + Writing formatting report to: '{0}'. + + + + + \ No newline at end of file diff --git a/src/Dotnet.Format/dotnet-format/xlf/Resources.tr.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.tr.xlf new file mode 100644 index 000000000000..7af583b40bca --- /dev/null +++ b/src/Dotnet.Format/dotnet-format/xlf/Resources.tr.xlf @@ -0,0 +1,412 @@ + + + + + + A list of relative file or folder paths to exclude from formatting. + A list of relative file or folder paths to exclude from formatting. + + + + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + + + + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + + + + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + + + + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + + + + Accepts a file path, which if provided, will produce a json report in the given directory. + Accepts a file path, which if provided, will produce a json report in the given directory. + + + + Accepts a file path which if provided will produce a json report in the given directory. + Accepts a file path which if provided will produce a json report in the given directory. + + + + Analysis complete in {0}ms. + Analysis complete in {0}ms. + + + + Analyzer Reference + Analyzer Reference + + + + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + + + + Cannot specify the '--folder' option when fixing style. + Cannot specify the '--folder' option when fixing style. + + + + Cannot specify the '--folder' option when running analyzers. + Cannot specify the '--folder' option when running analyzers. + + + + Cannot specify the '--folder' option with '--no-restore'. + Cannot specify the '--folder' option with '--no-restore'. + + + + Cannot specify the '--folder' option when writing a binary log. + Cannot specify the '--folder' option when writing a binary log. + + + + Code Style + Code Style + + + + Complete in {0}ms. + Complete in {0}ms. + + + + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + + + + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + + + + Delete {0} characters. + Delete {0} characters. + + + + Determining diagnostics... + Determining diagnostics... + + + + Determining formattable files. + Determining formattable files. + + + + Doesn't execute an implicit restore before formatting. + Doesn't execute an implicit restore before formatting. + + + + Failed to apply code fix {0} for {1}: {2} + Failed to apply code fix {0} for {1}: {2} + + + + Failed to save formatting changes. + Failed to save formatting changes. + + + + Fix end of line marker. + Fix end of line marker. + + + + Fix file encoding. + Fix file encoding. + + + + Fix final newline. + Fix final newline. + + + + Fix imports ordering. + Fix imports ordering. + + + + Fix whitespace formatting. + Fix whitespace formatting. + + + + Fixing diagnostics... + Fixing diagnostics... + + + + Format complete in {0}ms. + Format complete in {0}ms. + + + + Format files generated by the SDK. + Format files generated by the SDK. + + + + Formats code to match editorconfig settings. + Formats code to match editorconfig settings. + + + + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + + + + Formatted {0} of {1} files. + Formatted {0} of {1} files. + + + + Formatting code file '{0}'. + Formatting code file '{0}'. + + + + Formatting code files in workspace '{0}'. + Formatting code files in workspace '{0}'. + + + + Include generated code files in formatting operations. + Include generated code files in formatting operations. + + + + Insert '{0}'. + Insert '{0}'. + + + + Loading workspace. + Loading workspace. + + + + Log all project or solution load information to a binary log file. + Log all project or solution load information to a binary log file. + + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Project {0} is using configuration from '{1}'. + Project {0} is using configuration from '{1}'. + + + + Replace {0} characters with '{1}'. + Replace {0} characters with '{1}'. + + + + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + + + + Remove unnecessary import. + Remove unnecessary import. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run code style analyzers and apply fixes. + Run code style analyzers and apply fixes. + + + + Run whitespace formatting. + Run whitespace formatting. + + + + Run whitespace formatting. Run by default when not applying fixes. + Run whitespace formatting. Run by default when not applying fixes. + + + + Running {0} analysis. + Running {0} analysis. + + + + Running {0} analyzers on {1}. + Running {0} analyzers on {1}. + + + + Running formatters. + Running formatters. + + + + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + + + + Skipping referenced project '{0}'. + Skipping referenced project '{0}'. + + + + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + + + + PROJECT | SOLUTION + PROJECT | SOLUTION + + + + Solution {0} has no projects + Solution {0} has no projects + + + + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + + + + The '--diagnostics' option only applies when fixing style or running analyzers. + The '--diagnostics' option only applies when fixing style or running analyzers. + + + + The dotnet CLI version is '{0}'. + The dotnet CLI version is '{0}'. + + + + The dotnet format version is '{0}'. + The dotnet format version is '{0}'. + + + + The dotnet runtime version is '{0}'. + The dotnet runtime version is '{0}'. + + + + The file '{0}' does not appear to be a valid project or solution file. + The file '{0}' does not appear to be a valid project or solution file. + + + + The project file '{0}' does not exist. + The project file '{0}' does not exist. + + + + The severity of diagnostics to fix. Allowed values are info, warn, and error. + The severity of diagnostics to fix. Allowed values are info, warn, and error. + + + + The solution file '{0}' does not exist. + The solution file '{0}' does not exist. + + + + Formatted code file '{0}'. + Formatted code file '{0}'. + + + + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + + + + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + + + + Unable to fix {0}. Code fix {1} returned an unexpected operation. + Unable to fix {0}. Code fix {1} returned an unexpected operation. + + + + Unable to fix {0}. No associated code fix found. + Unable to fix {0}. No associated code fix found. + + + + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + + + + Unable to organize imports for '{0}'. The document is too complex. + Unable to organize imports for '{0}'. The document is too complex. + + + + Using MSBuild.exe located in '{0}'. + Using MSBuild.exe located in '{0}'. + + + + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + + + + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + + + + Whether to treat the `<workspace>` argument as a simple folder of files. + Whether to treat the `<workspace>` argument as a simple folder of files. + + + + Writing formatting report to: '{0}'. + Writing formatting report to: '{0}'. + + + + + \ No newline at end of file diff --git a/src/Dotnet.Format/dotnet-format/xlf/Resources.zh-Hans.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.zh-Hans.xlf new file mode 100644 index 000000000000..461c54e69d1a --- /dev/null +++ b/src/Dotnet.Format/dotnet-format/xlf/Resources.zh-Hans.xlf @@ -0,0 +1,412 @@ + + + + + + A list of relative file or folder paths to exclude from formatting. + A list of relative file or folder paths to exclude from formatting. + + + + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + + + + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + + + + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + + + + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + + + + Accepts a file path, which if provided, will produce a json report in the given directory. + Accepts a file path, which if provided, will produce a json report in the given directory. + + + + Accepts a file path which if provided will produce a json report in the given directory. + Accepts a file path which if provided will produce a json report in the given directory. + + + + Analysis complete in {0}ms. + Analysis complete in {0}ms. + + + + Analyzer Reference + Analyzer Reference + + + + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + + + + Cannot specify the '--folder' option when fixing style. + Cannot specify the '--folder' option when fixing style. + + + + Cannot specify the '--folder' option when running analyzers. + Cannot specify the '--folder' option when running analyzers. + + + + Cannot specify the '--folder' option with '--no-restore'. + Cannot specify the '--folder' option with '--no-restore'. + + + + Cannot specify the '--folder' option when writing a binary log. + Cannot specify the '--folder' option when writing a binary log. + + + + Code Style + Code Style + + + + Complete in {0}ms. + Complete in {0}ms. + + + + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + + + + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + + + + Delete {0} characters. + Delete {0} characters. + + + + Determining diagnostics... + Determining diagnostics... + + + + Determining formattable files. + Determining formattable files. + + + + Doesn't execute an implicit restore before formatting. + Doesn't execute an implicit restore before formatting. + + + + Failed to apply code fix {0} for {1}: {2} + Failed to apply code fix {0} for {1}: {2} + + + + Failed to save formatting changes. + Failed to save formatting changes. + + + + Fix end of line marker. + Fix end of line marker. + + + + Fix file encoding. + Fix file encoding. + + + + Fix final newline. + Fix final newline. + + + + Fix imports ordering. + Fix imports ordering. + + + + Fix whitespace formatting. + Fix whitespace formatting. + + + + Fixing diagnostics... + Fixing diagnostics... + + + + Format complete in {0}ms. + Format complete in {0}ms. + + + + Format files generated by the SDK. + Format files generated by the SDK. + + + + Formats code to match editorconfig settings. + Formats code to match editorconfig settings. + + + + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + + + + Formatted {0} of {1} files. + Formatted {0} of {1} files. + + + + Formatting code file '{0}'. + Formatting code file '{0}'. + + + + Formatting code files in workspace '{0}'. + Formatting code files in workspace '{0}'. + + + + Include generated code files in formatting operations. + Include generated code files in formatting operations. + + + + Insert '{0}'. + Insert '{0}'. + + + + Loading workspace. + Loading workspace. + + + + Log all project or solution load information to a binary log file. + Log all project or solution load information to a binary log file. + + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Project {0} is using configuration from '{1}'. + Project {0} is using configuration from '{1}'. + + + + Replace {0} characters with '{1}'. + Replace {0} characters with '{1}'. + + + + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + + + + Remove unnecessary import. + Remove unnecessary import. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run code style analyzers and apply fixes. + Run code style analyzers and apply fixes. + + + + Run whitespace formatting. + Run whitespace formatting. + + + + Run whitespace formatting. Run by default when not applying fixes. + Run whitespace formatting. Run by default when not applying fixes. + + + + Running {0} analysis. + Running {0} analysis. + + + + Running {0} analyzers on {1}. + Running {0} analyzers on {1}. + + + + Running formatters. + Running formatters. + + + + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + + + + Skipping referenced project '{0}'. + Skipping referenced project '{0}'. + + + + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + + + + PROJECT | SOLUTION + PROJECT | SOLUTION + + + + Solution {0} has no projects + Solution {0} has no projects + + + + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + + + + The '--diagnostics' option only applies when fixing style or running analyzers. + The '--diagnostics' option only applies when fixing style or running analyzers. + + + + The dotnet CLI version is '{0}'. + The dotnet CLI version is '{0}'. + + + + The dotnet format version is '{0}'. + The dotnet format version is '{0}'. + + + + The dotnet runtime version is '{0}'. + The dotnet runtime version is '{0}'. + + + + The file '{0}' does not appear to be a valid project or solution file. + The file '{0}' does not appear to be a valid project or solution file. + + + + The project file '{0}' does not exist. + The project file '{0}' does not exist. + + + + The severity of diagnostics to fix. Allowed values are info, warn, and error. + The severity of diagnostics to fix. Allowed values are info, warn, and error. + + + + The solution file '{0}' does not exist. + The solution file '{0}' does not exist. + + + + Formatted code file '{0}'. + Formatted code file '{0}'. + + + + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + + + + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + + + + Unable to fix {0}. Code fix {1} returned an unexpected operation. + Unable to fix {0}. Code fix {1} returned an unexpected operation. + + + + Unable to fix {0}. No associated code fix found. + Unable to fix {0}. No associated code fix found. + + + + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + + + + Unable to organize imports for '{0}'. The document is too complex. + Unable to organize imports for '{0}'. The document is too complex. + + + + Using MSBuild.exe located in '{0}'. + Using MSBuild.exe located in '{0}'. + + + + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + + + + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + + + + Whether to treat the `<workspace>` argument as a simple folder of files. + Whether to treat the `<workspace>` argument as a simple folder of files. + + + + Writing formatting report to: '{0}'. + Writing formatting report to: '{0}'. + + + + + \ No newline at end of file diff --git a/src/Dotnet.Format/dotnet-format/xlf/Resources.zh-Hant.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.zh-Hant.xlf new file mode 100644 index 000000000000..da021ff437d6 --- /dev/null +++ b/src/Dotnet.Format/dotnet-format/xlf/Resources.zh-Hant.xlf @@ -0,0 +1,412 @@ + + + + + + A list of relative file or folder paths to exclude from formatting. + A list of relative file or folder paths to exclude from formatting. + + + + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + A list of relative file or folder paths to include in formatting. All files are formatted if empty. + + + + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. + + + + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to ignore when fixing code style or 3rd party issues. + + + + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. + + + + Accepts a file path, which if provided, will produce a json report in the given directory. + Accepts a file path, which if provided, will produce a json report in the given directory. + + + + Accepts a file path which if provided will produce a json report in the given directory. + Accepts a file path which if provided will produce a json report in the given directory. + + + + Analysis complete in {0}ms. + Analysis complete in {0}ms. + + + + Analyzer Reference + Analyzer Reference + + + + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + + + + Cannot specify the '--folder' option when fixing style. + Cannot specify the '--folder' option when fixing style. + + + + Cannot specify the '--folder' option when running analyzers. + Cannot specify the '--folder' option when running analyzers. + + + + Cannot specify the '--folder' option with '--no-restore'. + Cannot specify the '--folder' option with '--no-restore'. + + + + Cannot specify the '--folder' option when writing a binary log. + Cannot specify the '--folder' option when writing a binary log. + + + + Code Style + Code Style + + + + Complete in {0}ms. + Complete in {0}ms. + + + + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + + + + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + Could not format '{0}'. Format currently supports only C# and Visual Basic projects. + + + + Delete {0} characters. + Delete {0} characters. + + + + Determining diagnostics... + Determining diagnostics... + + + + Determining formattable files. + Determining formattable files. + + + + Doesn't execute an implicit restore before formatting. + Doesn't execute an implicit restore before formatting. + + + + Failed to apply code fix {0} for {1}: {2} + Failed to apply code fix {0} for {1}: {2} + + + + Failed to save formatting changes. + Failed to save formatting changes. + + + + Fix end of line marker. + Fix end of line marker. + + + + Fix file encoding. + Fix file encoding. + + + + Fix final newline. + Fix final newline. + + + + Fix imports ordering. + Fix imports ordering. + + + + Fix whitespace formatting. + Fix whitespace formatting. + + + + Fixing diagnostics... + Fixing diagnostics... + + + + Format complete in {0}ms. + Format complete in {0}ms. + + + + Format files generated by the SDK. + Format files generated by the SDK. + + + + Formats code to match editorconfig settings. + Formats code to match editorconfig settings. + + + + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted. + + + + Formatted {0} of {1} files. + Formatted {0} of {1} files. + + + + Formatting code file '{0}'. + Formatting code file '{0}'. + + + + Formatting code files in workspace '{0}'. + Formatting code files in workspace '{0}'. + + + + Include generated code files in formatting operations. + Include generated code files in formatting operations. + + + + Insert '{0}'. + Insert '{0}'. + + + + Loading workspace. + Loading workspace. + + + + Log all project or solution load information to a binary log file. + Log all project or solution load information to a binary log file. + + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + + + + Project {0} is using configuration from '{1}'. + Project {0} is using configuration from '{1}'. + + + + Replace {0} characters with '{1}'. + Replace {0} characters with '{1}'. + + + + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + Required references did not load for {0} or referenced project. Run `dotnet restore` prior to formatting. + + + + Remove unnecessary import. + Remove unnecessary import. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run 3rd party analyzers and apply fixes. + Run 3rd party analyzers and apply fixes. + + + + Run code style analyzers and apply fixes. + Run code style analyzers and apply fixes. + + + + Run whitespace formatting. + Run whitespace formatting. + + + + Run whitespace formatting. Run by default when not applying fixes. + Run whitespace formatting. Run by default when not applying fixes. + + + + Running {0} analysis. + Running {0} analysis. + + + + Running {0} analyzers on {1}. + Running {0} analyzers on {1}. + + + + Running formatters. + Running formatters. + + + + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] + + + + Skipping referenced project '{0}'. + Skipping referenced project '{0}'. + + + + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + The project or solution file to operate on. If a file is not specified, the command will search the current directory for one. + + + + PROJECT | SOLUTION + PROJECT | SOLUTION + + + + Solution {0} has no projects + Solution {0} has no projects + + + + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + Standard input markers ('/dev/stdin', '-') can only be used either with `--include` or `--exclude`, but not both. + + + + The '--diagnostics' option only applies when fixing style or running analyzers. + The '--diagnostics' option only applies when fixing style or running analyzers. + + + + The dotnet CLI version is '{0}'. + The dotnet CLI version is '{0}'. + + + + The dotnet format version is '{0}'. + The dotnet format version is '{0}'. + + + + The dotnet runtime version is '{0}'. + The dotnet runtime version is '{0}'. + + + + The file '{0}' does not appear to be a valid project or solution file. + The file '{0}' does not appear to be a valid project or solution file. + + + + The project file '{0}' does not exist. + The project file '{0}' does not exist. + + + + The severity of diagnostics to fix. Allowed values are info, warn, and error. + The severity of diagnostics to fix. Allowed values are info, warn, and error. + + + + The solution file '{0}' does not exist. + The solution file '{0}' does not exist. + + + + Formatted code file '{0}'. + Formatted code file '{0}'. + + + + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + Unable to fix {0}. Code fix {1} didn't return a Fix All action. + + + + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + Unable to fix {0}. Code fix {1} doesn't support Fix All in Solution. + + + + Unable to fix {0}. Code fix {1} returned an unexpected operation. + Unable to fix {0}. Code fix {1} returned an unexpected operation. + + + + Unable to fix {0}. No associated code fix found. + Unable to fix {0}. No associated code fix found. + + + + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + Unable to locate MSBuild. Ensure the .NET SDK was installed with the official installer. + + + + Unable to organize imports for '{0}'. The document is too complex. + Unable to organize imports for '{0}'. The document is too complex. + + + + Using MSBuild.exe located in '{0}'. + Using MSBuild.exe located in '{0}'. + + + + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + Verify no formatting changes would be performed. Terminates with a non-zero exit code if any files would have been formatted. + + + + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + Warnings were encountered while loading the workspace. Set the verbosity option to the 'diagnostic' level to log warnings. + + + + Whether to treat the `<workspace>` argument as a simple folder of files. + Whether to treat the `<workspace>` argument as a simple folder of files. + + + + Writing formatting report to: '{0}'. + Writing formatting report to: '{0}'. + + + + + \ No newline at end of file From 61d88b6972c66aacb980872b7856f09853c01340 Mon Sep 17 00:00:00 2001 From: David Wengier Date: Wed, 25 Feb 2026 21:27:01 +1100 Subject: [PATCH 121/179] Update RazorLangVersion to 10.0 in .NET 10.0.3xx --- src/RazorSdk/Targets/Sdk.Razor.CurrentVersion.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RazorSdk/Targets/Sdk.Razor.CurrentVersion.targets b/src/RazorSdk/Targets/Sdk.Razor.CurrentVersion.targets index 2c5b6daf2d49..afd0c765164d 100644 --- a/src/RazorSdk/Targets/Sdk.Razor.CurrentVersion.targets +++ b/src/RazorSdk/Targets/Sdk.Razor.CurrentVersion.targets @@ -54,7 +54,7 @@ Copyright (c) .NET Foundation. All rights reserved. <_TargetingNET90OrLater>true <_TargetingNET100OrLater>true true - 9.0 + 10.0 <_RazorUseRoslynTokenizer Condition="'$(_RazorUseRoslynTokenizer)'==''">true use-roslyn-tokenizer=true;$(Features) From d227a1e86c1c048cbdb680cb466de3bfb19afa0f Mon Sep 17 00:00:00 2001 From: tmat Date: Mon, 15 Dec 2025 09:11:05 -0800 Subject: [PATCH 122/179] Switch to HotReloadMSBuildWorkspace --- Directory.Packages.props | 1 + eng/Version.Details.xml | 4 + .../Watch/Build/EvaluationResult.cs | 25 +- .../Watch/Build/FilePathExclusions.cs | 2 +- .../Watch/Build/ProjectGraphUtilities.cs | 4 +- .../Watch/FileWatcher/ChangeKind.cs | 14 + .../Watch/HotReload/CompilationHandler.cs | 89 +++++- .../Watch/HotReload/HotReloadDotNetWatcher.cs | 25 +- .../HotReload/IncrementalMSBuildWorkspace.cs | 282 ------------------ .../HotReload/CompilationHandlerTests.cs | 3 +- 10 files changed, 139 insertions(+), 310 deletions(-) delete mode 100644 src/BuiltInTools/Watch/HotReload/IncrementalMSBuildWorkspace.cs diff --git a/Directory.Packages.props b/Directory.Packages.props index a44ed722182f..3e9b3bd272de 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -37,6 +37,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 762e1e184c32..91b93b8c46e6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -124,6 +124,10 @@ https://github.com/dotnet/dotnet d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + + https://github.com/dotnet/roslyn + 46a48b8c1dfce7c35da115308bedd6a5954fd78a + https://github.com/dotnet/dotnet d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 diff --git a/src/BuiltInTools/Watch/Build/EvaluationResult.cs b/src/BuiltInTools/Watch/Build/EvaluationResult.cs index 36aff4773a42..4c5bee05682f 100644 --- a/src/BuiltInTools/Watch/Build/EvaluationResult.cs +++ b/src/BuiltInTools/Watch/Build/EvaluationResult.cs @@ -10,7 +10,11 @@ namespace Microsoft.DotNet.Watch; -internal sealed class EvaluationResult(ProjectGraph projectGraph, IReadOnlyDictionary files, IReadOnlyDictionary staticWebAssetsManifests) +internal sealed class EvaluationResult( + ProjectGraph projectGraph, + IReadOnlyDictionary restoredProjectInstances, + IReadOnlyDictionary files, + IReadOnlyDictionary staticWebAssetsManifests) { public readonly IReadOnlyDictionary Files = files; public readonly ProjectGraph ProjectGraph = projectGraph; @@ -32,6 +36,9 @@ public IReadOnlySet BuildFiles public IReadOnlyDictionary StaticWebAssetsManifests => staticWebAssetsManifests; + public IReadOnlyDictionary RestoredProjectInstances + => restoredProjectInstances; + public void WatchFiles(FileWatcher fileWatcher) { fileWatcher.WatchContainingDirectories(Files.Keys, includeSubdirectories: true); @@ -97,15 +104,21 @@ public static ImmutableDictionary GetGlobalBuildOptions(IEnumera } } + // Capture the snapshot of original project instances after Restore target has been run. + // These instances can be used to evaluate additional targets (e.g. deployment) if needed. + var restoredProjectInstances = projectGraph.ProjectNodes.ToDictionary( + keySelector: node => node.ProjectInstance.GetId(), + elementSelector: node => node.ProjectInstance.DeepCopy()); + var fileItems = new Dictionary(); var staticWebAssetManifests = new Dictionary(); + // Update the project instances of the graph with design-time build results. + // The properties and items set by DTB will be used by the Workspace to create Roslyn representation of projects. + foreach (var project in projectGraph.ProjectNodesTopologicallySorted) { - // Deep copy so that we can reuse the graph for building additional targets later on. - // If we didn't copy the instance the targets might duplicate items that were already - // populated by design-time build. - var projectInstance = project.ProjectInstance.DeepCopy(); + var projectInstance = project.ProjectInstance; // skip outer build project nodes: if (projectInstance.GetPropertyValue(PropertyNames.TargetFramework) == "") @@ -197,7 +210,7 @@ void AddFile(string relativePath, string? staticWebAssetRelativeUrl) buildReporter.ReportWatchedFiles(fileItems); - return new EvaluationResult(projectGraph, fileItems, staticWebAssetManifests); + return new EvaluationResult(projectGraph, restoredProjectInstances, fileItems, staticWebAssetManifests); } private static string[] GetBuildTargets(ProjectInstance projectInstance, EnvironmentOptions environmentOptions) diff --git a/src/BuiltInTools/Watch/Build/FilePathExclusions.cs b/src/BuiltInTools/Watch/Build/FilePathExclusions.cs index b4f921d875f6..c98def116a2f 100644 --- a/src/BuiltInTools/Watch/Build/FilePathExclusions.cs +++ b/src/BuiltInTools/Watch/Build/FilePathExclusions.cs @@ -39,7 +39,7 @@ public static FilePathExclusions Create(ProjectGraph projectGraph) { // If default items are not enabled exclude just the output directories. - TryAddOutputDir(projectNode.GetOutputDirectory()); + TryAddOutputDir(projectNode.ProjectInstance.GetOutputDirectory()); TryAddOutputDir(projectNode.ProjectInstance.GetIntermediateOutputDirectory()); void TryAddOutputDir(string? dir) diff --git a/src/BuiltInTools/Watch/Build/ProjectGraphUtilities.cs b/src/BuiltInTools/Watch/Build/ProjectGraphUtilities.cs index 111dff988e47..4adce83dc6bd 100644 --- a/src/BuiltInTools/Watch/Build/ProjectGraphUtilities.cs +++ b/src/BuiltInTools/Watch/Build/ProjectGraphUtilities.cs @@ -51,8 +51,8 @@ public static bool IsNetCoreApp(this ProjectGraphNode projectNode, Version minVe public static bool IsWebApp(this ProjectGraphNode projectNode) => projectNode.GetCapabilities().Any(static value => value is ProjectCapability.AspNetCore or ProjectCapability.WebAssembly); - public static string? GetOutputDirectory(this ProjectGraphNode projectNode) - => projectNode.ProjectInstance.GetPropertyValue(PropertyNames.TargetPath) is { Length: >0 } path ? Path.GetDirectoryName(Path.Combine(projectNode.ProjectInstance.Directory, path)) : null; + public static string? GetOutputDirectory(this ProjectInstance project) + => project.GetPropertyValue(PropertyNames.TargetPath) is { Length: >0 } path ? Path.GetDirectoryName(Path.Combine(project.Directory, path)) : null; public static string GetAssemblyName(this ProjectGraphNode projectNode) => projectNode.ProjectInstance.GetPropertyValue(PropertyNames.TargetName); diff --git a/src/BuiltInTools/Watch/FileWatcher/ChangeKind.cs b/src/BuiltInTools/Watch/FileWatcher/ChangeKind.cs index 71e339419a1c..631b13ae5d87 100644 --- a/src/BuiltInTools/Watch/FileWatcher/ChangeKind.cs +++ b/src/BuiltInTools/Watch/FileWatcher/ChangeKind.cs @@ -1,6 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using Microsoft.CodeAnalysis.ExternalAccess.HotReload.Api; + namespace Microsoft.DotNet.Watch; internal enum ChangeKind @@ -10,6 +12,18 @@ internal enum ChangeKind Delete } +internal static class ChangeKindExtensions +{ + public static HotReloadFileChangeKind Convert(this ChangeKind changeKind) => + changeKind switch + { + ChangeKind.Update => HotReloadFileChangeKind.Update, + ChangeKind.Add => HotReloadFileChangeKind.Add, + ChangeKind.Delete => HotReloadFileChangeKind.Delete, + _ => throw new InvalidOperationException() + }; +} + internal readonly record struct ChangedFile(FileItem Item, ChangeKind Kind); internal readonly record struct ChangedPath(string Path, ChangeKind Kind); diff --git a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs index 17213ee838e0..0bfe2035418c 100644 --- a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs +++ b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs @@ -15,7 +15,7 @@ namespace Microsoft.DotNet.Watch { internal sealed class CompilationHandler : IDisposable { - public readonly IncrementalMSBuildWorkspace Workspace; + public readonly HotReloadMSBuildWorkspace Workspace; private readonly DotNetWatchContext _context; private readonly HotReloadService _hotReloadService; @@ -37,11 +37,18 @@ internal sealed class CompilationHandler : IDisposable private ImmutableList _previousUpdates = []; private bool _isDisposed; + private int _solutionUpdateId; + + /// + /// Current set of project instances indexed by . + /// Updated whenever the project graph changes. + /// + private ImmutableDictionary> _projectInstances = []; public CompilationHandler(DotNetWatchContext context) { _context = context; - Workspace = new IncrementalMSBuildWorkspace(context.Logger); + Workspace = new HotReloadMSBuildWorkspace(Logger, projectFile => (instances: _projectInstances.GetValueOrDefault(projectFile, []), project: null)); _hotReloadService = new HotReloadService(Workspace.CurrentSolution.Services, () => ValueTask.FromResult(GetAggregateCapabilities())); } @@ -588,12 +595,13 @@ private static bool HasScopedCssTargets(ProjectInstance projectInstance) public async ValueTask HandleStaticAssetChangesAsync( IReadOnlyList files, ProjectNodeMap projectMap, + IReadOnlyDictionary restoredProjectInstances, IReadOnlyDictionary manifests, Stopwatch stopwatch, CancellationToken cancellationToken) { var assets = new Dictionary>(); - var projectInstancesToRegenerate = new HashSet(); + var projectInstancesToRegenerate = new HashSet(); foreach (var changedFile in files) { @@ -624,7 +632,7 @@ public async ValueTask HandleStaticAssetChangesAsync( continue; } - projectInstancesToRegenerate.Add(containingProjectNode.ProjectInstance); + projectInstancesToRegenerate.Add(containingProjectNode.ProjectInstance.GetId()); } foreach (var referencingProjectNode in containingProjectNode.GetAncestorsAndSelf()) @@ -646,7 +654,7 @@ public async ValueTask HandleStaticAssetChangesAsync( continue; } - projectInstancesToRegenerate.Add(applicationProjectInstance); + projectInstancesToRegenerate.Add(applicationProjectInstance.GetId()); var bundleFileName = StaticWebAsset.GetScopedCssBundleFileName( applicationProjectFilePath: applicationProjectInstance.FullPath, @@ -708,13 +716,15 @@ public async ValueTask HandleStaticAssetChangesAsync( var buildReporter = new BuildReporter(_context.BuildLogger, _context.Options, _context.EnvironmentOptions); // Note: MSBuild only allows one build at a time in a process. - foreach (var projectInstance in projectInstancesToRegenerate) + foreach (var projectInstanceId in projectInstancesToRegenerate) { + var projectInstance = restoredProjectInstances[projectInstanceId]; + Logger.LogDebug("[{Project}] Regenerating scoped CSS bundle.", projectInstance.GetDisplayName()); using var loggers = buildReporter.GetLoggers(projectInstance.FullPath, "ScopedCss"); - // Deep copy so that we don't pollute the project graph: + // Deep copy so that we don't pollute the snapshot: if (!projectInstance.DeepCopy().Build(s_targets, loggers)) { loggers.ReportOutput(); @@ -832,5 +842,70 @@ private static Task ForEachProjectAsync(ImmutableDictionary ToManagedCodeUpdates(ImmutableArray updates) => [.. updates.Select(update => new HotReloadManagedCodeUpdate(update.ModuleId, update.MetadataDelta, update.ILDelta, update.PdbDelta, update.UpdatedTypes, update.RequiredCapabilities))]; + + private static ImmutableDictionary> CreateProjectInstanceMap(ProjectGraph graph) + => graph.ProjectNodes + .GroupBy(static node => node.ProjectInstance.FullPath) + .ToImmutableDictionary( + keySelector: static group => group.Key, + elementSelector: static group => group.Select(static node => node.ProjectInstance).ToImmutableArray()); + + public async Task UpdateProjectConeAsync(ProjectGraph projectGraph, string projectPath, CancellationToken cancellationToken) + { + Logger.LogInformation("Loading projects ..."); + var stopwatch = Stopwatch.StartNew(); + + _projectInstances = CreateProjectInstanceMap(projectGraph); + + var solution = await Workspace.UpdateProjectConeAsync(projectPath, cancellationToken); + await SolutionUpdatedAsync(solution, "project update", cancellationToken); + + Logger.LogInformation("Projects loaded in {Time}s.", stopwatch.Elapsed.TotalSeconds.ToString("0.0")); + } + + public async Task UpdateFileContentAsync(IReadOnlyList changedFiles, CancellationToken cancellationToken) + { + var solution = await Workspace.UpdateFileContentAsync(changedFiles.Select(static f => (f.Item.FilePath, f.Kind.Convert())), cancellationToken); + await SolutionUpdatedAsync(solution, "document update", cancellationToken); + } + + private Task SolutionUpdatedAsync(Solution newSolution, string operationDisplayName, CancellationToken cancellationToken) + => ReportSolutionFilesAsync(newSolution, Interlocked.Increment(ref _solutionUpdateId), operationDisplayName, cancellationToken); + + private async Task ReportSolutionFilesAsync(Solution solution, int updateId, string operationDisplayName, CancellationToken cancellationToken) + { + Logger.LogDebug("Solution after {Operation}: v{Version}", operationDisplayName, updateId); + + if (!Logger.IsEnabled(LogLevel.Trace)) + { + return; + } + + foreach (var project in solution.Projects) + { + Logger.LogDebug(" Project: {Path}", project.FilePath); + + foreach (var document in project.Documents) + { + await InspectDocumentAsync(document, "Document").ConfigureAwait(false); + } + + foreach (var document in project.AdditionalDocuments) + { + await InspectDocumentAsync(document, "Additional").ConfigureAwait(false); + } + + foreach (var document in project.AnalyzerConfigDocuments) + { + await InspectDocumentAsync(document, "Config").ConfigureAwait(false); + } + } + + async ValueTask InspectDocumentAsync(TextDocument document, string kind) + { + var text = await document.GetTextAsync(cancellationToken).ConfigureAwait(false); + Logger.LogDebug(" {Kind}: {FilePath} [{Checksum}]", kind, document.FilePath, Convert.ToBase64String(text.GetChecksum().ToArray())); + } + } } } diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs index 239052b1e165..0bb7c14fea31 100644 --- a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs +++ b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs @@ -156,7 +156,7 @@ public async Task WatchAsync(CancellationToken shutdownCancellationToken) return; } - await compilationHandler.Workspace.UpdateProjectConeAsync(rootProjectOptions.ProjectPath, iterationCancellationToken); + await compilationHandler.UpdateProjectConeAsync(evaluationResult.ProjectGraph, rootProjectOptions.ProjectPath, iterationCancellationToken); // Solution must be initialized after we load the solution but before we start watching for file changes to avoid race condition // when the EnC session captures content of the file after the changes has already been made. @@ -225,7 +225,7 @@ void FileChangedCallback(ChangedPath change) var stopwatch = Stopwatch.StartNew(); HotReloadEventSource.Log.HotReloadStart(HotReloadEventSource.StartType.StaticHandler); - await compilationHandler.HandleStaticAssetChangesAsync(changedFiles, projectMap, evaluationResult.StaticWebAssetsManifests, stopwatch, iterationCancellationToken); + await compilationHandler.HandleStaticAssetChangesAsync(changedFiles, projectMap, evaluationResult.RestoredProjectInstances, evaluationResult.StaticWebAssetsManifests, stopwatch, iterationCancellationToken); HotReloadEventSource.Log.HotReloadEnd(HotReloadEventSource.StartType.StaticHandler); HotReloadEventSource.Log.HotReloadStart(HotReloadEventSource.StartType.CompilationHandler); @@ -333,7 +333,7 @@ void FileChangedCallback(ChangedPath change) // Deploy dependencies after rebuilding and before restarting. if (!projectsToRedeploy.IsEmpty) { - DeployProjectDependencies(evaluationResult.ProjectGraph, projectsToRedeploy, iterationCancellationToken); + DeployProjectDependencies(evaluationResult.RestoredProjectInstances.Values, projectsToRedeploy, iterationCancellationToken); _context.Logger.Log(MessageDescriptor.ProjectDependenciesDeployed, projectsToRedeploy.Length); } @@ -404,7 +404,7 @@ async Task> CaptureChangedFilesSnapshot(ImmutableArr // additional files/directories may have been added: evaluationResult.WatchFiles(fileWatcher); - await compilationHandler.Workspace.UpdateProjectConeAsync(rootProjectOptions.ProjectPath, iterationCancellationToken); + await compilationHandler.UpdateProjectConeAsync(evaluationResult.ProjectGraph, rootProjectOptions.ProjectPath, iterationCancellationToken); if (shutdownCancellationToken.IsCancellationRequested) { @@ -456,7 +456,7 @@ async Task> CaptureChangedFilesSnapshot(ImmutableArr { // Update the workspace to reflect changes in the file content:. // If the project was re-evaluated the Roslyn solution is already up to date. - await compilationHandler.Workspace.UpdateFileContentAsync(changedFiles, iterationCancellationToken); + await compilationHandler.UpdateFileContentAsync(changedFiles, iterationCancellationToken); } return [.. changedFiles]; @@ -618,35 +618,38 @@ private static bool MatchesStaticWebAssetFilePattern(EvaluationResult evaluation return false; } - private void DeployProjectDependencies(ProjectGraph graph, ImmutableArray projectPaths, CancellationToken cancellationToken) + private void DeployProjectDependencies(IEnumerable restoredProjectInstances, ImmutableArray projectPaths, CancellationToken cancellationToken) { var projectPathSet = projectPaths.ToImmutableHashSet(PathUtilities.OSSpecificPathComparer); var buildReporter = new BuildReporter(_context.Logger, _context.Options, _context.EnvironmentOptions); var targetName = TargetNames.ReferenceCopyLocalPathsOutputGroup; - foreach (var node in graph.ProjectNodes) + foreach (var restoredProjectInstance in restoredProjectInstances) { cancellationToken.ThrowIfCancellationRequested(); - var projectPath = node.ProjectInstance.FullPath; + // Avoid modification of the restored snapshot. + var projectInstance = restoredProjectInstance.DeepCopy(); + + var projectPath = projectInstance.FullPath; if (!projectPathSet.Contains(projectPath)) { continue; } - if (!node.ProjectInstance.Targets.ContainsKey(targetName)) + if (!projectInstance.Targets.ContainsKey(targetName)) { continue; } - if (node.GetOutputDirectory() is not { } relativeOutputDir) + if (projectInstance.GetOutputDirectory() is not { } relativeOutputDir) { continue; } using var loggers = buildReporter.GetLoggers(projectPath, targetName); - if (!node.ProjectInstance.Build([targetName], loggers, out var targetOutputs)) + if (!projectInstance.Build([targetName], loggers, out var targetOutputs)) { _context.Logger.LogDebug("{TargetName} target failed", targetName); loggers.ReportOutput(); diff --git a/src/BuiltInTools/Watch/HotReload/IncrementalMSBuildWorkspace.cs b/src/BuiltInTools/Watch/HotReload/IncrementalMSBuildWorkspace.cs deleted file mode 100644 index 1581a57f3c66..000000000000 --- a/src/BuiltInTools/Watch/HotReload/IncrementalMSBuildWorkspace.cs +++ /dev/null @@ -1,282 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Collections.Immutable; -using System.Diagnostics; -using System.Reflection; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.ExternalAccess.HotReload.Api; -using Microsoft.CodeAnalysis.Host.Mef; -using Microsoft.CodeAnalysis.MSBuild; -using Microsoft.CodeAnalysis.Text; -using Microsoft.Extensions.Logging; - -namespace Microsoft.DotNet.Watch; - -internal sealed class IncrementalMSBuildWorkspace : Workspace -{ - private readonly ILogger _logger; - private int _solutionUpdateId; - - public IncrementalMSBuildWorkspace(ILogger logger) - : base(MSBuildMefHostServices.DefaultServices, WorkspaceKind.MSBuild) - { -#pragma warning disable CS0618 // https://github.com/dotnet/sdk/issues/49725 - WorkspaceFailed += (_sender, diag) => - { - // Report both Warning and Failure as warnings. - // MSBuildProjectLoader reports Failures for cases where we can safely continue loading projects - // (e.g. non-C#/VB project is ignored). - // https://github.com/dotnet/roslyn/issues/75170 - logger.LogWarning($"msbuild: {diag.Diagnostic}"); - }; -#pragma warning restore CS0618 - - _logger = logger; - } - - public async Task UpdateProjectConeAsync(string rootProjectPath, CancellationToken cancellationToken) - { - _logger.LogInformation("Loading projects ..."); - - var stopwatch = Stopwatch.StartNew(); - var oldSolution = CurrentSolution; - - var loader = new MSBuildProjectLoader(this); - var projectMap = ProjectMap.Create(); - - ImmutableArray projectInfos; - try - { - projectInfos = await loader.LoadProjectInfoAsync(rootProjectPath, projectMap, progress: null, msbuildLogger: null, cancellationToken).ConfigureAwait(false); - } - catch (InvalidOperationException) - { - // TODO: workaround for https://github.com/dotnet/roslyn/issues/75956 - projectInfos = []; - } - - var oldProjectIdsByPath = oldSolution.Projects.ToDictionary(keySelector: static p => (p.FilePath!, p.Name), elementSelector: static p => p.Id); - - // Map new project id to the corresponding old one based on file path and project name (includes TFM), if it exists, and null for added projects. - // Deleted projects won't be included in this map. - var projectIdMap = projectInfos.ToDictionary( - keySelector: static info => info.Id, - elementSelector: info => oldProjectIdsByPath.TryGetValue((info.FilePath!, info.Name), out var oldProjectId) ? oldProjectId : null); - - var newSolution = oldSolution; - - foreach (var newProjectInfo in projectInfos) - { - Debug.Assert(newProjectInfo.FilePath != null); - - var oldProjectId = projectIdMap[newProjectInfo.Id]; - if (oldProjectId == null) - { - newSolution = newSolution.AddProject(newProjectInfo); - continue; - } - - newSolution = HotReloadService.WithProjectInfo(newSolution, WithChecksumAlgorithm(ProjectInfo.Create( - oldProjectId, - newProjectInfo.Version, - newProjectInfo.Name, - newProjectInfo.AssemblyName, - newProjectInfo.Language, - newProjectInfo.FilePath, - newProjectInfo.OutputFilePath, - newProjectInfo.CompilationOptions, - newProjectInfo.ParseOptions, - MapDocuments(oldProjectId, newProjectInfo.Documents), - newProjectInfo.ProjectReferences.Select(MapProjectReference), - newProjectInfo.MetadataReferences, - newProjectInfo.AnalyzerReferences, - MapDocuments(oldProjectId, newProjectInfo.AdditionalDocuments), - isSubmission: false, - hostObjectType: null, - outputRefFilePath: newProjectInfo.OutputRefFilePath), - GetChecksumAlgorithm(newProjectInfo)) - .WithAnalyzerConfigDocuments(MapDocuments(oldProjectId, newProjectInfo.AnalyzerConfigDocuments)) - .WithCompilationOutputInfo(newProjectInfo.CompilationOutputInfo)); - } - - await UpdateSolutionAsync(newSolution, operationDisplayName: "project update", cancellationToken); - UpdateReferencesAfterAdd(); - - _logger.LogInformation("Projects loaded in {Time}s.", stopwatch.Elapsed.TotalSeconds.ToString("0.0")); - - ProjectReference MapProjectReference(ProjectReference pr) - // Only C# and VB projects are loaded by the MSBuildProjectLoader, so some references might be missing. - // When a new project is added along with a new project reference the old project id is also null. - => new(projectIdMap.TryGetValue(pr.ProjectId, out var oldProjectId) && oldProjectId != null ? oldProjectId : pr.ProjectId, pr.Aliases, pr.EmbedInteropTypes); - - ImmutableArray MapDocuments(ProjectId mappedProjectId, IReadOnlyList documents) - => documents.Select(docInfo => - { - // TODO: can there be multiple documents of the same path in the project? - - // Map to a document of the same path. If there isn't one (a new document is added to the project), - // create a new document id with the mapped project id. - var mappedDocumentId = oldSolution.GetDocumentIdsWithFilePath(docInfo.FilePath).FirstOrDefault(id => id.ProjectId == mappedProjectId) - ?? DocumentId.CreateNewId(mappedProjectId); - - return docInfo.WithId(mappedDocumentId); - }).ToImmutableArray(); - } - - // TODO: remove - // workaround for https://github.com/dotnet/roslyn/pull/82051 - - private static MethodInfo? s_withChecksumAlgorithm; - private static PropertyInfo? s_getChecksumAlgorithm; - - private static ProjectInfo WithChecksumAlgorithm(ProjectInfo info, SourceHashAlgorithm algorithm) - => (ProjectInfo)(s_withChecksumAlgorithm ??= typeof(ProjectInfo).GetMethod("WithChecksumAlgorithm", BindingFlags.NonPublic | BindingFlags.Instance)!) - .Invoke(info, [algorithm])!; - - private static SourceHashAlgorithm GetChecksumAlgorithm(ProjectInfo info) - => (SourceHashAlgorithm)(s_getChecksumAlgorithm ??= typeof(ProjectInfo).GetProperty("ChecksumAlgorithm", BindingFlags.NonPublic | BindingFlags.Instance)!) - .GetValue(info)!; - - public async ValueTask UpdateFileContentAsync(IEnumerable changedFiles, CancellationToken cancellationToken) - { - var updatedSolution = CurrentSolution; - - var documentsToRemove = new List(); - - foreach (var (changedFile, change) in changedFiles) - { - // when a file is added we reevaluate the project: - Debug.Assert(change != ChangeKind.Add); - - var documentIds = updatedSolution.GetDocumentIdsWithFilePath(changedFile.FilePath); - if (change == ChangeKind.Delete) - { - documentsToRemove.AddRange(documentIds); - continue; - } - - foreach (var documentId in documentIds) - { - var textDocument = updatedSolution.GetDocument(documentId) - ?? updatedSolution.GetAdditionalDocument(documentId) - ?? updatedSolution.GetAnalyzerConfigDocument(documentId); - - if (textDocument == null) - { - _logger.LogDebug("Could not find document with path '{FilePath}' in the workspace.", changedFile.FilePath); - continue; - } - - var project = updatedSolution.GetProject(documentId.ProjectId); - Debug.Assert(project?.FilePath != null); - - var oldText = await textDocument.GetTextAsync(cancellationToken); - Debug.Assert(oldText.Encoding != null); - - var newText = await GetSourceTextAsync(changedFile.FilePath, oldText.Encoding, oldText.ChecksumAlgorithm, cancellationToken); - - _logger.LogDebug("Updating document text of '{FilePath}'.", changedFile.FilePath); - - updatedSolution = textDocument switch - { - Document document => document.WithText(newText).Project.Solution, - AdditionalDocument ad => updatedSolution.WithAdditionalDocumentText(textDocument.Id, newText, PreservationMode.PreserveValue), - AnalyzerConfigDocument acd => updatedSolution.WithAnalyzerConfigDocumentText(textDocument.Id, newText, PreservationMode.PreserveValue), - _ => throw new InvalidOperationException() - }; - } - } - - updatedSolution = RemoveDocuments(updatedSolution, documentsToRemove); - - await UpdateSolutionAsync(updatedSolution, operationDisplayName: "document update", cancellationToken); - } - - private static Solution RemoveDocuments(Solution solution, IEnumerable ids) - => solution - .RemoveDocuments([.. ids.Where(id => solution.GetDocument(id) != null)]) - .RemoveAdditionalDocuments([.. ids.Where(id => solution.GetAdditionalDocument(id) != null)]) - .RemoveAnalyzerConfigDocuments([.. ids.Where(id => solution.GetAnalyzerConfigDocument(id) != null)]); - - private static async ValueTask GetSourceTextAsync(string filePath, Encoding encoding, SourceHashAlgorithm checksumAlgorithm, CancellationToken cancellationToken) - { - var zeroLengthRetryPerformed = false; - for (var attemptIndex = 0; attemptIndex < 6; attemptIndex++) - { - try - { - // File.OpenRead opens the file with FileShare.Read. This may prevent IDEs from saving file - // contents to disk - SourceText sourceText; - using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) - { - sourceText = SourceText.From(stream, encoding, checksumAlgorithm); - } - - if (!zeroLengthRetryPerformed && sourceText.Length == 0) - { - zeroLengthRetryPerformed = true; - - // VSCode (on Windows) will sometimes perform two separate writes when updating a file on disk. - // In the first update, it clears the file contents, and in the second, it writes the intended - // content. - // It's atypical that a file being watched for hot reload would be empty. We'll use this as a - // hueristic to identify this case and perform an additional retry reading the file after a delay. - await Task.Delay(20, cancellationToken); - - using var stream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - sourceText = SourceText.From(stream, encoding, checksumAlgorithm); - } - - return sourceText; - } - catch (IOException) when (attemptIndex < 5) - { - await Task.Delay(20 * (attemptIndex + 1), cancellationToken); - } - } - - Debug.Fail("This shouldn't happen."); - return null; - } - - private Task UpdateSolutionAsync(Solution newSolution, string operationDisplayName, CancellationToken cancellationToken) - => ReportSolutionFilesAsync(SetCurrentSolution(newSolution), Interlocked.Increment(ref _solutionUpdateId), operationDisplayName, cancellationToken); - - private async Task ReportSolutionFilesAsync(Solution solution, int updateId, string operationDisplayName, CancellationToken cancellationToken) - { - _logger.LogDebug("Solution after {Operation}: v{Version}", operationDisplayName, updateId); - - if (!_logger.IsEnabled(LogLevel.Trace)) - { - return; - } - - foreach (var project in solution.Projects) - { - _logger.LogDebug(" Project: {Path}", project.FilePath); - - foreach (var document in project.Documents) - { - await InspectDocumentAsync(document, "Document"); - } - - foreach (var document in project.AdditionalDocuments) - { - await InspectDocumentAsync(document, "Additional"); - } - - foreach (var document in project.AnalyzerConfigDocuments) - { - await InspectDocumentAsync(document, "Config"); - } - } - - async ValueTask InspectDocumentAsync(TextDocument document, string kind) - { - var text = await document.GetTextAsync(cancellationToken); - _logger.LogDebug(" {Kind}: {FilePath} [{Checksum}]", kind, document.FilePath, Convert.ToBase64String(text.GetChecksum().ToArray())); - } - } -} diff --git a/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs b/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs index 46e69aade1ab..9e4a1ef710ba 100644 --- a/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs +++ b/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs @@ -23,6 +23,7 @@ public async Task ReferenceOutputAssembly_False() var factory = new ProjectGraphFactory(globalOptions: []); var projectGraph = factory.TryLoadProjectGraph(options.ProjectPath, NullLogger.Instance, projectGraphRequired: false, CancellationToken.None); + Assert.NotNull(projectGraph); var processOutputReporter = new TestProcessOutputReporter(); @@ -42,7 +43,7 @@ public async Task ReferenceOutputAssembly_False() var handler = new CompilationHandler(context); - await handler.Workspace.UpdateProjectConeAsync(hostProject, CancellationToken.None); + await handler.UpdateProjectConeAsync(projectGraph, hostProject, CancellationToken.None); // all projects are present AssertEx.SequenceEqual(["Host", "Lib2", "Lib", "A", "B"], handler.Workspace.CurrentSolution.Projects.Select(p => p.Name)); From a66bbbee2964e15ffb05312a729267f1cc04ebe0 Mon Sep 17 00:00:00 2001 From: Tomas Matousek Date: Mon, 10 Nov 2025 16:52:02 -0800 Subject: [PATCH 123/179] File based programs --- sdk.slnx | 1 + .../Watch.Aspire/DotNetWatchLauncher.cs | 2 +- .../Watch.Aspire/DotNetWatchOptions.cs | 23 +- .../Watch/Aspire/AspireServiceFactory.cs | 6 +- .../Watch/Browser/BrowserLauncher.cs | 2 +- .../Watch/Build/EvaluationResult.cs | 4 +- .../Watch/Build/ProjectGraphFactory.cs | 105 +++++-- .../Watch/Build/ProjectRepresentation.cs | 46 +++ .../Watch/Context/ProjectOptions.cs | 2 +- .../Watch/HotReload/CompilationHandler.cs | 4 +- .../Watch/HotReload/HotReloadDotNetWatcher.cs | 37 +-- .../Microsoft.DotNet.HotReload.Watch.csproj | 1 - .../Watch/Process/LaunchSettingsProfile.cs | 4 +- .../Watch/Process/ProjectLauncher.cs | 2 +- .../CommandLine/CommandLineOptions.cs | 6 +- .../DotnetWatchCommandDefinition.cs | 25 +- src/BuiltInTools/dotnet-watch/Program.cs | 127 +++++++- src/BuiltInTools/dotnet-watch/Resources.resx | 14 +- .../dotnet-watch/Watch/BuildEvaluator.cs | 10 +- .../Watch/MsBuildFileSetFactory.cs | 6 +- .../dotnet-watch/xlf/Resources.cs.xlf | 29 +- .../dotnet-watch/xlf/Resources.de.xlf | 29 +- .../dotnet-watch/xlf/Resources.es.xlf | 29 +- .../dotnet-watch/xlf/Resources.fr.xlf | 29 +- .../dotnet-watch/xlf/Resources.it.xlf | 29 +- .../dotnet-watch/xlf/Resources.ja.xlf | 29 +- .../dotnet-watch/xlf/Resources.ko.xlf | 29 +- .../dotnet-watch/xlf/Resources.pl.xlf | 29 +- .../dotnet-watch/xlf/Resources.pt-BR.xlf | 29 +- .../dotnet-watch/xlf/Resources.ru.xlf | 29 +- .../dotnet-watch/xlf/Resources.tr.xlf | 29 +- .../dotnet-watch/xlf/Resources.zh-Hans.xlf | 29 +- .../dotnet-watch/xlf/Resources.zh-Hant.xlf | 29 +- ...crosoft.DotNet.FileBasedPrograms.projitems | 4 +- .../Microsoft.CodeAnalysis.NetAnalyzers.sarif | 6 +- .../VirtualProjectBuilder.cs | 2 +- .../TestAssetExtensions.cs | 2 +- .../DotNetWatchOptionsTests.cs | 50 +++- .../Build/EvaluationTests.cs | 6 +- .../Build/ProjectGraphFactoryTests.cs | 103 +++++++ .../CommandLine/CommandLineOptionsTests.cs | 47 ++- .../CommandLine/LaunchSettingsTests.cs | 20 ++ .../ProgramTests.GetProjectOptions.cs | 270 ++++++++++++++++++ .../CommandLine/ProgramTests.cs | 2 +- .../FileWatcher/FileWatcherTests.cs | 2 +- .../HotReload/ApplyDeltaTests.cs | 2 +- .../HotReload/CompilationHandlerTests.cs | 7 +- .../HotReload/RuntimeProcessLauncherTests.cs | 2 +- .../Process/LaunchSettingsProfileTest.cs | 8 +- .../TestUtilities/MockFileSetFactory.cs | 1 + .../TestUtilities/TestOptions.cs | 2 +- 51 files changed, 1063 insertions(+), 277 deletions(-) create mode 100644 src/BuiltInTools/Watch/Build/ProjectRepresentation.cs create mode 100644 test/dotnet-watch.Tests/Build/ProjectGraphFactoryTests.cs create mode 100644 test/dotnet-watch.Tests/CommandLine/ProgramTests.GetProjectOptions.cs diff --git a/sdk.slnx b/sdk.slnx index b5f5c625b0c2..6ed9cd703fca 100644 --- a/sdk.slnx +++ b/sdk.slnx @@ -23,6 +23,7 @@ + diff --git a/src/BuiltInTools/Watch.Aspire/DotNetWatchLauncher.cs b/src/BuiltInTools/Watch.Aspire/DotNetWatchLauncher.cs index 72fadfe6f024..121b600ef509 100644 --- a/src/BuiltInTools/Watch.Aspire/DotNetWatchLauncher.cs +++ b/src/BuiltInTools/Watch.Aspire/DotNetWatchLauncher.cs @@ -27,7 +27,7 @@ public static async Task RunAsync(string workingDirectory, DotNetWatchOpti var rootProjectOptions = new ProjectOptions() { IsRootProject = true, - ProjectPath = options.ProjectPath, + Representation = options.Project, WorkingDirectory = workingDirectory, TargetFramework = null, BuildArguments = [], diff --git a/src/BuiltInTools/Watch.Aspire/DotNetWatchOptions.cs b/src/BuiltInTools/Watch.Aspire/DotNetWatchOptions.cs index 1d8f526c1fff..497078f9322d 100644 --- a/src/BuiltInTools/Watch.Aspire/DotNetWatchOptions.cs +++ b/src/BuiltInTools/Watch.Aspire/DotNetWatchOptions.cs @@ -3,6 +3,7 @@ using System.Collections.Immutable; using System.CommandLine; +using System.CommandLine.Parsing; using System.Diagnostics.CodeAnalysis; using Microsoft.Extensions.Logging; @@ -16,7 +17,7 @@ internal sealed class DotNetWatchOptions /// public required string SdkDirectory { get; init; } - public required string ProjectPath { get; init; } + public required ProjectRepresentation Project { get; init; } public required ImmutableArray ApplicationArguments { get; init; } public LogLevel LogLevel { get; init; } public bool NoLaunchProfile { get; init; } @@ -24,7 +25,8 @@ internal sealed class DotNetWatchOptions public static bool TryParse(string[] args, [NotNullWhen(true)] out DotNetWatchOptions? options) { var sdkOption = new Option("--sdk") { Arity = ArgumentArity.ExactlyOne, Required = true, AllowMultipleArgumentsPerToken = false }; - var projectOption = new Option("--project") { Arity = ArgumentArity.ExactlyOne, Required = true, AllowMultipleArgumentsPerToken = false }; + var projectOption = new Option("--project") { Arity = ArgumentArity.ZeroOrOne, AllowMultipleArgumentsPerToken = false }; + var fileOption = new Option("--file") { Arity = ArgumentArity.ZeroOrOne, AllowMultipleArgumentsPerToken = false }; var quietOption = new Option("--quiet") { Arity = ArgumentArity.Zero }; var verboseOption = new Option("--verbose") { Arity = ArgumentArity.Zero }; var noLaunchProfileOption = new Option("--no-launch-profile") { Arity = ArgumentArity.Zero }; @@ -32,10 +34,19 @@ public static bool TryParse(string[] args, [NotNullWhen(true)] out DotNetWatchOp verboseOption.Validators.Add(v => { - if (v.GetValue(quietOption) && v.GetValue(verboseOption)) + if (HasOption(v, quietOption) && HasOption(v, verboseOption)) { v.AddError("Cannot specify both '--quiet' and '--verbose' options."); } + + if (HasOption(v, projectOption) && HasOption(v, fileOption)) + { + v.AddError("Cannot specify both '--file' and '--project' options."); + } + else if (!HasOption(v, projectOption) && !HasOption(v, fileOption)) + { + v.AddError("Must specify either '--file' or '--project' option."); + } }); var rootCommand = new RootCommand() @@ -45,6 +56,7 @@ public static bool TryParse(string[] args, [NotNullWhen(true)] out DotNetWatchOp { sdkOption, projectOption, + fileOption, quietOption, verboseOption, noLaunchProfileOption @@ -70,7 +82,7 @@ public static bool TryParse(string[] args, [NotNullWhen(true)] out DotNetWatchOp options = new DotNetWatchOptions() { SdkDirectory = parseResult.GetRequiredValue(sdkOption), - ProjectPath = parseResult.GetRequiredValue(projectOption), + Project = new ProjectRepresentation(projectPath: parseResult.GetValue(projectOption), entryPointFilePath: parseResult.GetValue(fileOption)), LogLevel = parseResult.GetValue(quietOption) ? LogLevel.Warning : parseResult.GetValue(verboseOption) ? LogLevel.Debug : LogLevel.Information, ApplicationArguments = [.. parseResult.GetValue(applicationArguments) ?? []], NoLaunchProfile = parseResult.GetValue(noLaunchProfileOption), @@ -78,4 +90,7 @@ public static bool TryParse(string[] args, [NotNullWhen(true)] out DotNetWatchOp return true; } + + private static bool HasOption(SymbolResult symbolResult, Option option) + => symbolResult.GetResult(option) is OptionResult or && !or.Implicit; } diff --git a/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs b/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs index 06fd0a52b127..1349c94ce495 100644 --- a/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs +++ b/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs @@ -106,7 +106,7 @@ public async ValueTask StartProjectAsync(string dcpId, string se { ObjectDisposedException.ThrowIf(_isDisposed, this); - _logger.LogDebug("Starting project: {Path}", projectOptions.ProjectPath); + _logger.LogDebug("Starting: '{Path}'", projectOptions.Representation.ProjectOrEntryPointFilePath); var outputChannel = Channel.CreateUnbounded(s_outputChannelOptions); @@ -141,7 +141,7 @@ public async ValueTask StartProjectAsync(string dcpId, string se if (runningProject == null) { // detailed error already reported: - throw new ApplicationException($"Failed to launch project '{projectOptions.ProjectPath}'."); + throw new ApplicationException($"Failed to launch '{projectOptions.Representation.ProjectOrEntryPointFilePath}'."); } await _service.NotifySessionStartedAsync(dcpId, sessionId, runningProject.ProcessId, cancellationToken); @@ -219,7 +219,7 @@ private ProjectOptions GetProjectOptions(ProjectLaunchRequest projectLaunchInfo) return new() { IsRootProject = false, - ProjectPath = projectLaunchInfo.ProjectPath, + Representation = ProjectRepresentation.FromProjectOrEntryPointFilePath(projectLaunchInfo.ProjectPath), WorkingDirectory = Path.GetDirectoryName(projectLaunchInfo.ProjectPath) ?? throw new InvalidOperationException(), BuildArguments = _hostProjectOptions.BuildArguments, Command = "run", diff --git a/src/BuiltInTools/Watch/Browser/BrowserLauncher.cs b/src/BuiltInTools/Watch/Browser/BrowserLauncher.cs index 74ce7a91dde2..e789dd058281 100644 --- a/src/BuiltInTools/Watch/Browser/BrowserLauncher.cs +++ b/src/BuiltInTools/Watch/Browser/BrowserLauncher.cs @@ -128,6 +128,6 @@ private bool CanLaunchBrowser(ProjectOptions projectOptions, [NotNullWhen(true)] private LaunchSettingsProfile GetLaunchProfile(ProjectOptions projectOptions) { return (projectOptions.NoLaunchProfile == true - ? null : LaunchSettingsProfile.ReadLaunchProfile(projectOptions.ProjectPath, projectOptions.LaunchProfileName, logger)) ?? new(); + ? null : LaunchSettingsProfile.ReadLaunchProfile(projectOptions.Representation, projectOptions.LaunchProfileName, logger)) ?? new(); } } diff --git a/src/BuiltInTools/Watch/Build/EvaluationResult.cs b/src/BuiltInTools/Watch/Build/EvaluationResult.cs index 4c5bee05682f..8acb3552df0a 100644 --- a/src/BuiltInTools/Watch/Build/EvaluationResult.cs +++ b/src/BuiltInTools/Watch/Build/EvaluationResult.cs @@ -69,7 +69,6 @@ public static ImmutableDictionary GetGlobalBuildOptions(IEnumera /// public static EvaluationResult? TryCreate( ProjectGraphFactory factory, - string rootProjectPath, ILogger logger, GlobalOptions options, EnvironmentOptions environmentOptions, @@ -79,7 +78,6 @@ public static ImmutableDictionary GetGlobalBuildOptions(IEnumera var buildReporter = new BuildReporter(logger, options, environmentOptions); var projectGraph = factory.TryLoadProjectGraph( - rootProjectPath, logger, projectGraphRequired: true, cancellationToken); @@ -97,7 +95,7 @@ public static ImmutableDictionary GetGlobalBuildOptions(IEnumera { if (!rootNode.ProjectInstance.Build([TargetNames.Restore], loggers)) { - logger.LogError("Failed to restore project '{Path}'.", rootProjectPath); + logger.LogError("Failed to restore '{Path}'.", rootNode.ProjectInstance.FullPath); loggers.ReportOutput(); return null; } diff --git a/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs b/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs index 56ffe6560b0e..ec306e6f97a7 100644 --- a/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs +++ b/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs @@ -2,14 +2,18 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Immutable; +using System.Reflection; +using System.Runtime.Versioning; using Microsoft.Build.Evaluation; +using Microsoft.Build.Execution; using Microsoft.Build.Graph; +using Microsoft.DotNet.ProjectTools; using Microsoft.Extensions.Logging; using ILogger = Microsoft.Extensions.Logging.ILogger; namespace Microsoft.DotNet.Watch; -internal sealed class ProjectGraphFactory(ImmutableDictionary globalOptions) +internal sealed class ProjectGraphFactory { /// /// Reuse with XML element caching to improve performance. @@ -17,34 +21,66 @@ internal sealed class ProjectGraphFactory(ImmutableDictionary gl /// The cache is automatically updated when build files change. /// https://github.com/dotnet/msbuild/blob/b6f853defccd64ae1e9c7cf140e7e4de68bff07c/src/Build/Definition/ProjectCollection.cs#L343-L354 /// - private readonly ProjectCollection _collection = new( - globalProperties: globalOptions, - loggers: [], - remoteLoggers: [], - ToolsetDefinitionLocations.Default, - maxNodeCount: 1, - onlyLogCriticalEvents: false, - loadProjectsReadOnly: false, - useAsynchronousLogging: false, - reuseProjectRootElementCache: true); + private readonly ProjectCollection _collection; + + private readonly ImmutableDictionary _globalOptions; + private readonly ProjectRepresentation _rootProject; + + // Only the root project can be virtual. #:project does not support targeting other single-file projects. + private readonly VirtualProjectBuilder? _virtualRootProjectBuilder; + + public ProjectGraphFactory( + ProjectRepresentation rootProject, + string? targetFramework, + ImmutableDictionary globalOptions) + { + _collection = new( + globalProperties: globalOptions, + loggers: [], + remoteLoggers: [], + ToolsetDefinitionLocations.Default, + maxNodeCount: 1, + onlyLogCriticalEvents: false, + loadProjectsReadOnly: false, + useAsynchronousLogging: false, + reuseProjectRootElementCache: true); + + _globalOptions = globalOptions; + _rootProject = rootProject; + + if (rootProject.EntryPointFilePath != null) + { + _virtualRootProjectBuilder = new VirtualProjectBuilder(rootProject.EntryPointFilePath, targetFramework ?? GetProductTargetFramework()); + } + } + + private static string GetProductTargetFramework() + { + var attribute = typeof(VirtualProjectBuilder).Assembly.GetCustomAttribute() ?? throw new InvalidOperationException(); + var version = new FrameworkName(attribute.FrameworkName).Version; + return $"net{version.Major}.{version.Minor}"; + } /// /// Tries to create a project graph by running the build evaluation phase on the . /// public ProjectGraph? TryLoadProjectGraph( - string rootProjectFile, ILogger logger, bool projectGraphRequired, CancellationToken cancellationToken) { - var entryPoint = new ProjectGraphEntryPoint(rootProjectFile, globalOptions); + var entryPoint = new ProjectGraphEntryPoint(_rootProject.ProjectGraphPath, _globalOptions); try { - return new ProjectGraph([entryPoint], _collection, projectInstanceFactory: null, cancellationToken); + return new ProjectGraph([entryPoint], _collection, (path, globalProperties, collection) => CreateProjectInstance(path, globalProperties, collection, logger), cancellationToken); + } + catch (ProjectCreationFailedException) + { + // Errors have already been reported. } catch (Exception e) when (e is not OperationCanceledException) { - // ProejctGraph aggregates OperationCanceledException exception, + // ProjectGraph aggregates OperationCanceledException exception, // throw here to propagate the cancellation. cancellationToken.ThrowIfCancellationRequested(); @@ -54,7 +90,10 @@ internal sealed class ProjectGraphFactory(ImmutableDictionary gl { foreach (var inner in innerExceptions) { - Report(inner); + if (inner is not ProjectCreationFailedException) + { + Report(inner); + } } } else @@ -77,4 +116,38 @@ void Report(Exception e) return null; } + + private ProjectInstance CreateProjectInstance(string projectPath, Dictionary globalProperties, ProjectCollection projectCollection, ILogger logger) + { + if (_virtualRootProjectBuilder != null && projectPath == _rootProject.ProjectGraphPath) + { + var anyError = false; + + _virtualRootProjectBuilder.CreateProjectInstance( + projectCollection, + (sourceFile, textSpan, message) => + { + anyError = true; + logger.LogError("{Location}: {Message}", sourceFile.GetLocationString(textSpan), message); + }, + out var projectInstance, + out _); + + if (anyError) + { + throw new ProjectCreationFailedException(); + } + + return projectInstance; + } + + return new ProjectInstance( + projectPath, + globalProperties, + toolsVersion: "Current", + subToolsetVersion: null, + projectCollection); + } + + private sealed class ProjectCreationFailedException() : Exception(); } diff --git a/src/BuiltInTools/Watch/Build/ProjectRepresentation.cs b/src/BuiltInTools/Watch/Build/ProjectRepresentation.cs new file mode 100644 index 000000000000..76526a8a0cb6 --- /dev/null +++ b/src/BuiltInTools/Watch/Build/ProjectRepresentation.cs @@ -0,0 +1,46 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.DotNet.ProjectTools; + +namespace Microsoft.DotNet.Watch; + +/// +/// Project can be reprented by project file or by entry point file (for single-file apps). +/// +internal readonly struct ProjectRepresentation(string projectGraphPath, string? projectPath, string? entryPointFilePath) +{ + /// + /// Path used in Project Graph (may be virtual). + /// + public readonly string ProjectGraphPath = projectGraphPath; + + /// + /// Path to an physical (non-virtual) project, if available. + /// + public readonly string? PhysicalPath = projectPath; + + /// + /// Path to an entry point file, if available. + /// + public readonly string? EntryPointFilePath = entryPointFilePath; + + public ProjectRepresentation(string? projectPath, string? entryPointFilePath) + : this(projectPath ?? VirtualProjectBuilder.GetVirtualProjectPath(entryPointFilePath!), projectPath, entryPointFilePath) + { + } + + public string ProjectOrEntryPointFilePath + => PhysicalPath ?? EntryPointFilePath!; + + public string GetContainingDirectory() + => Path.GetDirectoryName(ProjectOrEntryPointFilePath)!; + + public static ProjectRepresentation FromProjectOrEntryPointFilePath(string projectOrEntryPointFilePath) + => string.Equals(Path.GetExtension(projectOrEntryPointFilePath), ".csproj", StringComparison.OrdinalIgnoreCase) + ? new(projectPath: projectOrEntryPointFilePath, entryPointFilePath: null) + : new(projectPath: null, entryPointFilePath: projectOrEntryPointFilePath); + + public ProjectRepresentation WithProjectGraphPath(string projectGraphPath) + => new(projectGraphPath, PhysicalPath, EntryPointFilePath); +} diff --git a/src/BuiltInTools/Watch/Context/ProjectOptions.cs b/src/BuiltInTools/Watch/Context/ProjectOptions.cs index 20eb2eed69eb..abede2e8ef26 100644 --- a/src/BuiltInTools/Watch/Context/ProjectOptions.cs +++ b/src/BuiltInTools/Watch/Context/ProjectOptions.cs @@ -6,7 +6,7 @@ namespace Microsoft.DotNet.Watch; internal sealed record ProjectOptions { public required bool IsRootProject { get; init; } - public required string ProjectPath { get; init; } + public required ProjectRepresentation Representation { get; init; } public required string WorkingDirectory { get; init; } public required string? TargetFramework { get; init; } public required IReadOnlyList BuildArguments { get; init; } diff --git a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs index 0bfe2035418c..9b6c4f0fc50f 100644 --- a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs +++ b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs @@ -850,14 +850,14 @@ private static ImmutableDictionary> Crea keySelector: static group => group.Key, elementSelector: static group => group.Select(static node => node.ProjectInstance).ToImmutableArray()); - public async Task UpdateProjectConeAsync(ProjectGraph projectGraph, string projectPath, CancellationToken cancellationToken) + public async Task UpdateProjectConeAsync(ProjectGraph projectGraph, ProjectRepresentation project, CancellationToken cancellationToken) { Logger.LogInformation("Loading projects ..."); var stopwatch = Stopwatch.StartNew(); _projectInstances = CreateProjectInstanceMap(projectGraph); - var solution = await Workspace.UpdateProjectConeAsync(projectPath, cancellationToken); + var solution = await Workspace.UpdateProjectConeAsync(project.ProjectGraphPath, cancellationToken); await SolutionUpdatedAsync(solution, "project update", cancellationToken); Logger.LogInformation("Projects loaded in {Time}s.", stopwatch.Elapsed.TotalSeconds.ToString("0.0")); diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs index 0bb7c14fea31..5175c8c2930d 100644 --- a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs +++ b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs @@ -45,7 +45,9 @@ public HotReloadDotNetWatcher(DotNetWatchContext context, IConsole console, IRun } _designTimeBuildGraphFactory = new ProjectGraphFactory( - EvaluationResult.GetGlobalBuildOptions( + _context.RootProjectOptions.Representation, + _context.RootProjectOptions.TargetFramework, + globalOptions: EvaluationResult.GetGlobalBuildOptions( context.RootProjectOptions.BuildArguments, context.EnvironmentOptions)); } @@ -87,7 +89,7 @@ public async Task WatchAsync(CancellationToken shutdownCancellationToken) { var rootProjectOptions = _context.RootProjectOptions; - var buildSucceeded = await BuildProjectAsync(rootProjectOptions.ProjectPath, rootProjectOptions.BuildArguments, iterationCancellationToken); + var buildSucceeded = await BuildProjectAsync(rootProjectOptions.Representation, rootProjectOptions.BuildArguments, iterationCancellationToken); if (!buildSucceeded) { continue; @@ -101,7 +103,10 @@ public async Task WatchAsync(CancellationToken shutdownCancellationToken) var rootProject = evaluationResult.ProjectGraph.GraphRoots.Single(); // use normalized MSBuild path so that we can index into the ProjectGraph - rootProjectOptions = rootProjectOptions with { ProjectPath = rootProject.ProjectInstance.FullPath }; + rootProjectOptions = rootProjectOptions with + { + Representation = rootProjectOptions.Representation.WithProjectGraphPath(rootProject.ProjectInstance.FullPath) + }; var runtimeProcessLauncherFactory = _runtimeProcessLauncherFactory; var rootProjectCapabilities = rootProject.GetCapabilities(); @@ -156,7 +161,7 @@ public async Task WatchAsync(CancellationToken shutdownCancellationToken) return; } - await compilationHandler.UpdateProjectConeAsync(evaluationResult.ProjectGraph, rootProjectOptions.ProjectPath, iterationCancellationToken); + await compilationHandler.UpdateProjectConeAsync(evaluationResult.ProjectGraph, rootProjectOptions.Representation, iterationCancellationToken); // Solution must be initialized after we load the solution but before we start watching for file changes to avoid race condition // when the EnC session captures content of the file after the changes has already been made. @@ -298,7 +303,8 @@ void FileChangedCallback(ChangedPath change) var success = true; foreach (var projectPath in projectsToRebuild) { - success = await BuildProjectAsync(projectPath, rootProjectOptions.BuildArguments, iterationCancellationToken); + // The path of the Workspace Project is the entry-point file path for single-file apps. + success = await BuildProjectAsync(ProjectRepresentation.FromProjectOrEntryPointFilePath(projectPath), rootProjectOptions.BuildArguments, iterationCancellationToken); if (!success) { break; @@ -385,7 +391,7 @@ async Task> CaptureChangedFilesSnapshot(ImmutableArr } // Do not assume the change is an addition, even if the file doesn't exist in the evaluation result. - // The file could have been deleted and Add + Delete sequence could have been normalized to Update. + // The file could have been deleted and Add + Delete sequence could have been normalized to Update. return new ChangedFile( new FileItem() { FilePath = changedPath.Path, ContainingProjectPaths = [] }, changedPath.Kind); @@ -404,7 +410,7 @@ async Task> CaptureChangedFilesSnapshot(ImmutableArr // additional files/directories may have been added: evaluationResult.WatchFiles(fileWatcher); - await compilationHandler.UpdateProjectConeAsync(evaluationResult.ProjectGraph, rootProjectOptions.ProjectPath, iterationCancellationToken); + await compilationHandler.UpdateProjectConeAsync(evaluationResult.ProjectGraph, rootProjectOptions.Representation, iterationCancellationToken); if (shutdownCancellationToken.IsCancellationRequested) { @@ -703,8 +709,8 @@ private async ValueTask WaitForFileChangeBeforeRestarting(FileWatcher fileWatche } else { - // evaluation cancelled - watch for any changes in the directory tree containing the root project: - fileWatcher.WatchContainingDirectories([_context.RootProjectOptions.ProjectPath], includeSubdirectories: true); + // evaluation cancelled - watch for any changes in the directory tree containing the root project or entry-point file: + fileWatcher.WatchContainingDirectories([_context.RootProjectOptions.Representation.ProjectOrEntryPointFilePath], includeSubdirectories: true); _ = await fileWatcher.WaitForFileChangeAsync( acceptChange: AcceptChange, @@ -892,7 +898,6 @@ private async ValueTask EvaluateRootProjectAsync(bool restore, var result = EvaluationResult.TryCreate( _designTimeBuildGraphFactory, - _context.RootProjectOptions.ProjectPath, _context.BuildLogger, _context.Options, _context.EnvironmentOptions, @@ -907,7 +912,7 @@ private async ValueTask EvaluateRootProjectAsync(bool restore, } await FileWatcher.WaitForFileChangeAsync( - _context.RootProjectOptions.ProjectPath, + _context.RootProjectOptions.Representation.ProjectOrEntryPointFilePath, _context.Logger, _context.EnvironmentOptions, startedWatching: () => _context.Logger.Log(MessageDescriptor.FixBuildError), @@ -915,14 +920,14 @@ await FileWatcher.WaitForFileChangeAsync( } } - private async Task BuildProjectAsync(string projectPath, IReadOnlyList buildArguments, CancellationToken cancellationToken) + private async Task BuildProjectAsync(ProjectRepresentation project, IReadOnlyList buildArguments, CancellationToken cancellationToken) { List? capturedOutput = _context.EnvironmentOptions.TestFlags != TestFlags.None ? [] : null; var processSpec = new ProcessSpec { Executable = _context.EnvironmentOptions.MuxerPath, - WorkingDirectory = Path.GetDirectoryName(projectPath)!, + WorkingDirectory = project.GetContainingDirectory(), IsUserApplication = false, // Capture output if running in a test environment. @@ -938,16 +943,16 @@ private async Task BuildProjectAsync(string projectPath, IReadOnlyList - diff --git a/src/BuiltInTools/Watch/Process/LaunchSettingsProfile.cs b/src/BuiltInTools/Watch/Process/LaunchSettingsProfile.cs index 1e66687c5690..08b30510b586 100644 --- a/src/BuiltInTools/Watch/Process/LaunchSettingsProfile.cs +++ b/src/BuiltInTools/Watch/Process/LaunchSettingsProfile.cs @@ -23,9 +23,9 @@ internal sealed class LaunchSettingsProfile public bool LaunchBrowser { get; init; } public string? LaunchUrl { get; init; } - internal static LaunchSettingsProfile? ReadLaunchProfile(string projectPath, string? launchProfileName, ILogger logger) + internal static LaunchSettingsProfile? ReadLaunchProfile(ProjectRepresentation project, string? launchProfileName, ILogger logger) { - var launchSettingsPath = LaunchSettings.TryFindLaunchSettingsFile(projectPath, launchProfileName, (message, isError) => + var launchSettingsPath = LaunchSettings.TryFindLaunchSettingsFile(project.ProjectOrEntryPointFilePath, launchProfileName, (message, isError) => { if (isError) { diff --git a/src/BuiltInTools/Watch/Process/ProjectLauncher.cs b/src/BuiltInTools/Watch/Process/ProjectLauncher.cs index 46d12db315a8..6000a2e128d4 100644 --- a/src/BuiltInTools/Watch/Process/ProjectLauncher.cs +++ b/src/BuiltInTools/Watch/Process/ProjectLauncher.cs @@ -33,7 +33,7 @@ public EnvironmentOptions EnvironmentOptions RestartOperation restartOperation, CancellationToken cancellationToken) { - var projectNode = projectMap.TryGetProjectNode(projectOptions.ProjectPath, projectOptions.TargetFramework); + var projectNode = projectMap.TryGetProjectNode(projectOptions.Representation.ProjectGraphPath, projectOptions.TargetFramework); if (projectNode == null) { // error already reported diff --git a/src/BuiltInTools/dotnet-watch/CommandLine/CommandLineOptions.cs b/src/BuiltInTools/dotnet-watch/CommandLine/CommandLineOptions.cs index 7335284574b0..43a0b5fe4905 100644 --- a/src/BuiltInTools/dotnet-watch/CommandLine/CommandLineOptions.cs +++ b/src/BuiltInTools/dotnet-watch/CommandLine/CommandLineOptions.cs @@ -22,6 +22,7 @@ internal sealed class CommandLineOptions public bool List { get; init; } public required GlobalOptions GlobalOptions { get; init; } + public string? FilePath { get; init; } public string? ProjectPath { get; init; } public string? TargetFramework { get; init; } public bool NoLaunchProfile { get; init; } @@ -145,6 +146,7 @@ internal sealed class CommandLineOptions IsExplicitCommand = isExplicitCommand, ProjectPath = projectValue, + FilePath = parseResult.GetValue(definition.FileOption), LaunchProfileName = parseResult.GetValue(definition.LaunchProfileOption), NoLaunchProfile = parseResult.GetValue(definition.NoLaunchProfileOption), BuildArguments = buildArguments, @@ -343,11 +345,11 @@ private static int IndexOf(IReadOnlyList list, Func predicate) return -1; } - public ProjectOptions GetProjectOptions(string projectPath, string workingDirectory) + public ProjectOptions GetProjectOptions(ProjectRepresentation project, string workingDirectory) => new() { IsRootProject = true, - ProjectPath = projectPath, + Representation = project, WorkingDirectory = workingDirectory, Command = Command, CommandArguments = CommandArguments, diff --git a/src/BuiltInTools/dotnet-watch/CommandLine/DotnetWatchCommandDefinition.cs b/src/BuiltInTools/dotnet-watch/CommandLine/DotnetWatchCommandDefinition.cs index 48d694d3cffa..f8ccd2535555 100644 --- a/src/BuiltInTools/dotnet-watch/CommandLine/DotnetWatchCommandDefinition.cs +++ b/src/BuiltInTools/dotnet-watch/CommandLine/DotnetWatchCommandDefinition.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.CommandLine; +using Microsoft.DotNet.Cli.CommandLine; namespace Microsoft.DotNet.Watch; @@ -17,6 +18,7 @@ internal sealed class DotnetWatchCommandDefinition : RootCommand // Options we need to know about. They are passed through to the subcommand if the subcommand supports them. public readonly Option ShortProjectOption = new("-p") { Hidden = true, Arity = ArgumentArity.ZeroOrOne, AllowMultipleArgumentsPerToken = false }; public readonly Option LongProjectOption = new("--project") { Hidden = true, Arity = ArgumentArity.ZeroOrOne, AllowMultipleArgumentsPerToken = false }; + public readonly Option FileOption = new("--file") { Hidden = true, Arity = ArgumentArity.ZeroOrOne, AllowMultipleArgumentsPerToken = false }; public readonly Option LaunchProfileOption = new("--launch-profile", "-lp") { Hidden = true, Arity = ArgumentArity.ZeroOrOne, AllowMultipleArgumentsPerToken = false }; public readonly Option NoLaunchProfileOption = new("--no-launch-profile") { Hidden = true, Arity = ArgumentArity.Zero }; @@ -38,14 +40,31 @@ public DotnetWatchCommandDefinition() Options.Add(LongProjectOption); Options.Add(ShortProjectOption); + Options.Add(FileOption); Options.Add(LaunchProfileOption); Options.Add(NoLaunchProfileOption); - VerboseOption.Validators.Add(v => + Validators.Add(v => { - if (v.GetValue(QuietOption) && v.GetValue(VerboseOption)) + if (v.HasOption(QuietOption) && v.HasOption(VerboseOption)) { - v.AddError(Resources.Error_QuietAndVerboseSpecified); + v.AddError(string.Format(Resources.Cannot_specify_both_0_and_1_options, QuietOption.Name, VerboseOption.Name)); + } + + var hasLongProjectOption = v.HasOption(LongProjectOption); + var hasShortProjectOption = v.HasOption(ShortProjectOption); + + if (hasLongProjectOption && hasShortProjectOption) + { + v.AddError(string.Format(Resources.Cannot_specify_both_0_and_1_options, LongProjectOption.Name, ShortProjectOption.Name)); + } + + if (v.HasOption(FileOption) && (hasLongProjectOption || hasShortProjectOption)) + { + v.AddError(string.Format( + Resources.Cannot_specify_both_0_and_1_options, + FileOption.Name, + hasLongProjectOption ? LongProjectOption.Name : ShortProjectOption.Name)); } }); } diff --git a/src/BuiltInTools/dotnet-watch/Program.cs b/src/BuiltInTools/dotnet-watch/Program.cs index 938865c9d367..e688cc0ed779 100644 --- a/src/BuiltInTools/dotnet-watch/Program.cs +++ b/src/BuiltInTools/dotnet-watch/Program.cs @@ -3,9 +3,10 @@ using System.Diagnostics; using System.Diagnostics.CodeAnalysis; -using System.Globalization; using System.Runtime.Loader; using Microsoft.Build.Locator; +using Microsoft.DotNet.Cli.Utils; +using Microsoft.DotNet.ProjectTools; using Microsoft.Extensions.Logging; namespace Microsoft.DotNet.Watch @@ -43,7 +44,7 @@ public static async Task Main(string[] args) var processPath = Environment.ProcessPath; Debug.Assert(processPath != null); - + var environmentOptions = EnvironmentOptions.FromEnvironment(processPath); // msbuild tasks depend on host path variable: @@ -99,36 +100,110 @@ public static async Task Main(string[] args) logger.LogDebug("Test flags: {Flags}", environmentOptions.TestFlags); } - if (!TryFindProject(workingDirectory, options, logger, out var projectPath)) + var rootProjectOptions = GetProjectOptions(options, workingDirectory, logger); + if (rootProjectOptions == null) { errorCode = 1; return null; } - var rootProjectOptions = options.GetProjectOptions(projectPath, workingDirectory); errorCode = 0; return new Program(console, loggerFactory, logger, processOutputReporter, rootProjectOptions, options, environmentOptions); } + // internal for testing + internal static ProjectOptions? GetProjectOptions(CommandLineOptions options, string workingDirectory, ILogger logger) + { + ProjectRepresentation project; + + if (options.FilePath != null) + { + try + { + project = new ProjectRepresentation(projectPath: null, entryPointFilePath: Path.GetFullPath(Path.Combine(workingDirectory, options.FilePath))); + } + catch (Exception e) + { + logger.LogError(Resources.The_specified_path_0_is_invalid_1, options.FilePath, e.Message); + return null; + } + } + else if (TryFindProject(workingDirectory, options, logger, out var projectPath) is { } foundProject) + { + if (foundProject == false) + { + // error already reported + return null; + } + + project = new ProjectRepresentation(projectPath, entryPointFilePath: null); + } + else if (TryFindFileEntryPoint(workingDirectory, options, logger, out var entryPointFilePath)) + { + project = new ProjectRepresentation(projectPath: null, entryPointFilePath); + } + else + { + logger.LogError(Resources.Could_not_find_msbuild_project_file_in_0, projectPath); + return null; + } + + return options.GetProjectOptions(project, workingDirectory); + } + + private static bool TryFindFileEntryPoint(string workingDirectory, CommandLineOptions options, ILogger logger, [NotNullWhen(true)] out string? entryPointPath) + { + if (options.CommandArguments is not [var firstArg, ..]) + { + entryPointPath = null; + return false; + } + + try + { + entryPointPath = Path.GetFullPath(Path.Combine(workingDirectory, firstArg)); + } + catch + { + entryPointPath = null; + return false; + } + + return VirtualProjectBuilder.IsValidEntryPointPath(entryPointPath); + } + /// /// Finds a compatible MSBuild project. - /// The base directory to search + /// The base directory to search /// The filename of the project. Can be null. /// - private static bool TryFindProject(string searchBase, CommandLineOptions options, ILogger logger, [NotNullWhen(true)] out string? projectPath) + private static bool? TryFindProject(string workingDirectory, CommandLineOptions options, ILogger logger, [NotNullWhen(true)] out string? projectPath) { - projectPath = options.ProjectPath ?? searchBase; + projectPath = options.ProjectPath ?? workingDirectory; - if (!Path.IsPathRooted(projectPath)) + try { - projectPath = Path.Combine(searchBase, projectPath); + projectPath = Path.GetFullPath(Path.Combine(workingDirectory, projectPath)); + } + catch (Exception e) + { + logger.LogError(Resources.The_specified_path_0_is_invalid_1, projectPath, e.Message); + return false; } if (Directory.Exists(projectPath)) { - var projects = Directory.EnumerateFileSystemEntries(projectPath, "*.*proj", SearchOption.TopDirectoryOnly) - .Where(f => !".xproj".Equals(Path.GetExtension(f), StringComparison.OrdinalIgnoreCase)) - .ToList(); + List projects; + try + { + projects = [.. Directory.GetFiles(projectPath, "*.*proj") + .Where(p => !PathUtilities.OSSpecificPathComparer.Equals(Path.GetExtension(p), ".shproj"))]; + } + catch (Exception e) + { + logger.LogError(Resources.The_specified_path_0_is_invalid_1, projectPath, e.Message); + return false; + } if (projects.Count > 1) { @@ -138,14 +213,21 @@ private static bool TryFindProject(string searchBase, CommandLineOptions options if (projects.Count == 0) { - logger.LogError(Resources.Error_NoProjectsFound, projectPath); - return false; + if (options.ProjectPath != null) + { + logger.LogError(Resources.Could_not_find_msbuild_project_file_in_0, projectPath); + return false; + } + + return null; } projectPath = projects[0]; return true; } + Debug.Assert(options.ProjectPath != null); + if (!File.Exists(projectPath)) { logger.LogError(Resources.Error_ProjectPath_NotFound, projectPath); @@ -171,6 +253,12 @@ internal async Task RunAsync() if (options.List) { + if (rootProjectOptions.Representation.EntryPointFilePath != null) + { + logger.LogError("--list does not support file-based programs"); + return 1; + } + return await ListFilesAsync(processRunner, shutdownHandler.CancellationToken); } @@ -186,6 +274,11 @@ internal async Task RunAsync() var watcher = new HotReloadDotNetWatcher(context, console, runtimeProcessLauncherFactory: null); await watcher.WatchAsync(shutdownHandler.CancellationToken); } + else if (rootProjectOptions.Representation.EntryPointFilePath != null) + { + logger.LogError("File-based programs are only supported when Hot Reload is enabled"); + return 1; + } else { await DotNetWatcher.WatchAsync(context, shutdownHandler.CancellationToken); @@ -245,10 +338,14 @@ private bool IsHotReloadEnabled() private async Task ListFilesAsync(ProcessRunner processRunner, CancellationToken cancellationToken) { + // file-based programs are not supported with --list + Debug.Assert(rootProjectOptions.Representation.PhysicalPath != null); + var buildLogger = loggerFactory.CreateLogger(DotNetWatchContext.BuildLogComponentName); var fileSetFactory = new MSBuildFileSetFactory( - rootProjectOptions.ProjectPath, + rootProjectOptions.Representation.PhysicalPath, + rootProjectOptions.TargetFramework, rootProjectOptions.BuildArguments, processRunner, new BuildReporter(buildLogger, options.GlobalOptions, environmentOptions)); diff --git a/src/BuiltInTools/dotnet-watch/Resources.resx b/src/BuiltInTools/dotnet-watch/Resources.resx index 5688add72027..89103943c106 100644 --- a/src/BuiltInTools/dotnet-watch/Resources.resx +++ b/src/BuiltInTools/dotnet-watch/Resources.resx @@ -120,17 +120,19 @@ The project file '{0}' does not exist. + + The specified path '{0}' is invalid: {1} + Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - {Locked="--project"} + {Locked="MSBuild"}{Locked="--project"} - + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - {Locked="--project"} + {Locked="MSBuild"}{Locked="--project"} - - Cannot specify both '--quiet' and '--verbose' options. - {Locked="--quiet"}{Locked="--verbose"} + + Cannot specify both '{0}' and '{1}' options. Warning NETSDK1174: The abbreviation of -p for --project is deprecated. Please use --project. diff --git a/src/BuiltInTools/dotnet-watch/Watch/BuildEvaluator.cs b/src/BuiltInTools/dotnet-watch/Watch/BuildEvaluator.cs index 756abbda6bc4..8bfce7124efe 100644 --- a/src/BuiltInTools/dotnet-watch/Watch/BuildEvaluator.cs +++ b/src/BuiltInTools/dotnet-watch/Watch/BuildEvaluator.cs @@ -36,11 +36,17 @@ public BuildEvaluator(DotNetWatchContext context) } protected virtual MSBuildFileSetFactory CreateMSBuildFileSetFactory() - => new( - _context.RootProjectOptions.ProjectPath, + { + // file-based programs only supported in Hot Reload mode: + Debug.Assert(_context.RootProjectOptions.Representation.PhysicalPath != null); + + return new( + _context.RootProjectOptions.Representation.PhysicalPath, + _context.RootProjectOptions.TargetFramework, _context.RootProjectOptions.BuildArguments, _context.ProcessRunner, new BuildReporter(_context.BuildLogger, _context.Options, _context.EnvironmentOptions)); + } public IReadOnlyList GetProcessArguments(int iteration) { diff --git a/src/BuiltInTools/dotnet-watch/Watch/MsBuildFileSetFactory.cs b/src/BuiltInTools/dotnet-watch/Watch/MsBuildFileSetFactory.cs index 52f7f6d8985b..493028afd91d 100644 --- a/src/BuiltInTools/dotnet-watch/Watch/MsBuildFileSetFactory.cs +++ b/src/BuiltInTools/dotnet-watch/Watch/MsBuildFileSetFactory.cs @@ -20,6 +20,7 @@ namespace Microsoft.DotNet.Watch /// internal class MSBuildFileSetFactory( string rootProjectFile, + string? targetFramework, IEnumerable buildArguments, ProcessRunner processRunner, BuildReporter buildReporter) @@ -28,10 +29,13 @@ internal class MSBuildFileSetFactory( private const string WatchTargetsFileName = "DotNetWatch.targets"; public string RootProjectFile => rootProjectFile; + private EnvironmentOptions EnvironmentOptions => buildReporter.EnvironmentOptions; private ILogger Logger => buildReporter.Logger; private readonly ProjectGraphFactory _buildGraphFactory = new( + new ProjectRepresentation(rootProjectFile, entryPointFilePath: null), + targetFramework, globalOptions: BuildUtilities.ParseBuildProperties(buildArguments).ToImmutableDictionary(keySelector: arg => arg.key, elementSelector: arg => arg.value)); internal sealed class EvaluationResult(IReadOnlyDictionary files, ProjectGraph? projectGraph) @@ -129,7 +133,7 @@ void AddFile(string filePath, string? staticWebAssetPath) ProjectGraph? projectGraph = null; if (requireProjectGraph != null) { - projectGraph = _buildGraphFactory.TryLoadProjectGraph(rootProjectFile, Logger, requireProjectGraph.Value, cancellationToken); + projectGraph = _buildGraphFactory.TryLoadProjectGraph(Logger, requireProjectGraph.Value, cancellationToken); if (projectGraph == null && requireProjectGraph == true) { return null; diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.cs.xlf b/src/BuiltInTools/dotnet-watch/xlf/Resources.cs.xlf index 1d99d3ff575c..7aa5e7b4b623 100644 --- a/src/BuiltInTools/dotnet-watch/xlf/Resources.cs.xlf +++ b/src/BuiltInTools/dotnet-watch/xlf/Resources.cs.xlf @@ -2,26 +2,26 @@ - - Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - {0} obsahuje více souborů projektů MSBuild. Pomocí parametru --project zadejte, který soubor chcete použít. - {Locked="--project"} + + Cannot specify both '{0}' and '{1}' options. + Cannot specify both '{0}' and '{1}' options. + - + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - V {0} se nepovedlo najít soubor projektu MSBuild. Pomocí parametru --project zadejte, který projekt chcete použít. - {Locked="--project"} + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + {Locked="MSBuild"}{Locked="--project"} + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. + {0} obsahuje více souborů projektů MSBuild. Pomocí parametru --project zadejte, který soubor chcete použít. + {Locked="MSBuild"}{Locked="--project"} The project file '{0}' does not exist. Soubor projektu {0} neexistuje. - - Cannot specify both '--quiet' and '--verbose' options. - Možnosti --quiet a --verbose se nedají zadat spolu. - {Locked="--quiet"}{Locked="--verbose"} - @@ -142,6 +142,11 @@ Příklady: + + The specified path '{0}' is invalid: {1} + The specified path '{0}' is invalid: {1} + + Warning NETSDK1174: The abbreviation of -p for --project is deprecated. Please use --project. Upozornění NETSDK1174: Zkratka -p pro --project je zastaralá. Použijte prosím --project. diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.de.xlf b/src/BuiltInTools/dotnet-watch/xlf/Resources.de.xlf index 32d6954bd18f..9413f5fd572d 100644 --- a/src/BuiltInTools/dotnet-watch/xlf/Resources.de.xlf +++ b/src/BuiltInTools/dotnet-watch/xlf/Resources.de.xlf @@ -2,26 +2,26 @@ - - Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - In "{0}" wurden mehrere MSBuild-Projektdateien gefunden. Geben Sie über die Option "--project" an, welche verwendet werden soll. - {Locked="--project"} + + Cannot specify both '{0}' and '{1}' options. + Cannot specify both '{0}' and '{1}' options. + - + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - In "{0}" wurde keine MSBuild-Projektdatei gefunden. Geben Sie das zu verwendende Projekt über die Option "--project" an. - {Locked="--project"} + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + {Locked="MSBuild"}{Locked="--project"} + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. + In "{0}" wurden mehrere MSBuild-Projektdateien gefunden. Geben Sie über die Option "--project" an, welche verwendet werden soll. + {Locked="MSBuild"}{Locked="--project"} The project file '{0}' does not exist. Die Projektdatei "{0}" ist nicht vorhanden. - - Cannot specify both '--quiet' and '--verbose' options. - Die Optionen "--quiet" und "--verbose" können nicht gleichzeitig angegeben werden. - {Locked="--quiet"}{Locked="--verbose"} - @@ -142,6 +142,11 @@ Beispiele: + + The specified path '{0}' is invalid: {1} + The specified path '{0}' is invalid: {1} + + Warning NETSDK1174: The abbreviation of -p for --project is deprecated. Please use --project. Warnung NETSDK1174: Die Abkürzung von „-p“ für „--project“ ist veraltet. Verwenden Sie „--project“. diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.es.xlf b/src/BuiltInTools/dotnet-watch/xlf/Resources.es.xlf index 4c65ff3ab663..b8d10537fe5f 100644 --- a/src/BuiltInTools/dotnet-watch/xlf/Resources.es.xlf +++ b/src/BuiltInTools/dotnet-watch/xlf/Resources.es.xlf @@ -2,26 +2,26 @@ - - Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - Se encontraron múltiples archivos del proyecto MSBuild en "{0}". Especifique cuál debe usarse con la opción --project. - {Locked="--project"} + + Cannot specify both '{0}' and '{1}' options. + Cannot specify both '{0}' and '{1}' options. + - + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - No se encontró ningún archivo del proyecto MSBuild en "{0}". Especifique qué proyecto debe utilizarse con la opción --project. - {Locked="--project"} + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + {Locked="MSBuild"}{Locked="--project"} + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. + Se encontraron múltiples archivos del proyecto MSBuild en "{0}". Especifique cuál debe usarse con la opción --project. + {Locked="MSBuild"}{Locked="--project"} The project file '{0}' does not exist. El archivo de proyecto "{0}" no existe. - - Cannot specify both '--quiet' and '--verbose' options. - No se pueden especificar ambas opciones, "--quiet" y "--verbose". - {Locked="--quiet"}{Locked="--verbose"} - @@ -142,6 +142,11 @@ Ejemplos: + + The specified path '{0}' is invalid: {1} + The specified path '{0}' is invalid: {1} + + Warning NETSDK1174: The abbreviation of -p for --project is deprecated. Please use --project. Advertencia NETSDK1174: La abreviatura de -p para --project está en desuso. Use --project. diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.fr.xlf b/src/BuiltInTools/dotnet-watch/xlf/Resources.fr.xlf index 20ab736f3a68..c8bee9490040 100644 --- a/src/BuiltInTools/dotnet-watch/xlf/Resources.fr.xlf +++ b/src/BuiltInTools/dotnet-watch/xlf/Resources.fr.xlf @@ -2,26 +2,26 @@ - - Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - Plusieurs fichiers projet MSBuild trouvés dans '{0}'. Spécifiez celui qui doit être utilisé avec l'option --project. - {Locked="--project"} + + Cannot specify both '{0}' and '{1}' options. + Cannot specify both '{0}' and '{1}' options. + - + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Fichier projet MSBuild introuvable dans '{0}'. Spécifiez le projet à utiliser avec l'option --project. - {Locked="--project"} + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + {Locked="MSBuild"}{Locked="--project"} + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. + Plusieurs fichiers projet MSBuild trouvés dans '{0}'. Spécifiez celui qui doit être utilisé avec l'option --project. + {Locked="MSBuild"}{Locked="--project"} The project file '{0}' does not exist. Le fichier projet '{0}' n'existe pas. - - Cannot specify both '--quiet' and '--verbose' options. - Impossible de spécifier les options '--quiet' et '--verbose'. - {Locked="--quiet"}{Locked="--verbose"} - @@ -142,6 +142,11 @@ Exemples : + + The specified path '{0}' is invalid: {1} + The specified path '{0}' is invalid: {1} + + Warning NETSDK1174: The abbreviation of -p for --project is deprecated. Please use --project. AVERTISSEMENT NETSDK1174 : l’abréviation de-p pour--project est déconseillée. Veuillez utiliser--project. diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.it.xlf b/src/BuiltInTools/dotnet-watch/xlf/Resources.it.xlf index b930c49675fc..8070c00fd221 100644 --- a/src/BuiltInTools/dotnet-watch/xlf/Resources.it.xlf +++ b/src/BuiltInTools/dotnet-watch/xlf/Resources.it.xlf @@ -2,26 +2,26 @@ - - Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - In '{0}' sono stati trovati più file di progetto MSBuild. Per specificare quello desiderato, usare l'opzione --project. - {Locked="--project"} + + Cannot specify both '{0}' and '{1}' options. + Cannot specify both '{0}' and '{1}' options. + - + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - In '{0}' non è stato possibile trovare alcun file di progetto MSBuild. Per specificare quello desiderato, usare l'opzione --project. - {Locked="--project"} + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + {Locked="MSBuild"}{Locked="--project"} + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. + In '{0}' sono stati trovati più file di progetto MSBuild. Per specificare quello desiderato, usare l'opzione --project. + {Locked="MSBuild"}{Locked="--project"} The project file '{0}' does not exist. Il file di progetto '{0}' non esiste. - - Cannot specify both '--quiet' and '--verbose' options. - Non è possibile specificare entrambe le opzioni '--quiet' e '--verbose'. - {Locked="--quiet"}{Locked="--verbose"} - @@ -142,6 +142,11 @@ Esempi: + + The specified path '{0}' is invalid: {1} + The specified path '{0}' is invalid: {1} + + Warning NETSDK1174: The abbreviation of -p for --project is deprecated. Please use --project. Avviso NETSDK1174: l'abbreviazione di -p per --project è deprecata. Usare --project. diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.ja.xlf b/src/BuiltInTools/dotnet-watch/xlf/Resources.ja.xlf index 64088465e0c2..c1038676f546 100644 --- a/src/BuiltInTools/dotnet-watch/xlf/Resources.ja.xlf +++ b/src/BuiltInTools/dotnet-watch/xlf/Resources.ja.xlf @@ -2,26 +2,26 @@ - - Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - 複数の MSBuild プロジェクト ファイルが '{0}' で見つかりました。使用するものを --project オプションで指定してください。 - {Locked="--project"} + + Cannot specify both '{0}' and '{1}' options. + Cannot specify both '{0}' and '{1}' options. + - + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - '{0}' で MSBuild プロジェクト ファイルが見つかりませんでした。使用するプロジェクトを --project オプションで指定してください。 - {Locked="--project"} + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + {Locked="MSBuild"}{Locked="--project"} + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. + 複数の MSBuild プロジェクト ファイルが '{0}' で見つかりました。使用するものを --project オプションで指定してください。 + {Locked="MSBuild"}{Locked="--project"} The project file '{0}' does not exist. プロジェクト ファイル '{0}' が存在しません。 - - Cannot specify both '--quiet' and '--verbose' options. - '--quiet' と '--verbose' の両方のオプションを指定することはできません。 - {Locked="--quiet"}{Locked="--verbose"} - @@ -142,6 +142,11 @@ Examples: + + The specified path '{0}' is invalid: {1} + The specified path '{0}' is invalid: {1} + + Warning NETSDK1174: The abbreviation of -p for --project is deprecated. Please use --project. 警告 NETSDK1174: --project の省略形である -p は推奨されていません。--project を使用してください。 diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.ko.xlf b/src/BuiltInTools/dotnet-watch/xlf/Resources.ko.xlf index 62c65710b56d..e41bd5548791 100644 --- a/src/BuiltInTools/dotnet-watch/xlf/Resources.ko.xlf +++ b/src/BuiltInTools/dotnet-watch/xlf/Resources.ko.xlf @@ -2,26 +2,26 @@ - - Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - '{0}'에서 여러 MSBuild 프로젝트 파일을 찾았습니다. --project 옵션을 사용하여 사용할 파일을 지정하세요. - {Locked="--project"} + + Cannot specify both '{0}' and '{1}' options. + Cannot specify both '{0}' and '{1}' options. + - + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - '{0}'에서 MSBuild 프로젝트 파일을 찾을 수 없습니다. --project 옵션을 사용하여 사용할 파일을 지정하세요. - {Locked="--project"} + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + {Locked="MSBuild"}{Locked="--project"} + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. + '{0}'에서 여러 MSBuild 프로젝트 파일을 찾았습니다. --project 옵션을 사용하여 사용할 파일을 지정하세요. + {Locked="MSBuild"}{Locked="--project"} The project file '{0}' does not exist. 프로젝트 파일 '{0}'이(가) 없습니다. - - Cannot specify both '--quiet' and '--verbose' options. - '--quiet' 옵션과 '--verbose' 옵션을 둘 다 지정할 수는 없습니다. - {Locked="--quiet"}{Locked="--verbose"} - @@ -142,6 +142,11 @@ Examples: + + The specified path '{0}' is invalid: {1} + The specified path '{0}' is invalid: {1} + + Warning NETSDK1174: The abbreviation of -p for --project is deprecated. Please use --project. 경고 NETSDK1174: --project에 대한 약어 -p는 더 이상 사용되지 않습니다. --project를 사용하세요. diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.pl.xlf b/src/BuiltInTools/dotnet-watch/xlf/Resources.pl.xlf index 5602735ba563..82b3fe490047 100644 --- a/src/BuiltInTools/dotnet-watch/xlf/Resources.pl.xlf +++ b/src/BuiltInTools/dotnet-watch/xlf/Resources.pl.xlf @@ -2,26 +2,26 @@ - - Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - W elemencie „{0}” znaleziono wiele plików projektów MSBuild. Określ projekt do użycia za pomocą opcji --project. - {Locked="--project"} + + Cannot specify both '{0}' and '{1}' options. + Cannot specify both '{0}' and '{1}' options. + - + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Nie można znaleźć pliku projektu MSBuild w elemencie „{0}”. Określ projekt do użycia za pomocą opcji --project. - {Locked="--project"} + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + {Locked="MSBuild"}{Locked="--project"} + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. + W elemencie „{0}” znaleziono wiele plików projektów MSBuild. Określ projekt do użycia za pomocą opcji --project. + {Locked="MSBuild"}{Locked="--project"} The project file '{0}' does not exist. Plik projektu „{0}” nie istnieje. - - Cannot specify both '--quiet' and '--verbose' options. - Nie można jednocześnie określić opcji „--quiet” i „--verbose”. - {Locked="--quiet"}{Locked="--verbose"} - @@ -142,6 +142,11 @@ Przykłady: + + The specified path '{0}' is invalid: {1} + The specified path '{0}' is invalid: {1} + + Warning NETSDK1174: The abbreviation of -p for --project is deprecated. Please use --project. Ostrzeżenie NETSDK1174: Skrót -p dla polecenia --project jest przestarzały. Użyj polecenia --project. diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.pt-BR.xlf b/src/BuiltInTools/dotnet-watch/xlf/Resources.pt-BR.xlf index 8cc2adbbb8e8..50d1a6500c7a 100644 --- a/src/BuiltInTools/dotnet-watch/xlf/Resources.pt-BR.xlf +++ b/src/BuiltInTools/dotnet-watch/xlf/Resources.pt-BR.xlf @@ -2,26 +2,26 @@ - - Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - Foram encontrados vários arquivos de projeto do MSBuild em '{0}'. Especifique qual deve ser usado com a opção --project. - {Locked="--project"} + + Cannot specify both '{0}' and '{1}' options. + Cannot specify both '{0}' and '{1}' options. + - + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Não foi possível encontrar um arquivo de projeto do MSBuild em '{0}'. Especifique qual projeto deve ser usado com a opção --project. - {Locked="--project"} + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + {Locked="MSBuild"}{Locked="--project"} + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. + Foram encontrados vários arquivos de projeto do MSBuild em '{0}'. Especifique qual deve ser usado com a opção --project. + {Locked="MSBuild"}{Locked="--project"} The project file '{0}' does not exist. O arquivo de projeto '{0}' não existe. - - Cannot specify both '--quiet' and '--verbose' options. - Não é possível especificar as opções '--quiet' e '--verbose'. - {Locked="--quiet"}{Locked="--verbose"} - @@ -142,6 +142,11 @@ Exemplos: + + The specified path '{0}' is invalid: {1} + The specified path '{0}' is invalid: {1} + + Warning NETSDK1174: The abbreviation of -p for --project is deprecated. Please use --project. Aviso NETSDK1174: a abreviação de-p para--project é preterida. Use --project. diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.ru.xlf b/src/BuiltInTools/dotnet-watch/xlf/Resources.ru.xlf index 3d21092dbf9a..de5e711d342f 100644 --- a/src/BuiltInTools/dotnet-watch/xlf/Resources.ru.xlf +++ b/src/BuiltInTools/dotnet-watch/xlf/Resources.ru.xlf @@ -2,26 +2,26 @@ - - Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - В "{0}" обнаружено несколько файлов проекта MSBuild. Укажите файл, который нужно использовать, с помощью параметра --project. - {Locked="--project"} + + Cannot specify both '{0}' and '{1}' options. + Cannot specify both '{0}' and '{1}' options. + - + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Не удалось найти файл проекта MSBuild в "{0}". Укажите проект, который нужно использовать, с помощью параметра --project. - {Locked="--project"} + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + {Locked="MSBuild"}{Locked="--project"} + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. + В "{0}" обнаружено несколько файлов проекта MSBuild. Укажите файл, который нужно использовать, с помощью параметра --project. + {Locked="MSBuild"}{Locked="--project"} The project file '{0}' does not exist. Файл проекта "{0}" не существует. - - Cannot specify both '--quiet' and '--verbose' options. - Невозможно одновременно указать параметры "--quiet" и "--verbose". - {Locked="--quiet"}{Locked="--verbose"} - @@ -142,6 +142,11 @@ Examples: + + The specified path '{0}' is invalid: {1} + The specified path '{0}' is invalid: {1} + + Warning NETSDK1174: The abbreviation of -p for --project is deprecated. Please use --project. Предупреждение NETSDK1174: сокращение "-p" для "--project" не рекомендуется. Используйте "--project". diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.tr.xlf b/src/BuiltInTools/dotnet-watch/xlf/Resources.tr.xlf index 342799edfdd4..e5e8100659c5 100644 --- a/src/BuiltInTools/dotnet-watch/xlf/Resources.tr.xlf +++ b/src/BuiltInTools/dotnet-watch/xlf/Resources.tr.xlf @@ -2,26 +2,26 @@ - - Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - '{0}' içinde birden fazla MSBuild proje dosyası bulundu. --project seçeneği ile kullanılacak proje dosyalarını belirtin. - {Locked="--project"} + + Cannot specify both '{0}' and '{1}' options. + Cannot specify both '{0}' and '{1}' options. + - + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - '{0}' içinde MSBuild proje dosyası bulunamadı. --project seçeneği ile kullanılacak projeyi belirtin. - {Locked="--project"} + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + {Locked="MSBuild"}{Locked="--project"} + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. + '{0}' içinde birden fazla MSBuild proje dosyası bulundu. --project seçeneği ile kullanılacak proje dosyalarını belirtin. + {Locked="MSBuild"}{Locked="--project"} The project file '{0}' does not exist. Proje dosyası '{0}' yok. - - Cannot specify both '--quiet' and '--verbose' options. - Hem '--quiet' hem de '--verbose' seçenekleri belirtilemez. - {Locked="--quiet"}{Locked="--verbose"} - @@ -142,6 +142,11 @@ Açıklamalar: + + The specified path '{0}' is invalid: {1} + The specified path '{0}' is invalid: {1} + + Warning NETSDK1174: The abbreviation of -p for --project is deprecated. Please use --project. Uyarı NETSDK1174: --project için -p kısaltması kullanımdan kaldırıldı. Lütfen --project kullanın. diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.zh-Hans.xlf b/src/BuiltInTools/dotnet-watch/xlf/Resources.zh-Hans.xlf index 59619297efcd..1389bd0cf5f3 100644 --- a/src/BuiltInTools/dotnet-watch/xlf/Resources.zh-Hans.xlf +++ b/src/BuiltInTools/dotnet-watch/xlf/Resources.zh-Hans.xlf @@ -2,26 +2,26 @@ - - Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - 在“{0}”中找到多个 MSBuild 项目文件。请指定要将哪一个文件用于 --project 选项。 - {Locked="--project"} + + Cannot specify both '{0}' and '{1}' options. + Cannot specify both '{0}' and '{1}' options. + - + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - 无法在“{0}”中找到 MSBuild 项目文件。请指定要用于 --project 选项的项目。 - {Locked="--project"} + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + {Locked="MSBuild"}{Locked="--project"} + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. + 在“{0}”中找到多个 MSBuild 项目文件。请指定要将哪一个文件用于 --project 选项。 + {Locked="MSBuild"}{Locked="--project"} The project file '{0}' does not exist. 项目文件“{0}” 不存在。 - - Cannot specify both '--quiet' and '--verbose' options. - 不能同时指定 "--quiet" 和 "--verbose" 选项。 - {Locked="--quiet"}{Locked="--verbose"} - @@ -143,6 +143,11 @@ Examples: + + The specified path '{0}' is invalid: {1} + The specified path '{0}' is invalid: {1} + + Warning NETSDK1174: The abbreviation of -p for --project is deprecated. Please use --project. 警告 NETSDK1174: 已弃用使用缩写“-p”来代表“--project”。请使用“--project”。 diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.zh-Hant.xlf b/src/BuiltInTools/dotnet-watch/xlf/Resources.zh-Hant.xlf index 383e106d97cf..2614a48063f1 100644 --- a/src/BuiltInTools/dotnet-watch/xlf/Resources.zh-Hant.xlf +++ b/src/BuiltInTools/dotnet-watch/xlf/Resources.zh-Hant.xlf @@ -2,26 +2,26 @@ - - Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - 在 '{0}' 中找到多個 MSBuild 專案檔。請指定要搭配 --project 選項使用的專案檔。 - {Locked="--project"} + + Cannot specify both '{0}' and '{1}' options. + Cannot specify both '{0}' and '{1}' options. + - + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - 在 '{0}' 中找不到 MSBuild 專案檔。請指定要搭配 --project 選項使用的專案。 - {Locked="--project"} + Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + {Locked="MSBuild"}{Locked="--project"} + + + Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. + 在 '{0}' 中找到多個 MSBuild 專案檔。請指定要搭配 --project 選項使用的專案檔。 + {Locked="MSBuild"}{Locked="--project"} The project file '{0}' does not exist. 專案檔 '{0}' 不存在。 - - Cannot specify both '--quiet' and '--verbose' options. - 無法同時指定 '--quiet' 和 '--verbose' 選項。 - {Locked="--quiet"}{Locked="--verbose"} - @@ -142,6 +142,11 @@ Examples: + + The specified path '{0}' is invalid: {1} + The specified path '{0}' is invalid: {1} + + Warning NETSDK1174: The abbreviation of -p for --project is deprecated. Please use --project. 警告 NETSDK1174: --project 已取代縮寫 -p。請使用 --project。 diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/Microsoft.DotNet.FileBasedPrograms.projitems b/src/Cli/Microsoft.DotNet.FileBasedPrograms/Microsoft.DotNet.FileBasedPrograms.projitems index 31ce6cd9eabc..4ee12260067b 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/Microsoft.DotNet.FileBasedPrograms.projitems +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/Microsoft.DotNet.FileBasedPrograms.projitems @@ -10,6 +10,8 @@ - + + Designer + \ No newline at end of file diff --git a/src/Microsoft.CodeAnalysis.NetAnalyzers/src/Microsoft.CodeAnalysis.NetAnalyzers.sarif b/src/Microsoft.CodeAnalysis.NetAnalyzers/src/Microsoft.CodeAnalysis.NetAnalyzers.sarif index 498b1e3a5e93..297355660e97 100644 --- a/src/Microsoft.CodeAnalysis.NetAnalyzers/src/Microsoft.CodeAnalysis.NetAnalyzers.sarif +++ b/src/Microsoft.CodeAnalysis.NetAnalyzers/src/Microsoft.CodeAnalysis.NetAnalyzers.sarif @@ -5,7 +5,7 @@ { "tool": { "name": "Microsoft.CodeAnalysis.CSharp.NetAnalyzers", - "version": "10.0.300", + "version": "10.0.200", "language": "en-US" }, "rules": { @@ -708,7 +708,7 @@ { "tool": { "name": "Microsoft.CodeAnalysis.NetAnalyzers", - "version": "10.0.300", + "version": "10.0.200", "language": "en-US" }, "rules": { @@ -6503,7 +6503,7 @@ { "tool": { "name": "Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers", - "version": "10.0.300", + "version": "10.0.200", "language": "en-US" }, "rules": { diff --git a/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs b/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs index 0245bef68abc..4e7fa874cc1b 100644 --- a/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs +++ b/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs @@ -64,7 +64,7 @@ internal VirtualProjectBuilder( /// /// Kept in sync with the default dotnet new console project file (enforced by DotnetProjectConvertTests.SameAsTemplate). /// - internal static IEnumerable<(string name, string value)> GetDefaultProperties(string targetFramework) => + public static IEnumerable<(string name, string value)> GetDefaultProperties(string targetFramework) => [ ("OutputType", "Exe"), ("TargetFramework", targetFramework), diff --git a/test/Microsoft.DotNet.HotReload.Test.Utilities/TestAssetExtensions.cs b/test/Microsoft.DotNet.HotReload.Test.Utilities/TestAssetExtensions.cs index 17862d3f46c6..525780499d45 100644 --- a/test/Microsoft.DotNet.HotReload.Test.Utilities/TestAssetExtensions.cs +++ b/test/Microsoft.DotNet.HotReload.Test.Utilities/TestAssetExtensions.cs @@ -10,5 +10,5 @@ internal static class TestAssetExtensions public static string GetWatchTestOutputPath(this TestAsset asset) => Environment.GetEnvironmentVariable("HELIX_WORKITEM_UPLOAD_ROOT") is { } ciOutputRoot ? Path.Combine(ciOutputRoot, ".hotreload", asset.Name) - : asset.Path + ".hotreload"; + : Path.Combine(asset.Path, ".hotreload"); } diff --git a/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/DotNetWatchOptionsTests.cs b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/DotNetWatchOptionsTests.cs index 2420ce3e7568..0c6775ea30ef 100644 --- a/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/DotNetWatchOptionsTests.cs +++ b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/DotNetWatchOptionsTests.cs @@ -8,19 +8,19 @@ namespace Microsoft.DotNet.Watch.UnitTests; public class DotNetWatchOptionsTests { [Fact] - public void TryParse_RequiredProjectOption() + public void TryParse_RequiredSdkOption() { - // Project option is missing - var args = new[] { "--verbose", "a", "b" }; + // --sdk option is missing + var args = new[] { "--project", "proj", "a", "b" }; Assert.False(DotNetWatchOptions.TryParse(args, out var options)); Assert.Null(options); } [Fact] - public void TryParse_RequiredSdkOption() + public void TryParse_RequiredProjectOrFileOption() { - // Project option is missing - var args = new[] { "--project", "proj", "a", "b" }; + // --project and --file options are missing + var args = new[] { "--verbose", "a", "b" }; Assert.False(DotNetWatchOptions.TryParse(args, out var options)); Assert.Null(options); } @@ -31,10 +31,28 @@ public void TryParse_ProjectAndSdkPaths() var args = new[] { "--sdk", "sdk", "--project", "myproject.csproj" }; Assert.True(DotNetWatchOptions.TryParse(args, out var options)); Assert.Equal("sdk", options.SdkDirectory); - Assert.Equal("myproject.csproj", options.ProjectPath); + Assert.Equal("myproject.csproj", options.Project.PhysicalPath); + Assert.Empty(options.ApplicationArguments); + } + + [Fact] + public void TryParse_FilePath() + { + var args = new[] { "--sdk", "sdk", "--file", "file.cs" }; + Assert.True(DotNetWatchOptions.TryParse(args, out var options)); + Assert.Equal("sdk", options.SdkDirectory); + Assert.Equal("file.cs", options.Project.EntryPointFilePath); Assert.Empty(options.ApplicationArguments); } + [Fact] + public void TryParse_ProjectAndFilePaths() + { + var args = new[] { "--sdk", "sdk", "--project", "myproject.csproj", "--file", "file.cs" }; + Assert.False(DotNetWatchOptions.TryParse(args, out var options)); + Assert.Null(options); + } + [Fact] public void TryParse_ApplicationArguments() { @@ -95,22 +113,32 @@ public void TryParse_ConflictingOptions() } [Fact] - public void TryParse_MultipleOptionValues() + public void TryParse_Project_MultipleValues() { // Project option should only accept one value var args = new[] { "--sdk", "sdk", "--project", "proj1", "proj2" }; Assert.True(DotNetWatchOptions.TryParse(args, out var options)); - Assert.Equal("proj1", options.ProjectPath); + Assert.Equal("proj1", options.Project.PhysicalPath); AssertEx.SequenceEqual(["proj2"], options.ApplicationArguments); } - + + [Fact] + public void TryParse_File_MultipleValues() + { + // Project option should only accept one value + var args = new[] { "--sdk", "sdk", "--file", "file1.cs", "file2.cs" }; + Assert.True(DotNetWatchOptions.TryParse(args, out var options)); + Assert.Equal("file1.cs", options.Project.EntryPointFilePath); + AssertEx.SequenceEqual(["file2.cs"], options.ApplicationArguments); + } + [Fact] public void TryParse_AllOptionsSet() { var args = new[] { "--sdk", "sdk", "--project", "myapp.csproj", "--verbose", "--no-launch-profile", "arg1", "arg2", "arg3" }; Assert.True(DotNetWatchOptions.TryParse(args, out var options)); - Assert.Equal("myapp.csproj", options.ProjectPath); + Assert.Equal("myapp.csproj", options.Project.PhysicalPath); Assert.Equal(LogLevel.Debug, options.LogLevel); Assert.True(options.NoLaunchProfile); AssertEx.SequenceEqual(["arg1", "arg2", "arg3"], options.ApplicationArguments); diff --git a/test/dotnet-watch.Tests/Build/EvaluationTests.cs b/test/dotnet-watch.Tests/Build/EvaluationTests.cs index 2f8d127af74a..2d81dd164d8c 100644 --- a/test/dotnet-watch.Tests/Build/EvaluationTests.cs +++ b/test/dotnet-watch.Tests/Build/EvaluationTests.cs @@ -446,7 +446,7 @@ public async Task ProjectReferences_Graph() var processRunner = new ProcessRunner(processCleanupTimeout: TimeSpan.Zero); var buildReporter = new BuildReporter(_logger, new GlobalOptions(), options); - var filesetFactory = new MSBuildFileSetFactory(projectA, buildArguments: ["/p:_DotNetWatchTraceOutput=true"], processRunner, buildReporter); + var filesetFactory = new MSBuildFileSetFactory(projectA, targetFramework: null, buildArguments: ["/p:_DotNetWatchTraceOutput=true"], processRunner, buildReporter); var result = await filesetFactory.TryCreateAsync(requireProjectGraph: null, CancellationToken.None); Assert.NotNull(result); @@ -511,7 +511,7 @@ public async Task MsbuildOutput() var processRunner = new ProcessRunner(processCleanupTimeout: TimeSpan.Zero); var buildReporter = new BuildReporter(_logger, new GlobalOptions(), options); - var factory = new MSBuildFileSetFactory(project1Path, buildArguments: [], processRunner, buildReporter); + var factory = new MSBuildFileSetFactory(project1Path, targetFramework: null, buildArguments: [], processRunner, buildReporter); var result = await factory.TryCreateAsync(requireProjectGraph: null, CancellationToken.None); Assert.Null(result); @@ -549,7 +549,7 @@ async Task VerifyTargetsEvaluation() var processRunner = new ProcessRunner(processCleanupTimeout: TimeSpan.Zero); var buildArguments = targetFramework != null ? new[] { "/p:TargetFramework=" + targetFramework } : []; var buildReporter = new BuildReporter(_logger, new GlobalOptions(), options); - var factory = new MSBuildFileSetFactory(rootProjectPath, buildArguments, processRunner, buildReporter); + var factory = new MSBuildFileSetFactory(rootProjectPath, targetFramework: null, buildArguments, processRunner, buildReporter); var targetsResult = await factory.TryCreateAsync(requireProjectGraph: null, CancellationToken.None); Assert.NotNull(targetsResult); diff --git a/test/dotnet-watch.Tests/Build/ProjectGraphFactoryTests.cs b/test/dotnet-watch.Tests/Build/ProjectGraphFactoryTests.cs new file mode 100644 index 000000000000..007354bb7158 --- /dev/null +++ b/test/dotnet-watch.Tests/Build/ProjectGraphFactoryTests.cs @@ -0,0 +1,103 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.DotNet.FileBasedPrograms; + +namespace Microsoft.DotNet.Watch.UnitTests; + +public class ProjectGraphFactoryTests(ITestOutputHelper output) +{ + private readonly TestAssetsManager _testAssetManager = new(output); + private readonly TestLogger _testLogger = new(); + + [Fact] + public void RegularProject() + { + var testAsset = _testAssetManager.CopyTestAsset("WatchNoDepsApp") + .WithSource(); + + var projectPath = Path.Combine(testAsset.Path, "WatchNoDepsApp.csproj"); + + var projectRepr = new ProjectRepresentation(projectPath, entryPointFilePath: null); + var factory = new ProjectGraphFactory(projectRepr, targetFramework: null, globalOptions: []); + + var graph = factory.TryLoadProjectGraph(_testLogger, projectGraphRequired: true, CancellationToken.None); + Assert.NotNull(graph); + + var root = graph.GraphRoots.Single(); + Assert.Equal(projectPath, root.ProjectInstance.FullPath); + } + + [Fact] + public void VirtualProject() + { + var dir = _testAssetManager.CreateTestDirectory().Path; + + var entryPointFilePath = Path.Combine(dir, "App.cs"); + File.WriteAllText(entryPointFilePath, """ + Console.WriteLine(1); + """); + + var projectRepr = new ProjectRepresentation(projectPath: null, entryPointFilePath); + var factory = new ProjectGraphFactory(projectRepr, targetFramework: null, globalOptions: []); + + var graph = factory.TryLoadProjectGraph(_testLogger, projectGraphRequired: true, CancellationToken.None); + Assert.NotNull(graph); + + var root = graph.GraphRoots.Single(); + Assert.Equal(Path.ChangeExtension(entryPointFilePath, ".csproj"), root.ProjectInstance.FullPath); + } + + [Fact] + public void VirtualProject_Error() + { + var dir = _testAssetManager.CreateTestDirectory().Path; + + var entryPointFilePath = Path.Combine(dir, "App.cs"); + File.WriteAllText(entryPointFilePath, """ + #:project NonExistent.csproj + """); + + var projectRepr = new ProjectRepresentation(projectPath: null, entryPointFilePath); + var factory = new ProjectGraphFactory(projectRepr, targetFramework: null, globalOptions: []); + + var graph = factory.TryLoadProjectGraph(_testLogger, projectGraphRequired: true, CancellationToken.None); + Assert.Null(graph); + + var message = string.Format(FileBasedProgramsResources.InvalidProjectDirective, + string.Format(FileBasedProgramsResources.CouldNotFindProjectOrDirectory, Path.Combine(dir, "NonExistent.csproj"))); + + AssertEx.SequenceEqual( + [ + $"[Error] {entryPointFilePath}(1): {message}", + "[Debug] Failed to load project graph." + ], _testLogger.GetAndClearMessages()); + } + + [Fact] + public void VirtualProject_ProjectDirective() + { + var testAsset = _testAssetManager.CopyTestAsset("WatchNoDepsApp") + .WithSource(); + + var projectPath = Path.Combine(testAsset.Path, "WatchNoDepsApp.csproj"); + var scriptsDir = Path.Combine(testAsset.Path, ".scripts"); + Directory.CreateDirectory(scriptsDir); + + var entryPointFilePath = Path.Combine(scriptsDir, "Script.cs"); + + File.WriteAllText(entryPointFilePath, """ + #:project ..\WatchNoDepsApp.csproj + """); + + var projectRepr = new ProjectRepresentation(projectPath: null, entryPointFilePath); + var factory = new ProjectGraphFactory(projectRepr, targetFramework: null, globalOptions: []); + + var graph = factory.TryLoadProjectGraph(_testLogger, projectGraphRequired: true, CancellationToken.None); + Assert.NotNull(graph); + + AssertEx.SequenceEqual( + [projectPath, Path.ChangeExtension(entryPointFilePath, ".csproj")], + graph.ProjectNodesTopologicallySorted.Select(p => p.ProjectInstance.FullPath)); + } +} diff --git a/test/dotnet-watch.Tests/CommandLine/CommandLineOptionsTests.cs b/test/dotnet-watch.Tests/CommandLine/CommandLineOptionsTests.cs index 15344134ce51..39676d595a0e 100644 --- a/test/dotnet-watch.Tests/CommandLine/CommandLineOptionsTests.cs +++ b/test/dotnet-watch.Tests/CommandLine/CommandLineOptionsTests.cs @@ -106,6 +106,13 @@ public void WatchOptions_NotPassedThrough( AssertEx.SequenceEqual([], options.CommandArguments); } + [Fact] + public void QuietAndVerbose() + { + VerifyErrors(["--quiet", "--verbose"], + expectedErrors: [$"[Error] {string.Format(Resources.Cannot_specify_both_0_and_1_options, "--quiet", "--verbose")}"]); + } + [Fact] public void RunOptions_LaunchProfile_Watch() { @@ -356,7 +363,7 @@ public void OptionDuplicates_Allowed_Bool( } [Fact] - public void MultiplePropertyValues() + public void OptionDuplicates_Property() { var options = VerifyOptions(["--property", "P1=V1", "run", "--property", "P2=V2"]); AssertEx.SequenceEqual(["--property:P1=V1", "--property:P2=V2", NugetInteractiveProperty], options.BuildArguments); @@ -366,7 +373,9 @@ public void MultiplePropertyValues() } [Theory] + [InlineData("--file")] [InlineData("--project")] + [InlineData("-p")] [InlineData("--framework")] public void OptionDuplicates_NotAllowed(string option) { @@ -390,30 +399,46 @@ public void ParsesRemainingArgs(string[] args, string[] expected) } [Fact] - public void CannotHaveQuietAndVerbose() + public void Project_ShortForm() { - VerifyErrors(["--quiet", "--verbose"], - $"[Error] {Resources.Error_QuietAndVerboseSpecified}"); + var options = VerifyOptions(["-p", "MyProject.csproj"], + expectedMessages: [$"[Warning] {Resources.Warning_ProjectAbbreviationDeprecated}"]); + + Assert.Equal("MyProject.csproj", options.ProjectPath); } [Fact] - public void ShortFormForProjectArgumentPrintsWarning() + public void Project_ShortAndLongForm() { - var options = VerifyOptions(["-p", "MyProject.csproj"], - expectedMessages: [$"[Warning] {Resources.Warning_ProjectAbbreviationDeprecated}"]); + VerifyErrors(["-p", "MyProject1.csproj", "--project", "MyProject2.csproj"], + expectedErrors: [$"[Error] {string.Format(Resources.Cannot_specify_both_0_and_1_options, "--project", "-p")}"]); + } - Assert.Equal("MyProject.csproj", options.ProjectPath); + [Theory] + [InlineData("-p")] + [InlineData("--project")] + public void Project_File(string projectOption) + { + VerifyErrors([projectOption, "MyProject1.csproj", "--file", "a.cs"], + expectedErrors: [$"[Error] {string.Format(Resources.Cannot_specify_both_0_and_1_options, "--file", projectOption)}"]); } [Fact] - public void LongFormForProjectArgumentWorks() + public void Project_LongForm() { var options = VerifyOptions(["--project", "MyProject.csproj"]); Assert.Equal("MyProject.csproj", options.ProjectPath); } [Fact] - public void LongFormForLaunchProfileArgumentWorks() + public void File() + { + var options = VerifyOptions(["--file", "MyFile.cs"]); + Assert.Equal("MyFile.cs", options.FilePath); + } + + [Fact] + public void LaunchProfile_LongForm() { var options = VerifyOptions(["--launch-profile", "CustomLaunchProfile"]); Assert.NotNull(options); @@ -421,7 +446,7 @@ public void LongFormForLaunchProfileArgumentWorks() } [Fact] - public void ShortFormForLaunchProfileArgumentWorks() + public void LaunchProfile_ShortForm() { var options = VerifyOptions(["-lp", "CustomLaunchProfile"]); Assert.Equal("CustomLaunchProfile", options.LaunchProfileName); diff --git a/test/dotnet-watch.Tests/CommandLine/LaunchSettingsTests.cs b/test/dotnet-watch.Tests/CommandLine/LaunchSettingsTests.cs index 45b036f98470..6fabe683fdf2 100644 --- a/test/dotnet-watch.Tests/CommandLine/LaunchSettingsTests.cs +++ b/test/dotnet-watch.Tests/CommandLine/LaunchSettingsTests.cs @@ -131,6 +131,26 @@ public async Task Run_WithHotReloadEnabled_ReadsLaunchSettings_WhenUsingProjectO await App.AssertOutputLineEquals("Environment: Development"); } + [Fact] + public async Task Run_WithHotReloadEnabled_ReadsLaunchSettings_WhenUsingFileOption() + { + var testAsset = TestAssets.CopyTestAsset("WatchAppWithLaunchSettings") + .WithSource(); + + File.Move(Path.Combine(testAsset.Path, "Properties", "launchSettings.json"), Path.Combine(testAsset.Path, "Program.run.json")); + File.Delete(Path.Combine(testAsset.Path, "WatchAppWithLaunchSettings.csproj")); + + var directoryInfo = new DirectoryInfo(testAsset.Path); + + // Configure the working directory to be one level above the test app directory. + App.Start( + testAsset, + ["--file", Path.Combine(testAsset.Path, "Program.cs")], + workingDirectory: Path.GetFullPath(directoryInfo.Parent.FullName)); + + await App.AssertOutputLineEquals("Environment: Development"); + } + [CoreMSBuildOnlyFact(Skip = "https://github.com/dotnet/sdk/issues/29047")] public async Task Run_WithHotReloadEnabled_DoesNotReadConsoleIn_InNonInteractiveMode() { diff --git a/test/dotnet-watch.Tests/CommandLine/ProgramTests.GetProjectOptions.cs b/test/dotnet-watch.Tests/CommandLine/ProgramTests.GetProjectOptions.cs new file mode 100644 index 000000000000..05b75cc850e0 --- /dev/null +++ b/test/dotnet-watch.Tests/CommandLine/ProgramTests.GetProjectOptions.cs @@ -0,0 +1,270 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.CompilerServices; + +namespace Microsoft.DotNet.Watch.UnitTests; + +public class Program_GetProjectOptionsTests(ITestOutputHelper output) +{ + private readonly TestAssetsManager _testAssetManager = new(output); + private readonly TestLogger _testLogger = new(); + + private string CreateTempDirectory([CallerMemberName] string? callingMethod = null, string? identifier = null) + => _testAssetManager.CreateTestDirectory(callingMethod, identifier).Path; + + private CommandLineOptions ParseOptions(string[] args) + { + var output = new StringWriter(); + var options = CommandLineOptions.Parse(args, _testLogger, output: output, errorCode: out _); + Assert.NotNull(options); + return options; + } + + [Fact] + public void ExplicitProjectPath() + { + var tempDir = CreateTempDirectory(); + var projectPath = Path.Combine(tempDir, "Test.csproj"); + File.WriteAllText(projectPath, ""); + + var options = ParseOptions(["--project", projectPath]); + var result = Program.GetProjectOptions(options, tempDir, _testLogger); + + Assert.NotNull(result); + Assert.Equal(projectPath, result.Representation.PhysicalPath); + Assert.Null(result.Representation.EntryPointFilePath); + Assert.Equal(tempDir, result.WorkingDirectory); + Assert.True(result.IsRootProject); + } + + [Fact] + public void ProjectInWorkingDirectory() + { + var tempDir = CreateTempDirectory(); + var projectPath = Path.Combine(tempDir, "MyApp.csproj"); + File.WriteAllText(projectPath, ""); + + var options = ParseOptions([]); + var result = Program.GetProjectOptions(options, tempDir, _testLogger); + + Assert.NotNull(result); + Assert.Equal(projectPath, result.Representation.PhysicalPath); + Assert.Null(result.Representation.EntryPointFilePath); + } + + [Fact] + public void MultipleProjects() + { + var tempDir = CreateTempDirectory(); + File.WriteAllText(Path.Combine(tempDir, "App1.csproj"), ""); + File.WriteAllText(Path.Combine(tempDir, "App2.csproj"), ""); + + var options = ParseOptions([]); + var result = Program.GetProjectOptions(options, tempDir, _testLogger); + + Assert.Null(result); + AssertEx.SequenceEqual( + [$"[Error] {string.Format(Resources.Error_MultipleProjectsFound, tempDir)}"], + _testLogger.GetAndClearMessages()); + } + + [Fact] + public void NonExistentProject() + { + var tempDir = CreateTempDirectory(); + var projectPath = Path.Combine(tempDir, "NonExistent.csproj"); + var options = ParseOptions(["--project", projectPath]); + var result = Program.GetProjectOptions(options, tempDir, _testLogger); + + Assert.Null(result); + AssertEx.SequenceEqual( + [$"[Error] {string.Format(Resources.Error_ProjectPath_NotFound, projectPath)}"], + _testLogger.GetAndClearMessages()); + } + + [Fact] + public void NoProjectsInDirectoryAndNoCSharpFile() + { + var tempDir = CreateTempDirectory(); + var emptyDir = Path.Combine(tempDir, "empty"); + Directory.CreateDirectory(emptyDir); + + var options = ParseOptions([]); + var result = Program.GetProjectOptions(options, emptyDir, _testLogger); + + Assert.Null(result); + AssertEx.SequenceEqual( + [$"[Error] {string.Format(Resources.Could_not_find_msbuild_project_file_in_0, emptyDir)}"], + _testLogger.GetAndClearMessages()); + } + + [Fact] + public void ProjectDirectory() + { + var tempDir = CreateTempDirectory(); + var subDir = Path.Combine(tempDir, "subdir"); + Directory.CreateDirectory(subDir); + var projectPath = Path.Combine(subDir, "SubApp.csproj"); + File.WriteAllText(projectPath, ""); + + var options = ParseOptions(["--project", subDir]); + var result = Program.GetProjectOptions(options, tempDir, _testLogger); + + Assert.NotNull(result); + Assert.Equal(projectPath, result.Representation.PhysicalPath); + } + + [Theory] + [InlineData("csproj")] + [InlineData("fsproj")] + [InlineData("vbproj")] + [InlineData("proj")] + public void ProjectFile_AcceptedExtension(string projExtension) + { + var tempDir = CreateTempDirectory(projExtension); + var projectPath = Path.Combine(tempDir, $"Test.{projExtension}"); + File.WriteAllText(projectPath, ""); + + var options = ParseOptions([]); + var result = Program.GetProjectOptions(options, tempDir, _testLogger); + + Assert.NotNull(result); + Assert.Equal(projectPath, result.Representation.PhysicalPath); + } + + [Theory] + [InlineData("shproj")] + public void ProjectFile_RejectedExtension(string projExtension) + { + var tempDir = CreateTempDirectory(projExtension); + var projectPath = Path.Combine(tempDir, $"Test.{projExtension}"); + File.WriteAllText(projectPath, ""); + + var options = ParseOptions([]); + var result = Program.GetProjectOptions(options, tempDir, _testLogger); + + Assert.Null(result); + AssertEx.SequenceEqual( + [$"[Error] {string.Format(Resources.Could_not_find_msbuild_project_file_in_0, tempDir)}"], + _testLogger.GetAndClearMessages()); + } + + [Fact] + public void InvalidFilePath() + { + var tempDir = CreateTempDirectory(); + var invalidPath = "invalid\0path.cs"; + + var options = ParseOptions(["--file", invalidPath]); + var result = Program.GetProjectOptions(options, tempDir, _testLogger); + + string message; + try + { + Path.GetFullPath(invalidPath); + message = ""; + } + catch (Exception e) + { + message = e.Message; + } + + Assert.Null(result); + AssertEx.SequenceEqual( + [$"[Error] {string.Format(Resources.The_specified_path_0_is_invalid_1, invalidPath, message)}"], + _testLogger.GetAndClearMessages()); + } + + [Fact] + public void FilePathOption() + { + var tempDir = CreateTempDirectory(); + var csFilePath = Path.Combine(tempDir, "Program.cs"); + File.WriteAllText(csFilePath, "Console.WriteLine(\"Hello\");"); + + var options = ParseOptions(["--file", csFilePath]); + var result = Program.GetProjectOptions(options, tempDir, _testLogger); + + Assert.NotNull(result); + Assert.Equal(csFilePath, result.Representation.EntryPointFilePath); + Assert.Null(result.Representation.PhysicalPath); + } + + [Fact] + public void CSharpFileSpecifiedAsArgument() + { + var tempDir = CreateTempDirectory(); + var csFilePath = Path.Combine(tempDir, "App.cs"); + File.WriteAllText(csFilePath, "Console.WriteLine(\"Hello\");"); + + // dotnet watch App.cs + var options = ParseOptions([csFilePath]); + var result = Program.GetProjectOptions(options, tempDir, _testLogger); + + Assert.NotNull(result); + Assert.Equal(csFilePath, result.Representation.EntryPointFilePath); + } + + [Fact] + public void FileWithShebangSpecifiedAsArgument() + { + var tempDir = CreateTempDirectory(); + var filePath = Path.Combine(tempDir, "App.txt"); + File.WriteAllText(filePath, "#!"); + + // dotnet watch App.txt + var options = ParseOptions([filePath]); + var result = Program.GetProjectOptions(options, tempDir, _testLogger); + + Assert.NotNull(result); + Assert.Equal(filePath, result.Representation.EntryPointFilePath); + } + + [Fact] + public void RelativeProjectPath() + { + var tempDir = CreateTempDirectory(); + var subDir = Path.Combine(tempDir, "subdir"); + Directory.CreateDirectory(subDir); + var projectPath = Path.Combine(subDir, "Test.csproj"); + File.WriteAllText(projectPath, ""); + + var options = ParseOptions(["--project", "subdir/Test.csproj"]); + var result = Program.GetProjectOptions(options, tempDir, _testLogger); + + Assert.NotNull(result); + Assert.Equal(projectPath, result.Representation.PhysicalPath); + } + + [Fact] + public void RelativeFilePath() + { + var tempDir = CreateTempDirectory(); + var csFilePath = Path.Combine(tempDir, "Script.cs"); + File.WriteAllText(csFilePath, "Console.WriteLine(\"Hello\");"); + + var options = ParseOptions(["--file", "Script.cs"]); + var result = Program.GetProjectOptions(options, tempDir, _testLogger); + + Assert.NotNull(result); + Assert.Equal(csFilePath, result.Representation.EntryPointFilePath); + } + + [Fact] + public void FilePathOptionTakesPrecedenceOverProjectPath() + { + var tempDir = CreateTempDirectory(); + var projectPath = Path.Combine(tempDir, "Test.csproj"); + File.WriteAllText(projectPath, ""); + var csFilePath = Path.Combine(tempDir, "Script.cs"); + File.WriteAllText(csFilePath, "Console.WriteLine(\"Hello\");"); + + var options = ParseOptions(["--file", csFilePath]); + var result = Program.GetProjectOptions(options, tempDir, _testLogger); + + Assert.NotNull(result); + Assert.Equal(csFilePath, result.Representation.EntryPointFilePath); + Assert.Null(result.Representation.PhysicalPath); + } +} diff --git a/test/dotnet-watch.Tests/CommandLine/ProgramTests.cs b/test/dotnet-watch.Tests/CommandLine/ProgramTests.cs index 30c1e117f48a..aae4d9117093 100644 --- a/test/dotnet-watch.Tests/CommandLine/ProgramTests.cs +++ b/test/dotnet-watch.Tests/CommandLine/ProgramTests.cs @@ -7,7 +7,7 @@ namespace Microsoft.DotNet.Watch.UnitTests { - public class ProgramTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) + public class ProgramTests(ITestOutputHelper output) : DotNetWatchTestBase(output) { [Fact] public async Task ConsoleCancelKey() diff --git a/test/dotnet-watch.Tests/FileWatcher/FileWatcherTests.cs b/test/dotnet-watch.Tests/FileWatcher/FileWatcherTests.cs index 5d8a7cc13360..3fc711d7352c 100644 --- a/test/dotnet-watch.Tests/FileWatcher/FileWatcherTests.cs +++ b/test/dotnet-watch.Tests/FileWatcher/FileWatcherTests.cs @@ -13,7 +13,7 @@ public class FileWatcherTests(ITestOutputHelper output) { private readonly TimeSpan DefaultTimeout = TimeSpan.FromSeconds(60); private readonly TimeSpan NegativeTimeout = TimeSpan.FromSeconds(5); - private readonly TestAssetsManager _testAssetManager = new TestAssetsManager(output); + private readonly TestAssetsManager _testAssetManager = new(output); private async Task TestOperation( string dir, diff --git a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs index e9ebba6c5ea8..04e146d64a0f 100644 --- a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs +++ b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs @@ -1291,7 +1291,7 @@ public async Task Aspire_BuildError_ManualRestart() await App.WaitUntilOutputContains(MessageDescriptor.BuildSucceeded.GetMessage(serviceProjectPath)); await App.WaitUntilOutputContains(MessageDescriptor.ProjectsRebuilt); - await App.WaitUntilOutputContains($"dotnet watch ⭐ Starting project: {serviceProjectPath}"); + await App.WaitUntilOutputContains($"dotnet watch ⭐ Starting: '{serviceProjectPath}'"); App.Process.ClearOutput(); App.SendControlC(); diff --git a/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs b/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs index 9e4a1ef710ba..0f5db9475ac4 100644 --- a/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs +++ b/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs @@ -17,12 +17,13 @@ public async Task ReferenceOutputAssembly_False() var workingDirectory = testAsset.Path; var hostDir = Path.Combine(testAsset.Path, "Host"); var hostProject = Path.Combine(hostDir, "Host.csproj"); + var hostProjectRepr = new ProjectRepresentation(hostProject, entryPointFilePath: null); var options = TestOptions.GetProjectOptions(["--project", hostProject]); var environmentOptions = TestOptions.GetEnvironmentOptions(Environment.CurrentDirectory, "dotnet"); - var factory = new ProjectGraphFactory(globalOptions: []); - var projectGraph = factory.TryLoadProjectGraph(options.ProjectPath, NullLogger.Instance, projectGraphRequired: false, CancellationToken.None); + var factory = new ProjectGraphFactory(hostProjectRepr, targetFramework: null, globalOptions: []); + var projectGraph = factory.TryLoadProjectGraph(NullLogger.Instance, projectGraphRequired: false, CancellationToken.None); Assert.NotNull(projectGraph); var processOutputReporter = new TestProcessOutputReporter(); @@ -43,7 +44,7 @@ public async Task ReferenceOutputAssembly_False() var handler = new CompilationHandler(context); - await handler.UpdateProjectConeAsync(projectGraph, hostProject, CancellationToken.None); + await handler.UpdateProjectConeAsync(projectGraph, hostProjectRepr, CancellationToken.None); // all projects are present AssertEx.SequenceEqual(["Host", "Lib2", "Lib", "A", "B"], handler.Workspace.CurrentSolution.Projects.Select(p => p.Name)); diff --git a/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs b/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs index a70c661c3670..809eaadc31e3 100644 --- a/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs +++ b/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs @@ -88,7 +88,7 @@ private static async Task Launch(string projectPath, TestRuntime var projectOptions = new ProjectOptions() { IsRootProject = false, - ProjectPath = projectPath, + Representation = new ProjectRepresentation(projectPath, entryPointFilePath: null), WorkingDirectory = workingDirectory, BuildArguments = [], Command = "run", diff --git a/test/dotnet-watch.Tests/Process/LaunchSettingsProfileTest.cs b/test/dotnet-watch.Tests/Process/LaunchSettingsProfileTest.cs index f05b05bb47bd..002380ea98a1 100644 --- a/test/dotnet-watch.Tests/Process/LaunchSettingsProfileTest.cs +++ b/test/dotnet-watch.Tests/Process/LaunchSettingsProfileTest.cs @@ -48,7 +48,9 @@ public void LoadsLaunchProfiles() } """); - var projectPath = Path.Combine(project.TestRoot, "Project1", "Project1.csproj"); + var projectPath = new ProjectRepresentation( + projectPath: Path.Combine(project.TestRoot, "Project1", "Project1.csproj"), + entryPointFilePath: null); var expected = LaunchSettingsProfile.ReadLaunchProfile(projectPath, launchProfileName: "http", _logger); Assert.NotNull(expected); @@ -81,7 +83,9 @@ public void DefaultLaunchProfileWithoutProjectCommand() } """); - var projectPath = Path.Combine(project.Path, "Project1", "Project1.csproj"); + var projectPath = new ProjectRepresentation( + projectPath: Path.Combine(project.Path, "Project1", "Project1.csproj"), + entryPointFilePath: null); var expected = LaunchSettingsProfile.ReadLaunchProfile(projectPath, launchProfileName: null, _logger); Assert.Null(expected); diff --git a/test/dotnet-watch.Tests/TestUtilities/MockFileSetFactory.cs b/test/dotnet-watch.Tests/TestUtilities/MockFileSetFactory.cs index f5d976522af9..e26022000953 100644 --- a/test/dotnet-watch.Tests/TestUtilities/MockFileSetFactory.cs +++ b/test/dotnet-watch.Tests/TestUtilities/MockFileSetFactory.cs @@ -7,6 +7,7 @@ namespace Microsoft.DotNet.Watch.UnitTests; internal class MockFileSetFactory() : MSBuildFileSetFactory( rootProjectFile: "test.csproj", + targetFramework: null, buildArguments: [], new ProcessRunner(processCleanupTimeout: TimeSpan.Zero), new BuildReporter(NullLogger.Instance, new GlobalOptions(), TestOptions.GetEnvironmentOptions(Environment.CurrentDirectory, "dotnet") is var options ? options : options)) diff --git a/test/dotnet-watch.Tests/TestUtilities/TestOptions.cs b/test/dotnet-watch.Tests/TestUtilities/TestOptions.cs index 9116bbecb0b5..e75e30cd9b27 100644 --- a/test/dotnet-watch.Tests/TestUtilities/TestOptions.cs +++ b/test/dotnet-watch.Tests/TestUtilities/TestOptions.cs @@ -23,6 +23,6 @@ public static CommandLineOptions GetCommandLineOptions(string[] args) public static ProjectOptions GetProjectOptions(string[]? args = null) { var options = GetCommandLineOptions(args ?? []); - return options.GetProjectOptions(options.ProjectPath ?? "test.csproj", workingDirectory: ""); + return options.GetProjectOptions(new ProjectRepresentation(options.ProjectPath ?? "test.csproj", entryPointFilePath: null), workingDirectory: ""); } } From 84c00f3aee6fbfcca759341b69c7ba49b9e88796 Mon Sep 17 00:00:00 2001 From: tmat Date: Thu, 5 Feb 2026 12:46:56 -0800 Subject: [PATCH 124/179] Parallelize design-time build --- src/BuiltInTools/Watch/Build/BuildReporter.cs | 3 +- src/BuiltInTools/Watch/Build/BuildRequest.cs | 23 +++ src/BuiltInTools/Watch/Build/BuildResult.cs | 15 ++ .../Watch/Build/EvaluationResult.cs | 144 +++++++++++------- ...rojectNodeMap.cs => LoadedProjectGraph.cs} | 9 +- .../Watch/Build/ProjectBuildManager.cs | 104 +++++++++++++ .../Watch/Build/ProjectGraphFactory.cs | 31 ++-- .../Watch/HotReload/CompilationHandler.cs | 46 +++--- .../Watch/HotReload/HotReloadDotNetWatcher.cs | 114 ++++++++------ .../Watch/Process/ProjectLauncher.cs | 4 +- src/BuiltInTools/dotnet-watch/Program.cs | 3 +- .../dotnet-watch/Watch/BuildEvaluator.cs | 3 +- .../dotnet-watch/Watch/DotNetWatcher.cs | 5 +- .../Watch/MsBuildFileSetFactory.cs | 33 ++-- .../dotnet-watch/Watch/StaticFileHandler.cs | 4 +- .../Microsoft.CodeAnalysis.NetAnalyzers.sarif | 6 +- .../Build/EvaluationTests.cs | 9 +- .../Build/ProjectGraphFactoryTests.cs | 22 +-- .../HotReload/CompilationHandlerTests.cs | 7 +- .../TestUtilities/MockFileSetFactory.cs | 3 +- 20 files changed, 394 insertions(+), 194 deletions(-) create mode 100644 src/BuiltInTools/Watch/Build/BuildRequest.cs create mode 100644 src/BuiltInTools/Watch/Build/BuildResult.cs rename src/BuiltInTools/Watch/Build/{ProjectNodeMap.cs => LoadedProjectGraph.cs} (89%) create mode 100644 src/BuiltInTools/Watch/Build/ProjectBuildManager.cs diff --git a/src/BuiltInTools/Watch/Build/BuildReporter.cs b/src/BuiltInTools/Watch/Build/BuildReporter.cs index 6410476dc3c8..de404b1d07f9 100644 --- a/src/BuiltInTools/Watch/Build/BuildReporter.cs +++ b/src/BuiltInTools/Watch/Build/BuildReporter.cs @@ -14,12 +14,13 @@ namespace Microsoft.DotNet.Watch; internal sealed class BuildReporter(ILogger logger, GlobalOptions options, EnvironmentOptions environmentOptions) { public ILogger Logger => logger; + public GlobalOptions GlobalOptions => options; public EnvironmentOptions EnvironmentOptions => environmentOptions; public Loggers GetLoggers(string projectPath, string operationName) => new(logger, environmentOptions.GetBinLogPath(projectPath, operationName, options)); - public void ReportWatchedFiles(Dictionary fileItems) + public static void ReportWatchedFiles(ILogger logger, IReadOnlyDictionary fileItems) { logger.Log(MessageDescriptor.WatchingFilesForChanges, fileItems.Count); diff --git a/src/BuiltInTools/Watch/Build/BuildRequest.cs b/src/BuiltInTools/Watch/Build/BuildRequest.cs new file mode 100644 index 000000000000..46e35ff35113 --- /dev/null +++ b/src/BuiltInTools/Watch/Build/BuildRequest.cs @@ -0,0 +1,23 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Immutable; +using Microsoft.Build.Execution; + +namespace Microsoft.DotNet.Watch; + +internal readonly struct BuildRequest(ProjectInstance projectInstance, ImmutableArray targets, T data) +{ + public ProjectInstance ProjectInstance { get; } = projectInstance; + public ImmutableArray Targets { get; } = targets; + public T Data { get; } = data; +} + +internal static class BuildRequest +{ + public static BuildRequest Create(ProjectInstance instance, ImmutableArray targets) + => new(instance, targets, data: null); + + public static BuildRequest Create(ProjectInstance instance, ImmutableArray targets, T data) + => new(instance, targets, data); +} diff --git a/src/BuiltInTools/Watch/Build/BuildResult.cs b/src/BuiltInTools/Watch/Build/BuildResult.cs new file mode 100644 index 000000000000..be0ff7d8b622 --- /dev/null +++ b/src/BuiltInTools/Watch/Build/BuildResult.cs @@ -0,0 +1,15 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Build.Execution; + +namespace Microsoft.DotNet.Watch; + +internal readonly struct BuildResult(IReadOnlyDictionary targetResults, ProjectInstance projectInstance, T data) +{ + public IReadOnlyDictionary TargetResults { get; } = targetResults; + public ProjectInstance ProjectInstance { get; } = projectInstance; + public T Data { get; } = data; + + public bool IsSuccess => TargetResults.Count > 0; +} diff --git a/src/BuiltInTools/Watch/Build/EvaluationResult.cs b/src/BuiltInTools/Watch/Build/EvaluationResult.cs index 8acb3552df0a..d97d9bb5b57c 100644 --- a/src/BuiltInTools/Watch/Build/EvaluationResult.cs +++ b/src/BuiltInTools/Watch/Build/EvaluationResult.cs @@ -11,19 +11,21 @@ namespace Microsoft.DotNet.Watch; internal sealed class EvaluationResult( - ProjectGraph projectGraph, + LoadedProjectGraph projectGraph, IReadOnlyDictionary restoredProjectInstances, IReadOnlyDictionary files, - IReadOnlyDictionary staticWebAssetsManifests) + IReadOnlyDictionary staticWebAssetsManifests, + ProjectBuildManager buildManager) { public readonly IReadOnlyDictionary Files = files; - public readonly ProjectGraph ProjectGraph = projectGraph; + public readonly LoadedProjectGraph ProjectGraph = projectGraph; + public readonly ProjectBuildManager BuildManager = buildManager; public readonly FilePathExclusions ItemExclusions - = projectGraph != null ? FilePathExclusions.Create(projectGraph) : FilePathExclusions.Empty; + = projectGraph != null ? FilePathExclusions.Create(projectGraph.Graph) : FilePathExclusions.Empty; private readonly Lazy> _lazyBuildFiles - = new(() => projectGraph != null ? CreateBuildFileSet(projectGraph) : new HashSet()); + = new(() => projectGraph != null ? CreateBuildFileSet(projectGraph.Graph) : new HashSet()); private static IReadOnlySet CreateBuildFileSet(ProjectGraph projectGraph) => projectGraph.ProjectNodes.SelectMany(p => p.ProjectInstance.ImportPaths) @@ -50,7 +52,7 @@ public void WatchFiles(FileWatcher fileWatcher) fileWatcher.WatchFiles(BuildFiles); } - public static ImmutableDictionary GetGlobalBuildOptions(IEnumerable buildArguments, EnvironmentOptions environmentOptions) + public static ImmutableDictionary GetGlobalBuildProperties(IEnumerable buildArguments, EnvironmentOptions environmentOptions) { // See https://github.com/dotnet/project-system/blob/main/docs/well-known-project-properties.md @@ -67,78 +69,111 @@ public static ImmutableDictionary GetGlobalBuildOptions(IEnumera /// /// Loads project graph and performs design-time build. /// - public static EvaluationResult? TryCreate( + public static async ValueTask TryCreateAsync( ProjectGraphFactory factory, - ILogger logger, - GlobalOptions options, + GlobalOptions globalOptions, EnvironmentOptions environmentOptions, bool restore, CancellationToken cancellationToken) { - var buildReporter = new BuildReporter(logger, options, environmentOptions); + var logger = factory.Logger; + var stopwatch = Stopwatch.StartNew(); - var projectGraph = factory.TryLoadProjectGraph( - logger, - projectGraphRequired: true, - cancellationToken); + var projectGraph = factory.TryLoadProjectGraph(projectGraphRequired: true, cancellationToken); if (projectGraph == null) { return null; } - var rootNode = projectGraph.GraphRoots.Single(); + var buildReporter = new BuildReporter(projectGraph.Logger, globalOptions, environmentOptions); + var buildManager = new ProjectBuildManager(projectGraph.ProjectCollection, buildReporter); + + logger.LogDebug("Project graph loaded in {Time}s.", stopwatch.Elapsed.TotalSeconds.ToString("0.0")); if (restore) { - using (var loggers = buildReporter.GetLoggers(rootNode.ProjectInstance.FullPath, "Restore")) - { - if (!rootNode.ProjectInstance.Build([TargetNames.Restore], loggers)) + stopwatch.Restart(); + + var restoreRequests = projectGraph.Graph.GraphRoots.Select(node => BuildRequest.Create(node.ProjectInstance, [TargetNames.Restore])).ToArray(); + + if (await buildManager.BuildAsync( + restoreRequests, + onFailure: failedInstance => { - logger.LogError("Failed to restore '{Path}'.", rootNode.ProjectInstance.FullPath); - loggers.ReportOutput(); - return null; - } + logger.LogError("Failed to restore project '{Path}'.", failedInstance.FullPath); + + // terminate build on first failure: + return false; + }, + operationName: "Restore", + cancellationToken) is []) + { + return null; } + + logger.LogDebug("Projects restored in {Time}s.", stopwatch.Elapsed.TotalSeconds.ToString("0.0")); } + stopwatch.Restart(); + // Capture the snapshot of original project instances after Restore target has been run. // These instances can be used to evaluate additional targets (e.g. deployment) if needed. - var restoredProjectInstances = projectGraph.ProjectNodes.ToDictionary( + var restoredProjectInstances = projectGraph.Graph.ProjectNodes.ToDictionary( keySelector: node => node.ProjectInstance.GetId(), elementSelector: node => node.ProjectInstance.DeepCopy()); - var fileItems = new Dictionary(); - var staticWebAssetManifests = new Dictionary(); - // Update the project instances of the graph with design-time build results. // The properties and items set by DTB will be used by the Workspace to create Roslyn representation of projects. - foreach (var project in projectGraph.ProjectNodesTopologicallySorted) - { - var projectInstance = project.ProjectInstance; + var buildRequests = + (from node in projectGraph.Graph.ProjectNodesTopologicallySorted + where node.ProjectInstance.GetPropertyValue(PropertyNames.TargetFramework) != "" + let targets = GetBuildTargets(node.ProjectInstance, environmentOptions) + where targets is not [] + select BuildRequest.Create(node.ProjectInstance, [.. targets])).ToArray(); - // skip outer build project nodes: - if (projectInstance.GetPropertyValue(PropertyNames.TargetFramework) == "") + var buildResults = await buildManager.BuildAsync( + buildRequests, + onFailure: failedInstance => { - continue; - } + logger.LogError("Failed to build project '{Path}'.", failedInstance.FullPath); - var targets = GetBuildTargets(projectInstance, environmentOptions); - if (targets is []) - { - continue; - } + // terminate build on first failure: + return false; + }, + operationName: "DesignTimeBuild", + cancellationToken); - using (var loggers = buildReporter.GetLoggers(projectInstance.FullPath, "DesignTimeBuild")) - { - if (!projectInstance.Build(targets, loggers)) - { - logger.LogError("Failed to build project '{Path}'.", projectInstance.FullPath); - loggers.ReportOutput(); - return null; - } - } + if (buildResults is []) + { + return null; + } + + logger.LogDebug("Design-time build completed in {Time}s.", stopwatch.Elapsed.TotalSeconds.ToString("0.0")); + + ProcessBuildResults(buildResults, logger, out var fileItems, out var staticWebAssetManifests); + + BuildReporter.ReportWatchedFiles(logger, fileItems); + + return new EvaluationResult(projectGraph, restoredProjectInstances, fileItems, staticWebAssetManifests, buildManager); + } + + private static void ProcessBuildResults( + ImmutableArray> buildResults, + ILogger logger, + out IReadOnlyDictionary fileItems, + out IReadOnlyDictionary staticWebAssetManifests) + { + var fileItemsBuilder = new Dictionary(); + var staticWebAssetManifestsBuilder = new Dictionary(); + + foreach (var buildResult in buildResults) + { + Debug.Assert(buildResult.IsSuccess); + + var projectInstance = buildResult.ProjectInstance; + Debug.Assert(projectInstance != null); // command line args items should be available: Debug.Assert( @@ -148,11 +183,11 @@ public static ImmutableDictionary GetGlobalBuildOptions(IEnumera var projectPath = projectInstance.FullPath; var projectDirectory = Path.GetDirectoryName(projectPath)!; - if (targets.Contains(TargetNames.GenerateComputedBuildStaticWebAssets) && + if (buildResult.TargetResults.ContainsKey(TargetNames.GenerateComputedBuildStaticWebAssets) && projectInstance.GetIntermediateOutputDirectory() is { } outputDir && StaticWebAssetsManifest.TryParseFile(Path.Combine(outputDir, StaticWebAsset.ManifestFileName), logger) is { } manifest) { - staticWebAssetManifests.Add(projectInstance.GetId(), manifest); + staticWebAssetManifestsBuilder.Add(projectInstance.GetId(), manifest); // watch asset files, but not bundle files as they are regenarated when scoped CSS files are updated: foreach (var (relativeUrl, filePath) in manifest.UrlToPathMap) @@ -167,7 +202,7 @@ public static ImmutableDictionary GetGlobalBuildOptions(IEnumera // Adds file items for scoped css files. // Scoped css files are bundled into a single entry per project that is represented in the static web assets manifest, // but we need to watch the original individual files. - if (targets.Contains(TargetNames.ResolveScopedCssInputs)) + if (buildResult.TargetResults.ContainsKey(TargetNames.ResolveScopedCssInputs)) { foreach (var item in projectInstance.GetItems(ItemNames.ScopedCssInput)) { @@ -189,9 +224,9 @@ void AddFile(string relativePath, string? staticWebAssetRelativeUrl) { var filePath = Path.GetFullPath(Path.Combine(projectDirectory, relativePath)); - if (!fileItems.TryGetValue(filePath, out var existingFile)) + if (!fileItemsBuilder.TryGetValue(filePath, out var existingFile)) { - fileItems.Add(filePath, new FileItem + fileItemsBuilder.Add(filePath, new FileItem { FilePath = filePath, ContainingProjectPaths = [projectPath], @@ -206,9 +241,8 @@ void AddFile(string relativePath, string? staticWebAssetRelativeUrl) } } - buildReporter.ReportWatchedFiles(fileItems); - - return new EvaluationResult(projectGraph, restoredProjectInstances, fileItems, staticWebAssetManifests); + fileItems = fileItemsBuilder; + staticWebAssetManifests = staticWebAssetManifestsBuilder; } private static string[] GetBuildTargets(ProjectInstance projectInstance, EnvironmentOptions environmentOptions) diff --git a/src/BuiltInTools/Watch/Build/ProjectNodeMap.cs b/src/BuiltInTools/Watch/Build/LoadedProjectGraph.cs similarity index 89% rename from src/BuiltInTools/Watch/Build/ProjectNodeMap.cs rename to src/BuiltInTools/Watch/Build/LoadedProjectGraph.cs index 69e2e5a0440b..93ed69be35b2 100644 --- a/src/BuiltInTools/Watch/Build/ProjectNodeMap.cs +++ b/src/BuiltInTools/Watch/Build/LoadedProjectGraph.cs @@ -1,21 +1,24 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using Microsoft.Build.Evaluation; using Microsoft.Build.Graph; using Microsoft.Extensions.Logging; namespace Microsoft.DotNet.Watch { - internal readonly struct ProjectNodeMap(ProjectGraph graph, ILogger logger) + internal sealed class LoadedProjectGraph(ProjectGraph graph, ProjectCollection collection, ILogger logger) { - public readonly ProjectGraph Graph = graph; - // full path of proj file to list of nodes representing all target frameworks of the project: public readonly IReadOnlyDictionary> Map = graph.ProjectNodes.GroupBy(n => n.ProjectInstance.FullPath).ToDictionary( keySelector: static g => g.Key, elementSelector: static g => (IReadOnlyList)[.. g]); + public ProjectGraph Graph => graph; + public ILogger Logger => logger; + public ProjectCollection ProjectCollection => collection; + public IReadOnlyList GetProjectNodes(string projectPath) { if (Map.TryGetValue(projectPath, out var rootProjectNodes)) diff --git a/src/BuiltInTools/Watch/Build/ProjectBuildManager.cs b/src/BuiltInTools/Watch/Build/ProjectBuildManager.cs new file mode 100644 index 000000000000..d85543f58424 --- /dev/null +++ b/src/BuiltInTools/Watch/Build/ProjectBuildManager.cs @@ -0,0 +1,104 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Immutable; +using System.Diagnostics; +using Microsoft.Build.Evaluation; +using Microsoft.Build.Execution; + +namespace Microsoft.DotNet.Watch; + +internal sealed class ProjectBuildManager(ProjectCollection collection, BuildReporter reporter) +{ + /// + /// Semaphore that ensures we only start one build build at a time per process, which is required by MSBuild. + /// + private static readonly SemaphoreSlim s_buildSemaphore = new(initialCount: 1); + + private static readonly IReadOnlyDictionary s_emptyTargetResults = new Dictionary(); + + public readonly ProjectCollection Collection = collection; + public readonly BuildReporter BuildReporter = reporter; + + /// + /// Executes the specified build requests. + /// + /// Invoked for each project that fails to build. Returns true to continue build or false to cancel. + /// True if all projects built successfully. + public async Task>> BuildAsync( + IReadOnlyList> requests, + Func onFailure, + string operationName, + CancellationToken cancellationToken) + { + Debug.Assert(requests is not []); + var buildRequests = requests.Select(r => new BuildRequestData(r.ProjectInstance, [.. r.Targets])).ToArray(); + + using var loggers = BuildReporter.GetLoggers(buildRequests[0].ProjectFullPath, operationName); + + using var buildCancellationTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken); + + await s_buildSemaphore.WaitAsync(cancellationToken); + + var manager = BuildManager.DefaultBuildManager; + using var _ = buildCancellationTokenSource.Token.Register(() => manager.CancelAllSubmissions()); + + var buildParameters = new BuildParameters(Collection) + { + Loggers = loggers + }; + + manager.BeginBuild(buildParameters); + try + { + var buildTasks = new List>(buildRequests.Length); + + foreach (var request in buildRequests) + { + var taskSource = new TaskCompletionSource(); + + // Queues the build request and immediately returns. The callback is executed when the build completes. + manager.PendBuildRequest(request).ExecuteAsync( + callback: submission => + { + // Cancel on first failure: + if (submission.BuildResult?.OverallResult != BuildResultCode.Success) + { + var projectInstance = (ProjectInstance)submission.AsyncContext!; + + var continueBuild = onFailure(projectInstance); + if (!continueBuild) + { + buildCancellationTokenSource.Cancel(); + taskSource.SetCanceled(); + return; + } + } + + taskSource.SetResult(submission.BuildResult); + }, + context: request.ProjectInstance); + + buildTasks.Add(taskSource.Task); + } + + var results = await Task.WhenAll(buildTasks); + + return [.. results.Select((result, index) => new BuildResult( + (IReadOnlyDictionary?)result?.ResultsByTarget ?? s_emptyTargetResults, + requests[index].ProjectInstance, + requests[index].Data))]; + } + catch (OperationCanceledException) when (!cancellationToken.IsCancellationRequested) + { + // build was canceled + loggers.ReportOutput(); + return []; + } + finally + { + manager.EndBuild(); + s_buildSemaphore.Release(); + } + } +} diff --git a/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs b/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs index ec306e6f97a7..4024743616ee 100644 --- a/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs +++ b/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs @@ -23,7 +23,8 @@ internal sealed class ProjectGraphFactory /// private readonly ProjectCollection _collection; - private readonly ImmutableDictionary _globalOptions; + private readonly ImmutableDictionary _buildProperties; + private readonly ILogger _logger; private readonly ProjectRepresentation _rootProject; // Only the root project can be virtual. #:project does not support targeting other single-file projects. @@ -32,10 +33,11 @@ internal sealed class ProjectGraphFactory public ProjectGraphFactory( ProjectRepresentation rootProject, string? targetFramework, - ImmutableDictionary globalOptions) + ImmutableDictionary buildProperties, + ILogger logger) { _collection = new( - globalProperties: globalOptions, + globalProperties: buildProperties, loggers: [], remoteLoggers: [], ToolsetDefinitionLocations.Default, @@ -45,7 +47,8 @@ public ProjectGraphFactory( useAsynchronousLogging: false, reuseProjectRootElementCache: true); - _globalOptions = globalOptions; + _buildProperties = buildProperties; + _logger = logger; _rootProject = rootProject; if (rootProject.EntryPointFilePath != null) @@ -54,6 +57,8 @@ public ProjectGraphFactory( } } + public ILogger Logger => _logger; + private static string GetProductTargetFramework() { var attribute = typeof(VirtualProjectBuilder).Assembly.GetCustomAttribute() ?? throw new InvalidOperationException(); @@ -64,15 +69,15 @@ private static string GetProductTargetFramework() /// /// Tries to create a project graph by running the build evaluation phase on the . /// - public ProjectGraph? TryLoadProjectGraph( - ILogger logger, - bool projectGraphRequired, - CancellationToken cancellationToken) + public LoadedProjectGraph? TryLoadProjectGraph(bool projectGraphRequired, CancellationToken cancellationToken) { - var entryPoint = new ProjectGraphEntryPoint(_rootProject.ProjectGraphPath, _globalOptions); + var entryPoint = new ProjectGraphEntryPoint(_rootProject.ProjectGraphPath, _buildProperties); try { - return new ProjectGraph([entryPoint], _collection, (path, globalProperties, collection) => CreateProjectInstance(path, globalProperties, collection, logger), cancellationToken); + return new LoadedProjectGraph( + new ProjectGraph([entryPoint], _collection, (path, globalProperties, collection) => CreateProjectInstance(path, globalProperties, collection, _logger), cancellationToken), + _collection, + _logger); } catch (ProjectCreationFailedException) { @@ -84,7 +89,7 @@ private static string GetProductTargetFramework() // throw here to propagate the cancellation. cancellationToken.ThrowIfCancellationRequested(); - logger.LogDebug("Failed to load project graph."); + _logger.LogDebug("Failed to load project graph."); if (e is AggregateException { InnerExceptions: var innerExceptions }) { @@ -105,11 +110,11 @@ void Report(Exception e) { if (projectGraphRequired) { - logger.LogError(e.Message); + _logger.LogError(e.Message); } else { - logger.LogWarning(e.Message); + _logger.LogWarning(e.Message); } } } diff --git a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs index 9b6c4f0fc50f..443da013b8cf 100644 --- a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs +++ b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs @@ -587,16 +587,14 @@ static MessageDescriptor GetMessageDescriptor(Diagnostic diagnostic, bool verbos } } - private static readonly string[] s_targets = [TargetNames.GenerateComputedBuildStaticWebAssets, TargetNames.ResolveReferencedProjectsStaticWebAssets]; + private static readonly ImmutableArray s_targets = [TargetNames.GenerateComputedBuildStaticWebAssets, TargetNames.ResolveReferencedProjectsStaticWebAssets]; private static bool HasScopedCssTargets(ProjectInstance projectInstance) => s_targets.All(projectInstance.Targets.ContainsKey); public async ValueTask HandleStaticAssetChangesAsync( IReadOnlyList files, - ProjectNodeMap projectMap, - IReadOnlyDictionary restoredProjectInstances, - IReadOnlyDictionary manifests, + EvaluationResult evaluationResult, Stopwatch stopwatch, CancellationToken cancellationToken) { @@ -615,7 +613,7 @@ public async ValueTask HandleStaticAssetChangesAsync( foreach (var containingProjectPath in file.ContainingProjectPaths) { - if (!projectMap.Map.TryGetValue(containingProjectPath, out var containingProjectNodes)) + if (!evaluationResult.ProjectGraph.Map.TryGetValue(containingProjectPath, out var containingProjectNodes)) { // Shouldn't happen. Logger.LogWarning("Project '{Path}' not found in the project graph.", containingProjectPath); @@ -660,7 +658,7 @@ public async ValueTask HandleStaticAssetChangesAsync( applicationProjectFilePath: applicationProjectInstance.FullPath, containingProjectFilePath: containingProjectNode.ProjectInstance.FullPath); - if (!manifests.TryGetValue(applicationProjectInstance.GetId(), out var manifest)) + if (!evaluationResult.StaticWebAssetsManifests.TryGetValue(applicationProjectInstance.GetId(), out var manifest)) { // Shouldn't happen. Logger.LogWarning("[{Project}] Static web asset manifest not found.", containingProjectNode.GetDisplayName()); @@ -713,26 +711,27 @@ public async ValueTask HandleStaticAssetChangesAsync( HashSet? failedApplicationProjectInstances = null; if (projectInstancesToRegenerate.Count > 0) { - var buildReporter = new BuildReporter(_context.BuildLogger, _context.Options, _context.EnvironmentOptions); + Logger.LogDebug("Regenerating scoped CSS bundles."); - // Note: MSBuild only allows one build at a time in a process. - foreach (var projectInstanceId in projectInstancesToRegenerate) - { - var projectInstance = restoredProjectInstances[projectInstanceId]; - - Logger.LogDebug("[{Project}] Regenerating scoped CSS bundle.", projectInstance.GetDisplayName()); + // Deep copy instances so that we don't pollute the project graph: + var buildRequests = projectInstancesToRegenerate + .Select(instanceId => BuildRequest.Create(evaluationResult.RestoredProjectInstances[instanceId].DeepCopy(), s_targets)) + .ToArray(); - using var loggers = buildReporter.GetLoggers(projectInstance.FullPath, "ScopedCss"); - - // Deep copy so that we don't pollute the snapshot: - if (!projectInstance.DeepCopy().Build(s_targets, loggers)) + _ = await evaluationResult.BuildManager.BuildAsync( + buildRequests, + onFailure: failedInstance => { - loggers.ReportOutput(); + Logger.LogWarning("[{ProjectName}] Failed to regenerate scoped CSS bundle.", failedInstance.GetDisplayName()); failedApplicationProjectInstances ??= []; - failedApplicationProjectInstances.Add(projectInstance); - } - } + failedApplicationProjectInstances.Add(failedInstance); + + // continue build + return true; + }, + operationName: "ScopedCss", + cancellationToken); } // Creating apply tasks involves reading static assets from disk. Parallelize this IO. @@ -852,15 +851,10 @@ private static ImmutableDictionary> Crea public async Task UpdateProjectConeAsync(ProjectGraph projectGraph, ProjectRepresentation project, CancellationToken cancellationToken) { - Logger.LogInformation("Loading projects ..."); - var stopwatch = Stopwatch.StartNew(); - _projectInstances = CreateProjectInstanceMap(projectGraph); var solution = await Workspace.UpdateProjectConeAsync(project.ProjectGraphPath, cancellationToken); await SolutionUpdatedAsync(solution, "project update", cancellationToken); - - Logger.LogInformation("Projects loaded in {Time}s.", stopwatch.Elapsed.TotalSeconds.ToString("0.0")); } public async Task UpdateFileContentAsync(IReadOnlyList changedFiles, CancellationToken cancellationToken) diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs index 5175c8c2930d..0a4e503982da 100644 --- a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs +++ b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs @@ -4,6 +4,7 @@ using System.Collections.Immutable; using System.Diagnostics; using System.Text.Encodings.Web; +using Microsoft.Build.Evaluation; using Microsoft.Build.Execution; using Microsoft.Build.Graph; using Microsoft.CodeAnalysis; @@ -45,11 +46,12 @@ public HotReloadDotNetWatcher(DotNetWatchContext context, IConsole console, IRun } _designTimeBuildGraphFactory = new ProjectGraphFactory( - _context.RootProjectOptions.Representation, - _context.RootProjectOptions.TargetFramework, - globalOptions: EvaluationResult.GetGlobalBuildOptions( + context.RootProjectOptions.Representation, + context.RootProjectOptions.TargetFramework, + buildProperties: EvaluationResult.GetGlobalBuildProperties( context.RootProjectOptions.BuildArguments, - context.EnvironmentOptions)); + context.EnvironmentOptions), + context.Logger); } public async Task WatchAsync(CancellationToken shutdownCancellationToken) @@ -100,7 +102,7 @@ public async Task WatchAsync(CancellationToken shutdownCancellationToken) // Avoid restore since the build above already restored the root project. evaluationResult = await EvaluateRootProjectAsync(restore: false, iterationCancellationToken); - var rootProject = evaluationResult.ProjectGraph.GraphRoots.Single(); + var rootProject = evaluationResult.ProjectGraph.Graph.GraphRoots.Single(); // use normalized MSBuild path so that we can index into the ProjectGraph rootProjectOptions = rootProjectOptions with @@ -116,9 +118,8 @@ public async Task WatchAsync(CancellationToken shutdownCancellationToken) _context.Logger.LogDebug("Using Aspire process launcher."); } - var projectMap = new ProjectNodeMap(evaluationResult.ProjectGraph, _context.Logger); compilationHandler = new CompilationHandler(_context); - var projectLauncher = new ProjectLauncher(_context, projectMap, compilationHandler, iteration); + var projectLauncher = new ProjectLauncher(_context, evaluationResult.ProjectGraph, compilationHandler, iteration); evaluationResult.ItemExclusions.Report(_context.Logger); runtimeProcessLauncher = runtimeProcessLauncherFactory?.TryCreate(rootProject, projectLauncher, rootProjectOptions); @@ -161,7 +162,7 @@ public async Task WatchAsync(CancellationToken shutdownCancellationToken) return; } - await compilationHandler.UpdateProjectConeAsync(evaluationResult.ProjectGraph, rootProjectOptions.Representation, iterationCancellationToken); + await compilationHandler.UpdateProjectConeAsync(evaluationResult.ProjectGraph.Graph, rootProjectOptions.Representation, iterationCancellationToken); // Solution must be initialized after we load the solution but before we start watching for file changes to avoid race condition // when the EnC session captures content of the file after the changes has already been made. @@ -230,7 +231,7 @@ void FileChangedCallback(ChangedPath change) var stopwatch = Stopwatch.StartNew(); HotReloadEventSource.Log.HotReloadStart(HotReloadEventSource.StartType.StaticHandler); - await compilationHandler.HandleStaticAssetChangesAsync(changedFiles, projectMap, evaluationResult.RestoredProjectInstances, evaluationResult.StaticWebAssetsManifests, stopwatch, iterationCancellationToken); + await compilationHandler.HandleStaticAssetChangesAsync(changedFiles, evaluationResult, stopwatch, iterationCancellationToken); HotReloadEventSource.Log.HotReloadEnd(HotReloadEventSource.StartType.StaticHandler); HotReloadEventSource.Log.HotReloadStart(HotReloadEventSource.StartType.CompilationHandler); @@ -339,7 +340,7 @@ void FileChangedCallback(ChangedPath change) // Deploy dependencies after rebuilding and before restarting. if (!projectsToRedeploy.IsEmpty) { - DeployProjectDependencies(evaluationResult.RestoredProjectInstances.Values, projectsToRedeploy, iterationCancellationToken); + await DeployProjectDependenciesAsync(evaluationResult, projectsToRedeploy, iterationCancellationToken); _context.Logger.Log(MessageDescriptor.ProjectDependenciesDeployed, projectsToRedeploy.Length); } @@ -410,7 +411,7 @@ async Task> CaptureChangedFilesSnapshot(ImmutableArr // additional files/directories may have been added: evaluationResult.WatchFiles(fileWatcher); - await compilationHandler.UpdateProjectConeAsync(evaluationResult.ProjectGraph, rootProjectOptions.Representation, iterationCancellationToken); + await compilationHandler.UpdateProjectConeAsync(evaluationResult.ProjectGraph.Graph, rootProjectOptions.Representation, iterationCancellationToken); if (shutdownCancellationToken.IsCancellationRequested) { @@ -624,13 +625,15 @@ private static bool MatchesStaticWebAssetFilePattern(EvaluationResult evaluation return false; } - private void DeployProjectDependencies(IEnumerable restoredProjectInstances, ImmutableArray projectPaths, CancellationToken cancellationToken) + private async ValueTask DeployProjectDependenciesAsync(EvaluationResult evaluationResult, ImmutableArray projectPaths, CancellationToken cancellationToken) { + const string TargetName = TargetNames.ReferenceCopyLocalPathsOutputGroup; + var projectPathSet = projectPaths.ToImmutableHashSet(PathUtilities.OSSpecificPathComparer); - var buildReporter = new BuildReporter(_context.Logger, _context.Options, _context.EnvironmentOptions); - var targetName = TargetNames.ReferenceCopyLocalPathsOutputGroup; - foreach (var restoredProjectInstance in restoredProjectInstances) + var buildRequests = new List>(); + + foreach (var (_, restoredProjectInstance) in evaluationResult.RestoredProjectInstances) { cancellationToken.ThrowIfCancellationRequested(); @@ -644,7 +647,7 @@ private void DeployProjectDependencies(IEnumerable restoredProj continue; } - if (!projectInstance.Targets.ContainsKey(targetName)) + if (!projectInstance.Targets.ContainsKey(TargetName)) { continue; } @@ -654,43 +657,70 @@ private void DeployProjectDependencies(IEnumerable restoredProj continue; } - using var loggers = buildReporter.GetLoggers(projectPath, targetName); - if (!projectInstance.Build([targetName], loggers, out var targetOutputs)) + buildRequests.Add(BuildRequest.Create(projectInstance, [TargetName], relativeOutputDir)); + } + + var results = await evaluationResult.BuildManager.BuildAsync( + buildRequests, + onFailure: failedInstance => + { + _context.Logger.LogDebug("[{ProjectName}] {TargetName} target failed", failedInstance.GetDisplayName(), TargetName); + + // continue build + return true; + }, + operationName: "DeployProjectDependencies", + cancellationToken); + + var copyTasks = new List(); + + foreach (var result in results) + { + if (!result.IsSuccess) { - _context.Logger.LogDebug("{TargetName} target failed", targetName); - loggers.ReportOutput(); continue; } + var relativeOutputDir = result.Data; + var projectInstance = result.ProjectInstance; + + var projectPath = projectInstance.FullPath; + var outputDir = Path.Combine(Path.GetDirectoryName(projectPath)!, relativeOutputDir); - foreach (var item in targetOutputs[targetName].Items) + foreach (var item in result.TargetResults[TargetName].Items) { cancellationToken.ThrowIfCancellationRequested(); var sourcePath = item.ItemSpec; var targetPath = Path.Combine(outputDir, item.GetMetadata(MetadataNames.TargetPath)); - if (!File.Exists(targetPath)) - { - _context.Logger.LogDebug("Deploying project dependency '{TargetPath}' from '{SourcePath}'", targetPath, sourcePath); - try + copyTasks.Add(Task.Run(() => + { + if (!File.Exists(targetPath)) { - var directory = Path.GetDirectoryName(targetPath); - if (directory != null) + _context.Logger.LogDebug("Deploying project dependency '{TargetPath}' from '{SourcePath}'", targetPath, sourcePath); + + try { - Directory.CreateDirectory(directory); - } + var directory = Path.GetDirectoryName(targetPath); + if (directory != null) + { + Directory.CreateDirectory(directory); + } - File.Copy(sourcePath, targetPath, overwrite: false); - } - catch (Exception e) - { - _context.Logger.LogDebug("Copy failed: {Message}", e.Message); + File.Copy(sourcePath, targetPath, overwrite: false); + } + catch (Exception e) + { + _context.Logger.LogDebug("Copy failed: {Message}", e.Message); + } } - } + }, cancellationToken)); } } + + await Task.WhenAll(copyTasks); } private async ValueTask WaitForFileChangeBeforeRestarting(FileWatcher fileWatcher, EvaluationResult? evaluationResult, CancellationToken cancellationToken) @@ -893,21 +923,15 @@ private async ValueTask EvaluateRootProjectAsync(bool restore, { cancellationToken.ThrowIfCancellationRequested(); - _context.Logger.LogInformation("Evaluating projects ..."); + _context.Logger.LogInformation("Loading projects ..."); var stopwatch = Stopwatch.StartNew(); - var result = EvaluationResult.TryCreate( - _designTimeBuildGraphFactory, - _context.BuildLogger, - _context.Options, - _context.EnvironmentOptions, - restore, - cancellationToken); - - _context.Logger.LogInformation("Evaluation completed in {Time}s.", stopwatch.Elapsed.TotalSeconds.ToString("0.0")); + var result = await EvaluationResult.TryCreateAsync(_designTimeBuildGraphFactory, _context.Options, _context.EnvironmentOptions, restore, cancellationToken); + var timeDisplay = stopwatch.Elapsed.TotalSeconds.ToString("0.0"); if (result != null) { + _context.Logger.LogInformation("Loaded {ProjectCount} project(s) in {Time}s.", result.ProjectGraph.Graph.ProjectNodes.Count, timeDisplay); return result; } diff --git a/src/BuiltInTools/Watch/Process/ProjectLauncher.cs b/src/BuiltInTools/Watch/Process/ProjectLauncher.cs index 6000a2e128d4..05ed11619329 100644 --- a/src/BuiltInTools/Watch/Process/ProjectLauncher.cs +++ b/src/BuiltInTools/Watch/Process/ProjectLauncher.cs @@ -11,7 +11,7 @@ namespace Microsoft.DotNet.Watch; internal sealed class ProjectLauncher( DotNetWatchContext context, - ProjectNodeMap projectMap, + LoadedProjectGraph projectGraph, CompilationHandler compilationHandler, int iteration) { @@ -33,7 +33,7 @@ public EnvironmentOptions EnvironmentOptions RestartOperation restartOperation, CancellationToken cancellationToken) { - var projectNode = projectMap.TryGetProjectNode(projectOptions.Representation.ProjectGraphPath, projectOptions.TargetFramework); + var projectNode = projectGraph.TryGetProjectNode(projectOptions.Representation.ProjectGraphPath, projectOptions.TargetFramework); if (projectNode == null) { // error already reported diff --git a/src/BuiltInTools/dotnet-watch/Program.cs b/src/BuiltInTools/dotnet-watch/Program.cs index e688cc0ed779..5c0507148ee6 100644 --- a/src/BuiltInTools/dotnet-watch/Program.cs +++ b/src/BuiltInTools/dotnet-watch/Program.cs @@ -348,7 +348,8 @@ private async Task ListFilesAsync(ProcessRunner processRunner, Cancellation rootProjectOptions.TargetFramework, rootProjectOptions.BuildArguments, processRunner, - new BuildReporter(buildLogger, options.GlobalOptions, environmentOptions)); + buildLogger, + environmentOptions); if (await fileSetFactory.TryCreateAsync(requireProjectGraph: null, cancellationToken) is not { } evaluationResult) { diff --git a/src/BuiltInTools/dotnet-watch/Watch/BuildEvaluator.cs b/src/BuiltInTools/dotnet-watch/Watch/BuildEvaluator.cs index 8bfce7124efe..c2572d72ecb7 100644 --- a/src/BuiltInTools/dotnet-watch/Watch/BuildEvaluator.cs +++ b/src/BuiltInTools/dotnet-watch/Watch/BuildEvaluator.cs @@ -45,7 +45,8 @@ protected virtual MSBuildFileSetFactory CreateMSBuildFileSetFactory() _context.RootProjectOptions.TargetFramework, _context.RootProjectOptions.BuildArguments, _context.ProcessRunner, - new BuildReporter(_context.BuildLogger, _context.Options, _context.EnvironmentOptions)); + _context.BuildLogger, + _context.EnvironmentOptions); } public IReadOnlyList GetProcessArguments(int iteration) diff --git a/src/BuiltInTools/dotnet-watch/Watch/DotNetWatcher.cs b/src/BuiltInTools/dotnet-watch/Watch/DotNetWatcher.cs index b6fb10c29286..709aa4dc3c93 100644 --- a/src/BuiltInTools/dotnet-watch/Watch/DotNetWatcher.cs +++ b/src/BuiltInTools/dotnet-watch/Watch/DotNetWatcher.cs @@ -38,9 +38,8 @@ public static async Task WatchAsync(DotNetWatchContext context, CancellationToke ProjectGraphNode? projectRootNode; if (evaluationResult.ProjectGraph != null) { - projectRootNode = evaluationResult.ProjectGraph.GraphRoots.Single(); - var projectMap = new ProjectNodeMap(evaluationResult.ProjectGraph, context.Logger); - staticFileHandler = new StaticFileHandler(context.Logger, projectMap, context.BrowserRefreshServerFactory); + projectRootNode = evaluationResult.ProjectGraph.Graph.GraphRoots.Single(); + staticFileHandler = new StaticFileHandler(context.Logger, evaluationResult.ProjectGraph, context.BrowserRefreshServerFactory); } else { diff --git a/src/BuiltInTools/dotnet-watch/Watch/MsBuildFileSetFactory.cs b/src/BuiltInTools/dotnet-watch/Watch/MsBuildFileSetFactory.cs index 493028afd91d..1e66bc3b18f8 100644 --- a/src/BuiltInTools/dotnet-watch/Watch/MsBuildFileSetFactory.cs +++ b/src/BuiltInTools/dotnet-watch/Watch/MsBuildFileSetFactory.cs @@ -23,25 +23,24 @@ internal class MSBuildFileSetFactory( string? targetFramework, IEnumerable buildArguments, ProcessRunner processRunner, - BuildReporter buildReporter) + ILogger logger, + EnvironmentOptions environmentOptions) { private const string TargetName = "GenerateWatchList"; private const string WatchTargetsFileName = "DotNetWatch.targets"; public string RootProjectFile => rootProjectFile; - private EnvironmentOptions EnvironmentOptions => buildReporter.EnvironmentOptions; - private ILogger Logger => buildReporter.Logger; - private readonly ProjectGraphFactory _buildGraphFactory = new( new ProjectRepresentation(rootProjectFile, entryPointFilePath: null), targetFramework, - globalOptions: BuildUtilities.ParseBuildProperties(buildArguments).ToImmutableDictionary(keySelector: arg => arg.key, elementSelector: arg => arg.value)); + buildProperties: BuildUtilities.ParseBuildProperties(buildArguments).ToImmutableDictionary(keySelector: arg => arg.key, elementSelector: arg => arg.value), + logger); - internal sealed class EvaluationResult(IReadOnlyDictionary files, ProjectGraph? projectGraph) + internal sealed class EvaluationResult(IReadOnlyDictionary files, LoadedProjectGraph? projectGraph) { public readonly IReadOnlyDictionary Files = files; - public readonly ProjectGraph? ProjectGraph = projectGraph; + public readonly LoadedProjectGraph? ProjectGraph = projectGraph; } // Virtual for testing. @@ -56,7 +55,7 @@ internal sealed class EvaluationResult(IReadOnlyDictionary fil var processSpec = new ProcessSpec { - Executable = EnvironmentOptions.MuxerPath, + Executable = environmentOptions.MuxerPath, WorkingDirectory = projectDir, IsUserApplication = false, Arguments = arguments, @@ -69,19 +68,19 @@ internal sealed class EvaluationResult(IReadOnlyDictionary fil } }; - Logger.LogDebug("Running MSBuild target '{TargetName}' on '{Path}'", TargetName, rootProjectFile); + logger.LogDebug("Running MSBuild target '{TargetName}' on '{Path}'", TargetName, rootProjectFile); - var exitCode = await processRunner.RunAsync(processSpec, Logger, launchResult: null, cancellationToken); + var exitCode = await processRunner.RunAsync(processSpec, logger, launchResult: null, cancellationToken); var success = exitCode == 0 && File.Exists(watchList); if (!success) { - Logger.LogError("Error(s) finding watch items project file '{FileName}'.", Path.GetFileName(rootProjectFile)); - Logger.LogInformation("MSBuild output from target '{TargetName}':", TargetName); + logger.LogError("Error(s) finding watch items project file '{FileName}'.", Path.GetFileName(rootProjectFile)); + logger.LogInformation("MSBuild output from target '{TargetName}':", TargetName); } - BuildOutput.ReportBuildOutput(Logger, capturedOutput, success); + BuildOutput.ReportBuildOutput(logger, capturedOutput, success); if (!success) { return null; @@ -124,16 +123,16 @@ void AddFile(string filePath, string? staticWebAssetPath) } } - buildReporter.ReportWatchedFiles(fileItems); + BuildReporter.ReportWatchedFiles(logger, fileItems); #if DEBUG Debug.Assert(fileItems.Values.All(f => Path.IsPathRooted(f.FilePath)), "All files should be rooted paths"); #endif // Load the project graph after the project has been restored: - ProjectGraph? projectGraph = null; + LoadedProjectGraph? projectGraph = null; if (requireProjectGraph != null) { - projectGraph = _buildGraphFactory.TryLoadProjectGraph(Logger, requireProjectGraph.Value, cancellationToken); + projectGraph = _buildGraphFactory.TryLoadProjectGraph(requireProjectGraph.Value, cancellationToken); if (projectGraph == null && requireProjectGraph == true) { return null; @@ -167,7 +166,7 @@ private IReadOnlyList GetMSBuildArguments(string watchListFilePath) // Set dotnet-watch reserved properties after the user specified propeties, // so that the former take precedence. - if (EnvironmentOptions.SuppressHandlingStaticWebAssets) + if (environmentOptions.SuppressHandlingStaticWebAssets) { arguments.Add("/p:DotNetWatchContentFiles=false"); } diff --git a/src/BuiltInTools/dotnet-watch/Watch/StaticFileHandler.cs b/src/BuiltInTools/dotnet-watch/Watch/StaticFileHandler.cs index 18d51c043277..38335764b3af 100644 --- a/src/BuiltInTools/dotnet-watch/Watch/StaticFileHandler.cs +++ b/src/BuiltInTools/dotnet-watch/Watch/StaticFileHandler.cs @@ -8,7 +8,7 @@ namespace Microsoft.DotNet.Watch { - internal sealed class StaticFileHandler(ILogger logger, ProjectNodeMap projectMap, BrowserRefreshServerFactory browserConnector) + internal sealed class StaticFileHandler(ILogger logger, LoadedProjectGraph projectGraph, BrowserRefreshServerFactory browserConnector) { public async ValueTask HandleFileChangesAsync(IReadOnlyList files, CancellationToken cancellationToken) { @@ -31,7 +31,7 @@ public async ValueTask HandleFileChangesAsync(IReadOnlyList f foreach (var containingProjectPath in file.ContainingProjectPaths) { - if (!projectMap.Map.TryGetValue(containingProjectPath, out var projectNodes)) + if (!projectGraph.Map.TryGetValue(containingProjectPath, out var projectNodes)) { // Shouldn't happen. logger.LogWarning("Project '{Path}' not found in the project graph.", containingProjectPath); diff --git a/src/Microsoft.CodeAnalysis.NetAnalyzers/src/Microsoft.CodeAnalysis.NetAnalyzers.sarif b/src/Microsoft.CodeAnalysis.NetAnalyzers/src/Microsoft.CodeAnalysis.NetAnalyzers.sarif index 297355660e97..498b1e3a5e93 100644 --- a/src/Microsoft.CodeAnalysis.NetAnalyzers/src/Microsoft.CodeAnalysis.NetAnalyzers.sarif +++ b/src/Microsoft.CodeAnalysis.NetAnalyzers/src/Microsoft.CodeAnalysis.NetAnalyzers.sarif @@ -5,7 +5,7 @@ { "tool": { "name": "Microsoft.CodeAnalysis.CSharp.NetAnalyzers", - "version": "10.0.200", + "version": "10.0.300", "language": "en-US" }, "rules": { @@ -708,7 +708,7 @@ { "tool": { "name": "Microsoft.CodeAnalysis.NetAnalyzers", - "version": "10.0.200", + "version": "10.0.300", "language": "en-US" }, "rules": { @@ -6503,7 +6503,7 @@ { "tool": { "name": "Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers", - "version": "10.0.200", + "version": "10.0.300", "language": "en-US" }, "rules": { diff --git a/test/dotnet-watch.Tests/Build/EvaluationTests.cs b/test/dotnet-watch.Tests/Build/EvaluationTests.cs index 2d81dd164d8c..50ce37dca37e 100644 --- a/test/dotnet-watch.Tests/Build/EvaluationTests.cs +++ b/test/dotnet-watch.Tests/Build/EvaluationTests.cs @@ -444,9 +444,8 @@ public async Task ProjectReferences_Graph() var options = TestOptions.GetEnvironmentOptions(workingDirectory: testDirectory, muxerPath: MuxerPath); var processRunner = new ProcessRunner(processCleanupTimeout: TimeSpan.Zero); - var buildReporter = new BuildReporter(_logger, new GlobalOptions(), options); - var filesetFactory = new MSBuildFileSetFactory(projectA, targetFramework: null, buildArguments: ["/p:_DotNetWatchTraceOutput=true"], processRunner, buildReporter); + var filesetFactory = new MSBuildFileSetFactory(projectA, targetFramework: null, buildArguments: ["/p:_DotNetWatchTraceOutput=true"], processRunner, _logger, options); var result = await filesetFactory.TryCreateAsync(requireProjectGraph: null, CancellationToken.None); Assert.NotNull(result); @@ -509,9 +508,8 @@ public async Task MsbuildOutput() var options = TestOptions.GetEnvironmentOptions(workingDirectory: Path.GetDirectoryName(project1Path)!, muxerPath: MuxerPath); var processRunner = new ProcessRunner(processCleanupTimeout: TimeSpan.Zero); - var buildReporter = new BuildReporter(_logger, new GlobalOptions(), options); - var factory = new MSBuildFileSetFactory(project1Path, targetFramework: null, buildArguments: [], processRunner, buildReporter); + var factory = new MSBuildFileSetFactory(project1Path, targetFramework: null, buildArguments: [], processRunner, _logger, options); var result = await factory.TryCreateAsync(requireProjectGraph: null, CancellationToken.None); Assert.Null(result); @@ -548,8 +546,7 @@ async Task VerifyTargetsEvaluation() var options = TestOptions.GetEnvironmentOptions(workingDirectory: testDir, muxerPath: MuxerPath) with { TestOutput = testDir }; var processRunner = new ProcessRunner(processCleanupTimeout: TimeSpan.Zero); var buildArguments = targetFramework != null ? new[] { "/p:TargetFramework=" + targetFramework } : []; - var buildReporter = new BuildReporter(_logger, new GlobalOptions(), options); - var factory = new MSBuildFileSetFactory(rootProjectPath, targetFramework: null, buildArguments, processRunner, buildReporter); + var factory = new MSBuildFileSetFactory(rootProjectPath, targetFramework: null, buildArguments, processRunner, _logger, options); var targetsResult = await factory.TryCreateAsync(requireProjectGraph: null, CancellationToken.None); Assert.NotNull(targetsResult); diff --git a/test/dotnet-watch.Tests/Build/ProjectGraphFactoryTests.cs b/test/dotnet-watch.Tests/Build/ProjectGraphFactoryTests.cs index 007354bb7158..577e86c78b2b 100644 --- a/test/dotnet-watch.Tests/Build/ProjectGraphFactoryTests.cs +++ b/test/dotnet-watch.Tests/Build/ProjectGraphFactoryTests.cs @@ -19,12 +19,12 @@ public void RegularProject() var projectPath = Path.Combine(testAsset.Path, "WatchNoDepsApp.csproj"); var projectRepr = new ProjectRepresentation(projectPath, entryPointFilePath: null); - var factory = new ProjectGraphFactory(projectRepr, targetFramework: null, globalOptions: []); + var factory = new ProjectGraphFactory(projectRepr, targetFramework: null, buildProperties: [], _testLogger); - var graph = factory.TryLoadProjectGraph(_testLogger, projectGraphRequired: true, CancellationToken.None); + var graph = factory.TryLoadProjectGraph(projectGraphRequired: true, CancellationToken.None); Assert.NotNull(graph); - var root = graph.GraphRoots.Single(); + var root = graph.Graph.GraphRoots.Single(); Assert.Equal(projectPath, root.ProjectInstance.FullPath); } @@ -39,12 +39,12 @@ public void VirtualProject() """); var projectRepr = new ProjectRepresentation(projectPath: null, entryPointFilePath); - var factory = new ProjectGraphFactory(projectRepr, targetFramework: null, globalOptions: []); + var factory = new ProjectGraphFactory(projectRepr, targetFramework: null, buildProperties: [], _testLogger); - var graph = factory.TryLoadProjectGraph(_testLogger, projectGraphRequired: true, CancellationToken.None); + var graph = factory.TryLoadProjectGraph(projectGraphRequired: true, CancellationToken.None); Assert.NotNull(graph); - var root = graph.GraphRoots.Single(); + var root = graph.Graph.GraphRoots.Single(); Assert.Equal(Path.ChangeExtension(entryPointFilePath, ".csproj"), root.ProjectInstance.FullPath); } @@ -59,9 +59,9 @@ public void VirtualProject_Error() """); var projectRepr = new ProjectRepresentation(projectPath: null, entryPointFilePath); - var factory = new ProjectGraphFactory(projectRepr, targetFramework: null, globalOptions: []); + var factory = new ProjectGraphFactory(projectRepr, targetFramework: null, buildProperties: [], _testLogger); - var graph = factory.TryLoadProjectGraph(_testLogger, projectGraphRequired: true, CancellationToken.None); + var graph = factory.TryLoadProjectGraph(projectGraphRequired: true, CancellationToken.None); Assert.Null(graph); var message = string.Format(FileBasedProgramsResources.InvalidProjectDirective, @@ -91,13 +91,13 @@ public void VirtualProject_ProjectDirective() """); var projectRepr = new ProjectRepresentation(projectPath: null, entryPointFilePath); - var factory = new ProjectGraphFactory(projectRepr, targetFramework: null, globalOptions: []); + var factory = new ProjectGraphFactory(projectRepr, targetFramework: null, buildProperties: [], _testLogger); - var graph = factory.TryLoadProjectGraph(_testLogger, projectGraphRequired: true, CancellationToken.None); + var graph = factory.TryLoadProjectGraph(projectGraphRequired: true, CancellationToken.None); Assert.NotNull(graph); AssertEx.SequenceEqual( [projectPath, Path.ChangeExtension(entryPointFilePath, ".csproj")], - graph.ProjectNodesTopologicallySorted.Select(p => p.ProjectInstance.FullPath)); + graph.Graph.ProjectNodesTopologicallySorted.Select(p => p.ProjectInstance.FullPath)); } } diff --git a/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs b/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs index 0f5db9475ac4..a870bb0b2118 100644 --- a/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs +++ b/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs @@ -1,7 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; namespace Microsoft.DotNet.Watch.UnitTests; @@ -22,8 +21,8 @@ public async Task ReferenceOutputAssembly_False() var options = TestOptions.GetProjectOptions(["--project", hostProject]); var environmentOptions = TestOptions.GetEnvironmentOptions(Environment.CurrentDirectory, "dotnet"); - var factory = new ProjectGraphFactory(hostProjectRepr, targetFramework: null, globalOptions: []); - var projectGraph = factory.TryLoadProjectGraph(NullLogger.Instance, projectGraphRequired: false, CancellationToken.None); + var factory = new ProjectGraphFactory(hostProjectRepr, targetFramework: null, buildProperties: [], NullLogger.Instance); + var projectGraph = factory.TryLoadProjectGraph(projectGraphRequired: false, CancellationToken.None); Assert.NotNull(projectGraph); var processOutputReporter = new TestProcessOutputReporter(); @@ -44,7 +43,7 @@ public async Task ReferenceOutputAssembly_False() var handler = new CompilationHandler(context); - await handler.UpdateProjectConeAsync(projectGraph, hostProjectRepr, CancellationToken.None); + await handler.UpdateProjectConeAsync(projectGraph.Graph, hostProjectRepr, CancellationToken.None); // all projects are present AssertEx.SequenceEqual(["Host", "Lib2", "Lib", "A", "B"], handler.Workspace.CurrentSolution.Projects.Select(p => p.Name)); diff --git a/test/dotnet-watch.Tests/TestUtilities/MockFileSetFactory.cs b/test/dotnet-watch.Tests/TestUtilities/MockFileSetFactory.cs index e26022000953..f567640dfc9b 100644 --- a/test/dotnet-watch.Tests/TestUtilities/MockFileSetFactory.cs +++ b/test/dotnet-watch.Tests/TestUtilities/MockFileSetFactory.cs @@ -10,7 +10,8 @@ internal class MockFileSetFactory() : MSBuildFileSetFactory( targetFramework: null, buildArguments: [], new ProcessRunner(processCleanupTimeout: TimeSpan.Zero), - new BuildReporter(NullLogger.Instance, new GlobalOptions(), TestOptions.GetEnvironmentOptions(Environment.CurrentDirectory, "dotnet") is var options ? options : options)) + NullLogger.Instance, + TestOptions.GetEnvironmentOptions(Environment.CurrentDirectory, "dotnet") is var options ? options : options) { public Func? TryCreateImpl; From f44774ceac5dbd1f24b3021f3aac00c03d57a73f Mon Sep 17 00:00:00 2001 From: tmat Date: Fri, 6 Feb 2026 15:04:40 -0800 Subject: [PATCH 125/179] Handle multiple project roots in ProjectGraphFactory --- .../Watch/Build/ProjectBuildManager.cs | 2 +- .../Watch/Build/ProjectGraphFactory.cs | 79 ++++++++----------- .../Watch/HotReload/HotReloadDotNetWatcher.cs | 10 +-- .../Watch/MsBuildFileSetFactory.cs | 2 +- .../Build/ProjectGraphFactoryTests.cs | 8 +- .../CommandLine/ProgramTests.cs | 7 +- .../HotReload/CompilationHandlerTests.cs | 2 +- 7 files changed, 50 insertions(+), 60 deletions(-) diff --git a/src/BuiltInTools/Watch/Build/ProjectBuildManager.cs b/src/BuiltInTools/Watch/Build/ProjectBuildManager.cs index d85543f58424..1dff41be1545 100644 --- a/src/BuiltInTools/Watch/Build/ProjectBuildManager.cs +++ b/src/BuiltInTools/Watch/Build/ProjectBuildManager.cs @@ -45,7 +45,7 @@ public async Task>> BuildAsync( var buildParameters = new BuildParameters(Collection) { - Loggers = loggers + Loggers = loggers, }; manager.BeginBuild(buildParameters); diff --git a/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs b/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs index 4024743616ee..067dad7a6459 100644 --- a/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs +++ b/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs @@ -13,7 +13,11 @@ namespace Microsoft.DotNet.Watch; -internal sealed class ProjectGraphFactory +internal sealed class ProjectGraphFactory( + ImmutableArray rootProjects, + string? targetFramework, + ImmutableDictionary buildProperties, + ILogger logger) { /// /// Reuse with XML element caching to improve performance. @@ -21,43 +25,20 @@ internal sealed class ProjectGraphFactory /// The cache is automatically updated when build files change. /// https://github.com/dotnet/msbuild/blob/b6f853defccd64ae1e9c7cf140e7e4de68bff07c/src/Build/Definition/ProjectCollection.cs#L343-L354 /// - private readonly ProjectCollection _collection; + private readonly ProjectCollection _collection = new( + globalProperties: buildProperties, + loggers: [], + remoteLoggers: [], + ToolsetDefinitionLocations.Default, + maxNodeCount: 1, + onlyLogCriticalEvents: false, + loadProjectsReadOnly: false, + useAsynchronousLogging: false, + reuseProjectRootElementCache: true); - private readonly ImmutableDictionary _buildProperties; - private readonly ILogger _logger; - private readonly ProjectRepresentation _rootProject; + private readonly string _targetFramework = targetFramework ?? GetProductTargetFramework(); - // Only the root project can be virtual. #:project does not support targeting other single-file projects. - private readonly VirtualProjectBuilder? _virtualRootProjectBuilder; - - public ProjectGraphFactory( - ProjectRepresentation rootProject, - string? targetFramework, - ImmutableDictionary buildProperties, - ILogger logger) - { - _collection = new( - globalProperties: buildProperties, - loggers: [], - remoteLoggers: [], - ToolsetDefinitionLocations.Default, - maxNodeCount: 1, - onlyLogCriticalEvents: false, - loadProjectsReadOnly: false, - useAsynchronousLogging: false, - reuseProjectRootElementCache: true); - - _buildProperties = buildProperties; - _logger = logger; - _rootProject = rootProject; - - if (rootProject.EntryPointFilePath != null) - { - _virtualRootProjectBuilder = new VirtualProjectBuilder(rootProject.EntryPointFilePath, targetFramework ?? GetProductTargetFramework()); - } - } - - public ILogger Logger => _logger; + public ILogger Logger => logger; private static string GetProductTargetFramework() { @@ -71,13 +52,13 @@ private static string GetProductTargetFramework() /// public LoadedProjectGraph? TryLoadProjectGraph(bool projectGraphRequired, CancellationToken cancellationToken) { - var entryPoint = new ProjectGraphEntryPoint(_rootProject.ProjectGraphPath, _buildProperties); + var entryPoints = rootProjects.Select(p => new ProjectGraphEntryPoint(p.ProjectGraphPath, buildProperties)); try { return new LoadedProjectGraph( - new ProjectGraph([entryPoint], _collection, (path, globalProperties, collection) => CreateProjectInstance(path, globalProperties, collection, _logger), cancellationToken), + new ProjectGraph(entryPoints, _collection, (path, globalProperties, collection) => CreateProjectInstance(path, globalProperties, collection, logger), cancellationToken), _collection, - _logger); + logger); } catch (ProjectCreationFailedException) { @@ -89,7 +70,7 @@ private static string GetProductTargetFramework() // throw here to propagate the cancellation. cancellationToken.ThrowIfCancellationRequested(); - _logger.LogDebug("Failed to load project graph."); + logger.LogDebug("Failed to load project graph."); if (e is AggregateException { InnerExceptions: var innerExceptions }) { @@ -110,11 +91,11 @@ void Report(Exception e) { if (projectGraphRequired) { - _logger.LogError(e.Message); + logger.LogError(e.Message); } else { - _logger.LogWarning(e.Message); + logger.LogWarning(e.Message); } } } @@ -124,11 +105,21 @@ void Report(Exception e) private ProjectInstance CreateProjectInstance(string projectPath, Dictionary globalProperties, ProjectCollection projectCollection, ILogger logger) { - if (_virtualRootProjectBuilder != null && projectPath == _rootProject.ProjectGraphPath) + if (!File.Exists(projectPath)) { + var entryPointFilePath = Path.ChangeExtension(projectPath, ".cs"); + if (!File.Exists(entryPointFilePath)) + { + // `dotnet build` reports a warning when the reference project is missing. + // However, ProjectGraph doesn't allow us to return null to skip the project so we need to be stricter. + logger.LogError("The project file could not be loaded. Could not find a part of the path '{Path}'.", projectPath); + throw new ProjectCreationFailedException(); + } + + var builder = new VirtualProjectBuilder(entryPointFilePath, _targetFramework); var anyError = false; - _virtualRootProjectBuilder.CreateProjectInstance( + builder.CreateProjectInstance( projectCollection, (sourceFile, textSpan, message) => { diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs index 0a4e503982da..775e8e383c8f 100644 --- a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs +++ b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs @@ -46,12 +46,12 @@ public HotReloadDotNetWatcher(DotNetWatchContext context, IConsole console, IRun } _designTimeBuildGraphFactory = new ProjectGraphFactory( - context.RootProjectOptions.Representation, + [context.RootProjectOptions.Representation], context.RootProjectOptions.TargetFramework, buildProperties: EvaluationResult.GetGlobalBuildProperties( context.RootProjectOptions.BuildArguments, context.EnvironmentOptions), - context.Logger); + context.BuildLogger); } public async Task WatchAsync(CancellationToken shutdownCancellationToken) @@ -100,7 +100,7 @@ public async Task WatchAsync(CancellationToken shutdownCancellationToken) // Evaluate the target to find out the set of files to watch. // In case the app fails to start due to build or other error we can wait for these files to change. // Avoid restore since the build above already restored the root project. - evaluationResult = await EvaluateRootProjectAsync(restore: false, iterationCancellationToken); + evaluationResult = await EvaluateProjectGraphAsync(restore: false, iterationCancellationToken); var rootProject = evaluationResult.ProjectGraph.Graph.GraphRoots.Single(); @@ -406,7 +406,7 @@ async Task> CaptureChangedFilesSnapshot(ImmutableArr if (evaluationRequired) { // TODO: consider re-evaluating only affected projects instead of the whole graph. - evaluationResult = await EvaluateRootProjectAsync(restore: true, iterationCancellationToken); + evaluationResult = await EvaluateProjectGraphAsync(restore: true, iterationCancellationToken); // additional files/directories may have been added: evaluationResult.WatchFiles(fileWatcher); @@ -917,7 +917,7 @@ static string GetPluralMessage(ChangeKind kind) }; } - private async ValueTask EvaluateRootProjectAsync(bool restore, CancellationToken cancellationToken) + private async ValueTask EvaluateProjectGraphAsync(bool restore, CancellationToken cancellationToken) { while (true) { diff --git a/src/BuiltInTools/dotnet-watch/Watch/MsBuildFileSetFactory.cs b/src/BuiltInTools/dotnet-watch/Watch/MsBuildFileSetFactory.cs index 1e66bc3b18f8..5a023d529d73 100644 --- a/src/BuiltInTools/dotnet-watch/Watch/MsBuildFileSetFactory.cs +++ b/src/BuiltInTools/dotnet-watch/Watch/MsBuildFileSetFactory.cs @@ -32,7 +32,7 @@ internal class MSBuildFileSetFactory( public string RootProjectFile => rootProjectFile; private readonly ProjectGraphFactory _buildGraphFactory = new( - new ProjectRepresentation(rootProjectFile, entryPointFilePath: null), + [new ProjectRepresentation(rootProjectFile, entryPointFilePath: null)], targetFramework, buildProperties: BuildUtilities.ParseBuildProperties(buildArguments).ToImmutableDictionary(keySelector: arg => arg.key, elementSelector: arg => arg.value), logger); diff --git a/test/dotnet-watch.Tests/Build/ProjectGraphFactoryTests.cs b/test/dotnet-watch.Tests/Build/ProjectGraphFactoryTests.cs index 577e86c78b2b..755009e2afe9 100644 --- a/test/dotnet-watch.Tests/Build/ProjectGraphFactoryTests.cs +++ b/test/dotnet-watch.Tests/Build/ProjectGraphFactoryTests.cs @@ -19,7 +19,7 @@ public void RegularProject() var projectPath = Path.Combine(testAsset.Path, "WatchNoDepsApp.csproj"); var projectRepr = new ProjectRepresentation(projectPath, entryPointFilePath: null); - var factory = new ProjectGraphFactory(projectRepr, targetFramework: null, buildProperties: [], _testLogger); + var factory = new ProjectGraphFactory([projectRepr], targetFramework: null, buildProperties: [], _testLogger); var graph = factory.TryLoadProjectGraph(projectGraphRequired: true, CancellationToken.None); Assert.NotNull(graph); @@ -39,7 +39,7 @@ public void VirtualProject() """); var projectRepr = new ProjectRepresentation(projectPath: null, entryPointFilePath); - var factory = new ProjectGraphFactory(projectRepr, targetFramework: null, buildProperties: [], _testLogger); + var factory = new ProjectGraphFactory([projectRepr], targetFramework: null, buildProperties: [], _testLogger); var graph = factory.TryLoadProjectGraph(projectGraphRequired: true, CancellationToken.None); Assert.NotNull(graph); @@ -59,7 +59,7 @@ public void VirtualProject_Error() """); var projectRepr = new ProjectRepresentation(projectPath: null, entryPointFilePath); - var factory = new ProjectGraphFactory(projectRepr, targetFramework: null, buildProperties: [], _testLogger); + var factory = new ProjectGraphFactory([projectRepr], targetFramework: null, buildProperties: [], _testLogger); var graph = factory.TryLoadProjectGraph(projectGraphRequired: true, CancellationToken.None); Assert.Null(graph); @@ -91,7 +91,7 @@ public void VirtualProject_ProjectDirective() """); var projectRepr = new ProjectRepresentation(projectPath: null, entryPointFilePath); - var factory = new ProjectGraphFactory(projectRepr, targetFramework: null, buildProperties: [], _testLogger); + var factory = new ProjectGraphFactory([projectRepr], targetFramework: null, buildProperties: [], _testLogger); var graph = factory.TryLoadProjectGraph(projectGraphRequired: true, CancellationToken.None); Assert.NotNull(graph); diff --git a/test/dotnet-watch.Tests/CommandLine/ProgramTests.cs b/test/dotnet-watch.Tests/CommandLine/ProgramTests.cs index aae4d9117093..b255256324bf 100644 --- a/test/dotnet-watch.Tests/CommandLine/ProgramTests.cs +++ b/test/dotnet-watch.Tests/CommandLine/ProgramTests.cs @@ -339,10 +339,9 @@ public async Task ProjectGraphLoadFailure() App.Start(testAsset, [], "AppWithDeps"); - await App.AssertOutputLineStartsWith("dotnet watch ⌚ Fix the error to continue or press Ctrl+C to exit."); - - App.AssertOutputContains(@"dotnet watch 🔨 Failed to load project graph."); - App.AssertOutputContains($"dotnet watch ❌ The project file could not be loaded. Could not find a part of the path '{Path.Combine(testAsset.Path, "AppWithDeps", "NonExistentDirectory", "X.csproj")}'"); + await App.WaitUntilOutputContains($"dotnet watch ❌ The project file could not be loaded. Could not find a part of the path '{Path.Combine(testAsset.Path, "AppWithDeps", "NonExistentDirectory", "X.csproj")}'."); + await App.WaitUntilOutputContains(@"dotnet watch 🔨 Failed to load project graph."); + await App.WaitUntilOutputContains("dotnet watch ⌚ Fix the error to continue or press Ctrl+C to exit."); } [PlatformSpecificFact(TestPlatforms.Windows)] // "https://github.com/dotnet/sdk/issues/49307") diff --git a/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs b/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs index a870bb0b2118..cfdf200dfa87 100644 --- a/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs +++ b/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs @@ -21,7 +21,7 @@ public async Task ReferenceOutputAssembly_False() var options = TestOptions.GetProjectOptions(["--project", hostProject]); var environmentOptions = TestOptions.GetEnvironmentOptions(Environment.CurrentDirectory, "dotnet"); - var factory = new ProjectGraphFactory(hostProjectRepr, targetFramework: null, buildProperties: [], NullLogger.Instance); + var factory = new ProjectGraphFactory([hostProjectRepr], targetFramework: null, buildProperties: [], NullLogger.Instance); var projectGraph = factory.TryLoadProjectGraph(projectGraphRequired: false, CancellationToken.None); Assert.NotNull(projectGraph); From c8bed077130bc981645d7e87040d505f2ddbdead Mon Sep 17 00:00:00 2001 From: Tomas Matousek Date: Mon, 15 Dec 2025 16:51:59 -0800 Subject: [PATCH 126/179] Auto-restart when project does not support Hot Reload --- .../HotReloadClient/DefaultHotReloadClient.cs | 4 +- .../HotReloadClient/HotReloadClients.cs | 72 +++++-- .../HotReloadClient/StaticAsset.cs | 14 ++ .../AppModels/BlazorWebAssemblyAppModel.cs | 6 +- .../BlazorWebAssemblyHostedAppModel.cs | 16 +- .../Watch/AppModels/DefaultAppModel.cs | 9 +- .../Watch/AppModels/HotReloadAppModel.cs | 40 +++- .../Watch/AppModels/MobileAppModel.cs | 27 ++- .../Watch/AppModels/WebApplicationAppModel.cs | 37 +++- .../Watch/AppModels/WebServerAppModel.cs | 7 +- src/BuiltInTools/Watch/Build/BuildNames.cs | 3 + .../Watch/HotReload/CompilationHandler.cs | 195 +++++++++++------- .../Watch/HotReload/HotReloadDotNetWatcher.cs | 150 ++++++-------- .../Watch/HotReload/HotReloadEventSource.cs | 31 --- .../HotReloadProjectUpdatesBuilder.cs | 17 ++ .../Watch/Process/ProjectLauncher.cs | 20 +- .../Watch/Process/RunningProject.cs | 28 +-- src/BuiltInTools/Watch/UI/IReporter.cs | 23 +-- .../HotReloadClientTests.cs | 2 +- .../Server/Properties/launchSettings.json | 2 +- .../Properties/launchSettings.json | 2 +- .../Properties/launchSettings.json | 2 +- .../HotReload/ApplyDeltaTests.cs | 48 ++++- .../HotReload/RuntimeProcessLauncherTests.cs | 4 +- 24 files changed, 431 insertions(+), 328 deletions(-) create mode 100644 src/BuiltInTools/HotReloadClient/StaticAsset.cs delete mode 100644 src/BuiltInTools/Watch/HotReload/HotReloadEventSource.cs create mode 100644 src/BuiltInTools/Watch/HotReload/HotReloadProjectUpdatesBuilder.cs diff --git a/src/BuiltInTools/HotReloadClient/DefaultHotReloadClient.cs b/src/BuiltInTools/HotReloadClient/DefaultHotReloadClient.cs index 00dfa8f61b14..9ca5fb9cc271 100644 --- a/src/BuiltInTools/HotReloadClient/DefaultHotReloadClient.cs +++ b/src/BuiltInTools/HotReloadClient/DefaultHotReloadClient.cs @@ -16,7 +16,7 @@ namespace Microsoft.DotNet.HotReload { - internal sealed class DefaultHotReloadClient(ILogger logger, ILogger agentLogger, string startupHookPath, bool enableStaticAssetUpdates, ClientTransport transport) + internal sealed class DefaultHotReloadClient(ILogger logger, ILogger agentLogger, string startupHookPath, bool handlesStaticAssetUpdates, ClientTransport transport) : HotReloadClient(logger, agentLogger) { private Task>? _capabilitiesTask; @@ -212,7 +212,7 @@ static ImmutableArray ToRuntimeUpdates(IEnumerable> ApplyStaticAssetUpdatesAsync(ImmutableArray updates, CancellationToken processExitedCancellationToken, CancellationToken cancellationToken) { - if (!enableStaticAssetUpdates) + if (!handlesStaticAssetUpdates) { // The client has no concept of static assets. return Task.FromResult(true); diff --git a/src/BuiltInTools/HotReloadClient/HotReloadClients.cs b/src/BuiltInTools/HotReloadClient/HotReloadClients.cs index 1b02eac9de48..1400a43c7e09 100644 --- a/src/BuiltInTools/HotReloadClient/HotReloadClients.cs +++ b/src/BuiltInTools/HotReloadClient/HotReloadClients.cs @@ -6,6 +6,7 @@ using System; using System.Collections.Generic; using System.Collections.Immutable; +using System.Diagnostics; using System.IO; using System.Linq; using System.Runtime.InteropServices; @@ -16,13 +17,25 @@ namespace Microsoft.DotNet.HotReload; -internal sealed class HotReloadClients(ImmutableArray<(HotReloadClient client, string name)> clients, AbstractBrowserRefreshServer? browserRefreshServer) : IDisposable +/// +/// Facilitates Hot Reload updates across multiple clients/processes. +/// +/// +/// Clients that handle managed updates and static asset updates if is false. +/// +/// +/// Browser refresh server used to communicate managed code update status and errors to the browser, +/// and to apply static asset updates if is true. +/// +/// +/// True to use to apply static asset updates (if available). +/// False to use the to apply static asset updates. +/// +internal sealed class HotReloadClients( + ImmutableArray<(HotReloadClient client, string name)> clients, + AbstractBrowserRefreshServer? browserRefreshServer, + bool useRefreshServerToApplyStaticAssets) : IDisposable { - public HotReloadClients(HotReloadClient client, AbstractBrowserRefreshServer? browserRefreshServer) - : this([(client, "")], browserRefreshServer) - { - } - /// /// Disposes all clients. Can occur unexpectedly whenever the process exits. /// @@ -34,6 +47,16 @@ public void Dispose() } } + /// + /// True if Hot Reload is implemented via managed agents. + /// The update itself might not be managed code update, it may be a static asset update implemented via a managed agent. + /// + public bool IsManagedAgentSupported + => !clients.IsEmpty; + + public bool UseRefreshServerToApplyStaticAssets + => useRefreshServerToApplyStaticAssets; + public AbstractBrowserRefreshServer? BrowserRefreshServer => browserRefreshServer; @@ -59,18 +82,6 @@ public event Action OnRuntimeRudeEdit } } - /// - /// All clients share the same loggers. - /// - public ILogger ClientLogger - => clients.First().client.Logger; - - /// - /// All clients share the same loggers. - /// - public ILogger AgentLogger - => clients.First().client.AgentLogger; - internal void ConfigureLaunchEnvironment(IDictionary environmentBuilder) { foreach (var (client, _) in clients) @@ -99,6 +110,12 @@ internal async ValueTask WaitForConnectionEstablishedAsync(CancellationToken can /// Cancellation token. The cancellation should trigger on process terminatation. public async ValueTask> GetUpdateCapabilitiesAsync(CancellationToken cancellationToken) { + if (!IsManagedAgentSupported) + { + // empty capabilities will cause rude edit ENC0097: NotSupportedByRuntime. + return []; + } + if (clients is [var (singleClient, _)]) { return await singleClient.GetUpdateCapabilitiesAsync(cancellationToken); @@ -114,6 +131,9 @@ public async ValueTask> GetUpdateCapabilitiesAsync(Cancel /// Cancellation token. The cancellation should trigger on process terminatation. public async Task ApplyManagedCodeUpdatesAsync(ImmutableArray updates, CancellationToken applyOperationCancellationToken, CancellationToken cancellationToken) { + // shouldn't be called if there are no clients + Debug.Assert(IsManagedAgentSupported); + // Apply to all processes. // The module the change is for does not need to be loaded to any of the processes, yet we still consider it successful if the application does not fail. // In each process we store the deltas for application when/if the module is loaded to the process later. @@ -137,6 +157,9 @@ async Task CompleteApplyOperationAsync() /// Cancellation token. The cancellation should trigger on process terminatation. public async ValueTask InitialUpdatesAppliedAsync(CancellationToken cancellationToken) { + // shouldn't be called if there are no clients + Debug.Assert(IsManagedAgentSupported); + if (clients is [var (singleClient, _)]) { await singleClient.InitialUpdatesAppliedAsync(cancellationToken); @@ -150,23 +173,26 @@ public async ValueTask InitialUpdatesAppliedAsync(CancellationToken cancellation /// Cancellation token. The cancellation should trigger on process terminatation. public async Task ApplyStaticAssetUpdatesAsync(IEnumerable assets, CancellationToken applyOperationCancellationToken, CancellationToken cancellationToken) { - if (browserRefreshServer != null) + if (useRefreshServerToApplyStaticAssets) { + Debug.Assert(browserRefreshServer != null); return browserRefreshServer.UpdateStaticAssetsAsync(assets.Select(static a => a.RelativeUrl), applyOperationCancellationToken).AsTask(); } + // shouldn't be called if there are no clients + Debug.Assert(IsManagedAgentSupported); + var updates = new List(); foreach (var asset in assets) { try { - ClientLogger.LogDebug("Loading asset '{Url}' from '{Path}'.", asset.RelativeUrl, asset.FilePath); updates.Add(await HotReloadStaticAssetUpdate.CreateAsync(asset, cancellationToken)); } catch (Exception e) when (e is not OperationCanceledException) { - ClientLogger.LogError("Failed to read file {FilePath}: {Message}", asset.FilePath, e.Message); + clients.First().client.Logger.LogError("Failed to read file {FilePath}: {Message}", asset.FilePath, e.Message); continue; } } @@ -177,6 +203,10 @@ public async Task ApplyStaticAssetUpdatesAsync(IEnumerable /// Cancellation token. The cancellation should trigger on process terminatation. public async ValueTask ApplyStaticAssetUpdatesAsync(ImmutableArray updates, CancellationToken applyOperationCancellationToken, CancellationToken cancellationToken) { + // shouldn't be called if there are no clients + Debug.Assert(IsManagedAgentSupported); + Debug.Assert(!useRefreshServerToApplyStaticAssets); + var applyTasks = await Task.WhenAll(clients.Select(c => c.client.ApplyStaticAssetUpdatesAsync(updates, applyOperationCancellationToken, cancellationToken))); return Task.WhenAll(applyTasks); diff --git a/src/BuiltInTools/HotReloadClient/StaticAsset.cs b/src/BuiltInTools/HotReloadClient/StaticAsset.cs new file mode 100644 index 000000000000..74cf7d1e096d --- /dev/null +++ b/src/BuiltInTools/HotReloadClient/StaticAsset.cs @@ -0,0 +1,14 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable enable + +namespace Microsoft.DotNet.HotReload; + +internal readonly struct StaticAsset(string filePath, string relativeUrl, string assemblyName, bool isApplicationProject) +{ + public string FilePath => filePath; + public string RelativeUrl => relativeUrl; + public string AssemblyName => assemblyName; + public bool IsApplicationProject => isApplicationProject; +} diff --git a/src/BuiltInTools/Watch/AppModels/BlazorWebAssemblyAppModel.cs b/src/BuiltInTools/Watch/AppModels/BlazorWebAssemblyAppModel.cs index ea3480f979f6..ef0c112b98fb 100644 --- a/src/BuiltInTools/Watch/AppModels/BlazorWebAssemblyAppModel.cs +++ b/src/BuiltInTools/Watch/AppModels/BlazorWebAssemblyAppModel.cs @@ -17,11 +17,11 @@ internal sealed class BlazorWebAssemblyAppModel(DotNetWatchContext context, Proj { public override ProjectGraphNode LaunchingProject => clientProject; - public override bool RequiresBrowserRefresh => true; + public override bool ManagedHotReloadRequiresBrowserRefresh => true; - protected override HotReloadClients CreateClients(ILogger clientLogger, ILogger agentLogger, BrowserRefreshServer? browserRefreshServer) + protected override ImmutableArray<(HotReloadClient client, string name)> CreateManagedClients(ILogger clientLogger, ILogger agentLogger, BrowserRefreshServer? browserRefreshServer) { Debug.Assert(browserRefreshServer != null); - return new(CreateWebAssemblyClient(clientLogger, agentLogger, browserRefreshServer, clientProject), browserRefreshServer); + return [(CreateWebAssemblyClient(clientLogger, agentLogger, browserRefreshServer, clientProject), "")]; } } diff --git a/src/BuiltInTools/Watch/AppModels/BlazorWebAssemblyHostedAppModel.cs b/src/BuiltInTools/Watch/AppModels/BlazorWebAssemblyHostedAppModel.cs index d56f69aeccb3..768187dbeda3 100644 --- a/src/BuiltInTools/Watch/AppModels/BlazorWebAssemblyHostedAppModel.cs +++ b/src/BuiltInTools/Watch/AppModels/BlazorWebAssemblyHostedAppModel.cs @@ -19,17 +19,15 @@ internal sealed class BlazorWebAssemblyHostedAppModel(DotNetWatchContext context { public override ProjectGraphNode LaunchingProject => serverProject; - public override bool RequiresBrowserRefresh => true; + public override bool ManagedHotReloadRequiresBrowserRefresh => true; - protected override HotReloadClients CreateClients(ILogger clientLogger, ILogger agentLogger, BrowserRefreshServer? browserRefreshServer) + protected override ImmutableArray<(HotReloadClient client, string name)> CreateManagedClients(ILogger clientLogger, ILogger agentLogger, BrowserRefreshServer? browserRefreshServer) { Debug.Assert(browserRefreshServer != null); - - return new( - [ - (CreateWebAssemblyClient(clientLogger, agentLogger, browserRefreshServer, clientProject), "client"), - (new DefaultHotReloadClient(clientLogger, agentLogger, GetStartupHookPath(serverProject), enableStaticAssetUpdates: false, new NamedPipeClientTransport(clientLogger)), "host") - ], - browserRefreshServer); + return + [ + (CreateWebAssemblyClient(clientLogger, agentLogger, browserRefreshServer, clientProject), "client"), + (new DefaultHotReloadClient(clientLogger, agentLogger, GetStartupHookPath(serverProject), handlesStaticAssetUpdates: false, new NamedPipeClientTransport(clientLogger)), "host") + ]; } } diff --git a/src/BuiltInTools/Watch/AppModels/DefaultAppModel.cs b/src/BuiltInTools/Watch/AppModels/DefaultAppModel.cs index ebb8e7d9c4b2..ac79fc90d8ac 100644 --- a/src/BuiltInTools/Watch/AppModels/DefaultAppModel.cs +++ b/src/BuiltInTools/Watch/AppModels/DefaultAppModel.cs @@ -12,6 +12,11 @@ namespace Microsoft.DotNet.Watch; /// internal sealed class DefaultAppModel(ProjectGraphNode project) : HotReloadAppModel { - public override ValueTask TryCreateClientsAsync(ILogger clientLogger, ILogger agentLogger, CancellationToken cancellationToken) - => new(new HotReloadClients(new DefaultHotReloadClient(clientLogger, agentLogger, GetStartupHookPath(project), enableStaticAssetUpdates: true, new NamedPipeClientTransport(clientLogger)), browserRefreshServer: null)); + public override ValueTask CreateClientsAsync(ILogger clientLogger, ILogger agentLogger, CancellationToken cancellationToken) + => new(new HotReloadClients( + clients: IsManagedAgentSupported(project, clientLogger) + ? [(new DefaultHotReloadClient(clientLogger, agentLogger, GetStartupHookPath(project), handlesStaticAssetUpdates: true, new NamedPipeClientTransport(clientLogger)), "")] + : [], + browserRefreshServer: null, + useRefreshServerToApplyStaticAssets: false)); } diff --git a/src/BuiltInTools/Watch/AppModels/HotReloadAppModel.cs b/src/BuiltInTools/Watch/AppModels/HotReloadAppModel.cs index 16d837d5c180..5c9810fa3c13 100644 --- a/src/BuiltInTools/Watch/AppModels/HotReloadAppModel.cs +++ b/src/BuiltInTools/Watch/AppModels/HotReloadAppModel.cs @@ -9,7 +9,7 @@ namespace Microsoft.DotNet.Watch; internal abstract partial class HotReloadAppModel() { - public abstract ValueTask TryCreateClientsAsync(ILogger clientLogger, ILogger agentLogger, CancellationToken cancellationToken); + public abstract ValueTask CreateClientsAsync(ILogger clientLogger, ILogger agentLogger, CancellationToken cancellationToken); protected static string GetInjectedAssemblyPath(string targetFramework, string assemblyName) => Path.Combine(Path.GetDirectoryName(typeof(HotReloadAppModel).Assembly.Location)!, "hotreload", targetFramework, assemblyName + ".dll"); @@ -51,4 +51,42 @@ public static HotReloadAppModel InferFromProject(DotNetWatchContext context, Pro context.Logger.Log(MessageDescriptor.ApplicationKind_Default); return new DefaultAppModel(projectNode); } + + /// + /// True if a managed code agent can be injected into the target process. + /// The agent is injected either via dotnet startup hook, or via web server middleware for WASM clients. + /// + internal static bool IsManagedAgentSupported(ProjectGraphNode project, ILogger logger) + { + if (!project.IsNetCoreApp(Versions.Version6_0)) + { + LogWarning("target framework is older than 6.0"); + return false; + } + + // If property is not specified startup hook is enabled: + // https://github.com/dotnet/runtime/blob/4b0b7238ba021b610d3963313b4471517108d2bc/src/libraries/System.Private.CoreLib/src/System/StartupHookProvider.cs#L22 + // Startup hooks are not used for WASM projects. + // + // TODO: Remove once implemented: https://github.com/dotnet/runtime/issues/123778 + if (!project.ProjectInstance.GetBooleanPropertyValue(PropertyNames.StartupHookSupport, defaultValue: true) && + !project.GetCapabilities().Contains(ProjectCapability.WebAssembly)) + { + // Report which property is causing lack of support for startup hooks: + var (propertyName, propertyValue) = + project.ProjectInstance.GetBooleanPropertyValue(PropertyNames.PublishAot) + ? (PropertyNames.PublishAot, true) + : project.ProjectInstance.GetBooleanPropertyValue(PropertyNames.PublishTrimmed) + ? (PropertyNames.PublishTrimmed, true) + : (PropertyNames.StartupHookSupport, false); + + LogWarning(string.Format("'{0}' property is '{1}'", propertyName, propertyValue)); + return false; + } + + return true; + + void LogWarning(string reason) + => logger.Log(MessageDescriptor.ProjectDoesNotSupportHotReload, reason); + } } diff --git a/src/BuiltInTools/Watch/AppModels/MobileAppModel.cs b/src/BuiltInTools/Watch/AppModels/MobileAppModel.cs index 503481230596..fa3d16509151 100644 --- a/src/BuiltInTools/Watch/AppModels/MobileAppModel.cs +++ b/src/BuiltInTools/Watch/AppModels/MobileAppModel.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Collections.Immutable; using Microsoft.Build.Graph; using Microsoft.DotNet.HotReload; using Microsoft.Extensions.Logging; @@ -13,16 +14,24 @@ internal sealed class MobileAppModel(DotNetWatchContext context, ProjectGraphNod // Mobile workloads (Android, iOS) add this capability since named pipes don't work over the network. // Pass the startup hook path so it can be included in the environment variables // passed via `dotnet run -e` as @(RuntimeEnvironmentVariable) items. - public override async ValueTask TryCreateClientsAsync(ILogger clientLogger, ILogger agentLogger, CancellationToken cancellationToken) + public override async ValueTask CreateClientsAsync(ILogger clientLogger, ILogger agentLogger, CancellationToken cancellationToken) { - var transport = await WebSocketClientTransport.CreateAsync( - context.EnvironmentOptions.AgentWebSocketPort, - context.EnvironmentOptions.AgentWebSocketSecurePort, - clientLogger, - cancellationToken); + ImmutableArray<(HotReloadClient client, string name)> clients; + if (IsManagedAgentSupported(project, clientLogger)) + { + var transport = await WebSocketClientTransport.CreateAsync( + context.EnvironmentOptions.AgentWebSocketPort, + context.EnvironmentOptions.AgentWebSocketSecurePort, + clientLogger, + cancellationToken); - return new HotReloadClients( - new DefaultHotReloadClient(clientLogger, agentLogger, GetStartupHookPath(project), enableStaticAssetUpdates: true, transport), - browserRefreshServer: null); + clients = [(new DefaultHotReloadClient(clientLogger, agentLogger, GetStartupHookPath(project), handlesStaticAssetUpdates: true, transport), "")]; + } + else + { + clients = []; + } + + return new HotReloadClients(clients, browserRefreshServer: null, useRefreshServerToApplyStaticAssets: false); } } diff --git a/src/BuiltInTools/Watch/AppModels/WebApplicationAppModel.cs b/src/BuiltInTools/Watch/AppModels/WebApplicationAppModel.cs index 0f1fbb74d5d8..2460d27a79e7 100644 --- a/src/BuiltInTools/Watch/AppModels/WebApplicationAppModel.cs +++ b/src/BuiltInTools/Watch/AppModels/WebApplicationAppModel.cs @@ -16,25 +16,24 @@ internal abstract class WebApplicationAppModel(DotNetWatchContext context) : Hot public DotNetWatchContext Context => context; - public abstract bool RequiresBrowserRefresh { get; } + public abstract bool ManagedHotReloadRequiresBrowserRefresh { get; } /// /// Project that's used for launching the application. /// public abstract ProjectGraphNode LaunchingProject { get; } - protected abstract HotReloadClients CreateClients(ILogger clientLogger, ILogger agentLogger, BrowserRefreshServer? browserRefreshServer); + protected abstract ImmutableArray<(HotReloadClient client, string name)> CreateManagedClients(ILogger clientLogger, ILogger agentLogger, BrowserRefreshServer? browserRefreshServer); - public async sealed override ValueTask TryCreateClientsAsync(ILogger clientLogger, ILogger agentLogger, CancellationToken cancellationToken) + public async sealed override ValueTask CreateClientsAsync(ILogger clientLogger, ILogger agentLogger, CancellationToken cancellationToken) { var browserRefreshServer = await context.BrowserRefreshServerFactory.GetOrCreateBrowserRefreshServerAsync(LaunchingProject, this, cancellationToken); - if (RequiresBrowserRefresh && browserRefreshServer == null) - { - // Error has been reported - return null; - } - return CreateClients(clientLogger, agentLogger, browserRefreshServer); + var managedClients = (!ManagedHotReloadRequiresBrowserRefresh || browserRefreshServer != null) && IsManagedAgentSupported(LaunchingProject, clientLogger) + ? CreateManagedClients(clientLogger, agentLogger, browserRefreshServer) + : []; + + return new HotReloadClients(managedClients, browserRefreshServer, useRefreshServerToApplyStaticAssets: true); } protected WebAssemblyHotReloadClient CreateWebAssemblyClient(ILogger clientLogger, ILogger agentLogger, BrowserRefreshServer browserRefreshServer, ProjectGraphNode clientProject) @@ -71,13 +70,29 @@ public bool IsServerSupported(ProjectGraphNode projectNode, ILogger logger) { if (context.EnvironmentOptions.SuppressBrowserRefresh) { - logger.Log(MessageDescriptor.SkippingConfiguringBrowserRefresh_SuppressedViaEnvironmentVariable.WithLevelWhen(LogLevel.Error, RequiresBrowserRefresh), EnvironmentVariables.Names.SuppressBrowserRefresh); + if (ManagedHotReloadRequiresBrowserRefresh) + { + logger.Log(MessageDescriptor.BrowserRefreshSuppressedViaEnvironmentVariable_ApplicationWillBeRestarted, EnvironmentVariables.Names.SuppressBrowserRefresh); + } + else + { + logger.Log(MessageDescriptor.BrowserRefreshSuppressedViaEnvironmentVariable_ManualRefreshRequired, EnvironmentVariables.Names.SuppressBrowserRefresh); + } + return false; } if (!projectNode.IsNetCoreApp(minVersion: s_minimumSupportedVersion)) { - logger.Log(MessageDescriptor.SkippingConfiguringBrowserRefresh_TargetFrameworkNotSupported.WithLevelWhen(LogLevel.Error, RequiresBrowserRefresh)); + if (ManagedHotReloadRequiresBrowserRefresh) + { + logger.Log(MessageDescriptor.BrowserRefreshNotSupportedByProjectTargetFramework_ApplicationWillBeRestarted); + } + else + { + logger.Log(MessageDescriptor.BrowserRefreshNotSupportedByProjectTargetFramework_ManualRefreshRequired); + } + return false; } diff --git a/src/BuiltInTools/Watch/AppModels/WebServerAppModel.cs b/src/BuiltInTools/Watch/AppModels/WebServerAppModel.cs index b1026c5f2d6a..04727dee7984 100644 --- a/src/BuiltInTools/Watch/AppModels/WebServerAppModel.cs +++ b/src/BuiltInTools/Watch/AppModels/WebServerAppModel.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Collections.Immutable; using Microsoft.Build.Graph; using Microsoft.DotNet.HotReload; using Microsoft.Extensions.Logging; @@ -12,9 +13,9 @@ internal sealed class WebServerAppModel(DotNetWatchContext context, ProjectGraph { public override ProjectGraphNode LaunchingProject => serverProject; - public override bool RequiresBrowserRefresh + public override bool ManagedHotReloadRequiresBrowserRefresh => false; - protected override HotReloadClients CreateClients(ILogger clientLogger, ILogger agentLogger, BrowserRefreshServer? browserRefreshServer) - => new(new DefaultHotReloadClient(clientLogger, agentLogger, GetStartupHookPath(serverProject), enableStaticAssetUpdates: true, new NamedPipeClientTransport(clientLogger)), browserRefreshServer); + protected override ImmutableArray<(HotReloadClient client, string name)> CreateManagedClients(ILogger clientLogger, ILogger agentLogger, BrowserRefreshServer? browserRefreshServer) + => [(new DefaultHotReloadClient(clientLogger, agentLogger, GetStartupHookPath(serverProject), handlesStaticAssetUpdates: true, new NamedPipeClientTransport(clientLogger)), "")]; } diff --git a/src/BuiltInTools/Watch/Build/BuildNames.cs b/src/BuiltInTools/Watch/Build/BuildNames.cs index e7919c238252..d7ad8b1acbbd 100644 --- a/src/BuiltInTools/Watch/Build/BuildNames.cs +++ b/src/BuiltInTools/Watch/Build/BuildNames.cs @@ -23,6 +23,9 @@ internal static class PropertyNames public const string SkipCompilerExecution = nameof(SkipCompilerExecution); public const string ProvideCommandLineArgs = nameof(ProvideCommandLineArgs); public const string NonExistentFile = nameof(NonExistentFile); + public const string StartupHookSupport = nameof(StartupHookSupport); + public const string PublishTrimmed = nameof(PublishTrimmed); + public const string PublishAot = nameof(PublishAot); } internal static class ItemNames diff --git a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs index 443da013b8cf..77a478612409 100644 --- a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs +++ b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs @@ -48,7 +48,7 @@ internal sealed class CompilationHandler : IDisposable public CompilationHandler(DotNetWatchContext context) { _context = context; - Workspace = new HotReloadMSBuildWorkspace(Logger, projectFile => (instances: _projectInstances.GetValueOrDefault(projectFile, []), project: null)); + Workspace = new HotReloadMSBuildWorkspace(context.Logger, projectFile => (instances: _projectInstances.GetValueOrDefault(projectFile, []), project: null)); _hotReloadService = new HotReloadService(Workspace.CurrentSolution.Services, () => ValueTask.FromResult(GetAggregateCapabilities())); } @@ -110,6 +110,7 @@ public async ValueTask StartSessionAsync(CancellationToken cancellationToken) ProjectGraphNode projectNode, ProjectOptions projectOptions, HotReloadClients clients, + ILogger clientLogger, ProcessSpec processSpec, RestartOperation restartOperation, CancellationToken cancellationToken) @@ -148,7 +149,7 @@ public async ValueTask StartSessionAsync(CancellationToken cancellationToken) }; var launchResult = new ProcessLaunchResult(); - var runningProcess = _context.ProcessRunner.RunAsync(processSpec, clients.ClientLogger, launchResult, processTerminationSource.Token); + var runningProcess = _context.ProcessRunner.RunAsync(processSpec, clientLogger, launchResult, processTerminationSource.Token); if (launchResult.ProcessId == null) { // error already reported @@ -161,18 +162,19 @@ public async ValueTask StartSessionAsync(CancellationToken cancellationToken) { // Wait for agent to create the name pipe and send capabilities over. // the agent blocks the app execution until initial updates are applied (if any). - var capabilities = await clients.GetUpdateCapabilitiesAsync(processCommunicationCancellationToken); + var managedCodeUpdateCapabilities = await clients.GetUpdateCapabilitiesAsync(processCommunicationCancellationToken); var runningProject = new RunningProject( projectNode, projectOptions, clients, + clientLogger, runningProcess, launchResult.ProcessId.Value, processExitedSource: processExitedSource, processTerminationSource: processTerminationSource, restartOperation: restartOperation, - capabilities); + managedCodeUpdateCapabilities); // ownership transferred to running project: disposables.Items.Clear(); @@ -185,7 +187,7 @@ public async ValueTask StartSessionAsync(CancellationToken cancellationToken) // and apply them before adding it to running processes. // Do not block on udpates being made to other processes to avoid delaying the new process being up-to-date. var updatesToApply = _previousUpdates.Skip(appliedUpdateCount).ToImmutableArray(); - if (updatesToApply.Any()) + if (updatesToApply.Any() && clients.IsManagedAgentSupported) { await await clients.ApplyManagedCodeUpdatesAsync( ToManagedCodeUpdates(updatesToApply), @@ -222,20 +224,23 @@ await await clients.ApplyManagedCodeUpdatesAsync( } } - clients.OnRuntimeRudeEdit += (code, message) => + if (clients.IsManagedAgentSupported) { - // fire and forget: - _ = HandleRuntimeRudeEditAsync(runningProject, message, cancellationToken); - }; + clients.OnRuntimeRudeEdit += (code, message) => + { + // fire and forget: + _ = HandleRuntimeRudeEditAsync(runningProject, message, cancellationToken); + }; - // Notifies the agent that it can unblock the execution of the process: - await clients.InitialUpdatesAppliedAsync(processCommunicationCancellationToken); + // Notifies the agent that it can unblock the execution of the process: + await clients.InitialUpdatesAppliedAsync(processCommunicationCancellationToken); - // If non-empty solution is loaded into the workspace (a Hot Reload session is active): - if (Workspace.CurrentSolution is { ProjectIds: not [] } currentSolution) - { - // Preparing the compilation is a perf optimization. We can skip it if the session hasn't been started yet. - PrepareCompilations(currentSolution, projectPath, cancellationToken); + // If non-empty solution is loaded into the workspace (a Hot Reload session is active): + if (Workspace.CurrentSolution is { ProjectIds: not [] } currentSolution) + { + // Preparing the compilation is a perf optimization. We can skip it if the session hasn't been started yet. + PrepareCompilations(currentSolution, projectPath, cancellationToken); + } } return runningProject; @@ -250,7 +255,7 @@ await await clients.ApplyManagedCodeUpdatesAsync( private async Task HandleRuntimeRudeEditAsync(RunningProject runningProject, string rudeEditMessage, CancellationToken cancellationToken) { - var logger = runningProject.Clients.ClientLogger; + var logger = runningProject.ClientLogger; try { @@ -287,7 +292,7 @@ private ImmutableArray GetAggregateCapabilities() { var capabilities = _runningProjects .SelectMany(p => p.Value) - .SelectMany(p => p.Capabilities) + .SelectMany(p => p.ManagedCodeUpdateCapabilities) .Distinct(StringComparer.Ordinal) .Order() .ToImmutableArray(); @@ -309,13 +314,10 @@ private static void PrepareCompilations(Solution solution, string projectPath, C } } - public async ValueTask<( - ImmutableArray projectUpdates, - ImmutableArray projectsToRebuild, - ImmutableArray projectsToRedeploy, - ImmutableArray projectsToRestart)> HandleManagedCodeChangesAsync( - bool autoRestart, + public async ValueTask GetManagedCodeUpdatesAsync( + HotReloadProjectUpdatesBuilder builder, Func, CancellationToken, Task> restartPrompt, + bool autoRestart, CancellationToken cancellationToken) { var currentSolution = Workspace.CurrentSolution; @@ -339,7 +341,7 @@ private static void PrepareCompilations(Solution solution, string projectPath, C // changes and await the next file change. // Note: CommitUpdate/DiscardUpdate is not expected to be called. - return ([], [], [], []); + return; } var projectsToPromptForRestart = @@ -355,7 +357,7 @@ private static void PrepareCompilations(Solution solution, string projectPath, C Logger.Log(MessageDescriptor.HotReloadSuspended); await Task.Delay(-1, cancellationToken); - return ([], [], [], []); + return; } // Note: Releases locked project baseline readers, so we can rebuild any projects that need rebuilding. @@ -363,62 +365,94 @@ private static void PrepareCompilations(Solution solution, string projectPath, C DiscardPreviousUpdates(updates.ProjectsToRebuild); - var projectsToRebuild = updates.ProjectsToRebuild.Select(id => currentSolution.GetProject(id)!.FilePath!).ToImmutableArray(); - var projectsToRedeploy = updates.ProjectsToRedeploy.Select(id => currentSolution.GetProject(id)!.FilePath!).ToImmutableArray(); + builder.ManagedCodeUpdates.AddRange(updates.ProjectUpdates); + builder.ProjectsToRebuild.AddRange(updates.ProjectsToRebuild.Select(id => currentSolution.GetProject(id)!.FilePath!)); + builder.ProjectsToRedeploy.AddRange(updates.ProjectsToRedeploy.Select(id => currentSolution.GetProject(id)!.FilePath!)); // Terminate all tracked processes that need to be restarted, // except for the root process, which will terminate later on. - var projectsToRestart = updates.ProjectsToRestart.IsEmpty - ? [] - : await TerminateNonRootProcessesAsync(updates.ProjectsToRestart.Select(e => currentSolution.GetProject(e.Key)!.FilePath!), cancellationToken); - - return (updates.ProjectUpdates, projectsToRebuild, projectsToRedeploy, projectsToRestart); + if (!updates.ProjectsToRestart.IsEmpty) + { + builder.ProjectsToRestart.AddRange(await TerminateNonRootProcessesAsync(updates.ProjectsToRestart.Select(e => currentSolution.GetProject(e.Key)!.FilePath!), cancellationToken)); + } } - public async ValueTask ApplyUpdatesAsync(ImmutableArray updates, Stopwatch stopwatch, CancellationToken cancellationToken) + public async ValueTask ApplyManagedCodeAndStaticAssetUpdatesAsync( + IReadOnlyList managedCodeUpdates, + IReadOnlyDictionary> staticAssetUpdates, + Stopwatch stopwatch, + CancellationToken cancellationToken) { - Debug.Assert(!updates.IsEmpty); + var applyTasks = new List(); - ImmutableDictionary> projectsToUpdate; - lock (_runningProjectsAndUpdatesGuard) + if (managedCodeUpdates is not []) { - // Adding the updates makes sure that all new processes receive them before they are added to running processes. - _previousUpdates = _previousUpdates.AddRange(updates); - - // Capture the set of processes that do not have the currently calculated deltas yet. - projectsToUpdate = _runningProjects; - } + ImmutableDictionary> projectsToUpdate; + lock (_runningProjectsAndUpdatesGuard) + { + // Adding the updates makes sure that all new processes receive them before they are added to running processes. + _previousUpdates = _previousUpdates.AddRange(managedCodeUpdates); - // Apply changes to all running projects, even if they do not have a static project dependency on any project that changed. - // The process may load any of the binaries using MEF or some other runtime dependency loader. + // Capture the set of processes that do not have the currently calculated deltas yet. + projectsToUpdate = _runningProjects; + } - var applyTasks = new List(); + // Apply changes to all running projects, even if they do not have a static project dependency on any project that changed. + // The process may load any of the binaries using MEF or some other runtime dependency loader. - foreach (var (_, projects) in projectsToUpdate) - { - foreach (var runningProject in projects) + foreach (var (_, projects) in projectsToUpdate) { - // Only cancel applying updates when the process exits. Canceling disables further updates since the state of the runtime becomes unknown. - var applyTask = await runningProject.Clients.ApplyManagedCodeUpdatesAsync( - ToManagedCodeUpdates(updates), - applyOperationCancellationToken: runningProject.ProcessExitedCancellationToken, - cancellationToken); + foreach (var runningProject in projects) + { + Debug.Assert(runningProject.Clients.IsManagedAgentSupported); + + // Only cancel applying updates when the process exits. Canceling disables further updates since the state of the runtime becomes unknown. + var applyTask = await runningProject.Clients.ApplyManagedCodeUpdatesAsync( + ToManagedCodeUpdates(managedCodeUpdates), + applyOperationCancellationToken: runningProject.ProcessExitedCancellationToken, + cancellationToken); - applyTasks.Add(runningProject.CompleteApplyOperationAsync(applyTask)); + applyTasks.Add(runningProject.CompleteApplyOperationAsync(applyTask)); + } } } + // Creating apply tasks involves reading static assets from disk. Parallelize this IO. + var staticAssetApplyTaskProducers = new List>(); + + foreach (var (runningProject, assets) in staticAssetUpdates) + { + // Only cancel applying updates when the process exits. Canceling in-progress static asset update might be ok, + // but for consistency with managed code updates we only cancel when the process exits. + staticAssetApplyTaskProducers.Add(runningProject.Clients.ApplyStaticAssetUpdatesAsync( + assets, + applyOperationCancellationToken: runningProject.ProcessExitedCancellationToken, + cancellationToken)); + } + + applyTasks.AddRange(await Task.WhenAll(staticAssetApplyTaskProducers)); + // fire and forget: - _ = CompleteApplyOperationAsync(applyTasks, stopwatch, MessageDescriptor.ManagedCodeChangesApplied); + _ = CompleteApplyOperationAsync(applyTasks, stopwatch, managedCodeUpdates.Count > 0, staticAssetUpdates.Count > 0); } - private async Task CompleteApplyOperationAsync(IEnumerable applyTasks, Stopwatch stopwatch, MessageDescriptor message) + private async Task CompleteApplyOperationAsync(IEnumerable applyTasks, Stopwatch stopwatch, bool hasManagedCodeUpdates, bool hasStaticAssetUpdates) { try { await Task.WhenAll(applyTasks); - _context.Logger.Log(message, stopwatch.ElapsedMilliseconds); + var elapsedMilliseconds = stopwatch.ElapsedMilliseconds; + + if (hasManagedCodeUpdates) + { + _context.Logger.Log(MessageDescriptor.ManagedCodeChangesApplied, elapsedMilliseconds); + } + + if (hasStaticAssetUpdates) + { + _context.Logger.Log(MessageDescriptor.StaticAssetsChangesApplied, elapsedMilliseconds); + } } catch (Exception e) { @@ -426,7 +460,7 @@ private async Task CompleteApplyOperationAsync(IEnumerable applyTasks, Sto if (e is not OperationCanceledException) { - _context.Logger.LogError("Failed to apply updates: {Exception}", e.ToString()); + _context.Logger.LogError("Failed to apply managedCodeUpdates: {Exception}", e.ToString()); } } } @@ -456,7 +490,7 @@ private async ValueTask DisplayResultsAsync(HotReloadService.Updates updates, Im break; case HotReloadService.Status.NoChangesToApply: - Logger.Log(MessageDescriptor.NoCSharpChangesToApply); + Logger.Log(MessageDescriptor.NoManagedCodeChangesToApply); break; case HotReloadService.Status.Blocked: @@ -592,7 +626,8 @@ static MessageDescriptor GetMessageDescriptor(Diagnostic diagnostic, bool verbos private static bool HasScopedCssTargets(ProjectInstance projectInstance) => s_targets.All(projectInstance.Targets.ContainsKey); - public async ValueTask HandleStaticAssetChangesAsync( + public async ValueTask GetStaticAssetUpdatesAsync( + HotReloadProjectUpdatesBuilder builder, IReadOnlyList files, EvaluationResult evaluationResult, Stopwatch stopwatch, @@ -636,7 +671,7 @@ public async ValueTask HandleStaticAssetChangesAsync( foreach (var referencingProjectNode in containingProjectNode.GetAncestorsAndSelf()) { var applicationProjectInstance = referencingProjectNode.ProjectInstance; - if (!TryGetRunningProject(applicationProjectInstance.FullPath, out var runningProjects)) + if (!TryGetRunningProject(applicationProjectInstance.FullPath, out _)) { continue; } @@ -734,9 +769,6 @@ public async ValueTask HandleStaticAssetChangesAsync( cancellationToken); } - // Creating apply tasks involves reading static assets from disk. Parallelize this IO. - var applyTaskProducers = new List>(); - foreach (var (applicationProjectInstance, instanceAssets) in assets) { if (failedApplicationProjectInstances?.Contains(applicationProjectInstance) == true) @@ -751,19 +783,23 @@ public async ValueTask HandleStaticAssetChangesAsync( foreach (var runningProject in runningProjects) { - // Only cancel applying updates when the process exits. Canceling in-progress static asset update might be ok, - // but for consistency with managed code updates we only cancel when the process exits. - applyTaskProducers.Add(runningProject.Clients.ApplyStaticAssetUpdatesAsync( - instanceAssets.Values, - applyOperationCancellationToken: runningProject.ProcessExitedCancellationToken, - cancellationToken)); + if (!builder.StaticAssetsToUpdate.TryGetValue(runningProject, out var updatesPerRunningProject)) + { + builder.StaticAssetsToUpdate.Add(runningProject, updatesPerRunningProject = []); + } + + if (!runningProject.Clients.UseRefreshServerToApplyStaticAssets && !runningProject.Clients.IsManagedAgentSupported) + { + // Static assets are applied via managed Hot Reload agent (e.g. in MAUI Blazor app), but managed Hot Reload is not supported (e.g. startup hooks are disabled). + builder.ProjectsToRebuild.Add(runningProject.ProjectNode.ProjectInstance.FullPath); + builder.ProjectsToRestart.Add(runningProject); + } + else + { + updatesPerRunningProject.AddRange(instanceAssets.Values); + } } } - - var applyTasks = await Task.WhenAll(applyTaskProducers); - - // fire and forget: - _ = CompleteApplyOperationAsync(applyTasks, stopwatch, MessageDescriptor.StaticAssetsChangesApplied); } /// @@ -839,7 +875,7 @@ public bool TryGetRunningProject(string projectPath, out ImmutableArray> projects, Func action, CancellationToken cancellationToken) => Task.WhenAll(projects.SelectMany(entry => entry.Value).Select(project => action(project, cancellationToken))).WaitAsync(cancellationToken); - private static ImmutableArray ToManagedCodeUpdates(ImmutableArray updates) + private static ImmutableArray ToManagedCodeUpdates(IEnumerable updates) => [.. updates.Select(update => new HotReloadManagedCodeUpdate(update.ModuleId, update.MetadataDelta, update.ILDelta, update.PdbDelta, update.UpdatedTypes, update.RequiredCapabilities))]; private static ImmutableDictionary> CreateProjectInstanceMap(ProjectGraph graph) @@ -851,10 +887,15 @@ private static ImmutableDictionary> Crea public async Task UpdateProjectConeAsync(ProjectGraph projectGraph, ProjectRepresentation project, CancellationToken cancellationToken) { + Logger.LogInformation("Loading projects ..."); + var stopwatch = Stopwatch.StartNew(); + _projectInstances = CreateProjectInstanceMap(projectGraph); var solution = await Workspace.UpdateProjectConeAsync(project.ProjectGraphPath, cancellationToken); await SolutionUpdatedAsync(solution, "project update", cancellationToken); + + Logger.LogInformation("Projects loaded in {Time}s.", stopwatch.Elapsed.TotalSeconds.ToString("0.0")); } public async Task UpdateFileContentAsync(IReadOnlyList changedFiles, CancellationToken cancellationToken) diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs index 775e8e383c8f..3eb6bf9418b4 100644 --- a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs +++ b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs @@ -149,18 +149,6 @@ public async Task WatchAsync(CancellationToken shutdownCancellationToken) continue; } - if (!await rootRunningProject.WaitForProcessRunningAsync(iterationCancellationToken)) - { - // Process might have exited while we were trying to communicate with it. - iterationCancellationSource.Cancel(); - iterationCancellationSource.Token.ThrowIfCancellationRequested(); - } - - if (shutdownCancellationToken.IsCancellationRequested) - { - // Ctrl+C: - return; - } await compilationHandler.UpdateProjectConeAsync(evaluationResult.ProjectGraph.Graph, rootProjectOptions.Representation, iterationCancellationToken); @@ -218,78 +206,32 @@ void FileChangedCallback(ChangedPath change) } while (changedFiles is []); - if (!rootProjectCapabilities.Contains("SupportsHotReload")) - { - _context.Logger.LogWarning("Project '{Name}' does not support Hot Reload and must be rebuilt.", rootProject.GetDisplayName()); - - // file change already detected - rootRunningProject.InitiateRestart(); - break; - } - - HotReloadEventSource.Log.HotReloadStart(HotReloadEventSource.StartType.Main); + var updates = new HotReloadProjectUpdatesBuilder(); var stopwatch = Stopwatch.StartNew(); - HotReloadEventSource.Log.HotReloadStart(HotReloadEventSource.StartType.StaticHandler); - await compilationHandler.HandleStaticAssetChangesAsync(changedFiles, evaluationResult, stopwatch, iterationCancellationToken); - HotReloadEventSource.Log.HotReloadEnd(HotReloadEventSource.StartType.StaticHandler); - - HotReloadEventSource.Log.HotReloadStart(HotReloadEventSource.StartType.CompilationHandler); + await compilationHandler.GetStaticAssetUpdatesAsync(updates, changedFiles, evaluationResult, stopwatch, iterationCancellationToken); - var (managedCodeUpdates, projectsToRebuild, projectsToRedeploy, projectsToRestart) = await compilationHandler.HandleManagedCodeChangesAsync( - autoRestart: _context.Options.NonInteractive || _rudeEditRestartPrompt?.AutoRestartPreference is true, + await compilationHandler.GetManagedCodeUpdatesAsync( + updates, restartPrompt: async (projectNames, cancellationToken) => { - if (_rudeEditRestartPrompt != null) - { - // stop before waiting for user input: - stopwatch.Stop(); - - string question; - if (runtimeProcessLauncher == null) - { - question = "Do you want to restart your app?"; - } - else - { - _context.Logger.LogInformation("Affected projects:"); - - foreach (var projectName in projectNames.OrderBy(n => n)) - { - _context.Logger.LogInformation(" {ProjectName}", projectName); - } - - question = "Do you want to restart these projects?"; - } - - return await _rudeEditRestartPrompt.WaitForRestartConfirmationAsync(question, cancellationToken); - } - - _context.Logger.LogDebug("Restarting without prompt since dotnet-watch is running in non-interactive mode."); - - foreach (var projectName in projectNames) - { - _context.Logger.LogDebug(" Project to restart: '{ProjectName}'", projectName); - } - - return true; + // stop before waiting for user input: + stopwatch.Stop(); + var result = await RestartPrompt(projectNames, runtimeProcessLauncher, cancellationToken); + stopwatch.Start(); + return result; }, + autoRestart: _context.Options.NonInteractive || _rudeEditRestartPrompt?.AutoRestartPreference is true, iterationCancellationToken); - HotReloadEventSource.Log.HotReloadEnd(HotReloadEventSource.StartType.CompilationHandler); - - stopwatch.Stop(); - - HotReloadEventSource.Log.HotReloadEnd(HotReloadEventSource.StartType.Main); - // Terminate root process if it had rude edits or is non-reloadable. - if (projectsToRestart.Any(project => project.Options.IsRootProject)) + if (updates.ProjectsToRestart.Any(project => project.Options.IsRootProject)) { rootRunningProject.InitiateRestart(); break; } - if (!projectsToRebuild.IsEmpty) + if (updates.ProjectsToRebuild is not []) { while (true) { @@ -302,7 +244,7 @@ void FileChangedCallback(ChangedPath change) // Build projects sequentially to avoid failed attempts to overwrite dependent project outputs. // TODO: Ideally, dotnet build would be able to build multiple projects. https://github.com/dotnet/sdk/issues/51311 var success = true; - foreach (var projectPath in projectsToRebuild) + foreach (var projectPath in updates.ProjectsToRebuild) { // The path of the Workspace Project is the entry-point file path for single-file apps. success = await BuildProjectAsync(ProjectRepresentation.FromProjectOrEntryPointFilePath(projectPath), rootProjectOptions.BuildArguments, iterationCancellationToken); @@ -332,39 +274,35 @@ void FileChangedCallback(ChangedPath change) // Changes made since last snapshot of the accumulator shouldn't be included in next Hot Reload update. // Apply them to the workspace. - _ = await CaptureChangedFilesSnapshot(projectsToRebuild); + _ = await CaptureChangedFilesSnapshot(updates.ProjectsToRebuild); - _context.Logger.Log(MessageDescriptor.ProjectsRebuilt, projectsToRebuild.Length); + _context.Logger.Log(MessageDescriptor.ProjectsRebuilt, updates.ProjectsToRebuild.Count); } // Deploy dependencies after rebuilding and before restarting. - if (!projectsToRedeploy.IsEmpty) + if (updates.ProjectsToRedeploy is not []) { - await DeployProjectDependenciesAsync(evaluationResult, projectsToRedeploy, iterationCancellationToken); - _context.Logger.Log(MessageDescriptor.ProjectDependenciesDeployed, projectsToRedeploy.Length); + await DeployProjectDependenciesAsync(evaluationResult, updates.ProjectsToRedeploy, iterationCancellationToken); + _context.Logger.Log(MessageDescriptor.ProjectDependenciesDeployed, updates.ProjectsToRedeploy.Count); } // Apply updates only after dependencies have been deployed, // so that updated code doesn't attempt to access the dependency before it has been deployed. - if (!managedCodeUpdates.IsEmpty) + if (updates.ManagedCodeUpdates.Count > 0 || updates.StaticAssetsToUpdate.Count > 0) { - await compilationHandler.ApplyUpdatesAsync(managedCodeUpdates, stopwatch, iterationCancellationToken); + await compilationHandler.ApplyManagedCodeAndStaticAssetUpdatesAsync(updates.ManagedCodeUpdates, updates.StaticAssetsToUpdate, stopwatch, iterationCancellationToken); } - if (!projectsToRestart.IsEmpty) + if (updates.ProjectsToRestart is not []) { await Task.WhenAll( - projectsToRestart.Select(async runningProject => - { - var newRunningProject = await runningProject.RestartOperation(shutdownCancellationToken); - _ = await newRunningProject.WaitForProcessRunningAsync(shutdownCancellationToken); - })) + updates.ProjectsToRestart.Select(async runningProject => runningProject.RestartOperation(shutdownCancellationToken))) .WaitAsync(shutdownCancellationToken); - _context.Logger.Log(MessageDescriptor.ProjectsRestarted, projectsToRestart.Length); + _context.Logger.Log(MessageDescriptor.ProjectsRestarted, updates.ProjectsToRestart.Count); } - async Task> CaptureChangedFilesSnapshot(ImmutableArray rebuiltProjects) + async Task> CaptureChangedFilesSnapshot(IReadOnlyList rebuiltProjects) { var changedPaths = Interlocked.Exchange(ref changedFilesAccumulator, []); if (changedPaths is []) @@ -432,7 +370,7 @@ async Task> CaptureChangedFilesSnapshot(ImmutableArr _context.Logger.Log(MessageDescriptor.ReEvaluationCompleted); } - if (!rebuiltProjects.IsEmpty) + if (rebuiltProjects is not []) { // Filter changed files down to those contained in projects being rebuilt. // File changes that affect projects that are not being rebuilt will stay in the accumulator @@ -527,6 +465,40 @@ async Task> CaptureChangedFilesSnapshot(ImmutableArr } } + private async Task RestartPrompt(IEnumerable projectNames, IRuntimeProcessLauncher? runtimeProcessLauncher, CancellationToken cancellationToken) + { + if (_rudeEditRestartPrompt != null) + { + string question; + if (runtimeProcessLauncher == null) + { + question = "Do you want to restart your app?"; + } + else + { + _context.Logger.LogInformation("Affected projects:"); + + foreach (var projectName in projectNames.OrderBy(n => n)) + { + _context.Logger.LogInformation(" {ProjectName}", projectName); + } + + question = "Do you want to restart these projects?"; + } + + return await _rudeEditRestartPrompt.WaitForRestartConfirmationAsync(question, cancellationToken); + } + + _context.Logger.LogDebug("Restarting without prompt since dotnet-watch is running in non-interactive mode."); + + foreach (var projectName in projectNames) + { + _context.Logger.LogDebug(" Project to restart: '{ProjectName}'", projectName); + } + + return true; + } + private void AnalyzeFileChanges( List changedFiles, EvaluationResult evaluationResult, @@ -581,7 +553,7 @@ private static bool MatchesBuildFile(string filePath) return extension.Equals(".props", PathUtilities.OSSpecificPathComparison) || extension.Equals(".targets", PathUtilities.OSSpecificPathComparison) || extension.EndsWith("proj", PathUtilities.OSSpecificPathComparison) - || extension.Equals("projitems", PathUtilities.OSSpecificPathComparison) // shared project items + || extension.Equals(".projitems", PathUtilities.OSSpecificPathComparison) // shared project items || string.Equals(Path.GetFileName(filePath), "global.json", PathUtilities.OSSpecificPathComparison); } @@ -625,7 +597,7 @@ private static bool MatchesStaticWebAssetFilePattern(EvaluationResult evaluation return false; } - private async ValueTask DeployProjectDependenciesAsync(EvaluationResult evaluationResult, ImmutableArray projectPaths, CancellationToken cancellationToken) + private async ValueTask DeployProjectDependenciesAsync(EvaluationResult evaluationResult, IEnumerable projectPaths, CancellationToken cancellationToken) { const string TargetName = TargetNames.ReferenceCopyLocalPathsOutputGroup; diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadEventSource.cs b/src/BuiltInTools/Watch/HotReload/HotReloadEventSource.cs deleted file mode 100644 index 4196f85ba21b..000000000000 --- a/src/BuiltInTools/Watch/HotReload/HotReloadEventSource.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Diagnostics.Tracing; - -namespace Microsoft.DotNet.Watch -{ - [EventSource(Name = "HotReload")] - internal sealed class HotReloadEventSource : EventSource - { - public enum StartType - { - Main, - StaticHandler, - CompilationHandler, - } - - internal sealed class Keywords - { - public const EventKeywords Perf = (EventKeywords)1; - } - - [Event(1, Message = "Hot reload started for {0}", Level = EventLevel.Informational, Keywords = Keywords.Perf)] - public void HotReloadStart(StartType handlerType) { WriteEvent(1, handlerType); } - - [Event(2, Message = "Hot reload finished for {0}", Level = EventLevel.Informational, Keywords = Keywords.Perf)] - public void HotReloadEnd(StartType handlerType) { WriteEvent(2, handlerType); } - - public static readonly HotReloadEventSource Log = new(); - } -} diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadProjectUpdatesBuilder.cs b/src/BuiltInTools/Watch/HotReload/HotReloadProjectUpdatesBuilder.cs new file mode 100644 index 000000000000..a56fbe8e3696 --- /dev/null +++ b/src/BuiltInTools/Watch/HotReload/HotReloadProjectUpdatesBuilder.cs @@ -0,0 +1,17 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Immutable; +using Microsoft.CodeAnalysis.ExternalAccess.HotReload.Api; +using Microsoft.DotNet.HotReload; + +namespace Microsoft.DotNet.Watch; + +internal sealed class HotReloadProjectUpdatesBuilder +{ + public List ManagedCodeUpdates { get; } = []; + public Dictionary> StaticAssetsToUpdate { get; } = []; + public List ProjectsToRebuild { get; } = []; + public List ProjectsToRedeploy { get; } = []; + public List ProjectsToRestart { get; } = []; +} diff --git a/src/BuiltInTools/Watch/Process/ProjectLauncher.cs b/src/BuiltInTools/Watch/Process/ProjectLauncher.cs index 05ed11619329..d32e013428b0 100644 --- a/src/BuiltInTools/Watch/Process/ProjectLauncher.cs +++ b/src/BuiltInTools/Watch/Process/ProjectLauncher.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Globalization; +using Microsoft.Build.Graph; using Microsoft.DotNet.HotReload; using Microsoft.Extensions.Logging; @@ -40,25 +41,13 @@ public EnvironmentOptions EnvironmentOptions return null; } - if (!projectNode.IsNetCoreApp(Versions.Version6_0)) - { - Logger.LogError($"Hot Reload based watching is only supported in .NET 6.0 or newer apps. Use --no-hot-reload switch or update the project's launchSettings.json to disable this feature."); - return null; - } - - var appModel = HotReloadAppModel.InferFromProject(context, projectNode); - // create loggers that include project name in messages: var projectDisplayName = projectNode.GetDisplayName(); var clientLogger = context.LoggerFactory.CreateLogger(HotReloadDotNetWatcher.ClientLogComponentName, projectDisplayName); var agentLogger = context.LoggerFactory.CreateLogger(HotReloadDotNetWatcher.AgentLogComponentName, projectDisplayName); - var clients = await appModel.TryCreateClientsAsync(clientLogger, agentLogger, cancellationToken); - if (clients == null) - { - // error already reported - return null; - } + var appModel = HotReloadAppModel.InferFromProject(context, projectNode); + var clients = await appModel.CreateClientsAsync(clientLogger, agentLogger, cancellationToken); var processSpec = new ProcessSpec { @@ -90,7 +79,7 @@ public EnvironmentOptions EnvironmentOptions environmentBuilder[EnvironmentVariables.Names.DotnetWatch] = "1"; environmentBuilder[EnvironmentVariables.Names.DotnetWatchIteration] = (Iteration + 1).ToString(CultureInfo.InvariantCulture); - if (Logger.IsEnabled(LogLevel.Trace)) + if (clients.IsManagedAgentSupported && Logger.IsEnabled(LogLevel.Trace)) { environmentBuilder[EnvironmentVariables.Names.HotReloadDeltaClientLogMessages] = (EnvironmentOptions.SuppressEmojis ? Emoji.Default : Emoji.Agent).GetLogMessagePrefix() + $"[{projectDisplayName}]"; @@ -108,6 +97,7 @@ public EnvironmentOptions EnvironmentOptions projectNode, projectOptions, clients, + clientLogger, processSpec, restartOperation, cancellationToken); diff --git a/src/BuiltInTools/Watch/Process/RunningProject.cs b/src/BuiltInTools/Watch/Process/RunningProject.cs index 74ed1690187a..a20b4c79118d 100644 --- a/src/BuiltInTools/Watch/Process/RunningProject.cs +++ b/src/BuiltInTools/Watch/Process/RunningProject.cs @@ -15,17 +15,19 @@ internal sealed class RunningProject( ProjectGraphNode projectNode, ProjectOptions options, HotReloadClients clients, + ILogger clientLogger, Task runningProcess, int processId, CancellationTokenSource processExitedSource, CancellationTokenSource processTerminationSource, RestartOperation restartOperation, - ImmutableArray capabilities) : IDisposable + ImmutableArray managedCodeUpdateCapabilities) : IDisposable { public readonly ProjectGraphNode ProjectNode = projectNode; public readonly ProjectOptions Options = options; public readonly HotReloadClients Clients = clients; - public readonly ImmutableArray Capabilities = capabilities; + public readonly ILogger ClientLogger = clientLogger; + public readonly ImmutableArray ManagedCodeUpdateCapabilities = managedCodeUpdateCapabilities; public readonly Task RunningProcess = runningProcess; public readonly int ProcessId = processId; public readonly RestartOperation RestartOperation = restartOperation; @@ -60,26 +62,6 @@ public void Dispose() processExitedSource.Dispose(); } - /// - /// Waits for the application process to start. - /// Ensures that the build has been complete and the build outputs are available. - /// Returns false if the process has exited before the connection was established. - /// - public async ValueTask WaitForProcessRunningAsync(CancellationToken cancellationToken) - { - using var processCommunicationCancellationSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, ProcessExitedCancellationToken); - - try - { - await Clients.WaitForConnectionEstablishedAsync(processCommunicationCancellationSource.Token); - return true; - } - catch (OperationCanceledException) when (ProcessExitedCancellationToken.IsCancellationRequested) - { - return false; - } - } - /// /// Terminates the process if it hasn't terminated yet. /// @@ -125,7 +107,7 @@ public async Task CompleteApplyOperationAsync(Task applyTask) // Handle all exceptions. If one process is terminated or fails to apply changes // it shouldn't prevent applying updates to other processes. - Clients.ClientLogger.LogError("Failed to apply updates to process {Process}: {Exception}", ProcessId, e.ToString()); + ClientLogger.LogError("Failed to apply updates to process {Process}: {Exception}", ProcessId, e.ToString()); } } } diff --git a/src/BuiltInTools/Watch/UI/IReporter.cs b/src/BuiltInTools/Watch/UI/IReporter.cs index 36897a4284bb..bed171feb9c2 100644 --- a/src/BuiltInTools/Watch/UI/IReporter.cs +++ b/src/BuiltInTools/Watch/UI/IReporter.cs @@ -135,20 +135,6 @@ public static MessageDescriptor GetDescriptor(EventId id) public string GetMessage(params object?[] args) => Id.Id == 0 ? Format : string.Format(Format, args); - public MessageDescriptor WithLevelWhen(LogLevel level, bool condition) - => condition && Level != level - ? this with - { - Level = level, - Emoji = level switch - { - LogLevel.Error or LogLevel.Critical => Emoji.Error, - LogLevel.Warning => Emoji.Warning, - _ => Emoji - } - } - : this; - public static readonly ImmutableDictionary ComponentEmojis = ImmutableDictionary.Empty .Add(DotNetWatchContext.DefaultLogComponentName, Emoji.Watch) .Add(DotNetWatchContext.BuildLogComponentName, Emoji.Build) @@ -190,8 +176,10 @@ public MessageDescriptor WithLevelWhen(LogLevel level, bool condition) public static readonly MessageDescriptor ApplyUpdate_FileContentDoesNotMatchBuiltSource = Create("{0} Expected if a source file is updated that is linked to project whose build is not up-to-date.", Emoji.Watch, LogLevel.Debug); public static readonly MessageDescriptor ConfiguredToLaunchBrowser = Create("dotnet-watch is configured to launch a browser on ASP.NET Core application startup.", Emoji.Watch, LogLevel.Debug); public static readonly MessageDescriptor ConfiguredToUseBrowserRefresh = Create("Using browser-refresh middleware", Emoji.Default, LogLevel.Debug); - public static readonly MessageDescriptor SkippingConfiguringBrowserRefresh_SuppressedViaEnvironmentVariable = Create("Skipping configuring browser-refresh middleware since its refresh server suppressed via environment variable {0}.", Emoji.Watch, LogLevel.Debug); - public static readonly MessageDescriptor SkippingConfiguringBrowserRefresh_TargetFrameworkNotSupported = Create("Skipping configuring browser-refresh middleware since the target framework version is not supported. For more information see 'https://aka.ms/dotnet/watch/unsupported-tfm'.", Emoji.Watch, LogLevel.Warning); + public static readonly MessageDescriptor BrowserRefreshSuppressedViaEnvironmentVariable_ManualRefreshRequired = Create("Browser refresh is suppressed via environment variable '{0}'. To reload static assets after an update refresh browser manually.", Emoji.Watch, LogLevel.Debug); + public static readonly MessageDescriptor BrowserRefreshSuppressedViaEnvironmentVariable_ApplicationWillBeRestarted = Create("Browser refresh is suppressed via environment variable '{0}'. Application will be restarted when updated.", Emoji.Watch, LogLevel.Warning); + public static readonly MessageDescriptor BrowserRefreshNotSupportedByProjectTargetFramework_ManualRefreshRequired = Create("Browser refresh is ot supported by the project target framework. To reload static assets after an update refresh browser manually. For more information see 'https://aka.ms/dotnet/watch/unsupported-tfm'.", Emoji.Watch, LogLevel.Warning); + public static readonly MessageDescriptor BrowserRefreshNotSupportedByProjectTargetFramework_ApplicationWillBeRestarted = Create("Browser refresh is ot supported by the project target framework. Application will be restarted when updated. For more information see 'https://aka.ms/dotnet/watch/unsupported-tfm'.", Emoji.Watch, LogLevel.Warning); public static readonly MessageDescriptor UpdatingDiagnostics = Create(LogEvents.UpdatingDiagnostics, Emoji.Default); public static readonly MessageDescriptor FailedToReceiveResponseFromConnectedBrowser = Create(LogEvents.FailedToReceiveResponseFromConnectedBrowser, Emoji.Default); public static readonly MessageDescriptor NoBrowserConnected = Create(LogEvents.NoBrowserConnected, Emoji.Default); @@ -208,7 +196,7 @@ public MessageDescriptor WithLevelWhen(LogLevel level, bool condition) public static readonly MessageDescriptor FileAdditionTriggeredReEvaluation = Create("File addition triggered re-evaluation: '{0}'.", Emoji.Watch, LogLevel.Debug); public static readonly MessageDescriptor ProjectChangeTriggeredReEvaluation = Create("Project change triggered re-evaluation: '{0}'.", Emoji.Watch, LogLevel.Debug); public static readonly MessageDescriptor ReEvaluationCompleted = Create("Re-evaluation completed.", Emoji.Watch, LogLevel.Debug); - public static readonly MessageDescriptor NoCSharpChangesToApply = Create("No C# or Razor changes to apply.", Emoji.Watch, LogLevel.Information); + public static readonly MessageDescriptor NoManagedCodeChangesToApply = Create("No managed code changes to apply.", Emoji.Watch, LogLevel.Information); public static readonly MessageDescriptor Exited = Create("Exited", Emoji.Watch, LogLevel.Information); public static readonly MessageDescriptor ExitedWithUnknownErrorCode = Create("Exited with unknown error code", Emoji.Error, LogLevel.Error); public static readonly MessageDescriptor ExitedWithErrorCode = Create("Exited with error code {0}", Emoji.Error, LogLevel.Error); @@ -227,6 +215,7 @@ public MessageDescriptor WithLevelWhen(LogLevel level, bool condition) public static readonly MessageDescriptor UnableToApplyChanges = Create("Unable to apply changes due to compilation errors.", Emoji.HotReload, LogLevel.Information); public static readonly MessageDescriptor RestartNeededToApplyChanges = Create("Restart is needed to apply the changes.", Emoji.HotReload, LogLevel.Information); public static readonly MessageDescriptor HotReloadEnabled = Create("Hot reload enabled. For a list of supported edits, see https://aka.ms/dotnet/hot-reload.", Emoji.HotReload, LogLevel.Information); + public static readonly MessageDescriptor ProjectDoesNotSupportHotReload = Create("Project does not support Hot Reload: {0}. Application will be restarted when updated.", Emoji.Warning, LogLevel.Warning); public static readonly MessageDescriptor PressCtrlRToRestart = Create("Press Ctrl+R to restart.", Emoji.LightBulb, LogLevel.Information); public static readonly MessageDescriptor ApplicationKind_BlazorHosted = Create("Application kind: BlazorHosted. '{0}' references BlazorWebAssembly project '{1}'.", Emoji.Default, LogLevel.Debug); public static readonly MessageDescriptor ApplicationKind_BlazorWebAssembly = Create("Application kind: BlazorWebAssembly.", Emoji.Default, LogLevel.Debug); diff --git a/test/Microsoft.Extensions.DotNetDeltaApplier.Tests/HotReloadClientTests.cs b/test/Microsoft.Extensions.DotNetDeltaApplier.Tests/HotReloadClientTests.cs index a66c1410f038..506a00791e02 100644 --- a/test/Microsoft.Extensions.DotNetDeltaApplier.Tests/HotReloadClientTests.cs +++ b/test/Microsoft.Extensions.DotNetDeltaApplier.Tests/HotReloadClientTests.cs @@ -20,7 +20,7 @@ public Test(ITestOutputHelper output, TestHotReloadAgent agent) Logger = new TestLogger(output); AgentLogger = new TestLogger(output); var clientTransport = new NamedPipeClientTransport(Logger); - Client = new DefaultHotReloadClient(Logger, AgentLogger, startupHookPath: "", enableStaticAssetUpdates: true, clientTransport); + Client = new DefaultHotReloadClient(Logger, AgentLogger, startupHookPath: "", handlesStaticAssetUpdates: true, clientTransport); _cancellationSource = new CancellationTokenSource(); diff --git a/test/TestAssets/TestProjects/BlazorWasmHosted50/Server/Properties/launchSettings.json b/test/TestAssets/TestProjects/BlazorWasmHosted50/Server/Properties/launchSettings.json index b710223555e9..51d894aa4520 100644 --- a/test/TestAssets/TestProjects/BlazorWasmHosted50/Server/Properties/launchSettings.json +++ b/test/TestAssets/TestProjects/BlazorWasmHosted50/Server/Properties/launchSettings.json @@ -18,7 +18,7 @@ }, "BlazorWasmHosted50.Server": { "commandName": "Project", - "dotnetRunMessages": "true", + "dotnetRunMessages": true, "launchBrowser": true, "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5001;http://localhost:5000", diff --git a/test/TestAssets/TestProjects/WatchAspire/WatchAspire.Wasm/Properties/launchSettings.json b/test/TestAssets/TestProjects/WatchAspire/WatchAspire.Wasm/Properties/launchSettings.json index dc7b2f31b4b3..38b39f84b3d4 100644 --- a/test/TestAssets/TestProjects/WatchAspire/WatchAspire.Wasm/Properties/launchSettings.json +++ b/test/TestAssets/TestProjects/WatchAspire/WatchAspire.Wasm/Properties/launchSettings.json @@ -2,7 +2,7 @@ "profiles": { "http": { "commandName": "Project", - "dotnetRunMessages": "true", + "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "http://localhost:5000", "environmentVariables": { diff --git a/test/TestAssets/TestProjects/WatchBrowserLaunchApp/Properties/launchSettings.json b/test/TestAssets/TestProjects/WatchBrowserLaunchApp/Properties/launchSettings.json index 8b203ef4a5b2..0f72a18452a0 100644 --- a/test/TestAssets/TestProjects/WatchBrowserLaunchApp/Properties/launchSettings.json +++ b/test/TestAssets/TestProjects/WatchBrowserLaunchApp/Properties/launchSettings.json @@ -17,7 +17,7 @@ }, "BrowserLaunchApp": { "commandName": "Project", - "dotnetRunMessages": "true", + "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "https://localhost:5001;http://localhost:5000", "environmentVariables": { diff --git a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs index 04e146d64a0f..c63cba58f33a 100644 --- a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs +++ b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs @@ -89,7 +89,7 @@ public async Task ProjectChange_UpdateDirectoryBuildPropsThenUpdateSource() Path.Combine(testAsset.Path, "Directory.Build.props"), src => src.Replace("false", "true")); - await App.WaitUntilOutputContains(MessageDescriptor.NoCSharpChangesToApply); + await App.WaitUntilOutputContains(MessageDescriptor.NoManagedCodeChangesToApply); await App.WaitUntilOutputContains(MessageDescriptor.ProjectChangeTriggeredReEvaluation); App.Process.ClearOutput(); @@ -622,6 +622,37 @@ public async Task BaselineCompilationError() await App.WaitUntilOutputContains(""); } + [Theory] + [InlineData("PublishAot", "True")] + [InlineData("PublishTrimmed", "True")] + [InlineData("StartupHookSupport", "False")] + public async Task ChangeFileInAotProject(string propertyName, string propertyValue) + { + var tfm = ToolsetInfo.CurrentTargetFramework; + + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: $"{propertyName};{propertyValue}") + .WithSource() + .WithProjectChanges(project => + { + project.Root.Descendants() + .First(e => e.Name.LocalName == "PropertyGroup") + .Add(XElement.Parse($"<{propertyName}>{propertyValue}")); + }); + + var programPath = Path.Combine(testAsset.Path, "Program.cs"); + + App.Start(testAsset, ["--non-interactive"]); + + await App.WaitForOutputLineContaining($"[WatchHotReloadApp ({tfm})] " + MessageDescriptor.ProjectDoesNotSupportHotReload.GetMessage($"'{propertyName}' property is '{propertyValue}'")); + await App.WaitForOutputLineContaining(MessageDescriptor.WaitingForChanges); + App.Process.ClearOutput(); + + UpdateSourceFile(programPath, content => content.Replace("Console.WriteLine(\".\");", "Console.WriteLine(\"\");")); + + await App.WaitForOutputLineContaining($"[auto-restart] {programPath}(1,1): error ENC0097"); // Applying source changes while the application is running is not supported by the runtime. + await App.WaitForOutputLineContaining(""); + } + [Fact] public async Task ChangeFileInFSharpProject() { @@ -651,9 +682,8 @@ open System.Threading [] let main argv = - while true do - printfn "Waiting" - Thread.Sleep(200) + printfn "Waiting" + Thread.Sleep(Timeout.Infinite) 0 """; @@ -661,7 +691,7 @@ open System.Threading File.WriteAllText(sourcePath, source); - App.Start(testAsset, []); + App.Start(testAsset, ["--non-interactive"]); await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); App.Process.ClearOutput(); @@ -998,7 +1028,7 @@ public async Task Razor_Component_ScopedCssAndStaticAssets() UpdateSourceFile(scopedCssPath, newCss); await App.WaitUntilOutputContains(MessageDescriptor.StaticAssetsChangesApplied); - await App.WaitUntilOutputContains(MessageDescriptor.NoCSharpChangesToApply); + await App.WaitUntilOutputContains(MessageDescriptor.NoManagedCodeChangesToApply); await App.WaitUntilOutputContains(MessageDescriptor.SendingStaticAssetUpdateRequest.GetMessage("wwwroot/RazorClassLibrary.bundle.scp.css")); App.Process.ClearOutput(); @@ -1007,7 +1037,7 @@ public async Task Razor_Component_ScopedCssAndStaticAssets() UpdateSourceFile(cssPath, content => content.Replace("background-color: white;", "background-color: red;")); await App.WaitUntilOutputContains(MessageDescriptor.StaticAssetsChangesApplied); - await App.WaitUntilOutputContains(MessageDescriptor.NoCSharpChangesToApply); + await App.WaitUntilOutputContains(MessageDescriptor.NoManagedCodeChangesToApply); await App.WaitUntilOutputContains(MessageDescriptor.SendingStaticAssetUpdateRequest.GetMessage("wwwroot/app.css")); App.Process.ClearOutput(); @@ -1052,7 +1082,7 @@ public async Task MauiBlazor() await App.WaitUntilOutputContains(MessageDescriptor.StaticAssetsChangesApplied); await App.WaitUntilOutputContains("Microsoft.AspNetCore.Components.WebView.StaticContentHotReloadManager.UpdateContent"); - await App.WaitUntilOutputContains(MessageDescriptor.NoCSharpChangesToApply); + await App.WaitUntilOutputContains(MessageDescriptor.NoManagedCodeChangesToApply); App.Process.ClearOutput(); // update scoped css: @@ -1061,7 +1091,7 @@ public async Task MauiBlazor() await App.WaitUntilOutputContains(MessageDescriptor.StaticAssetsChangesApplied); await App.WaitUntilOutputContains("Microsoft.AspNetCore.Components.WebView.StaticContentHotReloadManager.UpdateContent"); - await App.WaitUntilOutputContains(MessageDescriptor.NoCSharpChangesToApply); + await App.WaitUntilOutputContains(MessageDescriptor.NoManagedCodeChangesToApply); } // Test is timing out on .NET Framework: https://github.com/dotnet/sdk/issues/41669 diff --git a/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs b/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs index 809eaadc31e3..45ec6b6dcfec 100644 --- a/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs +++ b/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs @@ -111,7 +111,7 @@ private static async Task Launch(string projectPath, TestRuntime Assert.NotNull(result); - await result.WaitForProcessRunningAsync(cancellationToken); + await result.Clients.WaitForConnectionEstablishedAsync(cancellationToken); return result; }); @@ -617,7 +617,7 @@ public async Task IgnoredChange(bool isExisting, bool isIncluded, DirectoryKind var ignoringChangeInExcludedFile = w.Reporter.RegisterSemaphore(MessageDescriptor.IgnoringChangeInExcludedFile); var fileAdditionTriggeredReEvaluation = w.Reporter.RegisterSemaphore(MessageDescriptor.FileAdditionTriggeredReEvaluation); var reEvaluationCompleted = w.Reporter.RegisterSemaphore(MessageDescriptor.ReEvaluationCompleted); - var noHotReloadChangesToApply = w.Reporter.RegisterSemaphore(MessageDescriptor.NoCSharpChangesToApply); + var noHotReloadChangesToApply = w.Reporter.RegisterSemaphore(MessageDescriptor.NoManagedCodeChangesToApply); w.Start(); From 3cef1934da6a075dfa36f9e3fa0a694f9df3aacc Mon Sep 17 00:00:00 2001 From: tmat Date: Sat, 7 Feb 2026 12:07:14 -0800 Subject: [PATCH 127/179] Allow watching project graph with multiple roots and no main project --- eng/Version.Details.props | 1 + .../Watch.Aspire/DotNetWatchLauncher.cs | 14 +- .../Watch/Aspire/AspireServiceFactory.cs | 28 +-- .../Watch/Browser/BrowserLauncher.cs | 9 +- .../Watch/Context/DotNetWatchContext.cs | 21 +- .../Watch/Context/ProjectOptions.cs | 17 +- .../Watch/FileWatcher/FileWatcher.cs | 11 +- .../Watch/HotReload/CompilationHandler.cs | 24 +- .../Watch/HotReload/HotReloadDotNetWatcher.cs | 213 ++++++++++-------- .../Process/IRuntimeProcessLauncherFactory.cs | 2 +- .../Watch/Process/ProjectLauncher.cs | 2 +- src/BuiltInTools/Watch/Utilities/Option.cs | 20 ++ .../CommandLine/CommandLineOptions.cs | 19 +- src/BuiltInTools/dotnet-watch/Program.cs | 33 +-- .../dotnet-watch/Watch/BuildEvaluator.cs | 21 +- .../dotnet-watch/Watch/DotNetWatcher.cs | 3 +- .../CommandLine/CommandLineOptionsTests.cs | 15 +- .../ProgramTests.GetProjectOptions.cs | 32 +-- .../HotReload/CompilationHandlerTests.cs | 10 +- .../HotReload/RuntimeProcessLauncherTests.cs | 7 +- .../TestUtilities/TestOptions.cs | 9 +- .../TestRuntimeProcessLauncher.cs | 2 +- .../Watch/BuildEvaluatorTests.cs | 5 +- .../Watch/NoRestoreTests.cs | 7 +- 24 files changed, 308 insertions(+), 217 deletions(-) create mode 100644 src/BuiltInTools/Watch/Utilities/Option.cs diff --git a/eng/Version.Details.props b/eng/Version.Details.props index fc316bc18258..ba78063ca632 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -22,6 +22,7 @@ This file should be imported by eng/Versions.props 10.0.0-preview.26118.105 5.5.0-2.26118.105 5.5.0-2.26118.105 + 5.5.0-2.26118.105 10.0.0-beta.26118.105 10.0.0-beta.26118.105 10.0.0-beta.26118.105 diff --git a/src/BuiltInTools/Watch.Aspire/DotNetWatchLauncher.cs b/src/BuiltInTools/Watch.Aspire/DotNetWatchLauncher.cs index 121b600ef509..dd56ed47d0c3 100644 --- a/src/BuiltInTools/Watch.Aspire/DotNetWatchLauncher.cs +++ b/src/BuiltInTools/Watch.Aspire/DotNetWatchLauncher.cs @@ -24,15 +24,12 @@ public static async Task RunAsync(string workingDirectory, DotNetWatchOpti commandArguments.AddRange(options.ApplicationArguments); - var rootProjectOptions = new ProjectOptions() + var mainProjectOptions = new ProjectOptions() { - IsRootProject = true, + IsMainProject = true, Representation = options.Project, WorkingDirectory = workingDirectory, - TargetFramework = null, - BuildArguments = [], - NoLaunchProfile = options.NoLaunchProfile, - LaunchProfileName = null, + LaunchProfileName = options.NoLaunchProfile ? default : null, Command = "run", CommandArguments = [.. commandArguments], LaunchEnvironmentVariables = [], @@ -59,7 +56,10 @@ public static async Task RunAsync(string workingDirectory, DotNetWatchOpti ProcessRunner = processRunner, Options = globalOptions, EnvironmentOptions = environmentOptions, - RootProjectOptions = rootProjectOptions, + MainProjectOptions = mainProjectOptions, + RootProjects = [mainProjectOptions.Representation], + BuildArguments = [], + TargetFramework = null, BrowserRefreshServerFactory = new BrowserRefreshServerFactory(), BrowserLauncher = new BrowserLauncher(logger, reporter, environmentOptions), }; diff --git a/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs b/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs index 1349c94ce495..d02a94e014fb 100644 --- a/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs +++ b/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs @@ -6,12 +6,11 @@ using System.Globalization; using System.Threading.Channels; using Aspire.Tools.Service; -using Microsoft.Build.Graph; using Microsoft.Extensions.Logging; namespace Microsoft.DotNet.Watch; -internal class AspireServiceFactory : IRuntimeProcessLauncherFactory +internal class AspireServiceFactory(ProjectOptions hostProjectOptions) : IRuntimeProcessLauncherFactory { internal sealed class SessionManager : IAspireServerEvents, IRuntimeProcessLauncher { @@ -30,8 +29,8 @@ private readonly struct Session(string dcpId, string sessionId, RunningProject r }; private readonly ProjectLauncher _projectLauncher; - private readonly AspireServerService _service; private readonly ProjectOptions _hostProjectOptions; + private readonly AspireServerService _service; private readonly ILogger _logger; /// @@ -213,23 +212,16 @@ private async Task TerminateSessionAsync(Session session) } private ProjectOptions GetProjectOptions(ProjectLaunchRequest projectLaunchInfo) - { - var hostLaunchProfile = _hostProjectOptions.NoLaunchProfile ? null : _hostProjectOptions.LaunchProfileName; - - return new() + => new() { - IsRootProject = false, + IsMainProject = false, Representation = ProjectRepresentation.FromProjectOrEntryPointFilePath(projectLaunchInfo.ProjectPath), WorkingDirectory = Path.GetDirectoryName(projectLaunchInfo.ProjectPath) ?? throw new InvalidOperationException(), - BuildArguments = _hostProjectOptions.BuildArguments, Command = "run", - CommandArguments = GetRunCommandArguments(projectLaunchInfo, hostLaunchProfile), + CommandArguments = GetRunCommandArguments(projectLaunchInfo, _hostProjectOptions.LaunchProfileName.Value), LaunchEnvironmentVariables = projectLaunchInfo.Environment?.Select(e => (e.Key, e.Value))?.ToArray() ?? [], - LaunchProfileName = projectLaunchInfo.LaunchProfile, - NoLaunchProfile = projectLaunchInfo.DisableLaunchProfile, - TargetFramework = _hostProjectOptions.TargetFramework, + LaunchProfileName = projectLaunchInfo.DisableLaunchProfile ? default : projectLaunchInfo.LaunchProfile, }; - } // internal for testing internal static IReadOnlyList GetRunCommandArguments(ProjectLaunchRequest projectLaunchInfo, string? hostLaunchProfile) @@ -274,13 +266,9 @@ internal static IReadOnlyList GetRunCommandArguments(ProjectLaunchReques } } - public static readonly AspireServiceFactory Instance = new(); - public const string AspireLogComponentName = "Aspire"; public const string AppHostProjectCapability = ProjectCapability.Aspire; - public IRuntimeProcessLauncher? TryCreate(ProjectGraphNode projectNode, ProjectLauncher projectLauncher, ProjectOptions hostProjectOptions) - => projectNode.GetCapabilities().Contains(AppHostProjectCapability) - ? new SessionManager(projectLauncher, hostProjectOptions) - : null; + public IRuntimeProcessLauncher Create(ProjectLauncher projectLauncher) + => new SessionManager(projectLauncher, hostProjectOptions); } diff --git a/src/BuiltInTools/Watch/Browser/BrowserLauncher.cs b/src/BuiltInTools/Watch/Browser/BrowserLauncher.cs index e789dd058281..105b67176421 100644 --- a/src/BuiltInTools/Watch/Browser/BrowserLauncher.cs +++ b/src/BuiltInTools/Watch/Browser/BrowserLauncher.cs @@ -38,7 +38,7 @@ public void InstallBrowserLaunchTrigger( WebServerProcessStateObserver.Observe(projectNode, processSpec, url => { - if (projectOptions.IsRootProject && + if (projectOptions.IsMainProject && ImmutableInterlocked.Update(ref _browserLaunchAttempted, static (set, key) => set.Add(key), projectNode.ProjectInstance.GetId())) { // first build iteration of a root project: @@ -127,7 +127,10 @@ private bool CanLaunchBrowser(ProjectOptions projectOptions, [NotNullWhen(true)] private LaunchSettingsProfile GetLaunchProfile(ProjectOptions projectOptions) { - return (projectOptions.NoLaunchProfile == true - ? null : LaunchSettingsProfile.ReadLaunchProfile(projectOptions.Representation, projectOptions.LaunchProfileName, logger)) ?? new(); + var profile = projectOptions.LaunchProfileName.HasValue + ? LaunchSettingsProfile.ReadLaunchProfile(projectOptions.Representation, projectOptions.LaunchProfileName.Value, logger) + : null; + + return profile ?? new(); } } diff --git a/src/BuiltInTools/Watch/Context/DotNetWatchContext.cs b/src/BuiltInTools/Watch/Context/DotNetWatchContext.cs index f7caada6824c..a8b712f0de37 100644 --- a/src/BuiltInTools/Watch/Context/DotNetWatchContext.cs +++ b/src/BuiltInTools/Watch/Context/DotNetWatchContext.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Collections.Immutable; using Microsoft.Extensions.Logging; namespace Microsoft.DotNet.Watch @@ -18,7 +19,25 @@ internal sealed class DotNetWatchContext : IDisposable public required ILoggerFactory LoggerFactory { get; init; } public required ProcessRunner ProcessRunner { get; init; } - public required ProjectOptions RootProjectOptions { get; init; } + /// + /// Roots of the project graph to watch. + /// + public required ImmutableArray RootProjects { get; init; } + + /// + /// Options for launching a main project. If null no main project is being launched. + /// + public required ProjectOptions? MainProjectOptions { get; init; } + + /// + /// Default target framework. + /// + public required string? TargetFramework { get; init; } + + /// + /// Additional arguments passed to `dotnet build` when building projects. + /// + public required IReadOnlyList BuildArguments { get; init; } public required BrowserRefreshServerFactory BrowserRefreshServerFactory { get; init; } public required BrowserLauncher BrowserLauncher { get; init; } diff --git a/src/BuiltInTools/Watch/Context/ProjectOptions.cs b/src/BuiltInTools/Watch/Context/ProjectOptions.cs index abede2e8ef26..ee8bde50abc5 100644 --- a/src/BuiltInTools/Watch/Context/ProjectOptions.cs +++ b/src/BuiltInTools/Watch/Context/ProjectOptions.cs @@ -5,13 +5,20 @@ namespace Microsoft.DotNet.Watch; internal sealed record ProjectOptions { - public required bool IsRootProject { get; init; } public required ProjectRepresentation Representation { get; init; } + + /// + /// True if the project has been launched by watch in the main iteration loop. + /// + public required bool IsMainProject { get; init; } + public required string WorkingDirectory { get; init; } - public required string? TargetFramework { get; init; } - public required IReadOnlyList BuildArguments { get; init; } - public required bool NoLaunchProfile { get; init; } - public required string? LaunchProfileName { get; init; } + + /// + /// No value indicates that no launch profile should be used. + /// Null value indicates that the default launch profile should be used. + /// + public required Optional LaunchProfileName { get; init; } /// /// Command to use to launch the project. diff --git a/src/BuiltInTools/Watch/FileWatcher/FileWatcher.cs b/src/BuiltInTools/Watch/FileWatcher/FileWatcher.cs index 1e445f5e9cb9..1c5bfbd8aa98 100644 --- a/src/BuiltInTools/Watch/FileWatcher/FileWatcher.cs +++ b/src/BuiltInTools/Watch/FileWatcher/FileWatcher.cs @@ -21,6 +21,7 @@ internal class FileWatcher(ILogger logger, EnvironmentOptions environmentOptions public event Action? OnFileChange; public bool SuppressEvents { get; set; } + public DateTime StartTime { get; set; } public void Dispose() { @@ -205,20 +206,22 @@ void FileChangedCallback(ChangedPath change) return change; } - public static async ValueTask WaitForFileChangeAsync(string filePath, ILogger logger, EnvironmentOptions environmentOptions, Action? startedWatching, CancellationToken cancellationToken) + public static async ValueTask WaitForFileChangeAsync(IEnumerable filePaths, ILogger logger, EnvironmentOptions environmentOptions, Action? startedWatching, CancellationToken cancellationToken) { using var watcher = new FileWatcher(logger, environmentOptions); - watcher.WatchContainingDirectories([filePath], includeSubdirectories: false); + watcher.WatchContainingDirectories(filePaths, includeSubdirectories: false); + + var pathSet = filePaths.ToHashSet(); var fileChange = await watcher.WaitForFileChangeAsync( - acceptChange: change => change.Path == filePath, + acceptChange: change => pathSet.Contains(change.Path), startedWatching, cancellationToken); if (fileChange != null) { - logger.LogInformation("File changed: {FilePath}", filePath); + logger.LogInformation("File changed: {FilePath}", fileChange.Value.Path); } } } diff --git a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs index 77a478612409..ac42e581cb86 100644 --- a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs +++ b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs @@ -27,7 +27,7 @@ internal sealed class CompilationHandler : IDisposable private readonly object _runningProjectsAndUpdatesGuard = new(); /// - /// Projects that have been launched and to which we apply changes. + /// Projects that have been launched and to which we apply changes. /// private ImmutableDictionary> _runningProjects = ImmutableDictionary>.Empty; @@ -61,10 +61,10 @@ public void Dispose() private ILogger Logger => _context.Logger; - public async ValueTask TerminateNonRootProcessesAndDispose(CancellationToken cancellationToken) + public async ValueTask TerminatePeripheralProcessesAndDispose(CancellationToken cancellationToken) { Logger.LogDebug("Terminating remaining child processes."); - await TerminateNonRootProcessesAsync(projectPaths: null, cancellationToken); + await TerminatePeripheralProcessesAsync(projectPaths: null, cancellationToken); Dispose(); } @@ -373,7 +373,7 @@ public async ValueTask GetManagedCodeUpdatesAsync( // except for the root process, which will terminate later on. if (!updates.ProjectsToRestart.IsEmpty) { - builder.ProjectsToRestart.AddRange(await TerminateNonRootProcessesAsync(updates.ProjectsToRestart.Select(e => currentSolution.GetProject(e.Key)!.FilePath!), cancellationToken)); + builder.ProjectsToRestart.AddRange(await TerminatePeripheralProcessesAsync(updates.ProjectsToRestart.Select(e => currentSolution.GetProject(e.Key)!.FilePath!), cancellationToken)); } } @@ -803,15 +803,15 @@ public async ValueTask GetStaticAssetUpdatesAsync( } /// - /// Terminates all processes launched for non-root projects with , - /// or all running non-root project processes if is null. + /// Terminates all processes launched for peripheral projects with , + /// or all running peripheral project processes if is null. /// /// Removes corresponding entries from . /// - /// Does not terminate the root project. + /// Does not terminate the main project. /// - /// All processes (including root) to be restarted. - internal async ValueTask> TerminateNonRootProcessesAsync( + /// All processes (including main) to be restarted. + internal async ValueTask> TerminatePeripheralProcessesAsync( IEnumerable? projectPaths, CancellationToken cancellationToken) { ImmutableArray projectsToRestart = []; @@ -826,7 +826,7 @@ internal async ValueTask> TerminateNonRootProcess // Do not terminate root process at this time - it would signal the cancellation token we are currently using. // The process will be restarted later on. // Wait for all processes to exit to release their resources, so we can rebuild. - await Task.WhenAll(projectsToRestart.Where(p => !p.Options.IsRootProject).Select(p => p.TerminateForRestartAsync())).WaitAsync(cancellationToken); + await Task.WhenAll(projectsToRestart.Where(p => !p.Options.IsMainProject).Select(p => p.TerminateForRestartAsync())).WaitAsync(cancellationToken); return projectsToRestart; } @@ -885,14 +885,14 @@ private static ImmutableDictionary> Crea keySelector: static group => group.Key, elementSelector: static group => group.Select(static node => node.ProjectInstance).ToImmutableArray()); - public async Task UpdateProjectConeAsync(ProjectGraph projectGraph, ProjectRepresentation project, CancellationToken cancellationToken) + public async Task UpdateProjectGraphAsync(ProjectGraph projectGraph, CancellationToken cancellationToken) { Logger.LogInformation("Loading projects ..."); var stopwatch = Stopwatch.StartNew(); _projectInstances = CreateProjectInstanceMap(projectGraph); - var solution = await Workspace.UpdateProjectConeAsync(project.ProjectGraphPath, cancellationToken); + var solution = await Workspace.UpdateProjectGraphAsync([.. projectGraph.EntryPointNodes.Select(n => n.ProjectInstance.FullPath)], cancellationToken); await SolutionUpdatedAsync(solution, "project update", cancellationToken); Logger.LogInformation("Projects loaded in {Time}s.", stopwatch.Elapsed.TotalSeconds.ToString("0.0")); diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs index 3eb6bf9418b4..2760db41ee58 100644 --- a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs +++ b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs @@ -46,10 +46,10 @@ public HotReloadDotNetWatcher(DotNetWatchContext context, IConsole console, IRun } _designTimeBuildGraphFactory = new ProjectGraphFactory( - [context.RootProjectOptions.Representation], - context.RootProjectOptions.TargetFramework, + context.RootProjects, + context.TargetFramework, buildProperties: EvaluationResult.GetGlobalBuildProperties( - context.RootProjectOptions.BuildArguments, + context.BuildArguments, context.EnvironmentOptions), context.BuildLogger); } @@ -82,16 +82,14 @@ public async Task WatchAsync(CancellationToken shutdownCancellationToken) var iterationCancellationToken = iterationCancellationSource.Token; EvaluationResult? evaluationResult = null; - RunningProject? rootRunningProject = null; + RunningProject? mainRunningProject = null; IRuntimeProcessLauncher? runtimeProcessLauncher = null; CompilationHandler? compilationHandler = null; Action? fileChangedCallback = null; try { - var rootProjectOptions = _context.RootProjectOptions; - - var buildSucceeded = await BuildProjectAsync(rootProjectOptions.Representation, rootProjectOptions.BuildArguments, iterationCancellationToken); + var buildSucceeded = await BuildProjectsAsync(_context.RootProjects, _context.BuildArguments, iterationCancellationToken); if (!buildSucceeded) { continue; @@ -99,58 +97,65 @@ public async Task WatchAsync(CancellationToken shutdownCancellationToken) // Evaluate the target to find out the set of files to watch. // In case the app fails to start due to build or other error we can wait for these files to change. - // Avoid restore since the build above already restored the root project. + // Avoid restore since the build above already restored all root projects. evaluationResult = await EvaluateProjectGraphAsync(restore: false, iterationCancellationToken); - var rootProject = evaluationResult.ProjectGraph.Graph.GraphRoots.Single(); + compilationHandler = new CompilationHandler(_context); + var projectLauncher = new ProjectLauncher(_context, evaluationResult.ProjectGraph, compilationHandler, iteration); + evaluationResult.ItemExclusions.Report(_context.Logger); - // use normalized MSBuild path so that we can index into the ProjectGraph - rootProjectOptions = rootProjectOptions with - { - Representation = rootProjectOptions.Representation.WithProjectGraphPath(rootProject.ProjectInstance.FullPath) - }; + var mainProjectOptions = _context.MainProjectOptions; + var mainProject = (mainProjectOptions != null) ? evaluationResult.ProjectGraph.Graph.GraphRoots.Single() : null; var runtimeProcessLauncherFactory = _runtimeProcessLauncherFactory; - var rootProjectCapabilities = rootProject.GetCapabilities(); - if (rootProjectCapabilities.Contains(AspireServiceFactory.AppHostProjectCapability)) + + if (mainProject?.GetCapabilities().Contains(AspireServiceFactory.AppHostProjectCapability) == true) { - runtimeProcessLauncherFactory ??= AspireServiceFactory.Instance; + Debug.Assert(mainProjectOptions != null); + runtimeProcessLauncherFactory ??= new AspireServiceFactory(mainProjectOptions); _context.Logger.LogDebug("Using Aspire process launcher."); } - compilationHandler = new CompilationHandler(_context); - var projectLauncher = new ProjectLauncher(_context, evaluationResult.ProjectGraph, compilationHandler, iteration); - evaluationResult.ItemExclusions.Report(_context.Logger); + runtimeProcessLauncher = runtimeProcessLauncherFactory?.Create(projectLauncher); - runtimeProcessLauncher = runtimeProcessLauncherFactory?.TryCreate(rootProject, projectLauncher, rootProjectOptions); - if (runtimeProcessLauncher != null) + if (mainProjectOptions != null) { - var launcherEnvironment = runtimeProcessLauncher.GetEnvironmentVariables(); - rootProjectOptions = rootProjectOptions with + if (runtimeProcessLauncher != null) { - LaunchEnvironmentVariables = [.. rootProjectOptions.LaunchEnvironmentVariables, .. launcherEnvironment] - }; - } + mainProjectOptions = mainProjectOptions with + { + LaunchEnvironmentVariables = [.. mainProjectOptions.LaunchEnvironmentVariables, .. runtimeProcessLauncher.GetEnvironmentVariables()] + }; + } - rootRunningProject = await projectLauncher.TryLaunchProcessAsync( - rootProjectOptions, - onOutput: null, - onExit: (_, _) => + mainRunningProject = await projectLauncher.TryLaunchProcessAsync( + mainProjectOptions, + onOutput: null, + onExit: (_, _) => + { + iterationCancellationSource.Cancel(); + return ValueTask.CompletedTask; + }, + restartOperation: new RestartOperation(_ => default), // the process will automatically restart + iterationCancellationToken); + + if (mainRunningProject == null) { - iterationCancellationSource.Cancel(); - return ValueTask.CompletedTask; - }, - restartOperation: new RestartOperation(_ => default), // the process will automatically restart - iterationCancellationToken); + // error has been reported: + return; + } - if (rootRunningProject == null) - { - // error has been reported - continue; - } + // Cancel iteration as soon as the main process exits, so that we don't spent time loading solution, etc. when the process is already dead. + mainRunningProject.ProcessExitedCancellationToken.Register(iterationCancellationSource.Cancel); + if (shutdownCancellationToken.IsCancellationRequested) + { + // Ctrl+C: + return; + } + } - await compilationHandler.UpdateProjectConeAsync(evaluationResult.ProjectGraph.Graph, rootProjectOptions.Representation, iterationCancellationToken); + await compilationHandler.UpdateProjectGraphAsync(evaluationResult.ProjectGraph.Graph, iterationCancellationToken); // Solution must be initialized after we load the solution but before we start watching for file changes to avoid race condition // when the EnC session captures content of the file after the changes has already been made. @@ -225,9 +230,10 @@ await compilationHandler.GetManagedCodeUpdatesAsync( iterationCancellationToken); // Terminate root process if it had rude edits or is non-reloadable. - if (updates.ProjectsToRestart.Any(project => project.Options.IsRootProject)) + if (updates.ProjectsToRestart.Any(project => project.Options.IsMainProject)) { - rootRunningProject.InitiateRestart(); + Debug.Assert(mainRunningProject != null); + mainRunningProject.InitiateRestart(); break; } @@ -241,19 +247,7 @@ await compilationHandler.GetManagedCodeUpdatesAsync( fileWatcher.SuppressEvents = true; try { - // Build projects sequentially to avoid failed attempts to overwrite dependent project outputs. - // TODO: Ideally, dotnet build would be able to build multiple projects. https://github.com/dotnet/sdk/issues/51311 - var success = true; - foreach (var projectPath in updates.ProjectsToRebuild) - { - // The path of the Workspace Project is the entry-point file path for single-file apps. - success = await BuildProjectAsync(ProjectRepresentation.FromProjectOrEntryPointFilePath(projectPath), rootProjectOptions.BuildArguments, iterationCancellationToken); - if (!success) - { - break; - } - } - + var success = await BuildProjectsAsync([.. updates.ProjectsToRebuild.Select(ProjectRepresentation.FromProjectOrEntryPointFilePath)], _context.BuildArguments, iterationCancellationToken); if (success) { break; @@ -349,7 +343,7 @@ async Task> CaptureChangedFilesSnapshot(IReadOnlyLis // additional files/directories may have been added: evaluationResult.WatchFiles(fileWatcher); - await compilationHandler.UpdateProjectConeAsync(evaluationResult.ProjectGraph.Graph, rootProjectOptions.Representation, iterationCancellationToken); + await compilationHandler.UpdateProjectGraphAsync(evaluationResult.ProjectGraph.Graph, iterationCancellationToken); if (shutdownCancellationToken.IsCancellationRequested) { @@ -422,7 +416,7 @@ async Task> CaptureChangedFilesSnapshot(IReadOnlyLis if (runtimeProcessLauncher != null) { - // Request cleanup of all processes created by the launcher before we terminate the root process. + // Request cleanup of all processes created by the launcher before we terminate the main process. // Executed after the main process has terminated if the process exits on its own. // Non-cancellable - can only be aborted by forced Ctrl+C, which immediately kills the dotnet-watch process. await runtimeProcessLauncher.TerminateLaunchedProcessesAsync(CancellationToken.None); @@ -431,12 +425,12 @@ async Task> CaptureChangedFilesSnapshot(IReadOnlyLis if (compilationHandler != null) { // Non-cancellable - can only be aborted by forced Ctrl+C, which immediately kills the dotnet-watch process. - await compilationHandler.TerminateNonRootProcessesAndDispose(CancellationToken.None); + await compilationHandler.TerminatePeripheralProcessesAndDispose(CancellationToken.None); } - if (rootRunningProject != null) + if (mainRunningProject != null) { - await rootRunningProject.TerminateAsync(); + await mainRunningProject.TerminateAsync(); } if (runtimeProcessLauncher != null) @@ -456,7 +450,7 @@ async Task> CaptureChangedFilesSnapshot(IReadOnlyLis { _context.Logger.Log(MessageDescriptor.Restarting); } - else if (rootRunningProject?.IsRestarting != true) + else if (mainRunningProject?.IsRestarting != true) { using var shutdownOrForcedRestartSource = CancellationTokenSource.CreateLinkedTokenSource(shutdownCancellationToken, forceRestartCancellationSource.Token); await WaitForFileChangeBeforeRestarting(fileWatcher, evaluationResult, shutdownOrForcedRestartSource.Token); @@ -711,8 +705,8 @@ private async ValueTask WaitForFileChangeBeforeRestarting(FileWatcher fileWatche } else { - // evaluation cancelled - watch for any changes in the directory tree containing the root project or entry-point file: - fileWatcher.WatchContainingDirectories([_context.RootProjectOptions.Representation.ProjectOrEntryPointFilePath], includeSubdirectories: true); + // evaluation cancelled - watch for any changes in the directory trees containing root projects or entry-point files: + fileWatcher.WatchContainingDirectories(_context.RootProjects.Select(p => p.ProjectOrEntryPointFilePath), includeSubdirectories: true); _ = await fileWatcher.WaitForFileChangeAsync( acceptChange: AcceptChange, @@ -908,7 +902,7 @@ private async ValueTask EvaluateProjectGraphAsync(bool restore } await FileWatcher.WaitForFileChangeAsync( - _context.RootProjectOptions.Representation.ProjectOrEntryPointFilePath, + _context.RootProjects.Select(p => p.ProjectOrEntryPointFilePath), _context.Logger, _context.EnvironmentOptions, startedWatching: () => _context.Logger.Log(MessageDescriptor.FixBuildError), @@ -916,43 +910,84 @@ await FileWatcher.WaitForFileChangeAsync( } } - private async Task BuildProjectAsync(ProjectRepresentation project, IReadOnlyList buildArguments, CancellationToken cancellationToken) + private async Task BuildProjectsAsync(ImmutableArray projects, IReadOnlyList buildArguments, CancellationToken cancellationToken) { - List? capturedOutput = _context.EnvironmentOptions.TestFlags != TestFlags.None ? [] : null; + Debug.Assert(projects.Any()); - var processSpec = new ProcessSpec + List? capturedOutput = _context.EnvironmentOptions.TestFlags != TestFlags.None ? [] : null; + string? solutionFile = null; + try { - Executable = _context.EnvironmentOptions.MuxerPath, - WorkingDirectory = project.GetContainingDirectory(), - IsUserApplication = false, - - // Capture output if running in a test environment. - // If the output is not captured dotnet build will show live build progress. - OnOutput = capturedOutput != null - ? line => + // TODO: workaround for https://github.com/dotnet/sdk/issues/51311 + // does not work with single-file apps + if (projects is not [var project]) + { + solutionFile = Path.Combine(Path.GetTempFileName() + ".slnx"); + + var solutionElement = new XElement("Solution"); + + foreach (var p in projects) { - lock (capturedOutput) + if (p.PhysicalPath != null) { - capturedOutput.Add(line); + solutionElement.Add(new XElement("Project", new XAttribute("Path", p.PhysicalPath))); } } + + var doc = new XDocument(solutionElement); + doc.Save(solutionFile); + + project = new ProjectRepresentation(projectPath: solutionFile, entryPointFilePath: null); + } + + var processSpec = new ProcessSpec + { + Executable = _context.EnvironmentOptions.MuxerPath, + WorkingDirectory = project.GetContainingDirectory(), + IsUserApplication = false, + + // Capture output if running in a test environment. + // If the output is not captured dotnet build will show live build progress. + OnOutput = capturedOutput != null + ? line => + { + lock (capturedOutput) + { + capturedOutput.Add(line); + } + } : null, - // pass user-specified build arguments last to override defaults: - Arguments = ["build", project.ProjectOrEntryPointFilePath, .. buildArguments] - }; + // pass user-specified build arguments last to override defaults: + Arguments = ["build", project.ProjectOrEntryPointFilePath, .. buildArguments] + }; - _context.BuildLogger.Log(MessageDescriptor.Building, project.ProjectOrEntryPointFilePath); + _context.BuildLogger.Log(MessageDescriptor.Building, project.ProjectOrEntryPointFilePath); - var success = await _context.ProcessRunner.RunAsync(processSpec, _context.Logger, launchResult: null, cancellationToken) == 0; + var success = await _context.ProcessRunner.RunAsync(processSpec, _context.Logger, launchResult: null, cancellationToken) == 0; - if (capturedOutput != null) + if (capturedOutput != null) + { + _context.BuildLogger.Log(success ? MessageDescriptor.BuildSucceeded : MessageDescriptor.BuildFailed, project.ProjectOrEntryPointFilePath); + BuildOutput.ReportBuildOutput(_context.BuildLogger, capturedOutput, success); + } + + return success; + } + finally { - _context.BuildLogger.Log(success ? MessageDescriptor.BuildSucceeded : MessageDescriptor.BuildFailed, project.ProjectOrEntryPointFilePath); - BuildOutput.ReportBuildOutput(_context.BuildLogger, capturedOutput, success); + if (solutionFile != null) + { + try + { + File.Delete(solutionFile); + } + catch + { + // ignore + } + } } - - return success; } private string GetRelativeFilePath(string path) diff --git a/src/BuiltInTools/Watch/Process/IRuntimeProcessLauncherFactory.cs b/src/BuiltInTools/Watch/Process/IRuntimeProcessLauncherFactory.cs index 93d69f69db59..8859bcbe9794 100644 --- a/src/BuiltInTools/Watch/Process/IRuntimeProcessLauncherFactory.cs +++ b/src/BuiltInTools/Watch/Process/IRuntimeProcessLauncherFactory.cs @@ -12,5 +12,5 @@ namespace Microsoft.DotNet.Watch; /// internal interface IRuntimeProcessLauncherFactory { - public IRuntimeProcessLauncher? TryCreate(ProjectGraphNode projectNode, ProjectLauncher projectLauncher, ProjectOptions hostProjectOptions); + public IRuntimeProcessLauncher Create(ProjectLauncher projectLauncher); } diff --git a/src/BuiltInTools/Watch/Process/ProjectLauncher.cs b/src/BuiltInTools/Watch/Process/ProjectLauncher.cs index d32e013428b0..f0357fd1e03e 100644 --- a/src/BuiltInTools/Watch/Process/ProjectLauncher.cs +++ b/src/BuiltInTools/Watch/Process/ProjectLauncher.cs @@ -34,7 +34,7 @@ public EnvironmentOptions EnvironmentOptions RestartOperation restartOperation, CancellationToken cancellationToken) { - var projectNode = projectGraph.TryGetProjectNode(projectOptions.Representation.ProjectGraphPath, projectOptions.TargetFramework); + var projectNode = projectGraph.TryGetProjectNode(projectOptions.Representation.ProjectGraphPath, context.TargetFramework); if (projectNode == null) { // error already reported diff --git a/src/BuiltInTools/Watch/Utilities/Option.cs b/src/BuiltInTools/Watch/Utilities/Option.cs new file mode 100644 index 000000000000..59f6ffcedbd6 --- /dev/null +++ b/src/BuiltInTools/Watch/Utilities/Option.cs @@ -0,0 +1,20 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Microsoft.DotNet.Watch; + +internal readonly struct Optional(T value) +{ + public static readonly Optional NoValue = default; + + public bool HasValue { get; } = true; + public T Value => value; + + public static implicit operator Optional(T value) + => new(value); + + public override string ToString() + => HasValue + ? Value?.ToString() ?? "null" + : "unspecified"; +} diff --git a/src/BuiltInTools/dotnet-watch/CommandLine/CommandLineOptions.cs b/src/BuiltInTools/dotnet-watch/CommandLine/CommandLineOptions.cs index 43a0b5fe4905..afee098997cd 100644 --- a/src/BuiltInTools/dotnet-watch/CommandLine/CommandLineOptions.cs +++ b/src/BuiltInTools/dotnet-watch/CommandLine/CommandLineOptions.cs @@ -5,11 +5,9 @@ using System.CommandLine; using System.CommandLine.Parsing; using System.Data; -using Microsoft.DotNet.Cli; using Microsoft.DotNet.Cli.CommandLine; using Microsoft.DotNet.Cli.Commands; using Microsoft.DotNet.Cli.Commands.Build; -using Microsoft.DotNet.Cli.Commands.Run; using Microsoft.DotNet.Cli.Commands.Test; using Microsoft.Extensions.Logging; @@ -25,8 +23,7 @@ internal sealed class CommandLineOptions public string? FilePath { get; init; } public string? ProjectPath { get; init; } public string? TargetFramework { get; init; } - public bool NoLaunchProfile { get; init; } - public string? LaunchProfileName { get; init; } + public Optional LaunchProfileName { get; init; } /// /// Arguments passed to . @@ -130,6 +127,10 @@ internal sealed class CommandLineOptions ? LogLevel.Warning : LogLevel.Information; + var launchProfile = parseResult.GetValue(definition.NoLaunchProfileOption) + ? Optional.NoValue + : parseResult.GetValue(definition.LaunchProfileOption); + return new() { List = parseResult.GetValue(definition.ListOption), @@ -147,8 +148,7 @@ internal sealed class CommandLineOptions ProjectPath = projectValue, FilePath = parseResult.GetValue(definition.FileOption), - LaunchProfileName = parseResult.GetValue(definition.LaunchProfileOption), - NoLaunchProfile = parseResult.GetValue(definition.NoLaunchProfileOption), + LaunchProfileName = launchProfile, BuildArguments = buildArguments, TargetFramework = targetFrameworkOption != null ? parseResult.GetValue(targetFrameworkOption) : null, }; @@ -345,18 +345,15 @@ private static int IndexOf(IReadOnlyList list, Func predicate) return -1; } - public ProjectOptions GetProjectOptions(ProjectRepresentation project, string workingDirectory) + public ProjectOptions GetMainProjectOptions(ProjectRepresentation project, string workingDirectory) => new() { - IsRootProject = true, + IsMainProject = true, Representation = project, WorkingDirectory = workingDirectory, Command = Command, CommandArguments = CommandArguments, LaunchEnvironmentVariables = [], LaunchProfileName = LaunchProfileName, - NoLaunchProfile = NoLaunchProfile, - BuildArguments = BuildArguments, - TargetFramework = TargetFramework, }; } diff --git a/src/BuiltInTools/dotnet-watch/Program.cs b/src/BuiltInTools/dotnet-watch/Program.cs index 5c0507148ee6..86bdb0fa2a91 100644 --- a/src/BuiltInTools/dotnet-watch/Program.cs +++ b/src/BuiltInTools/dotnet-watch/Program.cs @@ -16,7 +16,7 @@ internal sealed class Program( ILoggerFactory loggerFactory, ILogger logger, IProcessOutputReporter processOutputReporter, - ProjectOptions rootProjectOptions, + ProjectOptions mainProjectOptions, CommandLineOptions options, EnvironmentOptions environmentOptions) { @@ -100,19 +100,19 @@ public static async Task Main(string[] args) logger.LogDebug("Test flags: {Flags}", environmentOptions.TestFlags); } - var rootProjectOptions = GetProjectOptions(options, workingDirectory, logger); - if (rootProjectOptions == null) + var mainProjectOptions = GetMainProjectOptions(options, workingDirectory, logger); + if (mainProjectOptions == null) { errorCode = 1; return null; } errorCode = 0; - return new Program(console, loggerFactory, logger, processOutputReporter, rootProjectOptions, options, environmentOptions); + return new Program(console, loggerFactory, logger, processOutputReporter, mainProjectOptions, options, environmentOptions); } // internal for testing - internal static ProjectOptions? GetProjectOptions(CommandLineOptions options, string workingDirectory, ILogger logger) + internal static ProjectOptions? GetMainProjectOptions(CommandLineOptions options, string workingDirectory, ILogger logger) { ProjectRepresentation project; @@ -148,7 +148,7 @@ public static async Task Main(string[] args) return null; } - return options.GetProjectOptions(project, workingDirectory); + return options.GetMainProjectOptions(project, workingDirectory); } private static bool TryFindFileEntryPoint(string workingDirectory, CommandLineOptions options, ILogger logger, [NotNullWhen(true)] out string? entryPointPath) @@ -253,7 +253,7 @@ internal async Task RunAsync() if (options.List) { - if (rootProjectOptions.Representation.EntryPointFilePath != null) + if (mainProjectOptions.Representation.EntryPointFilePath != null) { logger.LogError("--list does not support file-based programs"); return 1; @@ -274,7 +274,7 @@ internal async Task RunAsync() var watcher = new HotReloadDotNetWatcher(context, console, runtimeProcessLauncherFactory: null); await watcher.WatchAsync(shutdownHandler.CancellationToken); } - else if (rootProjectOptions.Representation.EntryPointFilePath != null) + else if (mainProjectOptions.Representation.EntryPointFilePath != null) { logger.LogError("File-based programs are only supported when Hot Reload is enabled"); return 1; @@ -312,7 +312,10 @@ internal DotNetWatchContext CreateContext(ProcessRunner processRunner) ProcessRunner = processRunner, Options = options.GlobalOptions, EnvironmentOptions = environmentOptions, - RootProjectOptions = rootProjectOptions, + MainProjectOptions = mainProjectOptions, + RootProjects = [mainProjectOptions.Representation], + BuildArguments = options.BuildArguments, + TargetFramework = options.TargetFramework, BrowserRefreshServerFactory = new BrowserRefreshServerFactory(), BrowserLauncher = new BrowserLauncher(logger, processOutputReporter, environmentOptions), }; @@ -320,9 +323,9 @@ internal DotNetWatchContext CreateContext(ProcessRunner processRunner) private bool IsHotReloadEnabled() { - if (rootProjectOptions.Command != "run") + if (mainProjectOptions.Command != "run") { - logger.LogDebug("Command '{Command}' does not support Hot Reload.", rootProjectOptions.Command); + logger.LogDebug("Command '{Command}' does not support Hot Reload.", mainProjectOptions.Command); return false; } @@ -339,14 +342,14 @@ private bool IsHotReloadEnabled() private async Task ListFilesAsync(ProcessRunner processRunner, CancellationToken cancellationToken) { // file-based programs are not supported with --list - Debug.Assert(rootProjectOptions.Representation.PhysicalPath != null); + Debug.Assert(mainProjectOptions.Representation.PhysicalPath != null); var buildLogger = loggerFactory.CreateLogger(DotNetWatchContext.BuildLogComponentName); var fileSetFactory = new MSBuildFileSetFactory( - rootProjectOptions.Representation.PhysicalPath, - rootProjectOptions.TargetFramework, - rootProjectOptions.BuildArguments, + mainProjectOptions.Representation.PhysicalPath, + options.TargetFramework, + options.BuildArguments, processRunner, buildLogger, environmentOptions); diff --git a/src/BuiltInTools/dotnet-watch/Watch/BuildEvaluator.cs b/src/BuiltInTools/dotnet-watch/Watch/BuildEvaluator.cs index c2572d72ecb7..e51ff21d3d56 100644 --- a/src/BuiltInTools/dotnet-watch/Watch/BuildEvaluator.cs +++ b/src/BuiltInTools/dotnet-watch/Watch/BuildEvaluator.cs @@ -31,19 +31,24 @@ internal class BuildEvaluator public BuildEvaluator(DotNetWatchContext context) { + Debug.Assert(context.MainProjectOptions != null); + _context = context; _fileSetFactory = CreateMSBuildFileSetFactory(); } + private ProjectOptions MainProjectOptions + => _context.MainProjectOptions ?? throw new InvalidOperationException(); + protected virtual MSBuildFileSetFactory CreateMSBuildFileSetFactory() { // file-based programs only supported in Hot Reload mode: - Debug.Assert(_context.RootProjectOptions.Representation.PhysicalPath != null); + Debug.Assert(MainProjectOptions.Representation.PhysicalPath != null); return new( - _context.RootProjectOptions.Representation.PhysicalPath, - _context.RootProjectOptions.TargetFramework, - _context.RootProjectOptions.BuildArguments, + MainProjectOptions.Representation.PhysicalPath, + _context.TargetFramework, + _context.BuildArguments, _context.ProcessRunner, _context.BuildLogger, _context.EnvironmentOptions); @@ -53,7 +58,7 @@ public IReadOnlyList GetProcessArguments(int iteration) { if (!_context.EnvironmentOptions.SuppressMSBuildIncrementalism && iteration > 0 && - _context.RootProjectOptions.IsCodeExecutionCommand) + MainProjectOptions.IsCodeExecutionCommand) { if (RequiresRevaluation) { @@ -62,11 +67,11 @@ public IReadOnlyList GetProcessArguments(int iteration) else { _context.Logger.LogDebug("Modifying command to use --no-restore"); - return [_context.RootProjectOptions.Command, "--no-restore", .. _context.RootProjectOptions.CommandArguments]; + return [MainProjectOptions.Command, "--no-restore", .. MainProjectOptions.CommandArguments]; } } - return [_context.RootProjectOptions.Command, .. _context.RootProjectOptions.CommandArguments]; + return [MainProjectOptions.Command, .. MainProjectOptions.CommandArguments]; } public async ValueTask EvaluateAsync(ChangedFile? changedFile, CancellationToken cancellationToken) @@ -108,7 +113,7 @@ public IReadOnlyList GetProcessArguments(int iteration) } await FileWatcher.WaitForFileChangeAsync( - _fileSetFactory.RootProjectFile, + [_fileSetFactory.RootProjectFile], _context.Logger, _context.EnvironmentOptions, startedWatching: () => _context.Logger.Log(MessageDescriptor.FixBuildError), diff --git a/src/BuiltInTools/dotnet-watch/Watch/DotNetWatcher.cs b/src/BuiltInTools/dotnet-watch/Watch/DotNetWatcher.cs index 709aa4dc3c93..62c6f6e894fe 100644 --- a/src/BuiltInTools/dotnet-watch/Watch/DotNetWatcher.cs +++ b/src/BuiltInTools/dotnet-watch/Watch/DotNetWatcher.cs @@ -74,7 +74,8 @@ public static async Task WatchAsync(DotNetWatchContext context, CancellationToke if (projectRootNode != null) { - context.BrowserLauncher.InstallBrowserLaunchTrigger(processSpec, projectRootNode, context.RootProjectOptions, browserRefreshServer, shutdownCancellationToken); + Debug.Assert(context.MainProjectOptions != null); + context.BrowserLauncher.InstallBrowserLaunchTrigger(processSpec, projectRootNode, context.MainProjectOptions, browserRefreshServer, shutdownCancellationToken); } // Reset for next run diff --git a/test/dotnet-watch.Tests/CommandLine/CommandLineOptionsTests.cs b/test/dotnet-watch.Tests/CommandLine/CommandLineOptionsTests.cs index 39676d595a0e..916e691c3c6a 100644 --- a/test/dotnet-watch.Tests/CommandLine/CommandLineOptionsTests.cs +++ b/test/dotnet-watch.Tests/CommandLine/CommandLineOptionsTests.cs @@ -143,7 +143,7 @@ public void RunOptions_NoProfile_Watch() { var options = VerifyOptions(["--no-launch-profile", "run"]); - Assert.True(options.NoLaunchProfile); + Assert.False(options.LaunchProfileName.HasValue); Assert.Equal("run", options.Command); AssertEx.SequenceEqual(["--no-launch-profile"], options.CommandArguments); } @@ -153,7 +153,7 @@ public void RunOptions_NoProfile_Run() { var options = VerifyOptions(["run", "--no-launch-profile"]); - Assert.True(options.NoLaunchProfile); + Assert.False(options.LaunchProfileName.HasValue); Assert.Equal("run", options.Command); AssertEx.SequenceEqual(["--no-launch-profile"], options.CommandArguments); } @@ -163,7 +163,7 @@ public void RunOptions_NoProfile_Both() { var options = VerifyOptions(["--no-launch-profile", "run", "--no-launch-profile"]); - Assert.True(options.NoLaunchProfile); + Assert.False(options.LaunchProfileName.HasValue); Assert.Equal("run", options.Command); AssertEx.SequenceEqual(["--no-launch-profile"], options.CommandArguments); } @@ -246,7 +246,8 @@ public void ParsedNonWatchOptionsAfterDashDash_NoLaunchProfile() { var options = VerifyOptions(["--", "--no-launch-profile"]); - Assert.False(options.NoLaunchProfile); + Assert.True(options.LaunchProfileName.HasValue); + Assert.Null(options.LaunchProfileName.Value); AssertEx.SequenceEqual(["--", "--no-launch-profile"], options.CommandArguments); } @@ -255,7 +256,8 @@ public void ParsedNonWatchOptionsAfterDashDash_LaunchProfile() { var options = VerifyOptions(["--", "--launch-profile", "p"]); - Assert.False(options.NoLaunchProfile); + Assert.True(options.LaunchProfileName.HasValue); + Assert.Null(options.LaunchProfileName.Value); AssertEx.SequenceEqual(["--", "--launch-profile", "p"], options.CommandArguments); } @@ -264,7 +266,8 @@ public void ParsedNonWatchOptionsAfterDashDash_Property() { var options = VerifyOptions(["--", "--property", "x=1"]); - Assert.False(options.NoLaunchProfile); + Assert.True(options.LaunchProfileName.HasValue); + Assert.Null(options.LaunchProfileName.Value); AssertEx.SequenceEqual(["--", "--property", "x=1"], options.CommandArguments); } diff --git a/test/dotnet-watch.Tests/CommandLine/ProgramTests.GetProjectOptions.cs b/test/dotnet-watch.Tests/CommandLine/ProgramTests.GetProjectOptions.cs index 05b75cc850e0..7f606283a24c 100644 --- a/test/dotnet-watch.Tests/CommandLine/ProgramTests.GetProjectOptions.cs +++ b/test/dotnet-watch.Tests/CommandLine/ProgramTests.GetProjectOptions.cs @@ -29,13 +29,13 @@ public void ExplicitProjectPath() File.WriteAllText(projectPath, ""); var options = ParseOptions(["--project", projectPath]); - var result = Program.GetProjectOptions(options, tempDir, _testLogger); + var result = Program.GetMainProjectOptions(options, tempDir, _testLogger); Assert.NotNull(result); Assert.Equal(projectPath, result.Representation.PhysicalPath); Assert.Null(result.Representation.EntryPointFilePath); Assert.Equal(tempDir, result.WorkingDirectory); - Assert.True(result.IsRootProject); + Assert.True(result.IsMainProject); } [Fact] @@ -46,7 +46,7 @@ public void ProjectInWorkingDirectory() File.WriteAllText(projectPath, ""); var options = ParseOptions([]); - var result = Program.GetProjectOptions(options, tempDir, _testLogger); + var result = Program.GetMainProjectOptions(options, tempDir, _testLogger); Assert.NotNull(result); Assert.Equal(projectPath, result.Representation.PhysicalPath); @@ -61,7 +61,7 @@ public void MultipleProjects() File.WriteAllText(Path.Combine(tempDir, "App2.csproj"), ""); var options = ParseOptions([]); - var result = Program.GetProjectOptions(options, tempDir, _testLogger); + var result = Program.GetMainProjectOptions(options, tempDir, _testLogger); Assert.Null(result); AssertEx.SequenceEqual( @@ -75,7 +75,7 @@ public void NonExistentProject() var tempDir = CreateTempDirectory(); var projectPath = Path.Combine(tempDir, "NonExistent.csproj"); var options = ParseOptions(["--project", projectPath]); - var result = Program.GetProjectOptions(options, tempDir, _testLogger); + var result = Program.GetMainProjectOptions(options, tempDir, _testLogger); Assert.Null(result); AssertEx.SequenceEqual( @@ -91,7 +91,7 @@ public void NoProjectsInDirectoryAndNoCSharpFile() Directory.CreateDirectory(emptyDir); var options = ParseOptions([]); - var result = Program.GetProjectOptions(options, emptyDir, _testLogger); + var result = Program.GetMainProjectOptions(options, emptyDir, _testLogger); Assert.Null(result); AssertEx.SequenceEqual( @@ -109,7 +109,7 @@ public void ProjectDirectory() File.WriteAllText(projectPath, ""); var options = ParseOptions(["--project", subDir]); - var result = Program.GetProjectOptions(options, tempDir, _testLogger); + var result = Program.GetMainProjectOptions(options, tempDir, _testLogger); Assert.NotNull(result); Assert.Equal(projectPath, result.Representation.PhysicalPath); @@ -127,7 +127,7 @@ public void ProjectFile_AcceptedExtension(string projExtension) File.WriteAllText(projectPath, ""); var options = ParseOptions([]); - var result = Program.GetProjectOptions(options, tempDir, _testLogger); + var result = Program.GetMainProjectOptions(options, tempDir, _testLogger); Assert.NotNull(result); Assert.Equal(projectPath, result.Representation.PhysicalPath); @@ -142,7 +142,7 @@ public void ProjectFile_RejectedExtension(string projExtension) File.WriteAllText(projectPath, ""); var options = ParseOptions([]); - var result = Program.GetProjectOptions(options, tempDir, _testLogger); + var result = Program.GetMainProjectOptions(options, tempDir, _testLogger); Assert.Null(result); AssertEx.SequenceEqual( @@ -157,7 +157,7 @@ public void InvalidFilePath() var invalidPath = "invalid\0path.cs"; var options = ParseOptions(["--file", invalidPath]); - var result = Program.GetProjectOptions(options, tempDir, _testLogger); + var result = Program.GetMainProjectOptions(options, tempDir, _testLogger); string message; try @@ -184,7 +184,7 @@ public void FilePathOption() File.WriteAllText(csFilePath, "Console.WriteLine(\"Hello\");"); var options = ParseOptions(["--file", csFilePath]); - var result = Program.GetProjectOptions(options, tempDir, _testLogger); + var result = Program.GetMainProjectOptions(options, tempDir, _testLogger); Assert.NotNull(result); Assert.Equal(csFilePath, result.Representation.EntryPointFilePath); @@ -200,7 +200,7 @@ public void CSharpFileSpecifiedAsArgument() // dotnet watch App.cs var options = ParseOptions([csFilePath]); - var result = Program.GetProjectOptions(options, tempDir, _testLogger); + var result = Program.GetMainProjectOptions(options, tempDir, _testLogger); Assert.NotNull(result); Assert.Equal(csFilePath, result.Representation.EntryPointFilePath); @@ -215,7 +215,7 @@ public void FileWithShebangSpecifiedAsArgument() // dotnet watch App.txt var options = ParseOptions([filePath]); - var result = Program.GetProjectOptions(options, tempDir, _testLogger); + var result = Program.GetMainProjectOptions(options, tempDir, _testLogger); Assert.NotNull(result); Assert.Equal(filePath, result.Representation.EntryPointFilePath); @@ -231,7 +231,7 @@ public void RelativeProjectPath() File.WriteAllText(projectPath, ""); var options = ParseOptions(["--project", "subdir/Test.csproj"]); - var result = Program.GetProjectOptions(options, tempDir, _testLogger); + var result = Program.GetMainProjectOptions(options, tempDir, _testLogger); Assert.NotNull(result); Assert.Equal(projectPath, result.Representation.PhysicalPath); @@ -245,7 +245,7 @@ public void RelativeFilePath() File.WriteAllText(csFilePath, "Console.WriteLine(\"Hello\");"); var options = ParseOptions(["--file", "Script.cs"]); - var result = Program.GetProjectOptions(options, tempDir, _testLogger); + var result = Program.GetMainProjectOptions(options, tempDir, _testLogger); Assert.NotNull(result); Assert.Equal(csFilePath, result.Representation.EntryPointFilePath); @@ -261,7 +261,7 @@ public void FilePathOptionTakesPrecedenceOverProjectPath() File.WriteAllText(csFilePath, "Console.WriteLine(\"Hello\");"); var options = ParseOptions(["--file", csFilePath]); - var result = Program.GetProjectOptions(options, tempDir, _testLogger); + var result = Program.GetMainProjectOptions(options, tempDir, _testLogger); Assert.NotNull(result); Assert.Equal(csFilePath, result.Representation.EntryPointFilePath); diff --git a/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs b/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs index cfdf200dfa87..42a531303ceb 100644 --- a/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs +++ b/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs @@ -18,7 +18,8 @@ public async Task ReferenceOutputAssembly_False() var hostProject = Path.Combine(hostDir, "Host.csproj"); var hostProjectRepr = new ProjectRepresentation(hostProject, entryPointFilePath: null); - var options = TestOptions.GetProjectOptions(["--project", hostProject]); + var cmdOptions = TestOptions.GetCommandLineOptions(["--project", hostProject]); + var projectOptions = TestOptions.GetProjectOptions(cmdOptions); var environmentOptions = TestOptions.GetEnvironmentOptions(Environment.CurrentDirectory, "dotnet"); var factory = new ProjectGraphFactory([hostProjectRepr], targetFramework: null, buildProperties: [], NullLogger.Instance); @@ -35,7 +36,10 @@ public async Task ReferenceOutputAssembly_False() LoggerFactory = NullLoggerFactory.Instance, ProcessRunner = new ProcessRunner(processCleanupTimeout: TimeSpan.Zero), Options = new(), - RootProjectOptions = TestOptions.ProjectOptions, + MainProjectOptions = TestOptions.ProjectOptions, + RootProjects = [hostProjectRepr], + BuildArguments = [], + TargetFramework = null, EnvironmentOptions = environmentOptions, BrowserLauncher = new BrowserLauncher(NullLogger.Instance, processOutputReporter, environmentOptions), BrowserRefreshServerFactory = new BrowserRefreshServerFactory() @@ -43,7 +47,7 @@ public async Task ReferenceOutputAssembly_False() var handler = new CompilationHandler(context); - await handler.UpdateProjectConeAsync(projectGraph.Graph, hostProjectRepr, CancellationToken.None); + await handler.UpdateProjectGraphAsync(projectGraph.Graph, CancellationToken.None); // all projects are present AssertEx.SequenceEqual(["Host", "Lib2", "Lib", "A", "B"], handler.Workspace.CurrentSolution.Projects.Select(p => p.Name)); diff --git a/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs b/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs index 45ec6b6dcfec..0f23a5034b1b 100644 --- a/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs +++ b/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs @@ -87,16 +87,13 @@ private static async Task Launch(string projectPath, TestRuntime { var projectOptions = new ProjectOptions() { - IsRootProject = false, + IsMainProject = false, Representation = new ProjectRepresentation(projectPath, entryPointFilePath: null), WorkingDirectory = workingDirectory, - BuildArguments = [], Command = "run", CommandArguments = ["--project", projectPath], LaunchEnvironmentVariables = [], - LaunchProfileName = null, - NoLaunchProfile = true, - TargetFramework = null, + LaunchProfileName = default, }; RestartOperation? startOp = null; diff --git a/test/dotnet-watch.Tests/TestUtilities/TestOptions.cs b/test/dotnet-watch.Tests/TestUtilities/TestOptions.cs index e75e30cd9b27..7c74d6978523 100644 --- a/test/dotnet-watch.Tests/TestUtilities/TestOptions.cs +++ b/test/dotnet-watch.Tests/TestUtilities/TestOptions.cs @@ -12,7 +12,7 @@ internal static class TestOptions public static int GetTestPort() => Interlocked.Increment(ref s_testPort); - public static readonly ProjectOptions ProjectOptions = GetProjectOptions([]); + public static readonly ProjectOptions ProjectOptions = GetProjectOptions(GetCommandLineOptions([])); public static EnvironmentOptions GetEnvironmentOptions(string workingDirectory = "", string muxerPath = "", TestAsset? asset = null) => new(workingDirectory, muxerPath, ProcessCleanupTimeout: null, IsPollingEnabled: true, TestFlags: TestFlags.RunningAsTest, TestOutput: asset != null ? asset.GetWatchTestOutputPath() : ""); @@ -20,9 +20,6 @@ public static EnvironmentOptions GetEnvironmentOptions(string workingDirectory = public static CommandLineOptions GetCommandLineOptions(string[] args) => CommandLineOptions.Parse(args, NullLogger.Instance, TextWriter.Null, out _) ?? throw new InvalidOperationException(); - public static ProjectOptions GetProjectOptions(string[]? args = null) - { - var options = GetCommandLineOptions(args ?? []); - return options.GetProjectOptions(new ProjectRepresentation(options.ProjectPath ?? "test.csproj", entryPointFilePath: null), workingDirectory: ""); - } + public static ProjectOptions GetProjectOptions(CommandLineOptions options) + => options.GetMainProjectOptions(new ProjectRepresentation(options.ProjectPath ?? "test.csproj", entryPointFilePath: null), workingDirectory: ""); } diff --git a/test/dotnet-watch.Tests/TestUtilities/TestRuntimeProcessLauncher.cs b/test/dotnet-watch.Tests/TestUtilities/TestRuntimeProcessLauncher.cs index f8f130cf2a7f..f78dee02e930 100644 --- a/test/dotnet-watch.Tests/TestUtilities/TestRuntimeProcessLauncher.cs +++ b/test/dotnet-watch.Tests/TestUtilities/TestRuntimeProcessLauncher.cs @@ -9,7 +9,7 @@ internal class TestRuntimeProcessLauncher(ProjectLauncher projectLauncher) : IRu { public class Factory(Action? initialize = null) : IRuntimeProcessLauncherFactory { - public IRuntimeProcessLauncher TryCreate(ProjectGraphNode projectNode, ProjectLauncher projectLauncher, ProjectOptions hostProjectOptions) + public IRuntimeProcessLauncher Create(ProjectLauncher projectLauncher) { var service = new TestRuntimeProcessLauncher(projectLauncher); initialize?.Invoke(service); diff --git a/test/dotnet-watch.Tests/Watch/BuildEvaluatorTests.cs b/test/dotnet-watch.Tests/Watch/BuildEvaluatorTests.cs index d673b618826c..5fe0ea928710 100644 --- a/test/dotnet-watch.Tests/Watch/BuildEvaluatorTests.cs +++ b/test/dotnet-watch.Tests/Watch/BuildEvaluatorTests.cs @@ -26,7 +26,10 @@ private static DotNetWatchContext CreateContext(bool suppressMSBuildIncrementali LoggerFactory = NullLoggerFactory.Instance, ProcessRunner = new ProcessRunner(processCleanupTimeout: TimeSpan.Zero), Options = new(), - RootProjectOptions = TestOptions.ProjectOptions, + MainProjectOptions = TestOptions.ProjectOptions, + RootProjects = [TestOptions.ProjectOptions.Representation], + TargetFramework = null, + BuildArguments = [], EnvironmentOptions = environmentOptions, BrowserLauncher = new BrowserLauncher(NullLogger.Instance, processOutputReporter, environmentOptions), BrowserRefreshServerFactory = new BrowserRefreshServerFactory() diff --git a/test/dotnet-watch.Tests/Watch/NoRestoreTests.cs b/test/dotnet-watch.Tests/Watch/NoRestoreTests.cs index 895a9d6b779e..a74be1cd7c0a 100644 --- a/test/dotnet-watch.Tests/Watch/NoRestoreTests.cs +++ b/test/dotnet-watch.Tests/Watch/NoRestoreTests.cs @@ -14,6 +14,8 @@ private static DotNetWatchContext CreateContext(string[] args = null, Environmen environmentOptions ??= TestOptions.GetEnvironmentOptions(); var processOutputReporter = new TestProcessOutputReporter(); + var cmdOptions = TestOptions.GetCommandLineOptions(args ?? []); + var projectOptions = TestOptions.GetProjectOptions(cmdOptions); return new() { @@ -23,7 +25,10 @@ private static DotNetWatchContext CreateContext(string[] args = null, Environmen BuildLogger = NullLogger.Instance, ProcessRunner = new ProcessRunner(processCleanupTimeout: TimeSpan.Zero), Options = new(), - RootProjectOptions = TestOptions.GetProjectOptions(args), + MainProjectOptions = projectOptions, + RootProjects = [projectOptions.Representation], + TargetFramework = cmdOptions.TargetFramework, + BuildArguments = cmdOptions.BuildArguments, EnvironmentOptions = environmentOptions, BrowserLauncher = new BrowserLauncher(NullLogger.Instance, processOutputReporter, environmentOptions), BrowserRefreshServerFactory = new BrowserRefreshServerFactory() From a6556ddda02c04f730b6eafa7886596e7de86a03 Mon Sep 17 00:00:00 2001 From: tmat Date: Wed, 18 Feb 2026 09:25:43 -0800 Subject: [PATCH 128/179] Make log message arguments strongly typed --- .../HotReloadClient/Logging/LogEvents.cs | 83 ++++-- .../Utilities/{VoidResult.cs => None.cs} | 4 +- .../Web/AbstractBrowserRefreshServer.cs | 4 +- .../HotReloadClient/Web/BrowserConnection.cs | 2 +- .../Watch/Browser/BrowserLauncher.cs | 9 +- .../Watch/Build/FilePathExclusions.cs | 2 +- .../Watch/HotReload/CompilationHandler.cs | 28 +- .../Watch/HotReload/HotReloadDotNetWatcher.cs | 4 + .../Watch/Process/ProcessRunner.cs | 15 +- src/BuiltInTools/Watch/Process/ProcessSpec.cs | 7 +- src/BuiltInTools/Watch/UI/IReporter.cs | 244 +++++++++++------- .../Browser/BrowserTests.cs | 2 +- .../HotReload/ApplyDeltaTests.cs | 6 +- 13 files changed, 250 insertions(+), 160 deletions(-) rename src/BuiltInTools/HotReloadClient/Utilities/{VoidResult.cs => None.cs} (83%) diff --git a/src/BuiltInTools/HotReloadClient/Logging/LogEvents.cs b/src/BuiltInTools/HotReloadClient/Logging/LogEvents.cs index 8b43cb4bad29..d154e76c4097 100644 --- a/src/BuiltInTools/HotReloadClient/Logging/LogEvents.cs +++ b/src/BuiltInTools/HotReloadClient/Logging/LogEvents.cs @@ -3,37 +3,78 @@ #nullable enable +using System.Diagnostics; +using System.Runtime.CompilerServices; using Microsoft.Extensions.Logging; namespace Microsoft.DotNet.HotReload; -internal readonly record struct LogEvent(EventId Id, LogLevel Level, string Message); +internal readonly record struct LogEvent(EventId Id, LogLevel Level, string Message); internal static class LogEvents { // Non-shared event ids start at 0. private static int s_id = 1000; - private static LogEvent Create(LogLevel level, string message) + private static LogEvent Create(LogLevel level, string message) + => Create(level, message); + + private static LogEvent Create(LogLevel level, string message) => new(new EventId(s_id++), level, message); - public static void Log(this ILogger logger, LogEvent logEvent, params object[] args) - => logger.Log(logEvent.Level, logEvent.Id, logEvent.Message, args); - - public static readonly LogEvent SendingUpdateBatch = Create(LogLevel.Debug, "Sending update batch #{0}"); - public static readonly LogEvent UpdateBatchCompleted = Create(LogLevel.Debug, "Update batch #{0} completed."); - public static readonly LogEvent UpdateBatchFailed = Create(LogLevel.Debug, "Update batch #{0} failed."); - public static readonly LogEvent UpdateBatchCanceled = Create(LogLevel.Debug, "Update batch #{0} canceled."); - public static readonly LogEvent UpdateBatchFailedWithError = Create(LogLevel.Debug, "Update batch #{0} failed with error: {1}"); - public static readonly LogEvent UpdateBatchExceptionStackTrace = Create(LogLevel.Debug, "Update batch #{0} exception stack trace: {1}"); - public static readonly LogEvent Capabilities = Create(LogLevel.Debug, "Capabilities: '{0}'."); - public static readonly LogEvent RefreshingBrowser = Create(LogLevel.Debug, "Refreshing browser."); - public static readonly LogEvent ReloadingBrowser = Create(LogLevel.Debug, "Reloading browser."); - public static readonly LogEvent SendingWaitMessage = Create(LogLevel.Debug, "Sending wait message."); - public static readonly LogEvent NoBrowserConnected = Create(LogLevel.Debug, "No browser is connected."); - public static readonly LogEvent FailedToReceiveResponseFromConnectedBrowser = Create(LogLevel.Debug, "Failed to receive response from a connected browser."); - public static readonly LogEvent UpdatingDiagnostics = Create(LogLevel.Debug, "Updating diagnostics."); - public static readonly LogEvent SendingStaticAssetUpdateRequest = Create(LogLevel.Debug, "Sending static asset update request to connected browsers: '{0}'."); - public static readonly LogEvent RefreshServerRunningAt = Create(LogLevel.Debug, "Refresh server running at {0}."); - public static readonly LogEvent ConnectedToRefreshServer = Create(LogLevel.Debug, "Connected to refresh server."); + public static void Log(this ILogger logger, LogEvent logEvent) + => logger.Log(logEvent.Level, logEvent.Id, logEvent.Message); + + public static void Log(this ILogger logger, LogEvent logEvent, TArgs args) + { + if (logger.IsEnabled(logEvent.Level)) + { + logger.Log(logEvent.Level, logEvent.Id, logEvent.Message, GetArgumentValues(args)); + } + } + + public static void Log(this ILogger logger, LogEvent<(TArg1, TArg2)> logEvent, TArg1 arg1, TArg2 arg2) + => Log(logger, logEvent, (arg1, arg2)); + + public static void Log(this ILogger logger, LogEvent<(TArg1, TArg2, TArg3)> logEvent, TArg1 arg1, TArg2 arg2, TArg3 arg3) + => Log(logger, logEvent, (arg1, arg2, arg3)); + + public static object?[] GetArgumentValues(TArgs args) + { + if (args?.GetType() == typeof(None)) + { + return []; + } + + if (args is ITuple tuple) + { + var values = new object?[tuple.Length]; + for (int i = 0; i < tuple.Length; i++) + { + values[i] = tuple[i]; + } + + return values; + } + + return [args]; + } + + public static readonly LogEvent SendingUpdateBatch = Create(LogLevel.Debug, "Sending update batch #{0}"); + public static readonly LogEvent UpdateBatchCompleted = Create(LogLevel.Debug, "Update batch #{0} completed."); + public static readonly LogEvent UpdateBatchFailed = Create(LogLevel.Debug, "Update batch #{0} failed."); + public static readonly LogEvent UpdateBatchCanceled = Create(LogLevel.Debug, "Update batch #{0} canceled."); + public static readonly LogEvent<(int, string)> UpdateBatchFailedWithError = Create<(int, string)>(LogLevel.Debug, "Update batch #{0} failed with error: {1}"); + public static readonly LogEvent<(int, string)> UpdateBatchExceptionStackTrace = Create<(int, string)>(LogLevel.Debug, "Update batch #{0} exception stack trace: {1}"); + public static readonly LogEvent Capabilities = Create(LogLevel.Debug, "Capabilities: '{0}'."); + public static readonly LogEvent RefreshingBrowser = Create(LogLevel.Debug, "Refreshing browser."); + public static readonly LogEvent ReloadingBrowser = Create(LogLevel.Debug, "Reloading browser."); + public static readonly LogEvent SendingWaitMessage = Create(LogLevel.Debug, "Sending wait message."); + public static readonly LogEvent NoBrowserConnected = Create(LogLevel.Debug, "No browser is connected."); + public static readonly LogEvent FailedToReceiveResponseFromConnectedBrowser = Create(LogLevel.Debug, "Failed to receive response from a connected browser."); + public static readonly LogEvent UpdatingDiagnostics = Create(LogLevel.Debug, "Updating diagnostics."); + public static readonly LogEvent SendingStaticAssetUpdateRequest = Create(LogLevel.Debug, "Sending static asset update request to connected browsers: '{0}'."); + public static readonly LogEvent RefreshServerRunningAt = Create(LogLevel.Debug, "Refresh server running at {0}."); + public static readonly LogEvent ConnectedToRefreshServer = Create(LogLevel.Debug, "Connected to refresh server."); } + diff --git a/src/BuiltInTools/HotReloadClient/Utilities/VoidResult.cs b/src/BuiltInTools/HotReloadClient/Utilities/None.cs similarity index 83% rename from src/BuiltInTools/HotReloadClient/Utilities/VoidResult.cs rename to src/BuiltInTools/HotReloadClient/Utilities/None.cs index d024e9cb07e9..2ecb1bc60294 100644 --- a/src/BuiltInTools/HotReloadClient/Utilities/VoidResult.cs +++ b/src/BuiltInTools/HotReloadClient/Utilities/None.cs @@ -5,6 +5,4 @@ namespace Microsoft.DotNet.HotReload; -internal readonly struct VoidResult -{ -} +internal readonly struct None; diff --git a/src/BuiltInTools/HotReloadClient/Web/AbstractBrowserRefreshServer.cs b/src/BuiltInTools/HotReloadClient/Web/AbstractBrowserRefreshServer.cs index 79c5d957265b..09b04ab26827 100644 --- a/src/BuiltInTools/HotReloadClient/Web/AbstractBrowserRefreshServer.cs +++ b/src/BuiltInTools/HotReloadClient/Web/AbstractBrowserRefreshServer.cs @@ -32,7 +32,7 @@ internal abstract class AbstractBrowserRefreshServer(string middlewareAssemblyPa private static readonly JsonSerializerOptions s_jsonSerializerOptions = new(JsonSerializerDefaults.Web); private readonly List _activeConnections = []; - private readonly TaskCompletionSource _browserConnected = new(TaskCreationOptions.RunContinuationsAsynchronously); + private readonly TaskCompletionSource _browserConnected = new(TaskCreationOptions.RunContinuationsAsynchronously); private readonly SharedSecretProvider _sharedSecretProvider = new(); @@ -241,7 +241,7 @@ public ValueTask SendWaitMessageAsync(CancellationToken cancellationToken) private async ValueTask SendAsync(ReadOnlyMemory messageBytes, CancellationToken cancellationToken) { - await SendAndReceiveAsync, VoidResult>(request: _ => messageBytes, response: null, cancellationToken); + await SendAndReceiveAsync, None>(request: _ => messageBytes, response: null, cancellationToken); } public async ValueTask SendAndReceiveAsync( diff --git a/src/BuiltInTools/HotReloadClient/Web/BrowserConnection.cs b/src/BuiltInTools/HotReloadClient/Web/BrowserConnection.cs index 74bfabc268d9..101193a7fa39 100644 --- a/src/BuiltInTools/HotReloadClient/Web/BrowserConnection.cs +++ b/src/BuiltInTools/HotReloadClient/Web/BrowserConnection.cs @@ -25,7 +25,7 @@ namespace Microsoft.DotNet.HotReload; public ILogger ServerLogger { get; } public ILogger AgentLogger { get; } - public readonly TaskCompletionSource Disconnected = new(TaskCreationOptions.RunContinuationsAsynchronously); + public readonly TaskCompletionSource Disconnected = new(TaskCreationOptions.RunContinuationsAsynchronously); public BrowserConnection(WebSocket clientSocket, string? sharedSecret, ILoggerFactory loggerFactory) { diff --git a/src/BuiltInTools/Watch/Browser/BrowserLauncher.cs b/src/BuiltInTools/Watch/Browser/BrowserLauncher.cs index 105b67176421..cef3c5d54600 100644 --- a/src/BuiltInTools/Watch/Browser/BrowserLauncher.cs +++ b/src/BuiltInTools/Watch/Browser/BrowserLauncher.cs @@ -66,7 +66,14 @@ private void LaunchBrowser(string launchUrl, AbstractBrowserRefreshServer? serve ? (browserPath, launchUrl, false) : (launchUrl, null, true); - logger.Log(MessageDescriptor.LaunchingBrowser, fileName, arg); + if (arg != null) + { + logger.Log(MessageDescriptor.LaunchingBrowserWithUrl, (fileName, arg)); + } + else + { + logger.Log(MessageDescriptor.LaunchingBrowser, fileName); + } if (environmentOptions.TestFlags != TestFlags.None && environmentOptions.BrowserPath == null) { diff --git a/src/BuiltInTools/Watch/Build/FilePathExclusions.cs b/src/BuiltInTools/Watch/Build/FilePathExclusions.cs index c98def116a2f..d205b1330880 100644 --- a/src/BuiltInTools/Watch/Build/FilePathExclusions.cs +++ b/src/BuiltInTools/Watch/Build/FilePathExclusions.cs @@ -94,7 +94,7 @@ internal bool IsExcluded(string fullPath, ChangeKind changeKind, ILogger logger) { if (glob.IsMatch(fullPath)) { - logger.Log(MessageDescriptor.IgnoringChangeInExcludedFile, fullPath, changeKind, "DefaultItemExcludes", globValue, projectDir); + logger.Log(MessageDescriptor.IgnoringChangeInExcludedFile, (fullPath, changeKind, "DefaultItemExcludes", globValue, projectDir)); return true; } } diff --git a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs index ac42e581cb86..841e05cb0c22 100644 --- a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs +++ b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs @@ -543,7 +543,7 @@ void ReportCompilationDiagnostics(DiagnosticSeverity severity) continue; } - ReportDiagnostic(diagnostic, GetMessageDescriptor(diagnostic, verbose: false)); + ReportDiagnostic(diagnostic, autoPrefix: ""); } } @@ -571,8 +571,7 @@ void ReportRudeEdits() projectsRebuiltDueToRudeEdits.Contains(projectId) ? "[auto-rebuild] " : ""; - var descriptor = GetMessageDescriptor(diagnostic, verbose: prefix != ""); - ReportDiagnostic(diagnostic, descriptor, prefix); + ReportDiagnostic(diagnostic, prefix); } } } @@ -580,32 +579,31 @@ void ReportRudeEdits() bool IsAutoRestartEnabled(ProjectId id) => runningProjectInfos.TryGetValue(id, out var info) && info.RestartWhenChangesHaveNoEffect; - void ReportDiagnostic(Diagnostic diagnostic, MessageDescriptor descriptor, string autoPrefix = "") + void ReportDiagnostic(Diagnostic diagnostic, string autoPrefix) { var display = CSharpDiagnosticFormatter.Instance.Format(diagnostic); - var args = new[] { autoPrefix, display }; - - Logger.Log(descriptor, args); if (autoPrefix != "") { + Logger.Log(MessageDescriptor.ApplyUpdate_AutoVerbose, autoPrefix, display); errorsToDisplayInApp.Add(MessageDescriptor.RestartingApplicationToApplyChanges.GetMessage()); } - else if (descriptor.Level != LogLevel.None) + else { - errorsToDisplayInApp.Add(descriptor.GetMessage(args)); + var descriptor = GetMessageDescriptor(diagnostic); + Logger.Log(descriptor, display); + + if (descriptor.Level != LogLevel.None) + { + errorsToDisplayInApp.Add(descriptor.GetMessage(display)); + } } } // Use the default severity of the diagnostic as it conveys impact on Hot Reload // (ignore warnings as errors and other severity configuration). - static MessageDescriptor GetMessageDescriptor(Diagnostic diagnostic, bool verbose) + static MessageDescriptor GetMessageDescriptor(Diagnostic diagnostic) { - if (verbose) - { - return MessageDescriptor.ApplyUpdate_Verbose; - } - if (diagnostic.Id == "ENC0118") { // Changing '' might not have any effect until the application is restarted. diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs index 2760db41ee58..0a8141a2b0f2 100644 --- a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs +++ b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs @@ -932,6 +932,10 @@ private async Task BuildProjectsAsync(ImmutableArray RunAsync(ProcessSpec processSpec, ILogger logger, Process } else { - logger.Log(MessageDescriptor.ExitedWithErrorCode, exitCode); + logger.Log(MessageDescriptor.ExitedWithErrorCode, exitCode.Value); } } @@ -158,16 +158,9 @@ public async Task RunAsync(ProcessSpec processSpec, ILogger logger, Process process.StartInfo.CreateNewProcessGroup = true; } - if (processSpec.EscapedArguments is not null) + for (var i = 0; i < processSpec.Arguments.Count; i++) { - process.StartInfo.Arguments = processSpec.EscapedArguments; - } - else if (processSpec.Arguments is not null) - { - for (var i = 0; i < processSpec.Arguments.Count; i++) - { - process.StartInfo.ArgumentList.Add(processSpec.Arguments[i]); - } + process.StartInfo.ArgumentList.Add(processSpec.Arguments[i]); } foreach (var env in processSpec.EnvironmentVariables) @@ -271,7 +264,7 @@ private static async ValueTask WaitForExitAsync(Process process, ProcessSt { try { - logger.Log(MessageDescriptor.WaitingForProcessToExitWithin, state.ProcessId, timeoutValue.TotalSeconds); + logger.Log(MessageDescriptor.WaitingForProcessToExitWithin, state.ProcessId, (int)timeoutValue.TotalSeconds); await task.WaitAsync(timeoutValue, cancellationToken); } catch (TimeoutException) diff --git a/src/BuiltInTools/Watch/Process/ProcessSpec.cs b/src/BuiltInTools/Watch/Process/ProcessSpec.cs index 15e4f1a12eb1..7b4a9306dd0b 100644 --- a/src/BuiltInTools/Watch/Process/ProcessSpec.cs +++ b/src/BuiltInTools/Watch/Process/ProcessSpec.cs @@ -5,11 +5,10 @@ namespace Microsoft.DotNet.Watch { internal sealed class ProcessSpec { - public string? Executable { get; set; } + public required string Executable { get; init; } public string? WorkingDirectory { get; set; } public Dictionary EnvironmentVariables { get; } = []; - public IReadOnlyList? Arguments { get; set; } - public string? EscapedArguments { get; set; } + public IReadOnlyList Arguments { get; set; } = []; public Action? OnOutput { get; set; } public ProcessExitAction? OnExit { get; set; } public CancellationToken CancelOutputCapture { get; set; } @@ -24,6 +23,6 @@ internal sealed class ProcessSpec => Path.GetFileNameWithoutExtension(Executable); public string GetArgumentsDisplay() - => EscapedArguments ?? CommandLineUtilities.JoinArguments(Arguments ?? []); + => CommandLineUtilities.JoinArguments(Arguments ?? []); } } diff --git a/src/BuiltInTools/Watch/UI/IReporter.cs b/src/BuiltInTools/Watch/UI/IReporter.cs index bed171feb9c2..114422a428a2 100644 --- a/src/BuiltInTools/Watch/UI/IReporter.cs +++ b/src/BuiltInTools/Watch/UI/IReporter.cs @@ -2,6 +2,9 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Immutable; +using System.Diagnostics; +using System.Runtime.CompilerServices; +using Microsoft.AspNetCore.Authorization.Infrastructure; using Microsoft.DotNet.HotReload; using Microsoft.Extensions.Logging; @@ -53,15 +56,36 @@ public static string ToDisplay(this Emoji emoji) public static string GetLogMessagePrefix(this Emoji emoji) => $"dotnet watch {emoji.ToDisplay()} "; - public static void Log(this ILogger logger, MessageDescriptor descriptor, params object?[] args) + public static void Log(this ILogger logger, MessageDescriptor descriptor) + => Log(logger, descriptor, default); + + public static void Log(this ILogger logger, MessageDescriptor descriptor, TArgs args) { logger.Log( descriptor.Level, descriptor.Id, - state: (descriptor, args), + state: new LogState(descriptor, args), exception: null, - formatter: static (state, _) => state.descriptor.GetMessage(state.args)); + formatter: static (state, _) => state.Descriptor.GetMessage(state.Arguments)); } + + public static void Log(this ILogger logger, MessageDescriptor<(TArg1, TArg2)> descriptor, TArg1 arg1, TArg2 arg2) + => Log(logger, descriptor, (arg1, arg2)); + + public static void Log(this ILogger logger, MessageDescriptor<(TArg1, TArg2, TArg3)> descriptor, TArg1 arg1, TArg2 arg2, TArg3 arg3) + => Log(logger, descriptor, (arg1, arg2, arg3)); + + public static void Log(this ILogger logger, MessageDescriptor<(TArg1, TArg2, TArg3, TArg4)> descriptor, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) + => Log(logger, descriptor, (arg1, arg2, arg3, arg4)); + + public static string GetMessage(this MessageDescriptor descriptor) + => descriptor.GetMessage(default); + } + + internal readonly struct LogState(MessageDescriptor descriptor, TArgs arguments) + { + public MessageDescriptor Descriptor { get; } = descriptor; + public TArgs Arguments { get; } = arguments; } internal sealed class LoggerFactory(IReporter reporter, LogLevel level) : ILoggerFactory @@ -81,11 +105,11 @@ public void Log(LogLevel logLevel, EventId eventId, TState state, Except var (name, display) = LoggingUtilities.ParseCategoryName(categoryName); var prefix = display != null ? $"[{display}] " : ""; - var descriptor = eventId.Id != 0 ? MessageDescriptor.GetDescriptor(eventId) : default; + var descriptor = eventId.Id != 0 ? MessageDescriptor.GetDescriptor(eventId) : null; var emoji = logLevel switch { - _ when descriptor.Emoji != Emoji.Default => descriptor.Emoji, + _ when descriptor != null && descriptor.Emoji != Emoji.Default => descriptor.Emoji, LogLevel.Error => Emoji.Error, LogLevel.Warning => Emoji.Warning, _ when MessageDescriptor.ComponentEmojis.TryGetValue(name, out var componentEmoji) => componentEmoji, @@ -110,21 +134,29 @@ public void AddProvider(ILoggerProvider provider) => throw new NotImplementedException(); } - internal readonly record struct MessageDescriptor(string Format, Emoji Emoji, LogLevel Level, EventId Id) + internal abstract class MessageDescriptor(string format, Emoji emoji, LogLevel level, EventId id) { private static int s_id; private static ImmutableDictionary s_descriptors = []; - - private static MessageDescriptor Create(string format, Emoji emoji, LogLevel level) + + public string Format { get; } = format; + public Emoji Emoji { get; } = emoji; + public LogLevel Level { get; } = level; + public EventId Id { get; } = id; + + private static MessageDescriptor Create(string format, Emoji emoji, LogLevel level) + => Create(format, emoji, level); + + private static MessageDescriptor Create(string format, Emoji emoji, LogLevel level) // reserve event id 0 for ad-hoc messages - => Create(new EventId(++s_id), format, emoji, level); + => Create(new EventId(++s_id), format, emoji, level); - private static MessageDescriptor Create(LogEvent logEvent, Emoji emoji) - => Create(logEvent.Id, logEvent.Message, emoji, logEvent.Level); + private static MessageDescriptor Create(LogEvent logEvent, Emoji emoji) + => Create(logEvent.Id, logEvent.Message, emoji, logEvent.Level); - private static MessageDescriptor Create(EventId id, string format, Emoji emoji, LogLevel level) + private static MessageDescriptor Create(EventId id, string format, Emoji emoji, LogLevel level) { - var descriptor = new MessageDescriptor(format, emoji, level, id.Id); + var descriptor = new MessageDescriptor(format, emoji, level, id.Id); s_descriptors = s_descriptors.Add(id, descriptor); return descriptor; } @@ -132,9 +164,6 @@ private static MessageDescriptor Create(EventId id, string format, Emoji emoji, public static MessageDescriptor GetDescriptor(EventId id) => s_descriptors[id]; - public string GetMessage(params object?[] args) - => Id.Id == 0 ? Format : string.Format(Format, args); - public static readonly ImmutableDictionary ComponentEmojis = ImmutableDictionary.Empty .Add(DotNetWatchContext.DefaultLogComponentName, Emoji.Watch) .Add(DotNetWatchContext.BuildLogComponentName, Emoji.Build) @@ -146,87 +175,108 @@ public string GetMessage(params object?[] args) .Add(AspireServiceFactory.AspireLogComponentName, Emoji.Aspire); // predefined messages used for testing: - public static readonly MessageDescriptor HotReloadSessionStarting = Create("Hot reload session starting.", Emoji.HotReload, LogLevel.None); - public static readonly MessageDescriptor HotReloadSessionStarted = Create("Hot reload session started.", Emoji.HotReload, LogLevel.Debug); - public static readonly MessageDescriptor ProjectsRebuilt = Create("Projects rebuilt ({0})", Emoji.HotReload, LogLevel.Debug); - public static readonly MessageDescriptor ProjectsRestarted = Create("Projects restarted ({0})", Emoji.HotReload, LogLevel.Debug); - public static readonly MessageDescriptor ProjectDependenciesDeployed = Create("Project dependencies deployed ({0})", Emoji.HotReload, LogLevel.Debug); - public static readonly MessageDescriptor FixBuildError = Create("Fix the error to continue or press Ctrl+C to exit.", Emoji.Watch, LogLevel.Warning); - public static readonly MessageDescriptor WaitingForChanges = Create("Waiting for changes", Emoji.Watch, LogLevel.Information); - public static readonly MessageDescriptor LaunchedProcess = Create("Launched '{0}' with arguments '{1}': process id {2}", Emoji.Launch, LogLevel.Debug); - public static readonly MessageDescriptor ManagedCodeChangesApplied = Create("C# and Razor changes applied in {0}ms.", Emoji.HotReload, LogLevel.Information); - public static readonly MessageDescriptor StaticAssetsChangesApplied = Create("Static asset changes applied in {0}ms.", Emoji.HotReload, LogLevel.Information); - public static readonly MessageDescriptor SendingUpdateBatch = Create(LogEvents.SendingUpdateBatch, Emoji.HotReload); - public static readonly MessageDescriptor UpdateBatchCompleted = Create(LogEvents.UpdateBatchCompleted, Emoji.HotReload); - public static readonly MessageDescriptor UpdateBatchFailed = Create(LogEvents.UpdateBatchFailed, Emoji.HotReload); - public static readonly MessageDescriptor UpdateBatchCanceled = Create(LogEvents.UpdateBatchCanceled, Emoji.HotReload); - public static readonly MessageDescriptor UpdateBatchFailedWithError = Create(LogEvents.UpdateBatchFailedWithError, Emoji.HotReload); - public static readonly MessageDescriptor UpdateBatchExceptionStackTrace = Create(LogEvents.UpdateBatchExceptionStackTrace, Emoji.HotReload); - public static readonly MessageDescriptor Capabilities = Create(LogEvents.Capabilities, Emoji.HotReload); - public static readonly MessageDescriptor WaitingForFileChangeBeforeRestarting = Create("Waiting for a file to change before restarting ...", Emoji.Wait, LogLevel.Warning); - public static readonly MessageDescriptor WatchingWithHotReload = Create("Watching with Hot Reload.", Emoji.Watch, LogLevel.Debug); - public static readonly MessageDescriptor RestartInProgress = Create("Restart in progress.", Emoji.Restart, LogLevel.Information); - public static readonly MessageDescriptor RestartRequested = Create("Restart requested.", Emoji.Restart, LogLevel.Information); - public static readonly MessageDescriptor Restarting = Create("Restarting.", Emoji.Restart, LogLevel.Information); - public static readonly MessageDescriptor ShutdownRequested = Create("Shutdown requested. Press Ctrl+C again to force exit.", Emoji.Stop, LogLevel.Information); - public static readonly MessageDescriptor ApplyUpdate_Error = Create("{0}{1}", Emoji.Error, LogLevel.Error); - public static readonly MessageDescriptor ApplyUpdate_Warning = Create("{0}{1}", Emoji.Warning, LogLevel.Warning); - public static readonly MessageDescriptor ApplyUpdate_Verbose = Create("{0}{1}", Emoji.Default, LogLevel.Debug); - public static readonly MessageDescriptor ApplyUpdate_ChangingEntryPoint = Create("{0} Press \"Ctrl + R\" to restart.", Emoji.Warning, LogLevel.Warning); - public static readonly MessageDescriptor ApplyUpdate_FileContentDoesNotMatchBuiltSource = Create("{0} Expected if a source file is updated that is linked to project whose build is not up-to-date.", Emoji.Watch, LogLevel.Debug); - public static readonly MessageDescriptor ConfiguredToLaunchBrowser = Create("dotnet-watch is configured to launch a browser on ASP.NET Core application startup.", Emoji.Watch, LogLevel.Debug); - public static readonly MessageDescriptor ConfiguredToUseBrowserRefresh = Create("Using browser-refresh middleware", Emoji.Default, LogLevel.Debug); - public static readonly MessageDescriptor BrowserRefreshSuppressedViaEnvironmentVariable_ManualRefreshRequired = Create("Browser refresh is suppressed via environment variable '{0}'. To reload static assets after an update refresh browser manually.", Emoji.Watch, LogLevel.Debug); - public static readonly MessageDescriptor BrowserRefreshSuppressedViaEnvironmentVariable_ApplicationWillBeRestarted = Create("Browser refresh is suppressed via environment variable '{0}'. Application will be restarted when updated.", Emoji.Watch, LogLevel.Warning); - public static readonly MessageDescriptor BrowserRefreshNotSupportedByProjectTargetFramework_ManualRefreshRequired = Create("Browser refresh is ot supported by the project target framework. To reload static assets after an update refresh browser manually. For more information see 'https://aka.ms/dotnet/watch/unsupported-tfm'.", Emoji.Watch, LogLevel.Warning); - public static readonly MessageDescriptor BrowserRefreshNotSupportedByProjectTargetFramework_ApplicationWillBeRestarted = Create("Browser refresh is ot supported by the project target framework. Application will be restarted when updated. For more information see 'https://aka.ms/dotnet/watch/unsupported-tfm'.", Emoji.Watch, LogLevel.Warning); - public static readonly MessageDescriptor UpdatingDiagnostics = Create(LogEvents.UpdatingDiagnostics, Emoji.Default); - public static readonly MessageDescriptor FailedToReceiveResponseFromConnectedBrowser = Create(LogEvents.FailedToReceiveResponseFromConnectedBrowser, Emoji.Default); - public static readonly MessageDescriptor NoBrowserConnected = Create(LogEvents.NoBrowserConnected, Emoji.Default); - public static readonly MessageDescriptor LaunchingBrowser = Create("Launching browser: {0} {1}", Emoji.Default, LogLevel.Debug); - public static readonly MessageDescriptor RefreshingBrowser = Create(LogEvents.RefreshingBrowser, Emoji.Default); - public static readonly MessageDescriptor ReloadingBrowser = Create(LogEvents.ReloadingBrowser, Emoji.Default); - public static readonly MessageDescriptor RefreshServerRunningAt = Create(LogEvents.RefreshServerRunningAt, Emoji.Default); - public static readonly MessageDescriptor ConnectedToRefreshServer = Create(LogEvents.ConnectedToRefreshServer, Emoji.Default); - public static readonly MessageDescriptor RestartingApplicationToApplyChanges = Create("Restarting application to apply changes ...", Emoji.Default, LogLevel.Information); - public static readonly MessageDescriptor RestartingApplication = Create("Restarting application ...", Emoji.Default, LogLevel.Information); - public static readonly MessageDescriptor IgnoringChangeInHiddenDirectory = Create("Ignoring change in hidden directory '{0}': {1} '{2}'", Emoji.Watch, LogLevel.Trace); - public static readonly MessageDescriptor IgnoringChangeInOutputDirectory = Create("Ignoring change in output directory: {0} '{1}'", Emoji.Watch, LogLevel.Trace); - public static readonly MessageDescriptor IgnoringChangeInExcludedFile = Create("Ignoring change in excluded file '{0}': {1}. Path matches {2} glob '{3}' set in '{4}'.", Emoji.Watch, LogLevel.Trace); - public static readonly MessageDescriptor FileAdditionTriggeredReEvaluation = Create("File addition triggered re-evaluation: '{0}'.", Emoji.Watch, LogLevel.Debug); - public static readonly MessageDescriptor ProjectChangeTriggeredReEvaluation = Create("Project change triggered re-evaluation: '{0}'.", Emoji.Watch, LogLevel.Debug); - public static readonly MessageDescriptor ReEvaluationCompleted = Create("Re-evaluation completed.", Emoji.Watch, LogLevel.Debug); - public static readonly MessageDescriptor NoManagedCodeChangesToApply = Create("No managed code changes to apply.", Emoji.Watch, LogLevel.Information); - public static readonly MessageDescriptor Exited = Create("Exited", Emoji.Watch, LogLevel.Information); - public static readonly MessageDescriptor ExitedWithUnknownErrorCode = Create("Exited with unknown error code", Emoji.Error, LogLevel.Error); - public static readonly MessageDescriptor ExitedWithErrorCode = Create("Exited with error code {0}", Emoji.Error, LogLevel.Error); - public static readonly MessageDescriptor FailedToLaunchProcess = Create("Failed to launch '{0}' with arguments '{1}': {2}", Emoji.Error, LogLevel.Error); - public static readonly MessageDescriptor ApplicationFailed = Create("Application failed: {0}", Emoji.Error, LogLevel.Error); - public static readonly MessageDescriptor ProcessRunAndExited = Create("Process id {0} ran for {1}ms and exited with exit code {2}.", Emoji.Watch, LogLevel.Debug); - public static readonly MessageDescriptor WaitingForProcessToExitWithin = Create("Waiting for process {0} to exit within {1}s.", Emoji.Watch, LogLevel.Debug); - public static readonly MessageDescriptor WaitingForProcessToExit = Create("Waiting for process {0} to exit ({1}).", Emoji.Watch, LogLevel.Debug); - public static readonly MessageDescriptor FailedToKillProcess = Create("Failed to kill process {0}: {1}.", Emoji.Error, LogLevel.Error); - public static readonly MessageDescriptor TerminatingProcess = Create("Terminating process {0} ({1}).", Emoji.Watch, LogLevel.Debug); - public static readonly MessageDescriptor FailedToSendSignalToProcess = Create("Failed to send {0} signal to process {1}: {2}", Emoji.Warning, LogLevel.Warning); - public static readonly MessageDescriptor ErrorReadingProcessOutput = Create("Error reading {0} of process {1}: {2}", Emoji.Watch, LogLevel.Debug); - public static readonly MessageDescriptor SendingStaticAssetUpdateRequest = Create(LogEvents.SendingStaticAssetUpdateRequest, Emoji.Default); - public static readonly MessageDescriptor HotReloadCapabilities = Create("Hot reload capabilities: {0}.", Emoji.HotReload, LogLevel.Debug); - public static readonly MessageDescriptor HotReloadSuspended = Create("Hot reload suspended. To continue hot reload, press \"Ctrl + R\".", Emoji.HotReload, LogLevel.Information); - public static readonly MessageDescriptor UnableToApplyChanges = Create("Unable to apply changes due to compilation errors.", Emoji.HotReload, LogLevel.Information); - public static readonly MessageDescriptor RestartNeededToApplyChanges = Create("Restart is needed to apply the changes.", Emoji.HotReload, LogLevel.Information); - public static readonly MessageDescriptor HotReloadEnabled = Create("Hot reload enabled. For a list of supported edits, see https://aka.ms/dotnet/hot-reload.", Emoji.HotReload, LogLevel.Information); - public static readonly MessageDescriptor ProjectDoesNotSupportHotReload = Create("Project does not support Hot Reload: {0}. Application will be restarted when updated.", Emoji.Warning, LogLevel.Warning); - public static readonly MessageDescriptor PressCtrlRToRestart = Create("Press Ctrl+R to restart.", Emoji.LightBulb, LogLevel.Information); - public static readonly MessageDescriptor ApplicationKind_BlazorHosted = Create("Application kind: BlazorHosted. '{0}' references BlazorWebAssembly project '{1}'.", Emoji.Default, LogLevel.Debug); - public static readonly MessageDescriptor ApplicationKind_BlazorWebAssembly = Create("Application kind: BlazorWebAssembly.", Emoji.Default, LogLevel.Debug); - public static readonly MessageDescriptor ApplicationKind_WebApplication = Create("Application kind: WebApplication.", Emoji.Default, LogLevel.Debug); - public static readonly MessageDescriptor ApplicationKind_Default = Create("Application kind: Default.", Emoji.Default, LogLevel.Debug); - public static readonly MessageDescriptor ApplicationKind_WebSockets = Create("Application kind: WebSockets.", Emoji.Default, LogLevel.Debug); - public static readonly MessageDescriptor WatchingFilesForChanges = Create("Watching {0} file(s) for changes", Emoji.Watch, LogLevel.Debug); - public static readonly MessageDescriptor WatchingFilesForChanges_FilePath = Create("> {0}", Emoji.Watch, LogLevel.Trace); - public static readonly MessageDescriptor Building = Create("Building {0} ...", Emoji.Default, LogLevel.Information); - public static readonly MessageDescriptor BuildSucceeded = Create("Build succeeded: {0}", Emoji.Default, LogLevel.Information); - public static readonly MessageDescriptor BuildFailed = Create("Build failed: {0}", Emoji.Default, LogLevel.Information); + public static readonly MessageDescriptor HotReloadSessionStarting = Create("Hot reload session starting.", Emoji.HotReload, LogLevel.None); + public static readonly MessageDescriptor HotReloadSessionStarted = Create("Hot reload session started.", Emoji.HotReload, LogLevel.Debug); + public static readonly MessageDescriptor ProjectsRebuilt = Create("Projects rebuilt ({0})", Emoji.HotReload, LogLevel.Debug); + public static readonly MessageDescriptor ProjectsRestarted = Create("Projects restarted ({0})", Emoji.HotReload, LogLevel.Debug); + public static readonly MessageDescriptor ProjectDependenciesDeployed = Create("Project dependencies deployed ({0})", Emoji.HotReload, LogLevel.Debug); + public static readonly MessageDescriptor FixBuildError = Create("Fix the error to continue or press Ctrl+C to exit.", Emoji.Watch, LogLevel.Warning); + public static readonly MessageDescriptor WaitingForChanges = Create("Waiting for changes", Emoji.Watch, LogLevel.Information); + public static readonly MessageDescriptor<(string, string, int)> LaunchedProcess = Create<(string, string, int)>("Launched '{0}' with arguments '{1}': process id {2}", Emoji.Launch, LogLevel.Debug); + public static readonly MessageDescriptor ManagedCodeChangesApplied = Create("C# and Razor changes applied in {0}ms.", Emoji.HotReload, LogLevel.Information); + public static readonly MessageDescriptor StaticAssetsChangesApplied = Create("Static asset changes applied in {0}ms.", Emoji.HotReload, LogLevel.Information); + public static readonly MessageDescriptor SendingUpdateBatch = Create(LogEvents.SendingUpdateBatch, Emoji.HotReload); + public static readonly MessageDescriptor UpdateBatchCompleted = Create(LogEvents.UpdateBatchCompleted, Emoji.HotReload); + public static readonly MessageDescriptor UpdateBatchFailed = Create(LogEvents.UpdateBatchFailed, Emoji.HotReload); + public static readonly MessageDescriptor UpdateBatchCanceled = Create(LogEvents.UpdateBatchCanceled, Emoji.HotReload); + public static readonly MessageDescriptor<(int, string)> UpdateBatchFailedWithError = Create(LogEvents.UpdateBatchFailedWithError, Emoji.HotReload); + public static readonly MessageDescriptor<(int, string)> UpdateBatchExceptionStackTrace = Create(LogEvents.UpdateBatchExceptionStackTrace, Emoji.HotReload); + public static readonly MessageDescriptor Capabilities = Create(LogEvents.Capabilities, Emoji.HotReload); + public static readonly MessageDescriptor WaitingForFileChangeBeforeRestarting = Create("Waiting for a file to change before restarting ...", Emoji.Wait, LogLevel.Warning); + public static readonly MessageDescriptor WatchingWithHotReload = Create("Watching with Hot Reload.", Emoji.Watch, LogLevel.Debug); + public static readonly MessageDescriptor RestartInProgress = Create("Restart in progress.", Emoji.Restart, LogLevel.Information); + public static readonly MessageDescriptor RestartRequested = Create("Restart requested.", Emoji.Restart, LogLevel.Information); + public static readonly MessageDescriptor Restarting = Create("Restarting.", Emoji.Restart, LogLevel.Information); + public static readonly MessageDescriptor ShutdownRequested = Create("Shutdown requested. Press Ctrl+C again to force exit.", Emoji.Stop, LogLevel.Information); + public static readonly MessageDescriptor ApplyUpdate_Error = Create("{0}", Emoji.Error, LogLevel.Error); + public static readonly MessageDescriptor ApplyUpdate_Warning = Create("{0}", Emoji.Warning, LogLevel.Warning); + public static readonly MessageDescriptor ApplyUpdate_Verbose = Create("{0}", Emoji.Default, LogLevel.Debug); + public static readonly MessageDescriptor<(string, string)> ApplyUpdate_AutoVerbose = Create<(string, string)>("{0}{1}", Emoji.Default, LogLevel.Debug); + public static readonly MessageDescriptor ApplyUpdate_ChangingEntryPoint = Create("{0} Press \"Ctrl + R\" to restart.", Emoji.Warning, LogLevel.Warning); + public static readonly MessageDescriptor ConfiguredToLaunchBrowser = Create("dotnet-watch is configured to launch a browser on ASP.NET Core application startup.", Emoji.Watch, LogLevel.Debug); + public static readonly MessageDescriptor ConfiguredToUseBrowserRefresh = Create("Using browser-refresh middleware", Emoji.Default, LogLevel.Debug); + public static readonly MessageDescriptor BrowserRefreshSuppressedViaEnvironmentVariable_ManualRefreshRequired = Create("Browser refresh is suppressed via environment variable '{0}'. To reload static assets after an update refresh browser manually.", Emoji.Watch, LogLevel.Debug); + public static readonly MessageDescriptor BrowserRefreshSuppressedViaEnvironmentVariable_ApplicationWillBeRestarted = Create("Browser refresh is suppressed via environment variable '{0}'. Application will be restarted when updated.", Emoji.Watch, LogLevel.Warning); + public static readonly MessageDescriptor BrowserRefreshNotSupportedByProjectTargetFramework_ManualRefreshRequired = Create("Browser refresh is ot supported by the project target framework. To reload static assets after an update refresh browser manually. For more information see 'https://aka.ms/dotnet/watch/unsupported-tfm'.", Emoji.Watch, LogLevel.Warning); + public static readonly MessageDescriptor BrowserRefreshNotSupportedByProjectTargetFramework_ApplicationWillBeRestarted = Create("Browser refresh is ot supported by the project target framework. Application will be restarted when updated. For more information see 'https://aka.ms/dotnet/watch/unsupported-tfm'.", Emoji.Watch, LogLevel.Warning); + public static readonly MessageDescriptor UpdatingDiagnostics = Create(LogEvents.UpdatingDiagnostics, Emoji.Default); + public static readonly MessageDescriptor FailedToReceiveResponseFromConnectedBrowser = Create(LogEvents.FailedToReceiveResponseFromConnectedBrowser, Emoji.Default); + public static readonly MessageDescriptor NoBrowserConnected = Create(LogEvents.NoBrowserConnected, Emoji.Default); + public static readonly MessageDescriptor LaunchingBrowser = Create("Launching browser: {0}", Emoji.Default, LogLevel.Debug); + public static readonly MessageDescriptor<(string, string)> LaunchingBrowserWithUrl = Create<(string, string)>("Launching browser: {0} {1}", Emoji.Default, LogLevel.Debug); + public static readonly MessageDescriptor RefreshingBrowser = Create(LogEvents.RefreshingBrowser, Emoji.Default); + public static readonly MessageDescriptor ReloadingBrowser = Create(LogEvents.ReloadingBrowser, Emoji.Default); + public static readonly MessageDescriptor RefreshServerRunningAt = Create(LogEvents.RefreshServerRunningAt, Emoji.Default); + public static readonly MessageDescriptor ConnectedToRefreshServer = Create(LogEvents.ConnectedToRefreshServer, Emoji.Default); + public static readonly MessageDescriptor RestartingApplicationToApplyChanges = Create("Restarting application to apply changes ...", Emoji.Default, LogLevel.Information); + public static readonly MessageDescriptor RestartingApplication = Create("Restarting application ...", Emoji.Default, LogLevel.Information); + public static readonly MessageDescriptor<(string, ChangeKind, string)> IgnoringChangeInHiddenDirectory = Create<(string, ChangeKind, string)>("Ignoring change in hidden directory '{0}': {1} '{2}'", Emoji.Watch, LogLevel.Trace); + public static readonly MessageDescriptor<(ChangeKind, string)> IgnoringChangeInOutputDirectory = Create<(ChangeKind, string)>("Ignoring change in output directory: {0} '{1}'", Emoji.Watch, LogLevel.Trace); + public static readonly MessageDescriptor<(string, ChangeKind, string, string, string)> IgnoringChangeInExcludedFile = Create<(string, ChangeKind, string, string, string)>("Ignoring change in excluded file '{0}': {1}. Path matches {2} glob '{3}' set in '{4}'.", Emoji.Watch, LogLevel.Trace); + public static readonly MessageDescriptor FileAdditionTriggeredReEvaluation = Create("File addition triggered re-evaluation: '{0}'.", Emoji.Watch, LogLevel.Debug); + public static readonly MessageDescriptor ProjectChangeTriggeredReEvaluation = Create("Project change triggered re-evaluation: '{0}'.", Emoji.Watch, LogLevel.Debug); + public static readonly MessageDescriptor ReEvaluationCompleted = Create("Re-evaluation completed.", Emoji.Watch, LogLevel.Debug); + public static readonly MessageDescriptor NoManagedCodeChangesToApply = Create("No managed code changes to apply.", Emoji.Watch, LogLevel.Information); + public static readonly MessageDescriptor Exited = Create("Exited", Emoji.Watch, LogLevel.Information); + public static readonly MessageDescriptor ExitedWithUnknownErrorCode = Create("Exited with unknown error code", Emoji.Error, LogLevel.Error); + public static readonly MessageDescriptor ExitedWithErrorCode = Create("Exited with error code {0}", Emoji.Error, LogLevel.Error); + public static readonly MessageDescriptor<(string, string, string)> FailedToLaunchProcess = Create<(string, string, string)>("Failed to launch '{0}' with arguments '{1}': {2}", Emoji.Error, LogLevel.Error); + public static readonly MessageDescriptor ApplicationFailed = Create("Application failed: {0}", Emoji.Error, LogLevel.Error); + public static readonly MessageDescriptor<(int, long, int?)> ProcessRunAndExited = Create<(int, long, int?)>("Process id {0} ran for {1}ms and exited with exit code {2}.", Emoji.Watch, LogLevel.Debug); + public static readonly MessageDescriptor<(int, int)> WaitingForProcessToExitWithin = Create<(int, int)>("Waiting for process {0} to exit within {1}s.", Emoji.Watch, LogLevel.Debug); + public static readonly MessageDescriptor<(int, int)> WaitingForProcessToExit = Create<(int, int)>("Waiting for process {0} to exit ({1}).", Emoji.Watch, LogLevel.Debug); + public static readonly MessageDescriptor<(int, string)> FailedToKillProcess = Create<(int, string)>("Failed to kill process {0}: {1}.", Emoji.Error, LogLevel.Error); + public static readonly MessageDescriptor<(int, string)> TerminatingProcess = Create<(int, string)>("Terminating process {0} ({1}).", Emoji.Watch, LogLevel.Debug); + public static readonly MessageDescriptor<(string, int, string)> FailedToSendSignalToProcess = Create<(string, int, string)>("Failed to send {0} signal to process {1}: {2}", Emoji.Warning, LogLevel.Warning); + public static readonly MessageDescriptor<(string, int, string)> ErrorReadingProcessOutput = Create<(string, int, string)>("Error reading {0} of process {1}: {2}", Emoji.Watch, LogLevel.Debug); + public static readonly MessageDescriptor SendingStaticAssetUpdateRequest = Create(LogEvents.SendingStaticAssetUpdateRequest, Emoji.Default); + public static readonly MessageDescriptor HotReloadCapabilities = Create("Hot reload capabilities: {0}.", Emoji.HotReload, LogLevel.Debug); + public static readonly MessageDescriptor HotReloadSuspended = Create("Hot reload suspended. To continue hot reload, press \"Ctrl + R\".", Emoji.HotReload, LogLevel.Information); + public static readonly MessageDescriptor UnableToApplyChanges = Create("Unable to apply changes due to compilation errors.", Emoji.HotReload, LogLevel.Information); + public static readonly MessageDescriptor RestartNeededToApplyChanges = Create("Restart is needed to apply the changes.", Emoji.HotReload, LogLevel.Information); + public static readonly MessageDescriptor HotReloadEnabled = Create("Hot reload enabled. For a list of supported edits, see https://aka.ms/dotnet/hot-reload.", Emoji.HotReload, LogLevel.Information); + public static readonly MessageDescriptor ProjectDoesNotSupportHotReload = Create("Project does not support Hot Reload: {0}. Application will be restarted when updated.", Emoji.Warning, LogLevel.Warning); + public static readonly MessageDescriptor PressCtrlRToRestart = Create("Press Ctrl+R to restart.", Emoji.LightBulb, LogLevel.Information); + public static readonly MessageDescriptor<(string, string)> ApplicationKind_BlazorHosted = Create<(string, string)>("Application kind: BlazorHosted. '{0}' references BlazorWebAssembly project '{1}'.", Emoji.Default, LogLevel.Debug); + public static readonly MessageDescriptor ApplicationKind_BlazorWebAssembly = Create("Application kind: BlazorWebAssembly.", Emoji.Default, LogLevel.Debug); + public static readonly MessageDescriptor ApplicationKind_WebApplication = Create("Application kind: WebApplication.", Emoji.Default, LogLevel.Debug); + public static readonly MessageDescriptor ApplicationKind_Default = Create("Application kind: Default.", Emoji.Default, LogLevel.Debug); + public static readonly MessageDescriptor ApplicationKind_WebSockets = Create("Application kind: WebSockets.", Emoji.Default, LogLevel.Debug); + public static readonly MessageDescriptor WatchingFilesForChanges = Create("Watching {0} file(s) for changes", Emoji.Watch, LogLevel.Debug); + public static readonly MessageDescriptor WatchingFilesForChanges_FilePath = Create("> {0}", Emoji.Watch, LogLevel.Trace); + public static readonly MessageDescriptor Building = Create("Building {0} ...", Emoji.Default, LogLevel.Information); + public static readonly MessageDescriptor BuildSucceeded = Create("Build succeeded: {0}", Emoji.Default, LogLevel.Information); + public static readonly MessageDescriptor BuildFailed = Create("Build failed: {0}", Emoji.Default, LogLevel.Information); + } + + internal sealed class MessageDescriptor(string format, Emoji emoji, LogLevel level, EventId id) + : MessageDescriptor(VerifyFormat(format), emoji, level, id) + { + private static string VerifyFormat(string format) + { +#if DEBUG + var actualArity = format.Count(c => c == '{'); + var expectedArity = typeof(TArgs) == typeof(None) ? 0 + : typeof(TArgs).IsAssignableTo(typeof(ITuple)) ? typeof(TArgs).GenericTypeArguments.Length + : 1; + + Debug.Assert(actualArity == expectedArity, $"Arguments of format string '{format}' do not match the specified type: {typeof(TArgs)} (actual arity: {actualArity}, expected arity: {expectedArity})"); +#endif + return format; + } + + public string GetMessage(TArgs args) + => Id.Id == 0 ? Format : string.Format(Format, LogEvents.GetArgumentValues(args)); } internal interface IProcessOutputReporter diff --git a/test/dotnet-watch.Tests/Browser/BrowserTests.cs b/test/dotnet-watch.Tests/Browser/BrowserTests.cs index f3341f5decd7..d2b82f8e2c87 100644 --- a/test/dotnet-watch.Tests/Browser/BrowserTests.cs +++ b/test/dotnet-watch.Tests/Browser/BrowserTests.cs @@ -22,7 +22,7 @@ public async Task LaunchesBrowserOnStart() Assert.Contains(App.Process.Output, line => line.Contains("Hosting environment: Development")); // Verify we launched the browser. - App.AssertOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage("https://localhost:5001", "")); + App.AssertOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage("https://localhost:5001")); } [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.Linux)] // https://github.com/dotnet/sdk/issues/53061 diff --git a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs index c63cba58f33a..10e2cc28895b 100644 --- a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs +++ b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs @@ -926,7 +926,7 @@ public async Task BlazorWasm(bool projectSpecifiesCapabilities) App.AssertOutputDoesNotContain("🕵️"); // Browser is launched based on blazor-devserver output "Now listening on: ...". - await App.WaitUntilOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage($"http://localhost:{port}", "")); + await App.WaitUntilOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage($"http://localhost:{port}")); await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); App.Process.ClearOutput(); @@ -981,7 +981,7 @@ public async Task BlazorWasm_Restart() await App.WaitUntilOutputContains(MessageDescriptor.PressCtrlRToRestart); // Browser is launched based on blazor-devserver output "Now listening on: ...". - await App.WaitUntilOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage($"http://localhost:{port}", "")); + await App.WaitUntilOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage($"http://localhost:{port}")); App.SendControlR(); @@ -1015,7 +1015,7 @@ public async Task Razor_Component_ScopedCssAndStaticAssets() await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToUseBrowserRefresh); await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToLaunchBrowser); - await App.WaitUntilOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage($"http://localhost:{port}", "")); + await App.WaitUntilOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage($"http://localhost:{port}")); App.Process.ClearOutput(); var scopedCssPath = Path.Combine(testAsset.Path, "RazorClassLibrary", "Components", "Example.razor.css"); From 107e76ff439251ca55cb9989c23c9e3291202859 Mon Sep 17 00:00:00 2001 From: tmat Date: Wed, 18 Feb 2026 14:32:59 -0800 Subject: [PATCH 129/179] Improve project building --- .../Watch/HotReload/HotReloadDotNetWatcher.cs | 137 +++++++------- .../Watch/Process/ProcessRunner.cs | 5 +- .../HotReload/BuildProjectsTests.cs | 170 ++++++++++++++++++ .../TestUtilities/TestProcessRunner.cs | 15 ++ 4 files changed, 262 insertions(+), 65 deletions(-) create mode 100644 test/dotnet-watch.Tests/HotReload/BuildProjectsTests.cs create mode 100644 test/dotnet-watch.Tests/TestUtilities/TestProcessRunner.cs diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs index 0a8141a2b0f2..81fa232a9bd4 100644 --- a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs +++ b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs @@ -4,9 +4,6 @@ using System.Collections.Immutable; using System.Diagnostics; using System.Text.Encodings.Web; -using Microsoft.Build.Evaluation; -using Microsoft.Build.Execution; -using Microsoft.Build.Graph; using Microsoft.CodeAnalysis; using Microsoft.DotNet.HotReload; using Microsoft.Extensions.Logging; @@ -89,7 +86,7 @@ public async Task WatchAsync(CancellationToken shutdownCancellationToken) try { - var buildSucceeded = await BuildProjectsAsync(_context.RootProjects, _context.BuildArguments, iterationCancellationToken); + var buildSucceeded = await BuildProjectsAsync(_context.RootProjects, iterationCancellationToken); if (!buildSucceeded) { continue; @@ -247,7 +244,7 @@ await compilationHandler.GetManagedCodeUpdatesAsync( fileWatcher.SuppressEvents = true; try { - var success = await BuildProjectsAsync([.. updates.ProjectsToRebuild.Select(ProjectRepresentation.FromProjectOrEntryPointFilePath)], _context.BuildArguments, iterationCancellationToken); + var success = await BuildProjectsAsync([.. updates.ProjectsToRebuild.Select(ProjectRepresentation.FromProjectOrEntryPointFilePath)], iterationCancellationToken); if (success) { break; @@ -910,77 +907,43 @@ await FileWatcher.WaitForFileChangeAsync( } } - private async Task BuildProjectsAsync(ImmutableArray projects, IReadOnlyList buildArguments, CancellationToken cancellationToken) + // internal for testing + internal async Task BuildProjectsAsync(ImmutableArray projects, CancellationToken cancellationToken) { Debug.Assert(projects.Any()); - List? capturedOutput = _context.EnvironmentOptions.TestFlags != TestFlags.None ? [] : null; - string? solutionFile = null; - try + if (projects is [var singleProject]) { - // TODO: workaround for https://github.com/dotnet/sdk/issues/51311 - // does not work with single-file apps - if (projects is not [var project]) - { - solutionFile = Path.Combine(Path.GetTempFileName() + ".slnx"); + return await BuildFileOrProjectOrSolutionAsync(singleProject.ProjectOrEntryPointFilePath, cancellationToken); + } - var solutionElement = new XElement("Solution"); + // TODO: workaround for https://github.com/dotnet/sdk/issues/51311 - foreach (var p in projects) - { - if (p.PhysicalPath != null) - { - solutionElement.Add(new XElement("Project", new XAttribute("Path", p.PhysicalPath))); - } - else - { - _context.BuildLogger.LogError("File-based apps are not supported: '{Path}'", p.EntryPointFilePath); - } - } + var success = true; + var projectPaths = projects.Where(p => p.PhysicalPath != null).Select(p => p.PhysicalPath!).ToArray(); - var doc = new XDocument(solutionElement); - doc.Save(solutionFile); - - project = new ProjectRepresentation(projectPath: solutionFile, entryPointFilePath: null); - } + if (projectPaths is [var singleProjectPath]) + { + success |= await BuildFileOrProjectOrSolutionAsync(singleProjectPath, cancellationToken); + } + else if (projectPaths is not []) + { + var solutionFile = Path.Combine(Path.GetTempFileName() + ".slnx"); + var solutionElement = new XElement("Solution"); - var processSpec = new ProcessSpec + foreach (var projectPath in projectPaths) { - Executable = _context.EnvironmentOptions.MuxerPath, - WorkingDirectory = project.GetContainingDirectory(), - IsUserApplication = false, - - // Capture output if running in a test environment. - // If the output is not captured dotnet build will show live build progress. - OnOutput = capturedOutput != null - ? line => - { - lock (capturedOutput) - { - capturedOutput.Add(line); - } - } - : null, - - // pass user-specified build arguments last to override defaults: - Arguments = ["build", project.ProjectOrEntryPointFilePath, .. buildArguments] - }; - - _context.BuildLogger.Log(MessageDescriptor.Building, project.ProjectOrEntryPointFilePath); + solutionElement.Add(new XElement("Project", new XAttribute("Path", projectPath))); + } - var success = await _context.ProcessRunner.RunAsync(processSpec, _context.Logger, launchResult: null, cancellationToken) == 0; + var doc = new XDocument(solutionElement); + doc.Save(solutionFile); - if (capturedOutput != null) + try { - _context.BuildLogger.Log(success ? MessageDescriptor.BuildSucceeded : MessageDescriptor.BuildFailed, project.ProjectOrEntryPointFilePath); - BuildOutput.ReportBuildOutput(_context.BuildLogger, capturedOutput, success); + success |= await BuildFileOrProjectOrSolutionAsync(solutionFile, cancellationToken); } - - return success; - } - finally - { - if (solutionFile != null) + finally { try { @@ -992,6 +955,54 @@ private async Task BuildProjectsAsync(ImmutableArray p.EntryPointFilePath != null).Select(p => p.EntryPointFilePath!)) + { + success |= await BuildFileOrProjectOrSolutionAsync(file, cancellationToken); + } + + return success; + } + + private async Task BuildFileOrProjectOrSolutionAsync(string path, CancellationToken cancellationToken) + { + List? capturedOutput = _context.EnvironmentOptions.TestFlags != TestFlags.None ? [] : null; + var processSpec = new ProcessSpec + { + Executable = _context.EnvironmentOptions.MuxerPath, + WorkingDirectory = Path.GetDirectoryName(path), + IsUserApplication = false, + + // Capture output if running in a test environment. + // If the output is not captured dotnet build will show live build progress. + OnOutput = capturedOutput != null + ? line => + { + lock (capturedOutput) + { + capturedOutput.Add(line); + } + } + : null, + + // pass user-specified build arguments last to override defaults: + Arguments = ["build", path, .. _context.BuildArguments] + }; + + _context.BuildLogger.Log(MessageDescriptor.Building, path); + + var success = await _context.ProcessRunner.RunAsync(processSpec, _context.Logger, launchResult: null, cancellationToken) == 0; + + if (capturedOutput != null) + { + // To avoid multiple status messages, only log the status if the output of `dotnet build` is not being streamed to the console: + _context.BuildLogger.Log(success ? MessageDescriptor.BuildSucceeded : MessageDescriptor.BuildFailed, path); + + BuildOutput.ReportBuildOutput(_context.BuildLogger, capturedOutput, success); + } + + return success; } private string GetRelativeFilePath(string path) diff --git a/src/BuiltInTools/Watch/Process/ProcessRunner.cs b/src/BuiltInTools/Watch/Process/ProcessRunner.cs index 32ad0da84021..05da2f554e4d 100644 --- a/src/BuiltInTools/Watch/Process/ProcessRunner.cs +++ b/src/BuiltInTools/Watch/Process/ProcessRunner.cs @@ -6,7 +6,7 @@ namespace Microsoft.DotNet.Watch { - internal sealed class ProcessRunner(TimeSpan processCleanupTimeout) + internal class ProcessRunner(TimeSpan processCleanupTimeout) { private sealed class ProcessState(Process process) : IDisposable { @@ -35,8 +35,9 @@ public static IReadOnlyCollection GetRunningApplicationProcesses() /// /// Launches a process. + /// Virutal for testing. /// - public async Task RunAsync(ProcessSpec processSpec, ILogger logger, ProcessLaunchResult? launchResult, CancellationToken processTerminationToken) + public virtual async Task RunAsync(ProcessSpec processSpec, ILogger logger, ProcessLaunchResult? launchResult, CancellationToken processTerminationToken) { var stopwatch = new Stopwatch(); stopwatch.Start(); diff --git a/test/dotnet-watch.Tests/HotReload/BuildProjectsTests.cs b/test/dotnet-watch.Tests/HotReload/BuildProjectsTests.cs new file mode 100644 index 000000000000..9c72fad4c3f0 --- /dev/null +++ b/test/dotnet-watch.Tests/HotReload/BuildProjectsTests.cs @@ -0,0 +1,170 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Extensions.Logging.Abstractions; + +namespace Microsoft.DotNet.Watch.UnitTests; + +public class BuildProjectsTests : IDisposable +{ + private readonly HotReloadDotNetWatcher _watcher; + private readonly List _buildFiles = []; + private string? _solutionFile; + + public BuildProjectsTests(ITestOutputHelper output) + { + var environmentOptions = TestOptions.GetEnvironmentOptions(); + var processOutputReporter = new TestProcessOutputReporter(); + + var runner = new TestProcessRunner() + { + RunImpl = (processSpec, _, _) => + { + Assert.Equal("build", processSpec.Arguments[0]); + Assert.Equal("arg1", processSpec.Arguments[2]); + Assert.Equal("arg2", processSpec.Arguments[3]); + + var target = processSpec.Arguments[1]; + if (Path.GetExtension(target) == ".slnx") + { + _solutionFile = target; + target = ""; + } + + _buildFiles.Add(target); + return 0; + } + }; + + var context = new DotNetWatchContext() + { + ProcessOutputReporter = processOutputReporter, + LoggerFactory = NullLoggerFactory.Instance, + Logger = NullLogger.Instance, + BuildLogger = NullLogger.Instance, + ProcessRunner = runner, + Options = new(), + MainProjectOptions = null, + RootProjects = [], + TargetFramework = null, + BuildArguments = ["arg1", "arg2"], + EnvironmentOptions = environmentOptions, + BrowserLauncher = new BrowserLauncher(NullLogger.Instance, processOutputReporter, environmentOptions), + BrowserRefreshServerFactory = new BrowserRefreshServerFactory() + }; + + var console = new TestConsole(output); + _watcher = new HotReloadDotNetWatcher(context, console, runtimeProcessLauncherFactory: null); + } + + public void Dispose() + { + Assert.False(File.Exists(_solutionFile)); + } + + [Fact] + public async Task SingleProject() + { + var dir = Path.GetTempPath(); + var project1 = Path.Combine(dir, "Project1.csproj"); + + Assert.True(await _watcher.BuildProjectsAsync([new ProjectRepresentation(project1, entryPointFilePath: null)], CancellationToken.None)); + + AssertEx.SequenceEqual([project1], _buildFiles); + } + + [Fact] + public async Task MultipleProjects() + { + var dir = Path.GetTempPath(); + var project1 = Path.Combine(dir, "Project1.csproj"); + var project2 = Path.Combine(dir, "Project2.csproj"); + + Assert.True(await _watcher.BuildProjectsAsync( + [ + new ProjectRepresentation(project1, entryPointFilePath: null), + new ProjectRepresentation(project2, entryPointFilePath: null) + ], CancellationToken.None)); + + AssertEx.SequenceEqual([""], _buildFiles); + } + + [Fact] + public async Task SingleFile() + { + var dir = Path.GetTempPath(); + var file1 = Path.Combine(dir, "File1.cs"); + + Assert.True(await _watcher.BuildProjectsAsync([new ProjectRepresentation(projectPath: null, entryPointFilePath: file1)], CancellationToken.None)); + + AssertEx.SequenceEqual([file1], _buildFiles); + } + + [Fact] + public async Task MultipleFiles() + { + var dir = Path.GetTempPath(); + var file1 = Path.Combine(dir, "File1.cs"); + var file2 = Path.Combine(dir, "File2.cs"); + + Assert.True(await _watcher.BuildProjectsAsync( + [ + new ProjectRepresentation(projectPath: null, entryPointFilePath: file1), + new ProjectRepresentation(projectPath: null, entryPointFilePath: file2) + ], CancellationToken.None)); + + AssertEx.SequenceEqual( + [ + file1, + file2 + ], _buildFiles); + } + + [Fact] + public async Task SingleProject_MultipleFiles() + { + var dir = Path.GetTempPath(); + var project1 = Path.Combine(dir, "Project1.csproj"); + var file1 = Path.Combine(dir, "File1.cs"); + var file2 = Path.Combine(dir, "File2.cs"); + + Assert.True(await _watcher.BuildProjectsAsync( + [ + new ProjectRepresentation(projectPath: null, entryPointFilePath: file1), + new ProjectRepresentation(project1, entryPointFilePath: null), + new ProjectRepresentation(projectPath: null, entryPointFilePath: file2) + ], CancellationToken.None)); + + AssertEx.SequenceEqual( + [ + project1, + file1, + file2 + ], _buildFiles); + } + + [Fact] + public async Task MultipleProjects_MultipleFiles() + { + var dir = Path.GetTempPath(); + var project1 = Path.Combine(dir, "Project1.csproj"); + var project2 = Path.Combine(dir, "Project2.csproj"); + var file1 = Path.Combine(dir, "File1.cs"); + var file2 = Path.Combine(dir, "File2.cs"); + + Assert.True(await _watcher.BuildProjectsAsync( + [ + new ProjectRepresentation(projectPath: null, entryPointFilePath: file1), + new ProjectRepresentation(project1, entryPointFilePath: null), + new ProjectRepresentation(project2, entryPointFilePath: null), + new ProjectRepresentation(projectPath: null, entryPointFilePath: file2) + ], CancellationToken.None)); + + AssertEx.SequenceEqual( + [ + "", + file1, + file2 + ], _buildFiles); + } +} diff --git a/test/dotnet-watch.Tests/TestUtilities/TestProcessRunner.cs b/test/dotnet-watch.Tests/TestUtilities/TestProcessRunner.cs new file mode 100644 index 000000000000..5bd23a49bb62 --- /dev/null +++ b/test/dotnet-watch.Tests/TestUtilities/TestProcessRunner.cs @@ -0,0 +1,15 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch.UnitTests; + +internal class TestProcessRunner() + : ProcessRunner(processCleanupTimeout: TimeSpan.MaxValue) +{ + public Func? RunImpl; + + public override Task RunAsync(ProcessSpec processSpec, ILogger logger, ProcessLaunchResult? launchResult, CancellationToken processTerminationToken) + => Task.FromResult(RunImpl?.Invoke(processSpec, logger, launchResult) ?? throw new NotImplementedException()); +} From 4df4469a2f54a49859c690b2c10ce26fda889038 Mon Sep 17 00:00:00 2001 From: tmat Date: Wed, 18 Feb 2026 16:47:42 -0800 Subject: [PATCH 130/179] Add a couple of MessageDescriptors --- src/BuiltInTools/Watch/UI/IReporter.cs | 2 + src/BuiltInTools/dotnet-watch/Program.cs | 4 +- .../CommandLine/ProgramTests.cs | 54 +++++++++---------- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/BuiltInTools/Watch/UI/IReporter.cs b/src/BuiltInTools/Watch/UI/IReporter.cs index 114422a428a2..2c7087824228 100644 --- a/src/BuiltInTools/Watch/UI/IReporter.cs +++ b/src/BuiltInTools/Watch/UI/IReporter.cs @@ -175,6 +175,8 @@ public static MessageDescriptor GetDescriptor(EventId id) .Add(AspireServiceFactory.AspireLogComponentName, Emoji.Aspire); // predefined messages used for testing: + public static readonly MessageDescriptor CommandDoesNotSupportHotReload = Create("Command '{0}' does not support Hot Reload.", Emoji.HotReload, LogLevel.Debug); + public static readonly MessageDescriptor HotReloadDisabledByCommandLineSwitch = Create("Hot Reload disabled by command line switch.", Emoji.HotReload, LogLevel.Debug); public static readonly MessageDescriptor HotReloadSessionStarting = Create("Hot reload session starting.", Emoji.HotReload, LogLevel.None); public static readonly MessageDescriptor HotReloadSessionStarted = Create("Hot reload session started.", Emoji.HotReload, LogLevel.Debug); public static readonly MessageDescriptor ProjectsRebuilt = Create("Projects rebuilt ({0})", Emoji.HotReload, LogLevel.Debug); diff --git a/src/BuiltInTools/dotnet-watch/Program.cs b/src/BuiltInTools/dotnet-watch/Program.cs index 86bdb0fa2a91..a6da3fd4ee4e 100644 --- a/src/BuiltInTools/dotnet-watch/Program.cs +++ b/src/BuiltInTools/dotnet-watch/Program.cs @@ -325,13 +325,13 @@ private bool IsHotReloadEnabled() { if (mainProjectOptions.Command != "run") { - logger.LogDebug("Command '{Command}' does not support Hot Reload.", mainProjectOptions.Command); + logger.Log(MessageDescriptor.CommandDoesNotSupportHotReload, mainProjectOptions.Command); return false; } if (options.GlobalOptions.NoHotReload) { - logger.LogDebug("Hot Reload disabled by command line switch."); + logger.Log(MessageDescriptor.HotReloadDisabledByCommandLineSwitch); return false; } diff --git a/test/dotnet-watch.Tests/CommandLine/ProgramTests.cs b/test/dotnet-watch.Tests/CommandLine/ProgramTests.cs index b255256324bf..c3c8c2b3ffc8 100644 --- a/test/dotnet-watch.Tests/CommandLine/ProgramTests.cs +++ b/test/dotnet-watch.Tests/CommandLine/ProgramTests.cs @@ -202,10 +202,10 @@ public async Task TestCommand() App.Start(testAsset, ["--verbose", "test", "--list-tests", "/p:VSTestUseMSBuildOutput=false"]); - await App.WaitForOutputLineContaining(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); - App.AssertOutputContains("The following Tests are available:"); - App.AssertOutputContains(" TestNamespace.VSTestXunitTests.VSTestXunitPassTest"); + await App.WaitUntilOutputContains("The following Tests are available:"); + await App.WaitUntilOutputContains(" TestNamespace.VSTestXunitTests.VSTestXunitPassTest"); App.Process.ClearOutput(); // update file: @@ -213,10 +213,10 @@ public async Task TestCommand() var content = File.ReadAllText(testFile, Encoding.UTF8); File.WriteAllText(testFile, content.Replace("VSTestXunitPassTest", "VSTestXunitPassTest2"), Encoding.UTF8); - await App.WaitForOutputLineContaining(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); - App.AssertOutputContains("The following Tests are available:"); - App.AssertOutputContains(" TestNamespace.VSTestXunitTests.VSTestXunitPassTest2"); + await App.WaitUntilOutputContains("The following Tests are available:"); + await App.WaitUntilOutputContains(" TestNamespace.VSTestXunitTests.VSTestXunitPassTest2"); } [Fact] @@ -239,13 +239,13 @@ public async Task BuildCommand() App.Start(testAsset, ["--verbose", "--property", "TestProperty=123", "build", "/t:TestTarget"]); - await App.WaitForOutputLineContaining(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + await App.WaitUntilOutputContains(MessageDescriptor.CommandDoesNotSupportHotReload.GetMessage("build")); + await App.WaitUntilOutputContains("warning : The value of property is '123'"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); // evaluation affected by -c option: Assert.Contains("TestProperty", App.Process.Output.Single(line => line.Contains("/t:GenerateWatchList"))); - - App.AssertOutputContains("dotnet watch ⌚ Command 'build' does not support Hot Reload."); - App.AssertOutputContains("warning : The value of property is '123'"); } [Fact] @@ -256,13 +256,13 @@ public async Task MSBuildCommand() App.Start(testAsset, ["--verbose", "/p:TestProperty=123", "msbuild", "/t:TestTarget"]); - await App.WaitForOutputLineContaining(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + await App.WaitUntilOutputContains(MessageDescriptor.CommandDoesNotSupportHotReload.GetMessage("msbuild")); + await App.WaitUntilOutputContains("warning : The value of property is '123'"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); // TestProperty is not passed to evaluation since msbuild command doesn't include it in forward options: Assert.DoesNotContain("TestProperty", App.Process.Output.Single(line => line.Contains("/t:GenerateWatchList"))); - - App.AssertOutputContains("dotnet watch ⌚ Command 'msbuild' does not support Hot Reload."); - App.AssertOutputContains("warning : The value of property is '123'"); } [Fact] @@ -275,13 +275,13 @@ public async Task PackCommand() var packagePath = Path.Combine(testAsset.Path, "bin", "Release", "WatchNoDepsApp.1.0.0.nupkg"); - await App.WaitForOutputLineContaining(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + await App.WaitUntilOutputContains(MessageDescriptor.CommandDoesNotSupportHotReload.GetMessage("pack")); + await App.WaitUntilOutputContains($"Successfully created package '{packagePath}'"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); // evaluation affected by -c option: Assert.Contains("-property:Configuration=Release", App.Process.Output.Single(line => line.Contains("/t:GenerateWatchList"))); - - App.AssertOutputContains("dotnet watch ⌚ Command 'pack' does not support Hot Reload."); - App.AssertOutputContains($"Successfully created package '{packagePath}'"); } [Fact] @@ -291,15 +291,14 @@ public async Task PublishCommand() .WithSource(); App.Start(testAsset, ["--verbose", "publish", "-c", "Release"]); + + await App.WaitUntilOutputContains(MessageDescriptor.CommandDoesNotSupportHotReload.GetMessage("publish")); + await App.WaitUntilOutputContains(Path.Combine("Release", ToolsetInfo.CurrentTargetFramework, "publish")); - await App.WaitForOutputLineContaining(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); // evaluation affected by -c option: Assert.Contains("-property:Configuration=Release", App.Process.Output.Single(line => line.Contains("/t:GenerateWatchList"))); - - App.AssertOutputContains("dotnet watch ⌚ Command 'publish' does not support Hot Reload."); - - App.AssertOutputContains(Path.Combine("Release", ToolsetInfo.CurrentTargetFramework, "publish")); } [Fact] @@ -311,12 +310,11 @@ public async Task FormatCommand() App.SuppressVerboseLogging(); App.Start(testAsset, ["--verbose", "format", "--verbosity", "detailed"]); - await App.WaitForOutputLineContaining(MessageDescriptor.WaitingForFileChangeBeforeRestarting); - - App.AssertOutputContains("dotnet watch ⌚ Command 'format' does not support Hot Reload."); + await App.WaitUntilOutputContains(MessageDescriptor.CommandDoesNotSupportHotReload.GetMessage("format")); + await App.WaitUntilOutputContains("format --verbosity detailed"); + await App.WaitUntilOutputContains("Format complete in"); - App.AssertOutputContains("format --verbosity detailed"); - App.AssertOutputContains("Format complete in"); + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); } [Fact] From ae35ceec30c712fb3e405a7a76a0340c9aed1125 Mon Sep 17 00:00:00 2001 From: tmat Date: Thu, 19 Feb 2026 16:22:59 -0800 Subject: [PATCH 131/179] Improve test output logging --- .../TestUtilities/WatchableApp.cs | 88 ++++++++++++------- 1 file changed, 56 insertions(+), 32 deletions(-) diff --git a/test/dotnet-watch.Tests/TestUtilities/WatchableApp.cs b/test/dotnet-watch.Tests/TestUtilities/WatchableApp.cs index 7ef1230edb39..c9fd338d94ff 100644 --- a/test/dotnet-watch.Tests/TestUtilities/WatchableApp.cs +++ b/test/dotnet-watch.Tests/TestUtilities/WatchableApp.cs @@ -5,6 +5,8 @@ using System.Runtime.CompilerServices; using System.Text.RegularExpressions; +using Microsoft.CodeAnalysis.Text; +using static System.Net.Mime.MediaTypeNames; namespace Microsoft.DotNet.Watch.UnitTests { @@ -45,7 +47,7 @@ public void AssertOutputContains(Regex pattern) => AssertEx.ContainsPattern(pattern, Process.Output); public void AssertOutputContains(MessageDescriptor descriptor, string projectDisplay = null) - => AssertOutputContains(GetPattern(descriptor, projectDisplay)); + => AssertOutputContains(GetPattern(descriptor, projectDisplay, out _)); public void AssertOutputDoesNotContain(string message) => AssertEx.DoesNotContainSubstring(message, Process.Output); @@ -54,69 +56,87 @@ public void AssertOutputDoesNotContain(Regex pattern) => AssertEx.DoesNotContainPattern(pattern, Process.Output); public void AssertOutputDoesNotContain(MessageDescriptor descriptor, string projectDisplay = null) - => AssertOutputDoesNotContain(GetPattern(descriptor, projectDisplay)); + => AssertOutputDoesNotContain(GetPattern(descriptor, projectDisplay, out _)); - private static Regex GetPattern(MessageDescriptor descriptor, string projectDisplay = null) - => new Regex(Regex.Replace(Regex.Escape((projectDisplay != null ? $"[{projectDisplay}] " : "") + descriptor.Format), @"\\\{[0-9]+\}", ".*")); + private static Regex GetPattern(MessageDescriptor descriptor, string projectDisplay, out string patternDisplay) + { + var prefix = projectDisplay != null ? $"[{projectDisplay}] " : ""; + var pattern = new Regex(Regex.Replace(Regex.Escape(prefix + descriptor.Format), @"\\\{[0-9]+\}", ".*")); + patternDisplay = prefix + descriptor.Format; + return pattern; + } + + private void LogFoundOutput(string pattern, string testPath, int testLine) + => Logger.Log($"Found output matching: '{pattern}'", testPath, testLine); + + private void LogWaitingForOutput(string pattern, string testPath, int testLine) + => Logger.Log($"Waiting for output matching: '{pattern}'", testPath, testLine); public async ValueTask WaitUntilOutputContains(string text, [CallerFilePath] string testPath = null, [CallerLineNumber] int testLine = 0) { - if (Process.Output.Any(line => line.Contains(text))) - { - Logger.Log($"Test found output: '{text}'", testPath, testLine); - } - else + if (!Process.Output.Any(line => line.Contains(text))) { - Logger.Log($"Test waiting for output: '{text}'", testPath, testLine); + LogWaitingForOutput(text, testPath, testLine); _ = await WaitForOutputLineMatching(line => line.Contains(text)); } + + LogFoundOutput(text, testPath, testLine); } public async ValueTask WaitUntilOutputContains(Regex pattern, [CallerFilePath] string testPath = null, [CallerLineNumber] int testLine = 0) { - if (Process.Output.Any(line => pattern.IsMatch(line))) - { - Logger.Log($"Test found output pattern: '{pattern}'", testPath, testLine); - } - else + var patternDisplay = pattern.ToString(); + + if (!Process.Output.Any(line => pattern.IsMatch(line))) { - Logger.Log($"Test waiting for output pattern: '{pattern}'", testPath, testLine); + LogWaitingForOutput(patternDisplay, testPath, testLine); _ = await WaitForOutputLineMatching(line => pattern.IsMatch(line)); } + + LogFoundOutput(patternDisplay, testPath, testLine); } public async ValueTask WaitUntilOutputContains(MessageDescriptor descriptor, string projectDisplay = null, [CallerLineNumber] int testLine = 0, [CallerFilePath] string testPath = null) { - var pattern = GetPattern(descriptor, projectDisplay); - if (Process.Output.Any(line => pattern.IsMatch(line))) - { - Logger.Log($"Test found output text format: '{descriptor.Format}'", testPath, testLine); - } - else + var pattern = GetPattern(descriptor, projectDisplay, out var patternDisplay); + + if (!Process.Output.Any(line => pattern.IsMatch(line))) { - Logger.Log($"Test waiting for output text format: '{descriptor.Format}'", testPath, testLine); + LogWaitingForOutput(patternDisplay, testPath, testLine); _ = await WaitForOutputLineMatching(line => pattern.IsMatch(line)); } + + LogFoundOutput(patternDisplay, testPath, testLine); } public Task WaitForOutputLineContaining(string text, [CallerFilePath] string testPath = null, [CallerLineNumber] int testLine = 0) { - Logger.Log($"Test waiting for output: '{text}'", testPath, testLine); - return Process.GetOutputLineAsync(success: line => line.Contains(text), failure: _ => false); + LogWaitingForOutput(text, testPath, testLine); + var line = Process.GetOutputLineAsync(success: line => line.Contains(text), failure: _ => false); + LogFoundOutput(text, testPath, testLine); + return line; } public Task WaitForOutputLineContaining(MessageDescriptor descriptor, string projectDisplay = null, [CallerLineNumber] int testLine = 0, [CallerFilePath] string testPath = null) { - Logger.Log($"Test waiting for text format: '{descriptor.Format}'", testPath, testLine); + var pattern = GetPattern(descriptor, projectDisplay, out var patternDisplay); + + LogWaitingForOutput(patternDisplay, testPath, testLine); + var line = Process.GetOutputLineAsync(success: line => pattern.IsMatch(line), failure: _ => false); + LogFoundOutput(patternDisplay, testPath, testLine); - var pattern = GetPattern(descriptor, projectDisplay); - return Process.GetOutputLineAsync(success: line => pattern.IsMatch(line), failure: _ => false); + return line; } public Task WaitForOutputLineContaining(Regex pattern, [CallerFilePath] string testPath = null, [CallerLineNumber] int testLine = 0) { - Logger.Log($"Test waiting for output pattern: '{pattern}'", testPath, testLine); - return Process.GetOutputLineAsync(success: line => pattern.IsMatch(line), failure: _ => false); + var patternDisplay = pattern.ToString(); + + LogWaitingForOutput(patternDisplay, testPath, testLine); + var line = Process.GetOutputLineAsync(success: line => pattern.IsMatch(line), failure: _ => false); + LogFoundOutput(patternDisplay, testPath, testLine); + + return line; } private Task WaitForOutputLineMatching(Predicate predicate) @@ -127,7 +147,9 @@ private Task WaitForOutputLineMatching(Predicate predicate) /// public async Task AssertOutputLineStartsWith(string expectedPrefix, Predicate failure = null, [CallerFilePath] string testPath = null, [CallerLineNumber] int testLine = 0) { - Logger.Log($"Test waiting for output: '{expectedPrefix}'", testPath, testLine); + var display = $"^{expectedPrefix}.*"; + + LogWaitingForOutput(display, testPath, testLine); var line = await Process.GetOutputLineAsync( success: line => line.StartsWith(expectedPrefix, StringComparison.Ordinal), @@ -144,7 +166,9 @@ public async Task AssertOutputLineStartsWith(string expectedPrefix, Pred Assert.StartsWith(expectedPrefix, line, StringComparison.Ordinal); } - return line.Substring(expectedPrefix.Length); + var result = line.Substring(expectedPrefix.Length); + LogFoundOutput(display, testPath, testLine); + return result; } public async Task AssertOutputLineEquals(string expectedLine) From f51476119a1ecd1f4928093a8cf355351ff85e6f Mon Sep 17 00:00:00 2001 From: tmat Date: Thu, 19 Feb 2026 16:24:32 -0800 Subject: [PATCH 132/179] Fix a race condition that occurs when shutdown is requested after the process is launched but before the newly created RunningProject is published. --- .../Watch/Aspire/AspireServiceFactory.cs | 6 +- .../Watch/HotReload/CompilationHandler.cs | 41 +++++++----- .../Watch/HotReload/HotReloadDotNetWatcher.cs | 4 +- .../Watch/Process/RunningProcess.cs | 59 +++++++++++++++++ .../Watch/Process/RunningProject.cs | 63 ++++++------------- .../Watch/Utilities/Disposables.cs | 15 +++-- .../HotReload/ApplyDeltaTests.cs | 7 +++ .../HotReload/RuntimeProcessLauncherTests.cs | 2 +- 8 files changed, 127 insertions(+), 70 deletions(-) create mode 100644 src/BuiltInTools/Watch/Process/RunningProcess.cs diff --git a/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs b/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs index d02a94e014fb..ce141079e90c 100644 --- a/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs +++ b/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs @@ -143,10 +143,10 @@ public async ValueTask StartProjectAsync(string dcpId, string se throw new ApplicationException($"Failed to launch '{projectOptions.Representation.ProjectOrEntryPointFilePath}'."); } - await _service.NotifySessionStartedAsync(dcpId, sessionId, runningProject.ProcessId, cancellationToken); + await _service.NotifySessionStartedAsync(dcpId, sessionId, runningProject.Process.Id, cancellationToken); // cancel reading output when the process terminates: - var outputReader = StartChannelReader(runningProject.ProcessExitedCancellationToken); + var outputReader = StartChannelReader(runningProject.Process.ExitedCancellationToken); lock (_guard) { @@ -205,7 +205,7 @@ private async Task TerminateSessionAsync(Session session) { _logger.LogDebug("Stop session #{SessionId}", session.Id); - await session.RunningProject.TerminateAsync(); + await session.RunningProject.Process.TerminateAsync(); // process termination should cancel output reader task: await session.OutputReader; diff --git a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs index 841e05cb0c22..d15e8be52943 100644 --- a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs +++ b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs @@ -124,7 +124,7 @@ public async ValueTask StartSessionAsync(CancellationToken cancellationToken) var processCommunicationCancellationToken = processCommunicationCancellationSource.Token; // Dispose these objects on failure: - using var disposables = new Disposables([clients, processExitedSource, processTerminationSource]); + await using var disposables = new Disposables([clients, processExitedSource, processTerminationSource]); // It is important to first create the named pipe connection (Hot Reload client is the named pipe server) // and then start the process (named pipe client). Otherwise, the connection would fail. @@ -144,18 +144,28 @@ public async ValueTask StartSessionAsync(CancellationToken cancellationToken) // Remove the running project if it has been published to _runningProjects (if it hasn't exited during initialization): if (publishedRunningProject != null && RemoveRunningProject(publishedRunningProject)) { - publishedRunningProject.Dispose(); + await publishedRunningProject.DisposeAsync(isExiting: true); } }; var launchResult = new ProcessLaunchResult(); - var runningProcess = _context.ProcessRunner.RunAsync(processSpec, clientLogger, launchResult, processTerminationSource.Token); + var processTask = _context.ProcessRunner.RunAsync(processSpec, clientLogger, launchResult, processTerminationSource.Token); if (launchResult.ProcessId == null) { + // process failed to start: + Debug.Assert(processTask.IsCompleted && processTask.Result == int.MinValue); + // error already reported return null; } + var runningProcess = new RunningProcess(launchResult.ProcessId.Value, processTask, processExitedSource, processTerminationSource, _context.Logger); + + // transfer ownership to the running process: + disposables.Items.Remove(processExitedSource); + disposables.Items.Remove(processTerminationSource); + disposables.Items.Add(runningProcess); + var projectPath = projectNode.ProjectInstance.FullPath; try @@ -170,14 +180,12 @@ public async ValueTask StartSessionAsync(CancellationToken cancellationToken) clients, clientLogger, runningProcess, - launchResult.ProcessId.Value, - processExitedSource: processExitedSource, - processTerminationSource: processTerminationSource, - restartOperation: restartOperation, + restartOperation, managedCodeUpdateCapabilities); - // ownership transferred to running project: - disposables.Items.Clear(); + // transfer ownership to the running project: + disposables.Items.Remove(clients); + disposables.Items.Remove(runningProcess); disposables.Items.Add(runningProject); var appliedUpdateCount = 0; @@ -217,9 +225,10 @@ await await clients.ApplyManagedCodeUpdatesAsync( _runningProjects = _runningProjects.SetItem(projectPath, projectInstances.Add(runningProject)); - // ownership transferred to _runningProjects + // transfer ownership to _runningProjects publishedRunningProject = runningProject; - disposables.Items.Clear(); + disposables.Items.Remove(runningProject); + Debug.Assert(disposables.Items is []); break; } } @@ -229,7 +238,7 @@ await await clients.ApplyManagedCodeUpdatesAsync( clients.OnRuntimeRudeEdit += (code, message) => { // fire and forget: - _ = HandleRuntimeRudeEditAsync(runningProject, message, cancellationToken); + _ = HandleRuntimeRudeEditAsync(publishedRunningProject, message, cancellationToken); }; // Notifies the agent that it can unblock the execution of the process: @@ -243,7 +252,7 @@ await await clients.ApplyManagedCodeUpdatesAsync( } } - return runningProject; + return publishedRunningProject; } catch (OperationCanceledException) when (processExitedSource.IsCancellationRequested) { @@ -274,7 +283,7 @@ private async Task HandleRuntimeRudeEditAsync(RunningProject runningProject, str await runningProject.Clients.ReportCompilationErrorsInApplicationAsync([rudeEditMessage, MessageDescriptor.RestartingApplication.GetMessage()], cancellationToken); // Terminate the process. - await runningProject.TerminateAsync(); + await runningProject.Process.TerminateAsync(); // Creates a new running project and launches it: await runningProject.RestartOperation(cancellationToken); @@ -409,7 +418,7 @@ public async ValueTask ApplyManagedCodeAndStaticAssetUpdatesAsync( // Only cancel applying updates when the process exits. Canceling disables further updates since the state of the runtime becomes unknown. var applyTask = await runningProject.Clients.ApplyManagedCodeUpdatesAsync( ToManagedCodeUpdates(managedCodeUpdates), - applyOperationCancellationToken: runningProject.ProcessExitedCancellationToken, + applyOperationCancellationToken: runningProject.Process.ExitedCancellationToken, cancellationToken); applyTasks.Add(runningProject.CompleteApplyOperationAsync(applyTask)); @@ -426,7 +435,7 @@ public async ValueTask ApplyManagedCodeAndStaticAssetUpdatesAsync( // but for consistency with managed code updates we only cancel when the process exits. staticAssetApplyTaskProducers.Add(runningProject.Clients.ApplyStaticAssetUpdatesAsync( assets, - applyOperationCancellationToken: runningProject.ProcessExitedCancellationToken, + applyOperationCancellationToken: runningProject.Process.ExitedCancellationToken, cancellationToken)); } diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs index 81fa232a9bd4..2005b36ec5de 100644 --- a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs +++ b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs @@ -143,7 +143,7 @@ public async Task WatchAsync(CancellationToken shutdownCancellationToken) } // Cancel iteration as soon as the main process exits, so that we don't spent time loading solution, etc. when the process is already dead. - mainRunningProject.ProcessExitedCancellationToken.Register(iterationCancellationSource.Cancel); + mainRunningProject.Process.ExitedCancellationToken.Register(iterationCancellationSource.Cancel); if (shutdownCancellationToken.IsCancellationRequested) { @@ -427,7 +427,7 @@ async Task> CaptureChangedFilesSnapshot(IReadOnlyLis if (mainRunningProject != null) { - await mainRunningProject.TerminateAsync(); + await mainRunningProject.Process.TerminateAsync(); } if (runtimeProcessLauncher != null) diff --git a/src/BuiltInTools/Watch/Process/RunningProcess.cs b/src/BuiltInTools/Watch/Process/RunningProcess.cs new file mode 100644 index 000000000000..e2d356300ca4 --- /dev/null +++ b/src/BuiltInTools/Watch/Process/RunningProcess.cs @@ -0,0 +1,59 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch; + +internal sealed class RunningProcess( + int id, + Task task, + CancellationTokenSource exitedSource, + CancellationTokenSource terminationSource, + ILogger logger) : IAsyncDisposable +{ + private CancellationTokenSource? _terminationSource = terminationSource; + + /// + /// Cancellation token triggered when the process exits. + /// Stores the token to allow callers to use the token even after the source has been disposed. + /// + public readonly CancellationToken ExitedCancellationToken = exitedSource.Token; + + public Task Task => task; + public int Id => id; + + ValueTask IAsyncDisposable.DisposeAsync() + => DisposeAsync(isExiting: false); + + public async ValueTask DisposeAsync(bool isExiting) + { + logger.LogDebug("Disposing running process {ProcessId}, isExiting: {IsExiting}, stack: {T}", id, isExiting, new StackTrace(true)); + + var terminationSource = Interlocked.Exchange(ref _terminationSource, null); + ObjectDisposedException.ThrowIf(terminationSource == null, this); + + // do not await process termination since it's already in progress: + if (!isExiting) + { + terminationSource.Cancel(); + await task; + } + + terminationSource.Dispose(); + + exitedSource.Cancel(); + exitedSource.Dispose(); + } + + /// + /// Terminates the process if it hasn't terminated yet. + /// Awating the task triggers OnExit handlers, which in turn call . + /// + public Task TerminateAsync() + { + _terminationSource?.Cancel(); + return task; + } +} diff --git a/src/BuiltInTools/Watch/Process/RunningProject.cs b/src/BuiltInTools/Watch/Process/RunningProject.cs index a20b4c79118d..c12294aba562 100644 --- a/src/BuiltInTools/Watch/Process/RunningProject.cs +++ b/src/BuiltInTools/Watch/Process/RunningProject.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Immutable; -using System.Diagnostics; using Microsoft.Build.Graph; using Microsoft.DotNet.HotReload; using Microsoft.Extensions.Logging; @@ -16,64 +15,40 @@ internal sealed class RunningProject( ProjectOptions options, HotReloadClients clients, ILogger clientLogger, - Task runningProcess, - int processId, - CancellationTokenSource processExitedSource, - CancellationTokenSource processTerminationSource, + RunningProcess process, RestartOperation restartOperation, - ImmutableArray managedCodeUpdateCapabilities) : IDisposable + ImmutableArray managedCodeUpdateCapabilities) : IAsyncDisposable { - public readonly ProjectGraphNode ProjectNode = projectNode; - public readonly ProjectOptions Options = options; - public readonly HotReloadClients Clients = clients; - public readonly ILogger ClientLogger = clientLogger; - public readonly ImmutableArray ManagedCodeUpdateCapabilities = managedCodeUpdateCapabilities; - public readonly Task RunningProcess = runningProcess; - public readonly int ProcessId = processId; - public readonly RestartOperation RestartOperation = restartOperation; + private volatile int _isRestarting; - /// - /// Cancellation token triggered when the process exits. - /// Stores the token to allow callers to use the token even after the source has been disposed. - /// - public CancellationToken ProcessExitedCancellationToken = processExitedSource.Token; + public ProjectGraphNode ProjectNode => projectNode; + public ProjectOptions Options => options; + public HotReloadClients Clients => clients; + public ILogger ClientLogger => clientLogger; + public ImmutableArray ManagedCodeUpdateCapabilities => managedCodeUpdateCapabilities; + public RunningProcess Process => process; + public RestartOperation RestartOperation => restartOperation; /// /// Set to true when the process termination is being requested so that it can be auto-restarted. /// public bool IsRestarting => _isRestarting != 0; - private volatile int _isRestarting; - private volatile bool _isDisposed; - /// /// Disposes the project. Can occur unexpectedly whenever the process exits. /// Must only be called once per project. /// - public void Dispose() + /// When invoked in handler. + public async ValueTask DisposeAsync(bool isExiting) { - ObjectDisposedException.ThrowIf(_isDisposed, this); - - _isDisposed = true; - processExitedSource.Cancel(); + // disposes communication channels: + clients.Dispose(); - Clients.Dispose(); - processTerminationSource.Dispose(); - processExitedSource.Dispose(); + await process.DisposeAsync(isExiting); } - /// - /// Terminates the process if it hasn't terminated yet. - /// - public Task TerminateAsync() - { - if (!_isDisposed) - { - processTerminationSource.Cancel(); - } - - return RunningProcess; - } + ValueTask IAsyncDisposable.DisposeAsync() + => DisposeAsync(isExiting: false); /// /// Marks the as restarting. @@ -89,7 +64,7 @@ public bool InitiateRestart() public Task TerminateForRestartAsync() { InitiateRestart(); - return TerminateAsync(); + return process.TerminateAsync(); } public async Task CompleteApplyOperationAsync(Task applyTask) @@ -107,7 +82,7 @@ public async Task CompleteApplyOperationAsync(Task applyTask) // Handle all exceptions. If one process is terminated or fails to apply changes // it shouldn't prevent applying updates to other processes. - ClientLogger.LogError("Failed to apply updates to process {Process}: {Exception}", ProcessId, e.ToString()); + ClientLogger.LogError("Failed to apply updates to process {Process}: {Exception}", process.Id, e.ToString()); } } } diff --git a/src/BuiltInTools/Watch/Utilities/Disposables.cs b/src/BuiltInTools/Watch/Utilities/Disposables.cs index 7aa9de719419..89d5c5ee9514 100644 --- a/src/BuiltInTools/Watch/Utilities/Disposables.cs +++ b/src/BuiltInTools/Watch/Utilities/Disposables.cs @@ -3,15 +3,22 @@ namespace Microsoft.DotNet.Watch; -internal readonly record struct Disposables(List disposables) : IDisposable +internal readonly record struct Disposables(List disposables) : IAsyncDisposable { - public List Items => disposables; + public List Items => disposables; - public void Dispose() + public async ValueTask DisposeAsync() { foreach (var disposable in disposables) { - disposable.Dispose(); + if (disposable is IAsyncDisposable asyncDisposable) + { + await asyncDisposable.DisposeAsync(); + } + else + { + ((IDisposable)disposable).Dispose(); + } } } } diff --git a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs index 10e2cc28895b..e826daa5784a 100644 --- a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs +++ b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs @@ -1322,6 +1322,13 @@ public async Task Aspire_BuildError_ManualRestart() await App.WaitUntilOutputContains(MessageDescriptor.BuildSucceeded.GetMessage(serviceProjectPath)); await App.WaitUntilOutputContains(MessageDescriptor.ProjectsRebuilt); await App.WaitUntilOutputContains($"dotnet watch ⭐ Starting: '{serviceProjectPath}'"); + + // Wait for the process to start before shutting down, so we can reliably verify Exited message below. + // The agent startup hook might not be initialized yet (signal handlers registered), + // so the process might need to be forcefully killed. We could wait until the agent is initialized + // but it's good to test this scenario. + await App.WaitUntilOutputContains(MessageDescriptor.LaunchedProcess, $"WatchAspire.ApiService ({tfm})"); + App.Process.ClearOutput(); App.SendControlC(); diff --git a/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs b/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs index 0f23a5034b1b..874e180ea5a1 100644 --- a/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs +++ b/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs @@ -535,7 +535,7 @@ public async Task RudeEditInProjectWithoutRunningProcess() // Terminate the process: Log($"Terminating process {runningProject.ProjectNode.GetDisplayName()} ..."); - await runningProject.TerminateAsync(); + await runningProject.Process.TerminateAsync(); // rude edit in A (changing assembly level attribute): UpdateSourceFile(serviceSourceA2, """ From 267c9b5968089547aa038802abf8ab7dbcce0ec5 Mon Sep 17 00:00:00 2001 From: tmat Date: Fri, 20 Feb 2026 13:24:02 -0800 Subject: [PATCH 133/179] Fix race condition between session start and disposal of AspireServiceFactory. --- .../Watch/Aspire/AspireServiceFactory.cs | 125 ++++++++++-------- .../Watch/HotReload/CompilationHandler.cs | 2 +- .../Watch/HotReload/HotReloadDotNetWatcher.cs | 12 +- .../Watch/Process/IRuntimeProcessLauncher.cs | 5 - .../Watch/Process/ProcessRunner.cs | 32 +++-- .../Watch/Process/RunningProcess.cs | 8 +- src/BuiltInTools/Watch/UI/IReporter.cs | 7 +- .../HotReload/ApplyDeltaTests.cs | 20 +-- .../TestUtilities/WatchableApp.cs | 2 - 9 files changed, 109 insertions(+), 104 deletions(-) diff --git a/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs b/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs index ce141079e90c..99539e56433d 100644 --- a/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs +++ b/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs @@ -45,6 +45,12 @@ private readonly struct Session(string dcpId, string sessionId, RunningProject r private volatile bool _isDisposed; + // The number of sessions whose initialization is in progress. + private int _pendingSessionInitializationCount; + + // Blocks disposal until no session initialization is in progress. + private readonly SemaphoreSlim _postDisposalSessionInitializationCompleted = new(initialCount: 0, maxCount: 1); + public SessionManager(ProjectLauncher projectLauncher, ProjectOptions hostProjectOptions) { _projectLauncher = projectLauncher; @@ -59,21 +65,20 @@ public SessionManager(ProjectLauncher projectLauncher, ProjectOptions hostProjec public async ValueTask DisposeAsync() { -#if DEBUG - lock (_guard) - { - Debug.Assert(_sessions.Count == 0); - } -#endif - _isDisposed = true; + ObjectDisposedException.ThrowIf(_isDisposed, this); + _logger.LogDebug("Disposing service factory ..."); + + // stop accepting requests - triggers cancellation token for in-flight operations: await _service.DisposeAsync(); - } - public async ValueTask TerminateLaunchedProcessesAsync(CancellationToken cancellationToken) - { - ObjectDisposedException.ThrowIf(_isDisposed, this); + // should not receive any more requests at this point: + _isDisposed = true; + // wait for all in-flight process initialization to complete: + await _postDisposalSessionInitializationCompleted.WaitAsync(CancellationToken.None); + + // terminate all active sessions: ImmutableArray sessions; lock (_guard) { @@ -82,7 +87,11 @@ public async ValueTask TerminateLaunchedProcessesAsync(CancellationToken cancell _sessions.Clear(); } - await Task.WhenAll(sessions.Select(TerminateSessionAsync)).WaitAsync(cancellationToken); + await Task.WhenAll(sessions.Select(TerminateSessionAsync)).WaitAsync(CancellationToken.None); + + _postDisposalSessionInitializationCompleted.Dispose(); + + _logger.LogDebug("Service factory disposed"); } public IEnumerable<(string name, string value)> GetEnvironmentVariables() @@ -103,61 +112,73 @@ async ValueTask IAspireServerEvents.StartProjectAsync(string dcpId, Proj public async ValueTask StartProjectAsync(string dcpId, string sessionId, ProjectOptions projectOptions, bool isRestart, CancellationToken cancellationToken) { + // Neither request from DCP nor restart should happen once the disposal has started. ObjectDisposedException.ThrowIf(_isDisposed, this); - _logger.LogDebug("Starting: '{Path}'", projectOptions.Representation.ProjectOrEntryPointFilePath); + _logger.LogDebug("[#{SessionId}] Starting: '{Path}'", sessionId, projectOptions.Representation.ProjectOrEntryPointFilePath); + RunningProject? runningProject = null; var outputChannel = Channel.CreateUnbounded(s_outputChannelOptions); - RunningProject? runningProject = null; + Interlocked.Increment(ref _pendingSessionInitializationCount); - runningProject = await _projectLauncher.TryLaunchProcessAsync( - projectOptions, - onOutput: line => - { - var writeResult = outputChannel.Writer.TryWrite(line); - Debug.Assert(writeResult); - }, - onExit: async (processId, exitCode) => - { - // Project can be null if the process exists while it's being initialized. - if (runningProject?.IsRestarting == false) + try + { + runningProject = await _projectLauncher.TryLaunchProcessAsync( + projectOptions, + onOutput: line => { - try - { - await _service.NotifySessionEndedAsync(dcpId, sessionId, processId, exitCode, cancellationToken); - } - catch (OperationCanceledException) + var writeResult = outputChannel.Writer.TryWrite(line); + Debug.Assert(writeResult); + }, + onExit: async (processId, exitCode) => + { + // Project can be null if the process exists while it's being initialized. + if (runningProject?.IsRestarting == false) { - // canceled on shutdown, ignore + try + { + await _service.NotifySessionEndedAsync(dcpId, sessionId, processId, exitCode, cancellationToken); + } + catch (OperationCanceledException) + { + // canceled on shutdown, ignore + } } - } - }, - restartOperation: cancellationToken => - StartProjectAsync(dcpId, sessionId, projectOptions, isRestart: true, cancellationToken), - cancellationToken); + }, + restartOperation: cancellationToken => + StartProjectAsync(dcpId, sessionId, projectOptions, isRestart: true, cancellationToken), + cancellationToken); - if (runningProject == null) - { - // detailed error already reported: - throw new ApplicationException($"Failed to launch '{projectOptions.Representation.ProjectOrEntryPointFilePath}'."); - } + if (runningProject == null) + { + // detailed error already reported: + throw new ApplicationException($"Failed to launch '{projectOptions.Representation.ProjectOrEntryPointFilePath}'."); + } - await _service.NotifySessionStartedAsync(dcpId, sessionId, runningProject.Process.Id, cancellationToken); + await _service.NotifySessionStartedAsync(dcpId, sessionId, runningProject.Process.Id, cancellationToken); - // cancel reading output when the process terminates: - var outputReader = StartChannelReader(runningProject.Process.ExitedCancellationToken); + // cancel reading output when the process terminates: + var outputReader = StartChannelReader(runningProject.Process.ExitedCancellationToken); - lock (_guard) - { - // When process is restarted we reuse the session id. - // The session already exists, it needs to be updated with new info. - Debug.Assert(_sessions.ContainsKey(sessionId) == isRestart); + lock (_guard) + { + // When process is restarted we reuse the session id. + // The session already exists, it needs to be updated with new info. + Debug.Assert(_sessions.ContainsKey(sessionId) == isRestart); - _sessions[sessionId] = new Session(dcpId, sessionId, runningProject, outputReader); + _sessions[sessionId] = new Session(dcpId, sessionId, runningProject, outputReader); + } + } + finally + { + if (Interlocked.Decrement(ref _pendingSessionInitializationCount) == 0 && _isDisposed) + { + _postDisposalSessionInitializationCompleted.Release(); + } } - _logger.LogDebug("Session started: #{SessionId}", sessionId); + _logger.LogDebug("[#{SessionId}] Session started", sessionId); return runningProject; async Task StartChannelReader(CancellationToken cancellationToken) @@ -203,7 +224,7 @@ async ValueTask IAspireServerEvents.StopSessionAsync(string dcpId, string private async Task TerminateSessionAsync(Session session) { - _logger.LogDebug("Stop session #{SessionId}", session.Id); + _logger.LogDebug("[#{SessionId}] Stop session", session.Id); await session.RunningProject.Process.TerminateAsync(); diff --git a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs index d15e8be52943..2f44472013f0 100644 --- a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs +++ b/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs @@ -159,7 +159,7 @@ public async ValueTask StartSessionAsync(CancellationToken cancellationToken) return null; } - var runningProcess = new RunningProcess(launchResult.ProcessId.Value, processTask, processExitedSource, processTerminationSource, _context.Logger); + var runningProcess = new RunningProcess(launchResult.ProcessId.Value, processTask, processExitedSource, processTerminationSource); // transfer ownership to the running process: disposables.Items.Remove(processExitedSource); diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs index 2005b36ec5de..f6c869ce3125 100644 --- a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs +++ b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs @@ -413,10 +413,9 @@ async Task> CaptureChangedFilesSnapshot(IReadOnlyLis if (runtimeProcessLauncher != null) { - // Request cleanup of all processes created by the launcher before we terminate the main process. - // Executed after the main process has terminated if the process exits on its own. - // Non-cancellable - can only be aborted by forced Ctrl+C, which immediately kills the dotnet-watch process. - await runtimeProcessLauncher.TerminateLaunchedProcessesAsync(CancellationToken.None); + // Dispose the launcher so that it won't start any new peripheral processes. + // Do this before terminating all processes, so that we don't leave any processes orphaned. + await runtimeProcessLauncher.DisposeAsync(); } if (compilationHandler != null) @@ -430,11 +429,6 @@ async Task> CaptureChangedFilesSnapshot(IReadOnlyLis await mainRunningProject.Process.TerminateAsync(); } - if (runtimeProcessLauncher != null) - { - await runtimeProcessLauncher.DisposeAsync(); - } - // Wait for file change // - if the process hasn't launched (e.g. build failed) // - if the process launched, has been terminated and is not being auto-restarted (rude edit), diff --git a/src/BuiltInTools/Watch/Process/IRuntimeProcessLauncher.cs b/src/BuiltInTools/Watch/Process/IRuntimeProcessLauncher.cs index f91f9342155b..d90a0e8c1a51 100644 --- a/src/BuiltInTools/Watch/Process/IRuntimeProcessLauncher.cs +++ b/src/BuiltInTools/Watch/Process/IRuntimeProcessLauncher.cs @@ -10,9 +10,4 @@ namespace Microsoft.DotNet.Watch; internal interface IRuntimeProcessLauncher : IAsyncDisposable { IEnumerable<(string name, string value)> GetEnvironmentVariables(); - - /// - /// Initiates shutdown. Terminates all created processes. - /// - ValueTask TerminateLaunchedProcessesAsync(CancellationToken cancellationToken); } diff --git a/src/BuiltInTools/Watch/Process/ProcessRunner.cs b/src/BuiltInTools/Watch/Process/ProcessRunner.cs index 05da2f554e4d..310a1479df83 100644 --- a/src/BuiltInTools/Watch/Process/ProcessRunner.cs +++ b/src/BuiltInTools/Watch/Process/ProcessRunner.cs @@ -72,7 +72,7 @@ public virtual async Task RunAsync(ProcessSpec processSpec, ILogger logger, // Either Ctrl+C was pressed or the process is being restarted. // Non-cancellable to not leave orphaned processes around blocking resources: - await TerminateProcessAsync(state.Process, processSpec, state, logger, CancellationToken.None); + await TerminateProcessAsync(state.Process, processSpec, state, logger); } } catch (Exception e) @@ -230,7 +230,7 @@ public virtual async Task RunAsync(ProcessSpec processSpec, ILogger logger, } } - private async ValueTask TerminateProcessAsync(Process process, ProcessSpec processSpec, ProcessState state, ILogger logger, CancellationToken cancellationToken) + private async ValueTask TerminateProcessAsync(Process process, ProcessSpec processSpec, ProcessState state, ILogger logger) { var forceOnly = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && !processSpec.IsUserApplication; @@ -238,37 +238,38 @@ private async ValueTask TerminateProcessAsync(Process process, ProcessSpec proce if (forceOnly) { - _ = await WaitForExitAsync(process, state, timeout: null, logger, cancellationToken); + _ = await WaitForExitAsync(process, state, timeout: null, logger); return; } // Ctlr+C/SIGTERM has been sent, wait for the process to exit gracefully. if (processCleanupTimeout.TotalMilliseconds == 0 || - !await WaitForExitAsync(process, state, processCleanupTimeout, logger, cancellationToken)) + !await WaitForExitAsync(process, state, processCleanupTimeout, logger)) { // Force termination if the process is still running after the timeout. TerminateProcess(process, state, logger, force: true); - _ = await WaitForExitAsync(process, state, timeout: null, logger, cancellationToken); + _ = await WaitForExitAsync(process, state, timeout: null, logger); } } - private static async ValueTask WaitForExitAsync(Process process, ProcessState state, TimeSpan? timeout, ILogger logger, CancellationToken cancellationToken) + private static async ValueTask WaitForExitAsync(Process process, ProcessState state, TimeSpan? timeout, ILogger logger) { // On Linux simple call WaitForExitAsync does not work reliably (it may hang). // As a workaround we poll for HasExited. // See also https://github.com/dotnet/runtime/issues/109434. - var task = process.WaitForExitAsync(cancellationToken); - - if (timeout is { } timeoutValue) + if (timeout.HasValue) { + using var cancellationSource = new CancellationTokenSource(); + cancellationSource.CancelAfter(timeout.Value); + try { - logger.Log(MessageDescriptor.WaitingForProcessToExitWithin, state.ProcessId, (int)timeoutValue.TotalSeconds); - await task.WaitAsync(timeoutValue, cancellationToken); + logger.Log(MessageDescriptor.WaitingForProcessToExitWithin, state.ProcessId, (int)timeout.Value.TotalSeconds); + await process.WaitForExitAsync(cancellationSource.Token); } - catch (TimeoutException) + catch (OperationCanceledException) { try { @@ -298,12 +299,15 @@ private static async ValueTask WaitForExitAsync(Process process, ProcessSt logger.Log(MessageDescriptor.WaitingForProcessToExit, state.ProcessId, i++); + using var cancellationSource = new CancellationTokenSource(); + cancellationSource.CancelAfter(TimeSpan.FromSeconds(1)); + try { - await task.WaitAsync(TimeSpan.FromSeconds(1), cancellationToken); + await process.WaitForExitAsync(cancellationSource.Token); break; } - catch (TimeoutException) + catch (OperationCanceledException) { } } diff --git a/src/BuiltInTools/Watch/Process/RunningProcess.cs b/src/BuiltInTools/Watch/Process/RunningProcess.cs index e2d356300ca4..33777a531bc1 100644 --- a/src/BuiltInTools/Watch/Process/RunningProcess.cs +++ b/src/BuiltInTools/Watch/Process/RunningProcess.cs @@ -1,17 +1,13 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.Diagnostics; -using Microsoft.Extensions.Logging; - namespace Microsoft.DotNet.Watch; internal sealed class RunningProcess( int id, Task task, CancellationTokenSource exitedSource, - CancellationTokenSource terminationSource, - ILogger logger) : IAsyncDisposable + CancellationTokenSource terminationSource) : IAsyncDisposable { private CancellationTokenSource? _terminationSource = terminationSource; @@ -29,8 +25,6 @@ ValueTask IAsyncDisposable.DisposeAsync() public async ValueTask DisposeAsync(bool isExiting) { - logger.LogDebug("Disposing running process {ProcessId}, isExiting: {IsExiting}, stack: {T}", id, isExiting, new StackTrace(true)); - var terminationSource = Interlocked.Exchange(ref _terminationSource, null); ObjectDisposedException.ThrowIf(terminationSource == null, this); diff --git a/src/BuiltInTools/Watch/UI/IReporter.cs b/src/BuiltInTools/Watch/UI/IReporter.cs index 2c7087824228..d47cc2910cfc 100644 --- a/src/BuiltInTools/Watch/UI/IReporter.cs +++ b/src/BuiltInTools/Watch/UI/IReporter.cs @@ -4,7 +4,6 @@ using System.Collections.Immutable; using System.Diagnostics; using System.Runtime.CompilerServices; -using Microsoft.AspNetCore.Authorization.Infrastructure; using Microsoft.DotNet.HotReload; using Microsoft.Extensions.Logging; @@ -156,7 +155,7 @@ private static MessageDescriptor Create(LogEvent logEvent, private static MessageDescriptor Create(EventId id, string format, Emoji emoji, LogLevel level) { - var descriptor = new MessageDescriptor(format, emoji, level, id.Id); + var descriptor = new MessageDescriptor(format, emoji, level, id); s_descriptors = s_descriptors.Add(id, descriptor); return descriptor; } @@ -209,8 +208,8 @@ public static MessageDescriptor GetDescriptor(EventId id) public static readonly MessageDescriptor ConfiguredToUseBrowserRefresh = Create("Using browser-refresh middleware", Emoji.Default, LogLevel.Debug); public static readonly MessageDescriptor BrowserRefreshSuppressedViaEnvironmentVariable_ManualRefreshRequired = Create("Browser refresh is suppressed via environment variable '{0}'. To reload static assets after an update refresh browser manually.", Emoji.Watch, LogLevel.Debug); public static readonly MessageDescriptor BrowserRefreshSuppressedViaEnvironmentVariable_ApplicationWillBeRestarted = Create("Browser refresh is suppressed via environment variable '{0}'. Application will be restarted when updated.", Emoji.Watch, LogLevel.Warning); - public static readonly MessageDescriptor BrowserRefreshNotSupportedByProjectTargetFramework_ManualRefreshRequired = Create("Browser refresh is ot supported by the project target framework. To reload static assets after an update refresh browser manually. For more information see 'https://aka.ms/dotnet/watch/unsupported-tfm'.", Emoji.Watch, LogLevel.Warning); - public static readonly MessageDescriptor BrowserRefreshNotSupportedByProjectTargetFramework_ApplicationWillBeRestarted = Create("Browser refresh is ot supported by the project target framework. Application will be restarted when updated. For more information see 'https://aka.ms/dotnet/watch/unsupported-tfm'.", Emoji.Watch, LogLevel.Warning); + public static readonly MessageDescriptor BrowserRefreshNotSupportedByProjectTargetFramework_ManualRefreshRequired = Create("Browser refresh is not supported by the project target framework. To reload static assets after an update refresh browser manually. For more information see 'https://aka.ms/dotnet/watch/unsupported-tfm'.", Emoji.Watch, LogLevel.Warning); + public static readonly MessageDescriptor BrowserRefreshNotSupportedByProjectTargetFramework_ApplicationWillBeRestarted = Create("Browser refresh is not supported by the project target framework. Application will be restarted when updated. For more information see 'https://aka.ms/dotnet/watch/unsupported-tfm'.", Emoji.Watch, LogLevel.Warning); public static readonly MessageDescriptor UpdatingDiagnostics = Create(LogEvents.UpdatingDiagnostics, Emoji.Default); public static readonly MessageDescriptor FailedToReceiveResponseFromConnectedBrowser = Create(LogEvents.FailedToReceiveResponseFromConnectedBrowser, Emoji.Default); public static readonly MessageDescriptor NoBrowserConnected = Create(LogEvents.NoBrowserConnected, Emoji.Default); diff --git a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs index e826daa5784a..ec0cf50a78cf 100644 --- a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs +++ b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs @@ -1263,9 +1263,9 @@ public async Task Aspire_BuildError_ManualRestart() await App.WaitUntilOutputContains("dotnet watch ⭐ Now listening on:"); // wait until after all DCP sessions have started: - await App.WaitUntilOutputContains("dotnet watch ⭐ Session started: #3"); - await App.WaitUntilOutputContains("dotnet watch ⭐ Session started: #1"); - await App.WaitUntilOutputContains("dotnet watch ⭐ Session started: #2"); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Session started"); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#2] Session started"); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Session started"); // MigrationService terminated: await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Sending 'sessionTerminated'"); @@ -1321,7 +1321,7 @@ public async Task Aspire_BuildError_ManualRestart() await App.WaitUntilOutputContains(MessageDescriptor.BuildSucceeded.GetMessage(serviceProjectPath)); await App.WaitUntilOutputContains(MessageDescriptor.ProjectsRebuilt); - await App.WaitUntilOutputContains($"dotnet watch ⭐ Starting: '{serviceProjectPath}'"); + await App.WaitUntilOutputContains($"Starting: '{serviceProjectPath}'"); // Wait for the process to start before shutting down, so we can reliably verify Exited message below. // The agent startup hook might not be initialized yet (signal handlers registered), @@ -1341,9 +1341,9 @@ public async Task Aspire_BuildError_ManualRestart() await App.WaitUntilOutputContains("dotnet watch ⭐ Waiting for server to shutdown ..."); - await App.WaitUntilOutputContains("dotnet watch ⭐ Stop session #1"); - await App.WaitUntilOutputContains("dotnet watch ⭐ Stop session #2"); - await App.WaitUntilOutputContains("dotnet watch ⭐ Stop session #3"); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Stop session"); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#2] Stop session"); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Stop session"); await App.WaitUntilOutputContains("dotnet watch ⭐ [#2] Sending 'sessionTerminated'"); await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Sending 'sessionTerminated'"); } @@ -1363,7 +1363,7 @@ public async Task Aspire_NoEffect_AutoRestart() await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - await App.WaitUntilOutputContains("dotnet watch ⭐ Session started: #1"); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Session started"); await App.WaitUntilOutputContains(MessageDescriptor.Exited, $"WatchAspire.MigrationService ({tfm})"); await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Sending 'sessionTerminated'"); @@ -1371,7 +1371,7 @@ public async Task Aspire_NoEffect_AutoRestart() await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Sending 'serviceLogs': log_message=' Migration complete', is_std_err=False"); // wait until after DCP sessions have been started for all projects: - await App.WaitUntilOutputContains("dotnet watch ⭐ Session started: #3"); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Session started"); App.AssertOutputDoesNotContain(new Regex("^ +Migration complete")); @@ -1381,7 +1381,7 @@ public async Task Aspire_NoEffect_AutoRestart() UpdateSourceFile(webSourcePath, src => src.Replace("/* top-level placeholder */", "builder.Services.AddRazorComponents();")); await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); - await App.WaitUntilOutputContains("dotnet watch ⭐ Session started: #3"); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Session started"); await App.WaitUntilOutputContains(MessageDescriptor.ProjectsRestarted.GetMessage(1)); App.AssertOutputDoesNotContain("⚠"); diff --git a/test/dotnet-watch.Tests/TestUtilities/WatchableApp.cs b/test/dotnet-watch.Tests/TestUtilities/WatchableApp.cs index c9fd338d94ff..5aca2df2b4c7 100644 --- a/test/dotnet-watch.Tests/TestUtilities/WatchableApp.cs +++ b/test/dotnet-watch.Tests/TestUtilities/WatchableApp.cs @@ -5,8 +5,6 @@ using System.Runtime.CompilerServices; using System.Text.RegularExpressions; -using Microsoft.CodeAnalysis.Text; -using static System.Net.Mime.MediaTypeNames; namespace Microsoft.DotNet.Watch.UnitTests { From 93078752638b592c9846a71c0b5ddad5a9d4b4ff Mon Sep 17 00:00:00 2001 From: tmat Date: Sat, 21 Feb 2026 10:09:20 -0800 Subject: [PATCH 134/179] Cleanup --- .../Watch.Aspire/DotNetWatchOptions.cs | 34 +++++++++---------- .../Watch/HotReload/HotReloadDotNetWatcher.cs | 6 ++-- src/BuiltInTools/dotnet-watch.slnf | 1 + src/BuiltInTools/dotnet-watch/Program.cs | 9 +++-- .../HotReload/RuntimeProcessLauncherTests.cs | 2 +- 5 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/BuiltInTools/Watch.Aspire/DotNetWatchOptions.cs b/src/BuiltInTools/Watch.Aspire/DotNetWatchOptions.cs index 497078f9322d..4558d5ba2273 100644 --- a/src/BuiltInTools/Watch.Aspire/DotNetWatchOptions.cs +++ b/src/BuiltInTools/Watch.Aspire/DotNetWatchOptions.cs @@ -32,23 +32,6 @@ public static bool TryParse(string[] args, [NotNullWhen(true)] out DotNetWatchOp var noLaunchProfileOption = new Option("--no-launch-profile") { Arity = ArgumentArity.Zero }; var applicationArguments = new Argument("arguments") { Arity = ArgumentArity.ZeroOrMore }; - verboseOption.Validators.Add(v => - { - if (HasOption(v, quietOption) && HasOption(v, verboseOption)) - { - v.AddError("Cannot specify both '--quiet' and '--verbose' options."); - } - - if (HasOption(v, projectOption) && HasOption(v, fileOption)) - { - v.AddError("Cannot specify both '--file' and '--project' options."); - } - else if (!HasOption(v, projectOption) && !HasOption(v, fileOption)) - { - v.AddError("Must specify either '--file' or '--project' option."); - } - }); - var rootCommand = new RootCommand() { Directives = { new EnvironmentVariablesDirective() }, @@ -67,6 +50,23 @@ public static bool TryParse(string[] args, [NotNullWhen(true)] out DotNetWatchOp } }; + rootCommand.Validators.Add(v => + { + if (HasOption(v, quietOption) && HasOption(v, verboseOption)) + { + v.AddError("Cannot specify both '--quiet' and '--verbose' options."); + } + + if (HasOption(v, projectOption) && HasOption(v, fileOption)) + { + v.AddError("Cannot specify both '--file' and '--project' options."); + } + else if (!HasOption(v, projectOption) && !HasOption(v, fileOption)) + { + v.AddError("Must specify either '--file' or '--project' option."); + } + }); + var parseResult = rootCommand.Parse(args); if (parseResult.Errors.Count > 0) { diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs index f6c869ce3125..28953b58f6cf 100644 --- a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs +++ b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs @@ -227,7 +227,7 @@ await compilationHandler.GetManagedCodeUpdatesAsync( iterationCancellationToken); // Terminate root process if it had rude edits or is non-reloadable. - if (updates.ProjectsToRestart.Any(project => project.Options.IsMainProject)) + if (updates.ProjectsToRestart.Any(static project => project.Options.IsMainProject)) { Debug.Assert(mainRunningProject != null); mainRunningProject.InitiateRestart(); @@ -463,7 +463,7 @@ private async Task RestartPrompt(IEnumerable projectNames, IRuntim { _context.Logger.LogInformation("Affected projects:"); - foreach (var projectName in projectNames.OrderBy(n => n)) + foreach (var projectName in projectNames.Order()) { _context.Logger.LogInformation(" {ProjectName}", projectName); } @@ -893,7 +893,7 @@ private async ValueTask EvaluateProjectGraphAsync(bool restore } await FileWatcher.WaitForFileChangeAsync( - _context.RootProjects.Select(p => p.ProjectOrEntryPointFilePath), + _context.RootProjects.Select(static p => p.ProjectOrEntryPointFilePath), _context.Logger, _context.EnvironmentOptions, startedWatching: () => _context.Logger.Log(MessageDescriptor.FixBuildError), diff --git a/src/BuiltInTools/dotnet-watch.slnf b/src/BuiltInTools/dotnet-watch.slnf index 181ae2f51023..51bc310af91d 100644 --- a/src/BuiltInTools/dotnet-watch.slnf +++ b/src/BuiltInTools/dotnet-watch.slnf @@ -23,6 +23,7 @@ "src\\BuiltInTools\\Watch.Aspire\\Microsoft.DotNet.HotReload.Watch.Aspire.csproj", "src\\BuiltInTools\\Watch\\Microsoft.DotNet.HotReload.Watch.csproj", "src\\BuiltInTools\\dotnet-watch\\dotnet-watch.csproj", + "src\\Cli\\Microsoft.DotNet.Cli.Definitions\\Microsoft.DotNet.Cli.Definitions.csproj", "src\\Microsoft.DotNet.ProjectTools\\Microsoft.DotNet.ProjectTools.csproj", "test\\Microsoft.AspNetCore.Watch.BrowserRefresh.Tests\\Microsoft.AspNetCore.Watch.BrowserRefresh.Tests.csproj", "test\\Microsoft.DotNet.HotReload.Client.Tests\\Microsoft.DotNet.HotReload.Client.Tests.csproj", diff --git a/src/BuiltInTools/dotnet-watch/Program.cs b/src/BuiltInTools/dotnet-watch/Program.cs index a6da3fd4ee4e..32eed20213ff 100644 --- a/src/BuiltInTools/dotnet-watch/Program.cs +++ b/src/BuiltInTools/dotnet-watch/Program.cs @@ -44,7 +44,7 @@ public static async Task Main(string[] args) var processPath = Environment.ProcessPath; Debug.Assert(processPath != null); - + var environmentOptions = EnvironmentOptions.FromEnvironment(processPath); // msbuild tasks depend on host path variable: @@ -128,9 +128,9 @@ public static async Task Main(string[] args) return null; } } - else if (TryFindProject(workingDirectory, options, logger, out var projectPath) is { } foundProject) + else if (TryFindProject(workingDirectory, options, logger, out var projectPath) is bool foundProject) { - if (foundProject == false) + if (!foundProject) { // error already reported return null; @@ -175,9 +175,8 @@ private static bool TryFindFileEntryPoint(string workingDirectory, CommandLineOp /// /// Finds a compatible MSBuild project. /// The base directory to search - /// The filename of the project. Can be null. /// - private static bool? TryFindProject(string workingDirectory, CommandLineOptions options, ILogger logger, [NotNullWhen(true)] out string? projectPath) + private static bool? TryFindProject(string workingDirectory, CommandLineOptions options, ILogger logger, out string? projectPath) { projectPath = options.ProjectPath ?? workingDirectory; diff --git a/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs b/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs index 874e180ea5a1..0c73767e5a47 100644 --- a/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs +++ b/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs @@ -518,7 +518,7 @@ public async Task RudeEditInProjectWithoutRunningProcess() var projectsRebuilt = w.Reporter.RegisterSemaphore(MessageDescriptor.ProjectsRebuilt); var sessionStarted = w.Reporter.RegisterSemaphore(MessageDescriptor.HotReloadSessionStarted); - var applyUpdateVerbose = w.Reporter.RegisterSemaphore(MessageDescriptor.ApplyUpdate_Verbose); + var applyUpdateVerbose = w.Reporter.RegisterSemaphore(MessageDescriptor.ApplyUpdate_AutoVerbose); w.Start(); From e9ba9cb5f0000888db9f571804f3adb72c00c347 Mon Sep 17 00:00:00 2001 From: tmat Date: Sat, 21 Feb 2026 12:30:49 -0800 Subject: [PATCH 135/179] Avoid test output dir collisions in GlobbingAppTests --- test/dotnet-watch.Tests/Watch/GlobbingAppTests.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/test/dotnet-watch.Tests/Watch/GlobbingAppTests.cs b/test/dotnet-watch.Tests/Watch/GlobbingAppTests.cs index 879b899ffda7..5a2005532e0f 100644 --- a/test/dotnet-watch.Tests/Watch/GlobbingAppTests.cs +++ b/test/dotnet-watch.Tests/Watch/GlobbingAppTests.cs @@ -1,13 +1,20 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Runtime.CompilerServices; + namespace Microsoft.DotNet.Watch.UnitTests { public class GlobbingAppTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) { - private async Task ValidateOperation(Action operation, int expectedTypesAfterOperation) + private async Task ValidateOperation( + Action operation, + int expectedTypesAfterOperation, + [CallerMemberName] string callingMethod = "", + [CallerFilePath] string? callerFilePath = null, + string? identifier = "") { - var testAsset = TestAssets.CopyTestAsset("WatchGlobbingApp") + var testAsset = TestAssets.CopyTestAsset("WatchGlobbingApp", callingMethod, callerFilePath, identifier) .WithSource(); App.Start(testAsset, ["--no-hot-reload"]); From 1984a1c7e98bf902b9090138a76495b63ce0cc2a Mon Sep 17 00:00:00 2001 From: tmat Date: Tue, 24 Feb 2026 09:19:43 -0800 Subject: [PATCH 136/179] Cleanup --- src/BuiltInTools/Watch/Build/ProjectBuildManager.cs | 2 +- src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs | 4 ++-- src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs | 1 + .../Watch/Microsoft.DotNet.HotReload.Watch.csproj | 2 -- src/BuiltInTools/Watch/Utilities/Option.cs | 2 +- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/BuiltInTools/Watch/Build/ProjectBuildManager.cs b/src/BuiltInTools/Watch/Build/ProjectBuildManager.cs index 1dff41be1545..d7d8ccd9777d 100644 --- a/src/BuiltInTools/Watch/Build/ProjectBuildManager.cs +++ b/src/BuiltInTools/Watch/Build/ProjectBuildManager.cs @@ -41,7 +41,7 @@ public async Task>> BuildAsync( await s_buildSemaphore.WaitAsync(cancellationToken); var manager = BuildManager.DefaultBuildManager; - using var _ = buildCancellationTokenSource.Token.Register(() => manager.CancelAllSubmissions()); + using var _ = buildCancellationTokenSource.Token.Register(manager.CancelAllSubmissions); var buildParameters = new BuildParameters(Collection) { diff --git a/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs b/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs index 067dad7a6459..bb73007bdf9b 100644 --- a/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs +++ b/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs @@ -48,7 +48,7 @@ private static string GetProductTargetFramework() } /// - /// Tries to create a project graph by running the build evaluation phase on the . + /// Tries to create a project graph by running the build evaluation phase on root projects. /// public LoadedProjectGraph? TryLoadProjectGraph(bool projectGraphRequired, CancellationToken cancellationToken) { @@ -121,7 +121,7 @@ private ProjectInstance CreateProjectInstance(string projectPath, Dictionary + (sourceFile, textSpan, message, _) => { anyError = true; logger.LogError("{Location}: {Message}", sourceFile.GetLocationString(textSpan), message); diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs index 28953b58f6cf..05c363660763 100644 --- a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs +++ b/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs @@ -4,6 +4,7 @@ using System.Collections.Immutable; using System.Diagnostics; using System.Text.Encodings.Web; +using System.Xml.Linq; using Microsoft.CodeAnalysis; using Microsoft.DotNet.HotReload; using Microsoft.Extensions.Logging; diff --git a/src/BuiltInTools/Watch/Microsoft.DotNet.HotReload.Watch.csproj b/src/BuiltInTools/Watch/Microsoft.DotNet.HotReload.Watch.csproj index c97882eadfd5..c43f9e6fac55 100644 --- a/src/BuiltInTools/Watch/Microsoft.DotNet.HotReload.Watch.csproj +++ b/src/BuiltInTools/Watch/Microsoft.DotNet.HotReload.Watch.csproj @@ -31,8 +31,6 @@ - - diff --git a/src/BuiltInTools/Watch/Utilities/Option.cs b/src/BuiltInTools/Watch/Utilities/Option.cs index 59f6ffcedbd6..2c2e4a7b21ad 100644 --- a/src/BuiltInTools/Watch/Utilities/Option.cs +++ b/src/BuiltInTools/Watch/Utilities/Option.cs @@ -5,7 +5,7 @@ namespace Microsoft.DotNet.Watch; internal readonly struct Optional(T value) { - public static readonly Optional NoValue = default; + public static readonly Optional NoValue; public bool HasValue { get; } = true; public T Value => value; From 6b35c82001fd62cedb45dfa117773a0b5f4e76ce Mon Sep 17 00:00:00 2001 From: tmat Date: Tue, 24 Feb 2026 13:51:47 -0800 Subject: [PATCH 137/179] Merge --- .../Watch/Build/ProjectGraphFactory.cs | 13 ++++++------- .../PublicAPI.Unshipped.txt | 1 + .../VirtualProjectBuilder.cs | 19 ++++++++++++++++++- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs b/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs index bb73007bdf9b..79aada5750ab 100644 --- a/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs +++ b/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs @@ -116,18 +116,17 @@ private ProjectInstance CreateProjectInstance(string projectPath, Dictionary + (path, line, message) => { anyError = true; - logger.LogError("{Location}: {Message}", sourceFile.GetLocationString(textSpan), message); - }, - out var projectInstance, - out _); + logger.LogError("{Path}({Line}): {Message}", path, line, message); + }); if (anyError) { diff --git a/src/Microsoft.DotNet.ProjectTools/PublicAPI.Unshipped.txt b/src/Microsoft.DotNet.ProjectTools/PublicAPI.Unshipped.txt index e22fc3a5db63..df2ed9470e36 100644 --- a/src/Microsoft.DotNet.ProjectTools/PublicAPI.Unshipped.txt +++ b/src/Microsoft.DotNet.ProjectTools/PublicAPI.Unshipped.txt @@ -2,5 +2,6 @@ Microsoft.DotNet.ProjectTools.LaunchSettings Microsoft.DotNet.ProjectTools.VirtualProjectBuilder static Microsoft.DotNet.ProjectTools.LaunchSettings.TryFindLaunchSettingsFile(string! projectOrEntryPointFilePath, string? launchProfile, System.Action! report) -> string? +static Microsoft.DotNet.ProjectTools.VirtualProjectBuilder.CreateProjectInstance(string! entryPointFilePath, string! targetFramework, Microsoft.Build.Evaluation.ProjectCollection! projectCollection, System.Action! errorReporter) -> Microsoft.Build.Execution.ProjectInstance! static Microsoft.DotNet.ProjectTools.VirtualProjectBuilder.GetVirtualProjectPath(string! entryPointFilePath) -> string! static Microsoft.DotNet.ProjectTools.VirtualProjectBuilder.IsValidEntryPointPath(string! entryPointFilePath) -> bool diff --git a/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs b/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs index 4e7fa874cc1b..b394dd14de71 100644 --- a/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs +++ b/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs @@ -64,7 +64,7 @@ internal VirtualProjectBuilder( /// /// Kept in sync with the default dotnet new console project file (enforced by DotnetProjectConvertTests.SameAsTemplate). /// - public static IEnumerable<(string name, string value)> GetDefaultProperties(string targetFramework) => + internal static IEnumerable<(string name, string value)> GetDefaultProperties(string targetFramework) => [ ("OutputType", "Exe"), ("TargetFramework", targetFramework), @@ -211,6 +211,23 @@ private ImmutableArray EvaluateDirectives( : CSharpDirective.IncludeOrExclude.DefaultMapping; } + public static ProjectInstance CreateProjectInstance( + string entryPointFilePath, + string targetFramework, + ProjectCollection projectCollection, + Action errorReporter) + { + var builder = new VirtualProjectBuilder(entryPointFilePath, targetFramework); + + builder.CreateProjectInstance( + projectCollection, + (text, path, textSpan, message, _) => errorReporter(path, text.Lines.GetLinePositionSpan(textSpan).Start.Line + 1, message), + out var projectInstance, + out _); + + return projectInstance; + } + internal void CreateProjectInstance( ProjectCollection projectCollection, ErrorReporter reportError, From b6ecfca4772c223907a0fe13b0ab944a8e197d53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Matou=C5=A1ek?= Date: Wed, 25 Feb 2026 15:14:18 -0800 Subject: [PATCH 138/179] Rename BuiltInTools dir to Dotnet.Watch (#53159) Co-authored-by: Michael Simons --- CODEOWNERS | 6 +-- cli.slnf | 2 +- documentation/specs/dotnet-watch-for-maui.md | 2 +- eng/dotnet-format/validate.rsp | 2 +- sdk.slnx | 44 +++++++++---------- source-build.slnf | 8 ++-- .../AspireService/.editorconfig | 0 .../AspireService/AspireServerService.cs | 0 .../Contracts/IAspireServerEvents.cs | 0 .../AspireService/Helpers/CertGenerator.cs | 0 .../Helpers/ExceptionExtensions.cs | 0 .../Helpers/HttpContextExtensions.cs | 0 .../AspireService/Helpers/LoggerProvider.cs | 0 .../Helpers/SocketConnectionManager.cs | 0 .../AspireService/Helpers/SocketUtilities.cs | 0 .../Helpers/WebSocketConnection.cs | 0 ...soft.WebTools.AspireService.Package.csproj | 0 ...Microsoft.WebTools.AspireService.projitems | 0 .../Microsoft.WebTools.AspireService.shproj | 0 .../AspireService/Models/ErrorResponse.cs | 0 .../AspireService/Models/InfoResponse.cs | 0 .../AspireService/Models/RunSessionRequest.cs | 0 .../Models/SessionChangeNotification.cs | 0 ...oft.AspNetCore.Watch.BrowserRefresh.csproj | 0 .../BrowserRefresh/Properties/AssemblyInfo.cs | 0 ...osoft.Extensions.DotNetDeltaApplier.csproj | 0 .../Properties/AssemblyInfo.cs | 0 .../DotNetWatchTasks/DotNetWatchTasks.csproj | 0 .../DotNetWatchTasks/FileSetSerializer.cs | 0 .../CompilerFeatureRequiredAttribute.cs | 0 .../Utilities/IsExternalInit.cs | 0 .../Utilities/RequiredMemberAttribute.cs | 0 .../HotReloadAgent.Data/.editorconfig | 0 .../AgentEnvironmentVariables.cs | 0 .../AgentMessageSeverity.cs | 0 ...DotNet.HotReload.Agent.Data.Package.csproj | 0 ...soft.DotNet.HotReload.Agent.Data.projitems | 0 ...crosoft.DotNet.HotReload.Agent.Data.shproj | 0 .../ResponseLoggingLevel.cs | 0 .../RuntimeManagedCodeUpdate.cs | 0 .../RuntimeStaticAssetUpdate.cs | 0 .../HotReloadAgent.Host/.editorconfig | 0 .../HotReloadAgent.Host/Listener.cs | 0 ...DotNet.HotReload.Agent.Host.Package.csproj | 0 ...soft.DotNet.HotReload.Agent.Host.projitems | 0 ...crosoft.DotNet.HotReload.Agent.Host.shproj | 0 .../HotReloadAgent.Host/NamedPipeTransport.cs | 0 .../HotReloadAgent.Host/StartupHook.cs | 0 .../HotReloadAgent.Host/Transport.cs | 0 .../HotReloadAgent.Host/WebSocketTransport.cs | 0 .../HotReloadAgent.PipeRpc/.editorconfig | 0 ...Net.HotReload.Agent.PipeRpc.Package.csproj | 0 ...t.DotNet.HotReload.Agent.PipeRpc.projitems | 0 ...soft.DotNet.HotReload.Agent.PipeRpc.shproj | 0 .../NamedPipeContract.cs | 0 .../StreamExtensions.cs | 0 ...otNet.HotReload.WebAssembly.Browser.csproj | 0 .../WebAssemblyHotReload.cs | 0 ...otReload.WebAssembly.Browser.lib.module.js | 0 .../HotReloadAgent/.editorconfig | 0 .../HotReloadAgent/AgentReporter.cs | 0 .../HotReloadAgent/HotReloadAgent.cs | 0 .../HotReloadAgent/IHotReloadAgent.cs | 0 .../MetadataUpdateHandlerInvoker.cs | 0 ...soft.DotNet.HotReload.Agent.Package.csproj | 0 ...Microsoft.DotNet.HotReload.Agent.projitems | 0 .../Microsoft.DotNet.HotReload.Agent.shproj | 0 .../HotReloadClient/.editorconfig | 0 .../HotReloadClient/ClientTransport.cs | 0 .../ClientTransportResponse.cs | 0 .../HotReloadClient/DefaultHotReloadClient.cs | 0 .../HotReloadClient/HotReloadClient.cs | 0 .../HotReloadClient/HotReloadClients.cs | 0 .../HotReloadManagedCodeUpdate.cs | 0 .../HotReloadStaticAssetUpdate.cs | 0 .../HotReloadClient/Logging/LogEvents.cs | 0 .../Logging/LoggingUtilities.cs | 0 ...oft.DotNet.HotReload.Client.Package.csproj | 0 ...icrosoft.DotNet.HotReload.Client.projitems | 0 .../Microsoft.DotNet.HotReload.Client.shproj | 0 .../NamedPipeClientTransport.cs | 0 .../HotReloadClient/StaticAsset.cs | 0 .../Utilities/ArrayBufferWriter.cs | 0 .../Utilities/EnvironmentUtilities.cs | 0 .../HotReloadClient/Utilities/None.cs | 0 .../Utilities/PathExtensions.cs | 0 .../HotReloadClient/Utilities/ResponseFunc.cs | 0 .../Web/AbstractBrowserRefreshServer.cs | 0 .../HotReloadClient/Web/BrowserConnection.cs | 0 .../Web/BrowserRefreshServer.cs | 0 .../Web/KestrelWebSocketServer.cs | 0 .../Web/MiddlewareEnvironmentVariables.cs | 0 .../Web/SharedSecretProvider.cs | 0 .../HotReloadClient/Web/StaticWebAsset.cs | 0 .../Web/StaticWebAssetPattern.cs | 0 .../Web/StaticWebAssetsManifest.cs | 0 .../Web/WebAssemblyHotReloadClient.cs | 0 .../HotReloadClient/Web/WebServerHost.cs | 0 .../WebSocketClientTransport.cs | 0 .../Watch.Aspire/DotNetWatchLauncher.cs | 0 .../Watch.Aspire/DotNetWatchOptions.cs | 0 ...osoft.DotNet.HotReload.Watch.Aspire.csproj | 0 .../Watch.Aspire/Program.cs | 0 .../Watch.Aspire/Properties/AssemblyInfo.cs | 0 .../AppModels/BlazorWebAssemblyAppModel.cs | 0 .../BlazorWebAssemblyHostedAppModel.cs | 0 .../Watch/AppModels/DefaultAppModel.cs | 0 .../Watch/AppModels/HotReloadAppModel.cs | 0 .../Watch/AppModels/MobileAppModel.cs | 0 .../Watch/AppModels/WebApplicationAppModel.cs | 0 .../Watch/AppModels/WebServerAppModel.cs | 0 .../Watch/Aspire/AspireServiceFactory.cs | 0 .../Watch/Browser/BrowserLauncher.cs | 0 .../Browser/BrowserRefreshServerFactory.cs | 0 .../Watch/Build/BuildNames.cs | 0 .../Watch/Build/BuildReporter.cs | 0 .../Watch/Build/BuildRequest.cs | 0 .../Watch/Build/BuildResult.cs | 0 .../Watch/Build/BuildUtilities.cs | 0 .../Watch/Build/EvaluationResult.cs | 0 .../Watch/Build/FileItem.cs | 0 .../Watch/Build/FilePathExclusions.cs | 0 .../Watch/Build/LoadedProjectGraph.cs | 0 .../Watch/Build/ProjectBuildManager.cs | 0 .../Watch/Build/ProjectGraphFactory.cs | 0 .../Watch/Build/ProjectGraphUtilities.cs | 0 .../Watch/Build/ProjectInstanceId.cs | 0 .../Watch/Build/ProjectRepresentation.cs | 0 .../Build/StaticWebAssetPattern.MSBuild.cs | 0 .../Watch/Context/DotNetWatchContext.cs | 0 .../Watch/Context/EnvironmentOptions.cs | 0 .../Watch/Context/EnvironmentVariables.cs | 0 .../Watch/Context/GlobalOptions.cs | 0 .../Watch/Context/ProjectOptions.cs | 0 .../Watch/FileWatcher/ChangeKind.cs | 0 .../Watch/FileWatcher/DirectoryWatcher.cs | 0 .../FileWatcher/EventBasedDirectoryWatcher.cs | 0 .../Watch/FileWatcher/FileWatcher.cs | 0 .../FileWatcher/PollingDirectoryWatcher.cs | 0 .../Watch/HotReload/CompilationHandler.cs | 0 .../Watch/HotReload/HotReloadDotNetWatcher.cs | 0 .../HotReloadProjectUpdatesBuilder.cs | 0 .../Microsoft.DotNet.HotReload.Watch.csproj | 0 .../Watch/Process/IRuntimeProcessLauncher.cs | 0 .../Process/IRuntimeProcessLauncherFactory.cs | 0 .../Watch/Process/LaunchSettingsProfile.cs | 0 .../Watch/Process/ProcessLaunchResult.cs | 0 .../Watch/Process/ProcessRunner.cs | 0 .../Watch/Process/ProcessSpec.cs | 0 .../Watch/Process/ProjectLauncher.cs | 0 .../Watch/Process/RunningProcess.cs | 0 .../Watch/Process/RunningProject.cs | 0 .../Process/WebServerProcessStateObserver.cs | 0 .../Watch/Properties/AssemblyInfo.cs | 0 .../Watch/RuntimeDependencies.props | 0 .../Watch/UI/BuildOutput.cs | 0 .../Watch/UI/ConsoleInputReader.cs | 0 .../Watch/UI/ConsoleReporter.cs | 0 .../Watch/UI/IConsole.cs | 0 .../Watch/UI/IReporter.cs | 0 .../Watch/UI/OutputLine.cs | 0 .../Watch/UI/PhysicalConsole.cs | 0 .../Watch/UI/RestartPrompt.cs | 0 .../Watch/UI/ShutdownHandler.cs | 0 .../Watch/Utilities/CommandLineUtilities.cs | 0 .../Watch/Utilities/Disposables.cs | 0 .../Watch/Utilities/Option.cs | 0 .../Watch/Utilities/PathUtilities.cs | 0 .../Watch/Utilities/ProcessUtilities.cs | 0 .../Watch/Utilities/Versions.cs | 0 .../Web.Middleware/.editorconfig | 0 .../Web.Middleware/ApplicationPaths.cs | 0 .../Web.Middleware/BlazorHotReload.js | 0 .../BlazorWasmHotReloadMiddleware.cs | 0 .../BrowserRefreshMiddleware.cs | 0 .../Web.Middleware/BrowserScriptMiddleware.cs | 0 .../Web.Middleware/HostingStartup.cs | 0 ...et.HotReload.Web.Middleware.Package.csproj | 0 ....DotNet.HotReload.Web.Middleware.projitems | 0 ...oft.DotNet.HotReload.Web.Middleware.shproj | 0 .../Web.Middleware/ResponseStreamWrapper.cs | 0 .../Web.Middleware/ScriptInjectingStream.cs | 0 .../Web.Middleware/StartupHook.cs | 0 .../WebSocketScriptInjection.js | 0 .../dotnet-watch.slnf | 44 +++++++++---------- .../CommandLine/CommandLineOptions.cs | 0 .../DotnetWatchCommandDefinition.cs | 0 .../dotnet-watch/DotnetToolSettings.xml | 0 .../dotnet-watch/Program.cs | 0 .../dotnet-watch/Properties/AssemblyInfo.cs | 0 .../Properties/launchSettings.json | 0 .../dotnet-watch/README.md | 0 .../dotnet-watch/Resources.resx | 0 .../dotnet-watch/Watch/BuildEvaluator.cs | 0 .../dotnet-watch/Watch/DotNetWatch.targets | 0 .../dotnet-watch/Watch/DotNetWatcher.cs | 0 .../Watch/MSBuildFileSetResult.cs | 0 .../Watch/MsBuildFileSetFactory.cs | 0 .../dotnet-watch/Watch/StaticFileHandler.cs | 0 .../dotnet-watch/dotnet-watch.csproj | 0 .../dotnet-watch/runtimeconfig.template.json | 0 .../dotnet-watch/xlf/Resources.cs.xlf | 0 .../dotnet-watch/xlf/Resources.de.xlf | 0 .../dotnet-watch/xlf/Resources.es.xlf | 0 .../dotnet-watch/xlf/Resources.fr.xlf | 0 .../dotnet-watch/xlf/Resources.it.xlf | 0 .../dotnet-watch/xlf/Resources.ja.xlf | 0 .../dotnet-watch/xlf/Resources.ko.xlf | 0 .../dotnet-watch/xlf/Resources.pl.xlf | 0 .../dotnet-watch/xlf/Resources.pt-BR.xlf | 0 .../dotnet-watch/xlf/Resources.ru.xlf | 0 .../dotnet-watch/xlf/Resources.tr.xlf | 0 .../dotnet-watch/xlf/Resources.zh-Hans.xlf | 0 .../dotnet-watch/xlf/Resources.zh-Hant.xlf | 0 src/Layout/redist/redist.csproj | 2 +- ...Microsoft.NET.Sdk.WebAssembly.Tasks.csproj | 2 +- ...pNetCore.Watch.BrowserRefresh.Tests.csproj | 2 +- ...osoft.DotNet.HotReload.Client.Tests.csproj | 6 +-- ...oft.DotNet.HotReload.Test.Utilities.csproj | 2 +- ...DotNet.HotReload.Watch.Aspire.Tests.csproj | 4 +- ...Extensions.DotNetDeltaApplier.Tests.csproj | 4 +- ...rosoft.WebTools.AspireService.Tests.csproj | 2 +- .../dotnet-watch.Tests.csproj | 6 +-- 223 files changed, 69 insertions(+), 69 deletions(-) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/.editorconfig (100%) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/AspireServerService.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/Contracts/IAspireServerEvents.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/Helpers/CertGenerator.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/Helpers/ExceptionExtensions.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/Helpers/HttpContextExtensions.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/Helpers/LoggerProvider.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/Helpers/SocketConnectionManager.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/Helpers/SocketUtilities.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/Helpers/WebSocketConnection.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/Microsoft.WebTools.AspireService.Package.csproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/Microsoft.WebTools.AspireService.projitems (100%) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/Microsoft.WebTools.AspireService.shproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/Models/ErrorResponse.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/Models/InfoResponse.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/Models/RunSessionRequest.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/AspireService/Models/SessionChangeNotification.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/BrowserRefresh/Properties/AssemblyInfo.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/DotNetDeltaApplier/Microsoft.Extensions.DotNetDeltaApplier.csproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/DotNetDeltaApplier/Properties/AssemblyInfo.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/DotNetWatchTasks/DotNetWatchTasks.csproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/DotNetWatchTasks/FileSetSerializer.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/DotNetWatchTasks/Utilities/CompilerFeatureRequiredAttribute.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/DotNetWatchTasks/Utilities/IsExternalInit.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/DotNetWatchTasks/Utilities/RequiredMemberAttribute.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Data/.editorconfig (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Data/AgentEnvironmentVariables.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Data/AgentMessageSeverity.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Data/Microsoft.DotNet.HotReload.Agent.Data.Package.csproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Data/Microsoft.DotNet.HotReload.Agent.Data.projitems (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Data/Microsoft.DotNet.HotReload.Agent.Data.shproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Data/ResponseLoggingLevel.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Data/RuntimeManagedCodeUpdate.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Data/RuntimeStaticAssetUpdate.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Host/.editorconfig (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Host/Listener.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Host/Microsoft.DotNet.HotReload.Agent.Host.Package.csproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Host/Microsoft.DotNet.HotReload.Agent.Host.projitems (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Host/Microsoft.DotNet.HotReload.Agent.Host.shproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Host/NamedPipeTransport.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Host/StartupHook.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Host/Transport.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.Host/WebSocketTransport.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.PipeRpc/.editorconfig (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.PipeRpc/Microsoft.DotNet.HotReload.Agent.PipeRpc.Package.csproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.PipeRpc/Microsoft.DotNet.HotReload.Agent.PipeRpc.projitems (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.PipeRpc/Microsoft.DotNet.HotReload.Agent.PipeRpc.shproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.PipeRpc/NamedPipeContract.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.PipeRpc/StreamExtensions.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.WebAssembly.Browser/Microsoft.DotNet.HotReload.WebAssembly.Browser.csproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.WebAssembly.Browser/WebAssemblyHotReload.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent.WebAssembly.Browser/wwwroot/Microsoft.DotNet.HotReload.WebAssembly.Browser.lib.module.js (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent/.editorconfig (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent/AgentReporter.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent/HotReloadAgent.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent/IHotReloadAgent.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent/MetadataUpdateHandlerInvoker.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent/Microsoft.DotNet.HotReload.Agent.Package.csproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent/Microsoft.DotNet.HotReload.Agent.projitems (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadAgent/Microsoft.DotNet.HotReload.Agent.shproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/.editorconfig (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/ClientTransport.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/ClientTransportResponse.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/DefaultHotReloadClient.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/HotReloadClient.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/HotReloadClients.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/HotReloadManagedCodeUpdate.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/HotReloadStaticAssetUpdate.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Logging/LogEvents.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Logging/LoggingUtilities.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Microsoft.DotNet.HotReload.Client.Package.csproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Microsoft.DotNet.HotReload.Client.projitems (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Microsoft.DotNet.HotReload.Client.shproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/NamedPipeClientTransport.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/StaticAsset.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Utilities/ArrayBufferWriter.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Utilities/EnvironmentUtilities.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Utilities/None.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Utilities/PathExtensions.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Utilities/ResponseFunc.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Web/AbstractBrowserRefreshServer.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Web/BrowserConnection.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Web/BrowserRefreshServer.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Web/KestrelWebSocketServer.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Web/MiddlewareEnvironmentVariables.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Web/SharedSecretProvider.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Web/StaticWebAsset.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Web/StaticWebAssetPattern.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Web/StaticWebAssetsManifest.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Web/WebAssemblyHotReloadClient.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/Web/WebServerHost.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/HotReloadClient/WebSocketClientTransport.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch.Aspire/DotNetWatchLauncher.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch.Aspire/DotNetWatchOptions.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch.Aspire/Microsoft.DotNet.HotReload.Watch.Aspire.csproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch.Aspire/Program.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch.Aspire/Properties/AssemblyInfo.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/AppModels/BlazorWebAssemblyAppModel.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/AppModels/BlazorWebAssemblyHostedAppModel.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/AppModels/DefaultAppModel.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/AppModels/HotReloadAppModel.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/AppModels/MobileAppModel.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/AppModels/WebApplicationAppModel.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/AppModels/WebServerAppModel.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Aspire/AspireServiceFactory.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Browser/BrowserLauncher.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Browser/BrowserRefreshServerFactory.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Build/BuildNames.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Build/BuildReporter.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Build/BuildRequest.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Build/BuildResult.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Build/BuildUtilities.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Build/EvaluationResult.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Build/FileItem.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Build/FilePathExclusions.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Build/LoadedProjectGraph.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Build/ProjectBuildManager.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Build/ProjectGraphFactory.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Build/ProjectGraphUtilities.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Build/ProjectInstanceId.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Build/ProjectRepresentation.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Build/StaticWebAssetPattern.MSBuild.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Context/DotNetWatchContext.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Context/EnvironmentOptions.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Context/EnvironmentVariables.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Context/GlobalOptions.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Context/ProjectOptions.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/FileWatcher/ChangeKind.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/FileWatcher/DirectoryWatcher.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/FileWatcher/EventBasedDirectoryWatcher.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/FileWatcher/FileWatcher.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/FileWatcher/PollingDirectoryWatcher.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/HotReload/CompilationHandler.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/HotReload/HotReloadDotNetWatcher.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/HotReload/HotReloadProjectUpdatesBuilder.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Microsoft.DotNet.HotReload.Watch.csproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Process/IRuntimeProcessLauncher.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Process/IRuntimeProcessLauncherFactory.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Process/LaunchSettingsProfile.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Process/ProcessLaunchResult.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Process/ProcessRunner.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Process/ProcessSpec.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Process/ProjectLauncher.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Process/RunningProcess.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Process/RunningProject.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Process/WebServerProcessStateObserver.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Properties/AssemblyInfo.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/RuntimeDependencies.props (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/UI/BuildOutput.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/UI/ConsoleInputReader.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/UI/ConsoleReporter.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/UI/IConsole.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/UI/IReporter.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/UI/OutputLine.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/UI/PhysicalConsole.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/UI/RestartPrompt.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/UI/ShutdownHandler.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Utilities/CommandLineUtilities.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Utilities/Disposables.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Utilities/Option.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Utilities/PathUtilities.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Utilities/ProcessUtilities.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Watch/Utilities/Versions.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Web.Middleware/.editorconfig (100%) rename src/{BuiltInTools => Dotnet.Watch}/Web.Middleware/ApplicationPaths.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Web.Middleware/BlazorHotReload.js (100%) rename src/{BuiltInTools => Dotnet.Watch}/Web.Middleware/BlazorWasmHotReloadMiddleware.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Web.Middleware/BrowserRefreshMiddleware.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Web.Middleware/BrowserScriptMiddleware.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Web.Middleware/HostingStartup.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Web.Middleware/Microsoft.DotNet.HotReload.Web.Middleware.Package.csproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/Web.Middleware/Microsoft.DotNet.HotReload.Web.Middleware.projitems (100%) rename src/{BuiltInTools => Dotnet.Watch}/Web.Middleware/Microsoft.DotNet.HotReload.Web.Middleware.shproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/Web.Middleware/ResponseStreamWrapper.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Web.Middleware/ScriptInjectingStream.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Web.Middleware/StartupHook.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/Web.Middleware/WebSocketScriptInjection.js (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch.slnf (57%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/CommandLine/CommandLineOptions.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/CommandLine/DotnetWatchCommandDefinition.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/DotnetToolSettings.xml (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/Program.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/Properties/AssemblyInfo.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/Properties/launchSettings.json (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/README.md (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/Resources.resx (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/Watch/BuildEvaluator.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/Watch/DotNetWatch.targets (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/Watch/DotNetWatcher.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/Watch/MSBuildFileSetResult.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/Watch/MsBuildFileSetFactory.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/Watch/StaticFileHandler.cs (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/dotnet-watch.csproj (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/runtimeconfig.template.json (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/xlf/Resources.cs.xlf (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/xlf/Resources.de.xlf (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/xlf/Resources.es.xlf (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/xlf/Resources.fr.xlf (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/xlf/Resources.it.xlf (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/xlf/Resources.ja.xlf (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/xlf/Resources.ko.xlf (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/xlf/Resources.pl.xlf (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/xlf/Resources.pt-BR.xlf (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/xlf/Resources.ru.xlf (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/xlf/Resources.tr.xlf (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/xlf/Resources.zh-Hans.xlf (100%) rename src/{BuiltInTools => Dotnet.Watch}/dotnet-watch/xlf/Resources.zh-Hant.xlf (100%) diff --git a/CODEOWNERS b/CODEOWNERS index d93147292fd8..43030908dc88 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -80,9 +80,9 @@ /test/TestAssets/TestProjects/Watch*/ @tmat @dotnet/roslyn-ide /test/dotnet-watch.Tests/ @tmat @dotnet/roslyn-ide /test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/ @dotnet/aspnet-blazor-eng -/src/BuiltInTools/* @tmat @dotnet/roslyn-ide -/src/BuiltInTools/BrowserRefresh @dotnet/aspnet-blazor-eng -/src/BuiltInTools/AspireService @dotnet/aspnet-blazor-eng +/src/Dotnet.Watch/ @tmat @dotnet/roslyn-ide +/src/Dotnet.Watch/BrowserRefresh @dotnet/aspnet-blazor-eng +/src/Dotnet.Watch/AspireService @dotnet/aspnet-blazor-eng # Compatibility tools owned by runtime team /src/Compatibility/ @dotnet/area-infrastructure-libraries diff --git a/cli.slnf b/cli.slnf index 630b3b217cc1..82fdbf143408 100644 --- a/cli.slnf +++ b/cli.slnf @@ -2,7 +2,7 @@ "solution": { "path": "sdk.slnx", "projects": [ - "src\\BuiltInTools\\dotnet-watch\\dotnet-watch.csproj", + "src\\Dotnet.Watch\\dotnet-watch\\dotnet-watch.csproj", "src\\Cli\\dotnet\\dotnet.csproj", "src\\Cli\\Microsoft.DotNet.Cli.Utils\\Microsoft.DotNet.Cli.Utils.csproj", "test\\dotnet-new.IntegrationTests\\dotnet-new.IntegrationTests.csproj", diff --git a/documentation/specs/dotnet-watch-for-maui.md b/documentation/specs/dotnet-watch-for-maui.md index b4915d05c09c..d09093d7d0c5 100644 --- a/documentation/specs/dotnet-watch-for-maui.md +++ b/documentation/specs/dotnet-watch-for-maui.md @@ -56,7 +56,7 @@ This ensures only processes that received the public key via the environment var ### 1. WebSocket Capability Detection -[ProjectGraphUtilities.cs](../../src/BuiltInTools/Watch/Build/ProjectGraphUtilities.cs) checks for the `HotReloadWebSockets` capability. +[ProjectGraphUtilities.cs](../../src/Dotnet.Watch/Watch/Build/ProjectGraphUtilities.cs) checks for the `HotReloadWebSockets` capability. ### 2. MobileAppModel diff --git a/eng/dotnet-format/validate.rsp b/eng/dotnet-format/validate.rsp index b42437137cd5..d38768e941ab 100644 --- a/eng/dotnet-format/validate.rsp +++ b/eng/dotnet-format/validate.rsp @@ -1,4 +1,4 @@ -./src/BuiltInTools/dotnet-format.slnf +./src/Dotnet.Format/dotnet-format.slnf --exclude ./tests/projects/ --verify-no-changes diff --git a/sdk.slnx b/sdk.slnx index 6ed9cd703fca..48eeb32e49b6 100644 --- a/sdk.slnx +++ b/sdk.slnx @@ -40,29 +40,29 @@ - - - - + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/source-build.slnf b/source-build.slnf index 5c332b844bcd..8b2d543e1f53 100644 --- a/source-build.slnf +++ b/source-build.slnf @@ -4,10 +4,10 @@ "projects": [ "src\\BlazorWasmSdk\\Tasks\\Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.csproj", "src\\BlazorWasmSdk\\Tool\\Microsoft.NET.Sdk.BlazorWebAssembly.Tool.csproj", - "src\\BuiltInTools\\BrowserRefresh\\Microsoft.AspNetCore.Watch.BrowserRefresh.csproj", - "src\\BuiltInTools\\DotNetDeltaApplier\\Microsoft.Extensions.DotNetDeltaApplier.csproj", - "src\\BuiltInTools\\DotNetWatchTasks\\DotNetWatchTasks.csproj", - "src\\BuiltInTools\\dotnet-watch\\dotnet-watch.csproj", + "src\\Dotnet.Watch\\BrowserRefresh\\Microsoft.AspNetCore.Watch.BrowserRefresh.csproj", + "src\\Dotnet.Watch\\DotNetDeltaApplier\\Microsoft.Extensions.DotNetDeltaApplier.csproj", + "src\\Dotnet.Watch\\DotNetWatchTasks\\DotNetWatchTasks.csproj", + "src\\Dotnet.Watch\\dotnet-watch\\dotnet-watch.csproj", "src\\Cli\\Microsoft.DotNet.Cli.Utils\\Microsoft.DotNet.Cli.Utils.csproj", "src\\Cli\\Microsoft.DotNet.Configurer\\Microsoft.DotNet.Configurer.csproj", "src\\Cli\\Microsoft.DotNet.InternalAbstractions\\Microsoft.DotNet.InternalAbstractions.csproj", diff --git a/src/BuiltInTools/AspireService/.editorconfig b/src/Dotnet.Watch/AspireService/.editorconfig similarity index 100% rename from src/BuiltInTools/AspireService/.editorconfig rename to src/Dotnet.Watch/AspireService/.editorconfig diff --git a/src/BuiltInTools/AspireService/AspireServerService.cs b/src/Dotnet.Watch/AspireService/AspireServerService.cs similarity index 100% rename from src/BuiltInTools/AspireService/AspireServerService.cs rename to src/Dotnet.Watch/AspireService/AspireServerService.cs diff --git a/src/BuiltInTools/AspireService/Contracts/IAspireServerEvents.cs b/src/Dotnet.Watch/AspireService/Contracts/IAspireServerEvents.cs similarity index 100% rename from src/BuiltInTools/AspireService/Contracts/IAspireServerEvents.cs rename to src/Dotnet.Watch/AspireService/Contracts/IAspireServerEvents.cs diff --git a/src/BuiltInTools/AspireService/Helpers/CertGenerator.cs b/src/Dotnet.Watch/AspireService/Helpers/CertGenerator.cs similarity index 100% rename from src/BuiltInTools/AspireService/Helpers/CertGenerator.cs rename to src/Dotnet.Watch/AspireService/Helpers/CertGenerator.cs diff --git a/src/BuiltInTools/AspireService/Helpers/ExceptionExtensions.cs b/src/Dotnet.Watch/AspireService/Helpers/ExceptionExtensions.cs similarity index 100% rename from src/BuiltInTools/AspireService/Helpers/ExceptionExtensions.cs rename to src/Dotnet.Watch/AspireService/Helpers/ExceptionExtensions.cs diff --git a/src/BuiltInTools/AspireService/Helpers/HttpContextExtensions.cs b/src/Dotnet.Watch/AspireService/Helpers/HttpContextExtensions.cs similarity index 100% rename from src/BuiltInTools/AspireService/Helpers/HttpContextExtensions.cs rename to src/Dotnet.Watch/AspireService/Helpers/HttpContextExtensions.cs diff --git a/src/BuiltInTools/AspireService/Helpers/LoggerProvider.cs b/src/Dotnet.Watch/AspireService/Helpers/LoggerProvider.cs similarity index 100% rename from src/BuiltInTools/AspireService/Helpers/LoggerProvider.cs rename to src/Dotnet.Watch/AspireService/Helpers/LoggerProvider.cs diff --git a/src/BuiltInTools/AspireService/Helpers/SocketConnectionManager.cs b/src/Dotnet.Watch/AspireService/Helpers/SocketConnectionManager.cs similarity index 100% rename from src/BuiltInTools/AspireService/Helpers/SocketConnectionManager.cs rename to src/Dotnet.Watch/AspireService/Helpers/SocketConnectionManager.cs diff --git a/src/BuiltInTools/AspireService/Helpers/SocketUtilities.cs b/src/Dotnet.Watch/AspireService/Helpers/SocketUtilities.cs similarity index 100% rename from src/BuiltInTools/AspireService/Helpers/SocketUtilities.cs rename to src/Dotnet.Watch/AspireService/Helpers/SocketUtilities.cs diff --git a/src/BuiltInTools/AspireService/Helpers/WebSocketConnection.cs b/src/Dotnet.Watch/AspireService/Helpers/WebSocketConnection.cs similarity index 100% rename from src/BuiltInTools/AspireService/Helpers/WebSocketConnection.cs rename to src/Dotnet.Watch/AspireService/Helpers/WebSocketConnection.cs diff --git a/src/BuiltInTools/AspireService/Microsoft.WebTools.AspireService.Package.csproj b/src/Dotnet.Watch/AspireService/Microsoft.WebTools.AspireService.Package.csproj similarity index 100% rename from src/BuiltInTools/AspireService/Microsoft.WebTools.AspireService.Package.csproj rename to src/Dotnet.Watch/AspireService/Microsoft.WebTools.AspireService.Package.csproj diff --git a/src/BuiltInTools/AspireService/Microsoft.WebTools.AspireService.projitems b/src/Dotnet.Watch/AspireService/Microsoft.WebTools.AspireService.projitems similarity index 100% rename from src/BuiltInTools/AspireService/Microsoft.WebTools.AspireService.projitems rename to src/Dotnet.Watch/AspireService/Microsoft.WebTools.AspireService.projitems diff --git a/src/BuiltInTools/AspireService/Microsoft.WebTools.AspireService.shproj b/src/Dotnet.Watch/AspireService/Microsoft.WebTools.AspireService.shproj similarity index 100% rename from src/BuiltInTools/AspireService/Microsoft.WebTools.AspireService.shproj rename to src/Dotnet.Watch/AspireService/Microsoft.WebTools.AspireService.shproj diff --git a/src/BuiltInTools/AspireService/Models/ErrorResponse.cs b/src/Dotnet.Watch/AspireService/Models/ErrorResponse.cs similarity index 100% rename from src/BuiltInTools/AspireService/Models/ErrorResponse.cs rename to src/Dotnet.Watch/AspireService/Models/ErrorResponse.cs diff --git a/src/BuiltInTools/AspireService/Models/InfoResponse.cs b/src/Dotnet.Watch/AspireService/Models/InfoResponse.cs similarity index 100% rename from src/BuiltInTools/AspireService/Models/InfoResponse.cs rename to src/Dotnet.Watch/AspireService/Models/InfoResponse.cs diff --git a/src/BuiltInTools/AspireService/Models/RunSessionRequest.cs b/src/Dotnet.Watch/AspireService/Models/RunSessionRequest.cs similarity index 100% rename from src/BuiltInTools/AspireService/Models/RunSessionRequest.cs rename to src/Dotnet.Watch/AspireService/Models/RunSessionRequest.cs diff --git a/src/BuiltInTools/AspireService/Models/SessionChangeNotification.cs b/src/Dotnet.Watch/AspireService/Models/SessionChangeNotification.cs similarity index 100% rename from src/BuiltInTools/AspireService/Models/SessionChangeNotification.cs rename to src/Dotnet.Watch/AspireService/Models/SessionChangeNotification.cs diff --git a/src/BuiltInTools/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj b/src/Dotnet.Watch/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj similarity index 100% rename from src/BuiltInTools/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj rename to src/Dotnet.Watch/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj diff --git a/src/BuiltInTools/BrowserRefresh/Properties/AssemblyInfo.cs b/src/Dotnet.Watch/BrowserRefresh/Properties/AssemblyInfo.cs similarity index 100% rename from src/BuiltInTools/BrowserRefresh/Properties/AssemblyInfo.cs rename to src/Dotnet.Watch/BrowserRefresh/Properties/AssemblyInfo.cs diff --git a/src/BuiltInTools/DotNetDeltaApplier/Microsoft.Extensions.DotNetDeltaApplier.csproj b/src/Dotnet.Watch/DotNetDeltaApplier/Microsoft.Extensions.DotNetDeltaApplier.csproj similarity index 100% rename from src/BuiltInTools/DotNetDeltaApplier/Microsoft.Extensions.DotNetDeltaApplier.csproj rename to src/Dotnet.Watch/DotNetDeltaApplier/Microsoft.Extensions.DotNetDeltaApplier.csproj diff --git a/src/BuiltInTools/DotNetDeltaApplier/Properties/AssemblyInfo.cs b/src/Dotnet.Watch/DotNetDeltaApplier/Properties/AssemblyInfo.cs similarity index 100% rename from src/BuiltInTools/DotNetDeltaApplier/Properties/AssemblyInfo.cs rename to src/Dotnet.Watch/DotNetDeltaApplier/Properties/AssemblyInfo.cs diff --git a/src/BuiltInTools/DotNetWatchTasks/DotNetWatchTasks.csproj b/src/Dotnet.Watch/DotNetWatchTasks/DotNetWatchTasks.csproj similarity index 100% rename from src/BuiltInTools/DotNetWatchTasks/DotNetWatchTasks.csproj rename to src/Dotnet.Watch/DotNetWatchTasks/DotNetWatchTasks.csproj diff --git a/src/BuiltInTools/DotNetWatchTasks/FileSetSerializer.cs b/src/Dotnet.Watch/DotNetWatchTasks/FileSetSerializer.cs similarity index 100% rename from src/BuiltInTools/DotNetWatchTasks/FileSetSerializer.cs rename to src/Dotnet.Watch/DotNetWatchTasks/FileSetSerializer.cs diff --git a/src/BuiltInTools/DotNetWatchTasks/Utilities/CompilerFeatureRequiredAttribute.cs b/src/Dotnet.Watch/DotNetWatchTasks/Utilities/CompilerFeatureRequiredAttribute.cs similarity index 100% rename from src/BuiltInTools/DotNetWatchTasks/Utilities/CompilerFeatureRequiredAttribute.cs rename to src/Dotnet.Watch/DotNetWatchTasks/Utilities/CompilerFeatureRequiredAttribute.cs diff --git a/src/BuiltInTools/DotNetWatchTasks/Utilities/IsExternalInit.cs b/src/Dotnet.Watch/DotNetWatchTasks/Utilities/IsExternalInit.cs similarity index 100% rename from src/BuiltInTools/DotNetWatchTasks/Utilities/IsExternalInit.cs rename to src/Dotnet.Watch/DotNetWatchTasks/Utilities/IsExternalInit.cs diff --git a/src/BuiltInTools/DotNetWatchTasks/Utilities/RequiredMemberAttribute.cs b/src/Dotnet.Watch/DotNetWatchTasks/Utilities/RequiredMemberAttribute.cs similarity index 100% rename from src/BuiltInTools/DotNetWatchTasks/Utilities/RequiredMemberAttribute.cs rename to src/Dotnet.Watch/DotNetWatchTasks/Utilities/RequiredMemberAttribute.cs diff --git a/src/BuiltInTools/HotReloadAgent.Data/.editorconfig b/src/Dotnet.Watch/HotReloadAgent.Data/.editorconfig similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Data/.editorconfig rename to src/Dotnet.Watch/HotReloadAgent.Data/.editorconfig diff --git a/src/BuiltInTools/HotReloadAgent.Data/AgentEnvironmentVariables.cs b/src/Dotnet.Watch/HotReloadAgent.Data/AgentEnvironmentVariables.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Data/AgentEnvironmentVariables.cs rename to src/Dotnet.Watch/HotReloadAgent.Data/AgentEnvironmentVariables.cs diff --git a/src/BuiltInTools/HotReloadAgent.Data/AgentMessageSeverity.cs b/src/Dotnet.Watch/HotReloadAgent.Data/AgentMessageSeverity.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Data/AgentMessageSeverity.cs rename to src/Dotnet.Watch/HotReloadAgent.Data/AgentMessageSeverity.cs diff --git a/src/BuiltInTools/HotReloadAgent.Data/Microsoft.DotNet.HotReload.Agent.Data.Package.csproj b/src/Dotnet.Watch/HotReloadAgent.Data/Microsoft.DotNet.HotReload.Agent.Data.Package.csproj similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Data/Microsoft.DotNet.HotReload.Agent.Data.Package.csproj rename to src/Dotnet.Watch/HotReloadAgent.Data/Microsoft.DotNet.HotReload.Agent.Data.Package.csproj diff --git a/src/BuiltInTools/HotReloadAgent.Data/Microsoft.DotNet.HotReload.Agent.Data.projitems b/src/Dotnet.Watch/HotReloadAgent.Data/Microsoft.DotNet.HotReload.Agent.Data.projitems similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Data/Microsoft.DotNet.HotReload.Agent.Data.projitems rename to src/Dotnet.Watch/HotReloadAgent.Data/Microsoft.DotNet.HotReload.Agent.Data.projitems diff --git a/src/BuiltInTools/HotReloadAgent.Data/Microsoft.DotNet.HotReload.Agent.Data.shproj b/src/Dotnet.Watch/HotReloadAgent.Data/Microsoft.DotNet.HotReload.Agent.Data.shproj similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Data/Microsoft.DotNet.HotReload.Agent.Data.shproj rename to src/Dotnet.Watch/HotReloadAgent.Data/Microsoft.DotNet.HotReload.Agent.Data.shproj diff --git a/src/BuiltInTools/HotReloadAgent.Data/ResponseLoggingLevel.cs b/src/Dotnet.Watch/HotReloadAgent.Data/ResponseLoggingLevel.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Data/ResponseLoggingLevel.cs rename to src/Dotnet.Watch/HotReloadAgent.Data/ResponseLoggingLevel.cs diff --git a/src/BuiltInTools/HotReloadAgent.Data/RuntimeManagedCodeUpdate.cs b/src/Dotnet.Watch/HotReloadAgent.Data/RuntimeManagedCodeUpdate.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Data/RuntimeManagedCodeUpdate.cs rename to src/Dotnet.Watch/HotReloadAgent.Data/RuntimeManagedCodeUpdate.cs diff --git a/src/BuiltInTools/HotReloadAgent.Data/RuntimeStaticAssetUpdate.cs b/src/Dotnet.Watch/HotReloadAgent.Data/RuntimeStaticAssetUpdate.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Data/RuntimeStaticAssetUpdate.cs rename to src/Dotnet.Watch/HotReloadAgent.Data/RuntimeStaticAssetUpdate.cs diff --git a/src/BuiltInTools/HotReloadAgent.Host/.editorconfig b/src/Dotnet.Watch/HotReloadAgent.Host/.editorconfig similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Host/.editorconfig rename to src/Dotnet.Watch/HotReloadAgent.Host/.editorconfig diff --git a/src/BuiltInTools/HotReloadAgent.Host/Listener.cs b/src/Dotnet.Watch/HotReloadAgent.Host/Listener.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Host/Listener.cs rename to src/Dotnet.Watch/HotReloadAgent.Host/Listener.cs diff --git a/src/BuiltInTools/HotReloadAgent.Host/Microsoft.DotNet.HotReload.Agent.Host.Package.csproj b/src/Dotnet.Watch/HotReloadAgent.Host/Microsoft.DotNet.HotReload.Agent.Host.Package.csproj similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Host/Microsoft.DotNet.HotReload.Agent.Host.Package.csproj rename to src/Dotnet.Watch/HotReloadAgent.Host/Microsoft.DotNet.HotReload.Agent.Host.Package.csproj diff --git a/src/BuiltInTools/HotReloadAgent.Host/Microsoft.DotNet.HotReload.Agent.Host.projitems b/src/Dotnet.Watch/HotReloadAgent.Host/Microsoft.DotNet.HotReload.Agent.Host.projitems similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Host/Microsoft.DotNet.HotReload.Agent.Host.projitems rename to src/Dotnet.Watch/HotReloadAgent.Host/Microsoft.DotNet.HotReload.Agent.Host.projitems diff --git a/src/BuiltInTools/HotReloadAgent.Host/Microsoft.DotNet.HotReload.Agent.Host.shproj b/src/Dotnet.Watch/HotReloadAgent.Host/Microsoft.DotNet.HotReload.Agent.Host.shproj similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Host/Microsoft.DotNet.HotReload.Agent.Host.shproj rename to src/Dotnet.Watch/HotReloadAgent.Host/Microsoft.DotNet.HotReload.Agent.Host.shproj diff --git a/src/BuiltInTools/HotReloadAgent.Host/NamedPipeTransport.cs b/src/Dotnet.Watch/HotReloadAgent.Host/NamedPipeTransport.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Host/NamedPipeTransport.cs rename to src/Dotnet.Watch/HotReloadAgent.Host/NamedPipeTransport.cs diff --git a/src/BuiltInTools/HotReloadAgent.Host/StartupHook.cs b/src/Dotnet.Watch/HotReloadAgent.Host/StartupHook.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Host/StartupHook.cs rename to src/Dotnet.Watch/HotReloadAgent.Host/StartupHook.cs diff --git a/src/BuiltInTools/HotReloadAgent.Host/Transport.cs b/src/Dotnet.Watch/HotReloadAgent.Host/Transport.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Host/Transport.cs rename to src/Dotnet.Watch/HotReloadAgent.Host/Transport.cs diff --git a/src/BuiltInTools/HotReloadAgent.Host/WebSocketTransport.cs b/src/Dotnet.Watch/HotReloadAgent.Host/WebSocketTransport.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent.Host/WebSocketTransport.cs rename to src/Dotnet.Watch/HotReloadAgent.Host/WebSocketTransport.cs diff --git a/src/BuiltInTools/HotReloadAgent.PipeRpc/.editorconfig b/src/Dotnet.Watch/HotReloadAgent.PipeRpc/.editorconfig similarity index 100% rename from src/BuiltInTools/HotReloadAgent.PipeRpc/.editorconfig rename to src/Dotnet.Watch/HotReloadAgent.PipeRpc/.editorconfig diff --git a/src/BuiltInTools/HotReloadAgent.PipeRpc/Microsoft.DotNet.HotReload.Agent.PipeRpc.Package.csproj b/src/Dotnet.Watch/HotReloadAgent.PipeRpc/Microsoft.DotNet.HotReload.Agent.PipeRpc.Package.csproj similarity index 100% rename from src/BuiltInTools/HotReloadAgent.PipeRpc/Microsoft.DotNet.HotReload.Agent.PipeRpc.Package.csproj rename to src/Dotnet.Watch/HotReloadAgent.PipeRpc/Microsoft.DotNet.HotReload.Agent.PipeRpc.Package.csproj diff --git a/src/BuiltInTools/HotReloadAgent.PipeRpc/Microsoft.DotNet.HotReload.Agent.PipeRpc.projitems b/src/Dotnet.Watch/HotReloadAgent.PipeRpc/Microsoft.DotNet.HotReload.Agent.PipeRpc.projitems similarity index 100% rename from src/BuiltInTools/HotReloadAgent.PipeRpc/Microsoft.DotNet.HotReload.Agent.PipeRpc.projitems rename to src/Dotnet.Watch/HotReloadAgent.PipeRpc/Microsoft.DotNet.HotReload.Agent.PipeRpc.projitems diff --git a/src/BuiltInTools/HotReloadAgent.PipeRpc/Microsoft.DotNet.HotReload.Agent.PipeRpc.shproj b/src/Dotnet.Watch/HotReloadAgent.PipeRpc/Microsoft.DotNet.HotReload.Agent.PipeRpc.shproj similarity index 100% rename from src/BuiltInTools/HotReloadAgent.PipeRpc/Microsoft.DotNet.HotReload.Agent.PipeRpc.shproj rename to src/Dotnet.Watch/HotReloadAgent.PipeRpc/Microsoft.DotNet.HotReload.Agent.PipeRpc.shproj diff --git a/src/BuiltInTools/HotReloadAgent.PipeRpc/NamedPipeContract.cs b/src/Dotnet.Watch/HotReloadAgent.PipeRpc/NamedPipeContract.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent.PipeRpc/NamedPipeContract.cs rename to src/Dotnet.Watch/HotReloadAgent.PipeRpc/NamedPipeContract.cs diff --git a/src/BuiltInTools/HotReloadAgent.PipeRpc/StreamExtensions.cs b/src/Dotnet.Watch/HotReloadAgent.PipeRpc/StreamExtensions.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent.PipeRpc/StreamExtensions.cs rename to src/Dotnet.Watch/HotReloadAgent.PipeRpc/StreamExtensions.cs diff --git a/src/BuiltInTools/HotReloadAgent.WebAssembly.Browser/Microsoft.DotNet.HotReload.WebAssembly.Browser.csproj b/src/Dotnet.Watch/HotReloadAgent.WebAssembly.Browser/Microsoft.DotNet.HotReload.WebAssembly.Browser.csproj similarity index 100% rename from src/BuiltInTools/HotReloadAgent.WebAssembly.Browser/Microsoft.DotNet.HotReload.WebAssembly.Browser.csproj rename to src/Dotnet.Watch/HotReloadAgent.WebAssembly.Browser/Microsoft.DotNet.HotReload.WebAssembly.Browser.csproj diff --git a/src/BuiltInTools/HotReloadAgent.WebAssembly.Browser/WebAssemblyHotReload.cs b/src/Dotnet.Watch/HotReloadAgent.WebAssembly.Browser/WebAssemblyHotReload.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent.WebAssembly.Browser/WebAssemblyHotReload.cs rename to src/Dotnet.Watch/HotReloadAgent.WebAssembly.Browser/WebAssemblyHotReload.cs diff --git a/src/BuiltInTools/HotReloadAgent.WebAssembly.Browser/wwwroot/Microsoft.DotNet.HotReload.WebAssembly.Browser.lib.module.js b/src/Dotnet.Watch/HotReloadAgent.WebAssembly.Browser/wwwroot/Microsoft.DotNet.HotReload.WebAssembly.Browser.lib.module.js similarity index 100% rename from src/BuiltInTools/HotReloadAgent.WebAssembly.Browser/wwwroot/Microsoft.DotNet.HotReload.WebAssembly.Browser.lib.module.js rename to src/Dotnet.Watch/HotReloadAgent.WebAssembly.Browser/wwwroot/Microsoft.DotNet.HotReload.WebAssembly.Browser.lib.module.js diff --git a/src/BuiltInTools/HotReloadAgent/.editorconfig b/src/Dotnet.Watch/HotReloadAgent/.editorconfig similarity index 100% rename from src/BuiltInTools/HotReloadAgent/.editorconfig rename to src/Dotnet.Watch/HotReloadAgent/.editorconfig diff --git a/src/BuiltInTools/HotReloadAgent/AgentReporter.cs b/src/Dotnet.Watch/HotReloadAgent/AgentReporter.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent/AgentReporter.cs rename to src/Dotnet.Watch/HotReloadAgent/AgentReporter.cs diff --git a/src/BuiltInTools/HotReloadAgent/HotReloadAgent.cs b/src/Dotnet.Watch/HotReloadAgent/HotReloadAgent.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent/HotReloadAgent.cs rename to src/Dotnet.Watch/HotReloadAgent/HotReloadAgent.cs diff --git a/src/BuiltInTools/HotReloadAgent/IHotReloadAgent.cs b/src/Dotnet.Watch/HotReloadAgent/IHotReloadAgent.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent/IHotReloadAgent.cs rename to src/Dotnet.Watch/HotReloadAgent/IHotReloadAgent.cs diff --git a/src/BuiltInTools/HotReloadAgent/MetadataUpdateHandlerInvoker.cs b/src/Dotnet.Watch/HotReloadAgent/MetadataUpdateHandlerInvoker.cs similarity index 100% rename from src/BuiltInTools/HotReloadAgent/MetadataUpdateHandlerInvoker.cs rename to src/Dotnet.Watch/HotReloadAgent/MetadataUpdateHandlerInvoker.cs diff --git a/src/BuiltInTools/HotReloadAgent/Microsoft.DotNet.HotReload.Agent.Package.csproj b/src/Dotnet.Watch/HotReloadAgent/Microsoft.DotNet.HotReload.Agent.Package.csproj similarity index 100% rename from src/BuiltInTools/HotReloadAgent/Microsoft.DotNet.HotReload.Agent.Package.csproj rename to src/Dotnet.Watch/HotReloadAgent/Microsoft.DotNet.HotReload.Agent.Package.csproj diff --git a/src/BuiltInTools/HotReloadAgent/Microsoft.DotNet.HotReload.Agent.projitems b/src/Dotnet.Watch/HotReloadAgent/Microsoft.DotNet.HotReload.Agent.projitems similarity index 100% rename from src/BuiltInTools/HotReloadAgent/Microsoft.DotNet.HotReload.Agent.projitems rename to src/Dotnet.Watch/HotReloadAgent/Microsoft.DotNet.HotReload.Agent.projitems diff --git a/src/BuiltInTools/HotReloadAgent/Microsoft.DotNet.HotReload.Agent.shproj b/src/Dotnet.Watch/HotReloadAgent/Microsoft.DotNet.HotReload.Agent.shproj similarity index 100% rename from src/BuiltInTools/HotReloadAgent/Microsoft.DotNet.HotReload.Agent.shproj rename to src/Dotnet.Watch/HotReloadAgent/Microsoft.DotNet.HotReload.Agent.shproj diff --git a/src/BuiltInTools/HotReloadClient/.editorconfig b/src/Dotnet.Watch/HotReloadClient/.editorconfig similarity index 100% rename from src/BuiltInTools/HotReloadClient/.editorconfig rename to src/Dotnet.Watch/HotReloadClient/.editorconfig diff --git a/src/BuiltInTools/HotReloadClient/ClientTransport.cs b/src/Dotnet.Watch/HotReloadClient/ClientTransport.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/ClientTransport.cs rename to src/Dotnet.Watch/HotReloadClient/ClientTransport.cs diff --git a/src/BuiltInTools/HotReloadClient/ClientTransportResponse.cs b/src/Dotnet.Watch/HotReloadClient/ClientTransportResponse.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/ClientTransportResponse.cs rename to src/Dotnet.Watch/HotReloadClient/ClientTransportResponse.cs diff --git a/src/BuiltInTools/HotReloadClient/DefaultHotReloadClient.cs b/src/Dotnet.Watch/HotReloadClient/DefaultHotReloadClient.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/DefaultHotReloadClient.cs rename to src/Dotnet.Watch/HotReloadClient/DefaultHotReloadClient.cs diff --git a/src/BuiltInTools/HotReloadClient/HotReloadClient.cs b/src/Dotnet.Watch/HotReloadClient/HotReloadClient.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/HotReloadClient.cs rename to src/Dotnet.Watch/HotReloadClient/HotReloadClient.cs diff --git a/src/BuiltInTools/HotReloadClient/HotReloadClients.cs b/src/Dotnet.Watch/HotReloadClient/HotReloadClients.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/HotReloadClients.cs rename to src/Dotnet.Watch/HotReloadClient/HotReloadClients.cs diff --git a/src/BuiltInTools/HotReloadClient/HotReloadManagedCodeUpdate.cs b/src/Dotnet.Watch/HotReloadClient/HotReloadManagedCodeUpdate.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/HotReloadManagedCodeUpdate.cs rename to src/Dotnet.Watch/HotReloadClient/HotReloadManagedCodeUpdate.cs diff --git a/src/BuiltInTools/HotReloadClient/HotReloadStaticAssetUpdate.cs b/src/Dotnet.Watch/HotReloadClient/HotReloadStaticAssetUpdate.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/HotReloadStaticAssetUpdate.cs rename to src/Dotnet.Watch/HotReloadClient/HotReloadStaticAssetUpdate.cs diff --git a/src/BuiltInTools/HotReloadClient/Logging/LogEvents.cs b/src/Dotnet.Watch/HotReloadClient/Logging/LogEvents.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Logging/LogEvents.cs rename to src/Dotnet.Watch/HotReloadClient/Logging/LogEvents.cs diff --git a/src/BuiltInTools/HotReloadClient/Logging/LoggingUtilities.cs b/src/Dotnet.Watch/HotReloadClient/Logging/LoggingUtilities.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Logging/LoggingUtilities.cs rename to src/Dotnet.Watch/HotReloadClient/Logging/LoggingUtilities.cs diff --git a/src/BuiltInTools/HotReloadClient/Microsoft.DotNet.HotReload.Client.Package.csproj b/src/Dotnet.Watch/HotReloadClient/Microsoft.DotNet.HotReload.Client.Package.csproj similarity index 100% rename from src/BuiltInTools/HotReloadClient/Microsoft.DotNet.HotReload.Client.Package.csproj rename to src/Dotnet.Watch/HotReloadClient/Microsoft.DotNet.HotReload.Client.Package.csproj diff --git a/src/BuiltInTools/HotReloadClient/Microsoft.DotNet.HotReload.Client.projitems b/src/Dotnet.Watch/HotReloadClient/Microsoft.DotNet.HotReload.Client.projitems similarity index 100% rename from src/BuiltInTools/HotReloadClient/Microsoft.DotNet.HotReload.Client.projitems rename to src/Dotnet.Watch/HotReloadClient/Microsoft.DotNet.HotReload.Client.projitems diff --git a/src/BuiltInTools/HotReloadClient/Microsoft.DotNet.HotReload.Client.shproj b/src/Dotnet.Watch/HotReloadClient/Microsoft.DotNet.HotReload.Client.shproj similarity index 100% rename from src/BuiltInTools/HotReloadClient/Microsoft.DotNet.HotReload.Client.shproj rename to src/Dotnet.Watch/HotReloadClient/Microsoft.DotNet.HotReload.Client.shproj diff --git a/src/BuiltInTools/HotReloadClient/NamedPipeClientTransport.cs b/src/Dotnet.Watch/HotReloadClient/NamedPipeClientTransport.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/NamedPipeClientTransport.cs rename to src/Dotnet.Watch/HotReloadClient/NamedPipeClientTransport.cs diff --git a/src/BuiltInTools/HotReloadClient/StaticAsset.cs b/src/Dotnet.Watch/HotReloadClient/StaticAsset.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/StaticAsset.cs rename to src/Dotnet.Watch/HotReloadClient/StaticAsset.cs diff --git a/src/BuiltInTools/HotReloadClient/Utilities/ArrayBufferWriter.cs b/src/Dotnet.Watch/HotReloadClient/Utilities/ArrayBufferWriter.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Utilities/ArrayBufferWriter.cs rename to src/Dotnet.Watch/HotReloadClient/Utilities/ArrayBufferWriter.cs diff --git a/src/BuiltInTools/HotReloadClient/Utilities/EnvironmentUtilities.cs b/src/Dotnet.Watch/HotReloadClient/Utilities/EnvironmentUtilities.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Utilities/EnvironmentUtilities.cs rename to src/Dotnet.Watch/HotReloadClient/Utilities/EnvironmentUtilities.cs diff --git a/src/BuiltInTools/HotReloadClient/Utilities/None.cs b/src/Dotnet.Watch/HotReloadClient/Utilities/None.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Utilities/None.cs rename to src/Dotnet.Watch/HotReloadClient/Utilities/None.cs diff --git a/src/BuiltInTools/HotReloadClient/Utilities/PathExtensions.cs b/src/Dotnet.Watch/HotReloadClient/Utilities/PathExtensions.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Utilities/PathExtensions.cs rename to src/Dotnet.Watch/HotReloadClient/Utilities/PathExtensions.cs diff --git a/src/BuiltInTools/HotReloadClient/Utilities/ResponseFunc.cs b/src/Dotnet.Watch/HotReloadClient/Utilities/ResponseFunc.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Utilities/ResponseFunc.cs rename to src/Dotnet.Watch/HotReloadClient/Utilities/ResponseFunc.cs diff --git a/src/BuiltInTools/HotReloadClient/Web/AbstractBrowserRefreshServer.cs b/src/Dotnet.Watch/HotReloadClient/Web/AbstractBrowserRefreshServer.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Web/AbstractBrowserRefreshServer.cs rename to src/Dotnet.Watch/HotReloadClient/Web/AbstractBrowserRefreshServer.cs diff --git a/src/BuiltInTools/HotReloadClient/Web/BrowserConnection.cs b/src/Dotnet.Watch/HotReloadClient/Web/BrowserConnection.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Web/BrowserConnection.cs rename to src/Dotnet.Watch/HotReloadClient/Web/BrowserConnection.cs diff --git a/src/BuiltInTools/HotReloadClient/Web/BrowserRefreshServer.cs b/src/Dotnet.Watch/HotReloadClient/Web/BrowserRefreshServer.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Web/BrowserRefreshServer.cs rename to src/Dotnet.Watch/HotReloadClient/Web/BrowserRefreshServer.cs diff --git a/src/BuiltInTools/HotReloadClient/Web/KestrelWebSocketServer.cs b/src/Dotnet.Watch/HotReloadClient/Web/KestrelWebSocketServer.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Web/KestrelWebSocketServer.cs rename to src/Dotnet.Watch/HotReloadClient/Web/KestrelWebSocketServer.cs diff --git a/src/BuiltInTools/HotReloadClient/Web/MiddlewareEnvironmentVariables.cs b/src/Dotnet.Watch/HotReloadClient/Web/MiddlewareEnvironmentVariables.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Web/MiddlewareEnvironmentVariables.cs rename to src/Dotnet.Watch/HotReloadClient/Web/MiddlewareEnvironmentVariables.cs diff --git a/src/BuiltInTools/HotReloadClient/Web/SharedSecretProvider.cs b/src/Dotnet.Watch/HotReloadClient/Web/SharedSecretProvider.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Web/SharedSecretProvider.cs rename to src/Dotnet.Watch/HotReloadClient/Web/SharedSecretProvider.cs diff --git a/src/BuiltInTools/HotReloadClient/Web/StaticWebAsset.cs b/src/Dotnet.Watch/HotReloadClient/Web/StaticWebAsset.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Web/StaticWebAsset.cs rename to src/Dotnet.Watch/HotReloadClient/Web/StaticWebAsset.cs diff --git a/src/BuiltInTools/HotReloadClient/Web/StaticWebAssetPattern.cs b/src/Dotnet.Watch/HotReloadClient/Web/StaticWebAssetPattern.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Web/StaticWebAssetPattern.cs rename to src/Dotnet.Watch/HotReloadClient/Web/StaticWebAssetPattern.cs diff --git a/src/BuiltInTools/HotReloadClient/Web/StaticWebAssetsManifest.cs b/src/Dotnet.Watch/HotReloadClient/Web/StaticWebAssetsManifest.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Web/StaticWebAssetsManifest.cs rename to src/Dotnet.Watch/HotReloadClient/Web/StaticWebAssetsManifest.cs diff --git a/src/BuiltInTools/HotReloadClient/Web/WebAssemblyHotReloadClient.cs b/src/Dotnet.Watch/HotReloadClient/Web/WebAssemblyHotReloadClient.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Web/WebAssemblyHotReloadClient.cs rename to src/Dotnet.Watch/HotReloadClient/Web/WebAssemblyHotReloadClient.cs diff --git a/src/BuiltInTools/HotReloadClient/Web/WebServerHost.cs b/src/Dotnet.Watch/HotReloadClient/Web/WebServerHost.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/Web/WebServerHost.cs rename to src/Dotnet.Watch/HotReloadClient/Web/WebServerHost.cs diff --git a/src/BuiltInTools/HotReloadClient/WebSocketClientTransport.cs b/src/Dotnet.Watch/HotReloadClient/WebSocketClientTransport.cs similarity index 100% rename from src/BuiltInTools/HotReloadClient/WebSocketClientTransport.cs rename to src/Dotnet.Watch/HotReloadClient/WebSocketClientTransport.cs diff --git a/src/BuiltInTools/Watch.Aspire/DotNetWatchLauncher.cs b/src/Dotnet.Watch/Watch.Aspire/DotNetWatchLauncher.cs similarity index 100% rename from src/BuiltInTools/Watch.Aspire/DotNetWatchLauncher.cs rename to src/Dotnet.Watch/Watch.Aspire/DotNetWatchLauncher.cs diff --git a/src/BuiltInTools/Watch.Aspire/DotNetWatchOptions.cs b/src/Dotnet.Watch/Watch.Aspire/DotNetWatchOptions.cs similarity index 100% rename from src/BuiltInTools/Watch.Aspire/DotNetWatchOptions.cs rename to src/Dotnet.Watch/Watch.Aspire/DotNetWatchOptions.cs diff --git a/src/BuiltInTools/Watch.Aspire/Microsoft.DotNet.HotReload.Watch.Aspire.csproj b/src/Dotnet.Watch/Watch.Aspire/Microsoft.DotNet.HotReload.Watch.Aspire.csproj similarity index 100% rename from src/BuiltInTools/Watch.Aspire/Microsoft.DotNet.HotReload.Watch.Aspire.csproj rename to src/Dotnet.Watch/Watch.Aspire/Microsoft.DotNet.HotReload.Watch.Aspire.csproj diff --git a/src/BuiltInTools/Watch.Aspire/Program.cs b/src/Dotnet.Watch/Watch.Aspire/Program.cs similarity index 100% rename from src/BuiltInTools/Watch.Aspire/Program.cs rename to src/Dotnet.Watch/Watch.Aspire/Program.cs diff --git a/src/BuiltInTools/Watch.Aspire/Properties/AssemblyInfo.cs b/src/Dotnet.Watch/Watch.Aspire/Properties/AssemblyInfo.cs similarity index 100% rename from src/BuiltInTools/Watch.Aspire/Properties/AssemblyInfo.cs rename to src/Dotnet.Watch/Watch.Aspire/Properties/AssemblyInfo.cs diff --git a/src/BuiltInTools/Watch/AppModels/BlazorWebAssemblyAppModel.cs b/src/Dotnet.Watch/Watch/AppModels/BlazorWebAssemblyAppModel.cs similarity index 100% rename from src/BuiltInTools/Watch/AppModels/BlazorWebAssemblyAppModel.cs rename to src/Dotnet.Watch/Watch/AppModels/BlazorWebAssemblyAppModel.cs diff --git a/src/BuiltInTools/Watch/AppModels/BlazorWebAssemblyHostedAppModel.cs b/src/Dotnet.Watch/Watch/AppModels/BlazorWebAssemblyHostedAppModel.cs similarity index 100% rename from src/BuiltInTools/Watch/AppModels/BlazorWebAssemblyHostedAppModel.cs rename to src/Dotnet.Watch/Watch/AppModels/BlazorWebAssemblyHostedAppModel.cs diff --git a/src/BuiltInTools/Watch/AppModels/DefaultAppModel.cs b/src/Dotnet.Watch/Watch/AppModels/DefaultAppModel.cs similarity index 100% rename from src/BuiltInTools/Watch/AppModels/DefaultAppModel.cs rename to src/Dotnet.Watch/Watch/AppModels/DefaultAppModel.cs diff --git a/src/BuiltInTools/Watch/AppModels/HotReloadAppModel.cs b/src/Dotnet.Watch/Watch/AppModels/HotReloadAppModel.cs similarity index 100% rename from src/BuiltInTools/Watch/AppModels/HotReloadAppModel.cs rename to src/Dotnet.Watch/Watch/AppModels/HotReloadAppModel.cs diff --git a/src/BuiltInTools/Watch/AppModels/MobileAppModel.cs b/src/Dotnet.Watch/Watch/AppModels/MobileAppModel.cs similarity index 100% rename from src/BuiltInTools/Watch/AppModels/MobileAppModel.cs rename to src/Dotnet.Watch/Watch/AppModels/MobileAppModel.cs diff --git a/src/BuiltInTools/Watch/AppModels/WebApplicationAppModel.cs b/src/Dotnet.Watch/Watch/AppModels/WebApplicationAppModel.cs similarity index 100% rename from src/BuiltInTools/Watch/AppModels/WebApplicationAppModel.cs rename to src/Dotnet.Watch/Watch/AppModels/WebApplicationAppModel.cs diff --git a/src/BuiltInTools/Watch/AppModels/WebServerAppModel.cs b/src/Dotnet.Watch/Watch/AppModels/WebServerAppModel.cs similarity index 100% rename from src/BuiltInTools/Watch/AppModels/WebServerAppModel.cs rename to src/Dotnet.Watch/Watch/AppModels/WebServerAppModel.cs diff --git a/src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs b/src/Dotnet.Watch/Watch/Aspire/AspireServiceFactory.cs similarity index 100% rename from src/BuiltInTools/Watch/Aspire/AspireServiceFactory.cs rename to src/Dotnet.Watch/Watch/Aspire/AspireServiceFactory.cs diff --git a/src/BuiltInTools/Watch/Browser/BrowserLauncher.cs b/src/Dotnet.Watch/Watch/Browser/BrowserLauncher.cs similarity index 100% rename from src/BuiltInTools/Watch/Browser/BrowserLauncher.cs rename to src/Dotnet.Watch/Watch/Browser/BrowserLauncher.cs diff --git a/src/BuiltInTools/Watch/Browser/BrowserRefreshServerFactory.cs b/src/Dotnet.Watch/Watch/Browser/BrowserRefreshServerFactory.cs similarity index 100% rename from src/BuiltInTools/Watch/Browser/BrowserRefreshServerFactory.cs rename to src/Dotnet.Watch/Watch/Browser/BrowserRefreshServerFactory.cs diff --git a/src/BuiltInTools/Watch/Build/BuildNames.cs b/src/Dotnet.Watch/Watch/Build/BuildNames.cs similarity index 100% rename from src/BuiltInTools/Watch/Build/BuildNames.cs rename to src/Dotnet.Watch/Watch/Build/BuildNames.cs diff --git a/src/BuiltInTools/Watch/Build/BuildReporter.cs b/src/Dotnet.Watch/Watch/Build/BuildReporter.cs similarity index 100% rename from src/BuiltInTools/Watch/Build/BuildReporter.cs rename to src/Dotnet.Watch/Watch/Build/BuildReporter.cs diff --git a/src/BuiltInTools/Watch/Build/BuildRequest.cs b/src/Dotnet.Watch/Watch/Build/BuildRequest.cs similarity index 100% rename from src/BuiltInTools/Watch/Build/BuildRequest.cs rename to src/Dotnet.Watch/Watch/Build/BuildRequest.cs diff --git a/src/BuiltInTools/Watch/Build/BuildResult.cs b/src/Dotnet.Watch/Watch/Build/BuildResult.cs similarity index 100% rename from src/BuiltInTools/Watch/Build/BuildResult.cs rename to src/Dotnet.Watch/Watch/Build/BuildResult.cs diff --git a/src/BuiltInTools/Watch/Build/BuildUtilities.cs b/src/Dotnet.Watch/Watch/Build/BuildUtilities.cs similarity index 100% rename from src/BuiltInTools/Watch/Build/BuildUtilities.cs rename to src/Dotnet.Watch/Watch/Build/BuildUtilities.cs diff --git a/src/BuiltInTools/Watch/Build/EvaluationResult.cs b/src/Dotnet.Watch/Watch/Build/EvaluationResult.cs similarity index 100% rename from src/BuiltInTools/Watch/Build/EvaluationResult.cs rename to src/Dotnet.Watch/Watch/Build/EvaluationResult.cs diff --git a/src/BuiltInTools/Watch/Build/FileItem.cs b/src/Dotnet.Watch/Watch/Build/FileItem.cs similarity index 100% rename from src/BuiltInTools/Watch/Build/FileItem.cs rename to src/Dotnet.Watch/Watch/Build/FileItem.cs diff --git a/src/BuiltInTools/Watch/Build/FilePathExclusions.cs b/src/Dotnet.Watch/Watch/Build/FilePathExclusions.cs similarity index 100% rename from src/BuiltInTools/Watch/Build/FilePathExclusions.cs rename to src/Dotnet.Watch/Watch/Build/FilePathExclusions.cs diff --git a/src/BuiltInTools/Watch/Build/LoadedProjectGraph.cs b/src/Dotnet.Watch/Watch/Build/LoadedProjectGraph.cs similarity index 100% rename from src/BuiltInTools/Watch/Build/LoadedProjectGraph.cs rename to src/Dotnet.Watch/Watch/Build/LoadedProjectGraph.cs diff --git a/src/BuiltInTools/Watch/Build/ProjectBuildManager.cs b/src/Dotnet.Watch/Watch/Build/ProjectBuildManager.cs similarity index 100% rename from src/BuiltInTools/Watch/Build/ProjectBuildManager.cs rename to src/Dotnet.Watch/Watch/Build/ProjectBuildManager.cs diff --git a/src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs b/src/Dotnet.Watch/Watch/Build/ProjectGraphFactory.cs similarity index 100% rename from src/BuiltInTools/Watch/Build/ProjectGraphFactory.cs rename to src/Dotnet.Watch/Watch/Build/ProjectGraphFactory.cs diff --git a/src/BuiltInTools/Watch/Build/ProjectGraphUtilities.cs b/src/Dotnet.Watch/Watch/Build/ProjectGraphUtilities.cs similarity index 100% rename from src/BuiltInTools/Watch/Build/ProjectGraphUtilities.cs rename to src/Dotnet.Watch/Watch/Build/ProjectGraphUtilities.cs diff --git a/src/BuiltInTools/Watch/Build/ProjectInstanceId.cs b/src/Dotnet.Watch/Watch/Build/ProjectInstanceId.cs similarity index 100% rename from src/BuiltInTools/Watch/Build/ProjectInstanceId.cs rename to src/Dotnet.Watch/Watch/Build/ProjectInstanceId.cs diff --git a/src/BuiltInTools/Watch/Build/ProjectRepresentation.cs b/src/Dotnet.Watch/Watch/Build/ProjectRepresentation.cs similarity index 100% rename from src/BuiltInTools/Watch/Build/ProjectRepresentation.cs rename to src/Dotnet.Watch/Watch/Build/ProjectRepresentation.cs diff --git a/src/BuiltInTools/Watch/Build/StaticWebAssetPattern.MSBuild.cs b/src/Dotnet.Watch/Watch/Build/StaticWebAssetPattern.MSBuild.cs similarity index 100% rename from src/BuiltInTools/Watch/Build/StaticWebAssetPattern.MSBuild.cs rename to src/Dotnet.Watch/Watch/Build/StaticWebAssetPattern.MSBuild.cs diff --git a/src/BuiltInTools/Watch/Context/DotNetWatchContext.cs b/src/Dotnet.Watch/Watch/Context/DotNetWatchContext.cs similarity index 100% rename from src/BuiltInTools/Watch/Context/DotNetWatchContext.cs rename to src/Dotnet.Watch/Watch/Context/DotNetWatchContext.cs diff --git a/src/BuiltInTools/Watch/Context/EnvironmentOptions.cs b/src/Dotnet.Watch/Watch/Context/EnvironmentOptions.cs similarity index 100% rename from src/BuiltInTools/Watch/Context/EnvironmentOptions.cs rename to src/Dotnet.Watch/Watch/Context/EnvironmentOptions.cs diff --git a/src/BuiltInTools/Watch/Context/EnvironmentVariables.cs b/src/Dotnet.Watch/Watch/Context/EnvironmentVariables.cs similarity index 100% rename from src/BuiltInTools/Watch/Context/EnvironmentVariables.cs rename to src/Dotnet.Watch/Watch/Context/EnvironmentVariables.cs diff --git a/src/BuiltInTools/Watch/Context/GlobalOptions.cs b/src/Dotnet.Watch/Watch/Context/GlobalOptions.cs similarity index 100% rename from src/BuiltInTools/Watch/Context/GlobalOptions.cs rename to src/Dotnet.Watch/Watch/Context/GlobalOptions.cs diff --git a/src/BuiltInTools/Watch/Context/ProjectOptions.cs b/src/Dotnet.Watch/Watch/Context/ProjectOptions.cs similarity index 100% rename from src/BuiltInTools/Watch/Context/ProjectOptions.cs rename to src/Dotnet.Watch/Watch/Context/ProjectOptions.cs diff --git a/src/BuiltInTools/Watch/FileWatcher/ChangeKind.cs b/src/Dotnet.Watch/Watch/FileWatcher/ChangeKind.cs similarity index 100% rename from src/BuiltInTools/Watch/FileWatcher/ChangeKind.cs rename to src/Dotnet.Watch/Watch/FileWatcher/ChangeKind.cs diff --git a/src/BuiltInTools/Watch/FileWatcher/DirectoryWatcher.cs b/src/Dotnet.Watch/Watch/FileWatcher/DirectoryWatcher.cs similarity index 100% rename from src/BuiltInTools/Watch/FileWatcher/DirectoryWatcher.cs rename to src/Dotnet.Watch/Watch/FileWatcher/DirectoryWatcher.cs diff --git a/src/BuiltInTools/Watch/FileWatcher/EventBasedDirectoryWatcher.cs b/src/Dotnet.Watch/Watch/FileWatcher/EventBasedDirectoryWatcher.cs similarity index 100% rename from src/BuiltInTools/Watch/FileWatcher/EventBasedDirectoryWatcher.cs rename to src/Dotnet.Watch/Watch/FileWatcher/EventBasedDirectoryWatcher.cs diff --git a/src/BuiltInTools/Watch/FileWatcher/FileWatcher.cs b/src/Dotnet.Watch/Watch/FileWatcher/FileWatcher.cs similarity index 100% rename from src/BuiltInTools/Watch/FileWatcher/FileWatcher.cs rename to src/Dotnet.Watch/Watch/FileWatcher/FileWatcher.cs diff --git a/src/BuiltInTools/Watch/FileWatcher/PollingDirectoryWatcher.cs b/src/Dotnet.Watch/Watch/FileWatcher/PollingDirectoryWatcher.cs similarity index 100% rename from src/BuiltInTools/Watch/FileWatcher/PollingDirectoryWatcher.cs rename to src/Dotnet.Watch/Watch/FileWatcher/PollingDirectoryWatcher.cs diff --git a/src/BuiltInTools/Watch/HotReload/CompilationHandler.cs b/src/Dotnet.Watch/Watch/HotReload/CompilationHandler.cs similarity index 100% rename from src/BuiltInTools/Watch/HotReload/CompilationHandler.cs rename to src/Dotnet.Watch/Watch/HotReload/CompilationHandler.cs diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs b/src/Dotnet.Watch/Watch/HotReload/HotReloadDotNetWatcher.cs similarity index 100% rename from src/BuiltInTools/Watch/HotReload/HotReloadDotNetWatcher.cs rename to src/Dotnet.Watch/Watch/HotReload/HotReloadDotNetWatcher.cs diff --git a/src/BuiltInTools/Watch/HotReload/HotReloadProjectUpdatesBuilder.cs b/src/Dotnet.Watch/Watch/HotReload/HotReloadProjectUpdatesBuilder.cs similarity index 100% rename from src/BuiltInTools/Watch/HotReload/HotReloadProjectUpdatesBuilder.cs rename to src/Dotnet.Watch/Watch/HotReload/HotReloadProjectUpdatesBuilder.cs diff --git a/src/BuiltInTools/Watch/Microsoft.DotNet.HotReload.Watch.csproj b/src/Dotnet.Watch/Watch/Microsoft.DotNet.HotReload.Watch.csproj similarity index 100% rename from src/BuiltInTools/Watch/Microsoft.DotNet.HotReload.Watch.csproj rename to src/Dotnet.Watch/Watch/Microsoft.DotNet.HotReload.Watch.csproj diff --git a/src/BuiltInTools/Watch/Process/IRuntimeProcessLauncher.cs b/src/Dotnet.Watch/Watch/Process/IRuntimeProcessLauncher.cs similarity index 100% rename from src/BuiltInTools/Watch/Process/IRuntimeProcessLauncher.cs rename to src/Dotnet.Watch/Watch/Process/IRuntimeProcessLauncher.cs diff --git a/src/BuiltInTools/Watch/Process/IRuntimeProcessLauncherFactory.cs b/src/Dotnet.Watch/Watch/Process/IRuntimeProcessLauncherFactory.cs similarity index 100% rename from src/BuiltInTools/Watch/Process/IRuntimeProcessLauncherFactory.cs rename to src/Dotnet.Watch/Watch/Process/IRuntimeProcessLauncherFactory.cs diff --git a/src/BuiltInTools/Watch/Process/LaunchSettingsProfile.cs b/src/Dotnet.Watch/Watch/Process/LaunchSettingsProfile.cs similarity index 100% rename from src/BuiltInTools/Watch/Process/LaunchSettingsProfile.cs rename to src/Dotnet.Watch/Watch/Process/LaunchSettingsProfile.cs diff --git a/src/BuiltInTools/Watch/Process/ProcessLaunchResult.cs b/src/Dotnet.Watch/Watch/Process/ProcessLaunchResult.cs similarity index 100% rename from src/BuiltInTools/Watch/Process/ProcessLaunchResult.cs rename to src/Dotnet.Watch/Watch/Process/ProcessLaunchResult.cs diff --git a/src/BuiltInTools/Watch/Process/ProcessRunner.cs b/src/Dotnet.Watch/Watch/Process/ProcessRunner.cs similarity index 100% rename from src/BuiltInTools/Watch/Process/ProcessRunner.cs rename to src/Dotnet.Watch/Watch/Process/ProcessRunner.cs diff --git a/src/BuiltInTools/Watch/Process/ProcessSpec.cs b/src/Dotnet.Watch/Watch/Process/ProcessSpec.cs similarity index 100% rename from src/BuiltInTools/Watch/Process/ProcessSpec.cs rename to src/Dotnet.Watch/Watch/Process/ProcessSpec.cs diff --git a/src/BuiltInTools/Watch/Process/ProjectLauncher.cs b/src/Dotnet.Watch/Watch/Process/ProjectLauncher.cs similarity index 100% rename from src/BuiltInTools/Watch/Process/ProjectLauncher.cs rename to src/Dotnet.Watch/Watch/Process/ProjectLauncher.cs diff --git a/src/BuiltInTools/Watch/Process/RunningProcess.cs b/src/Dotnet.Watch/Watch/Process/RunningProcess.cs similarity index 100% rename from src/BuiltInTools/Watch/Process/RunningProcess.cs rename to src/Dotnet.Watch/Watch/Process/RunningProcess.cs diff --git a/src/BuiltInTools/Watch/Process/RunningProject.cs b/src/Dotnet.Watch/Watch/Process/RunningProject.cs similarity index 100% rename from src/BuiltInTools/Watch/Process/RunningProject.cs rename to src/Dotnet.Watch/Watch/Process/RunningProject.cs diff --git a/src/BuiltInTools/Watch/Process/WebServerProcessStateObserver.cs b/src/Dotnet.Watch/Watch/Process/WebServerProcessStateObserver.cs similarity index 100% rename from src/BuiltInTools/Watch/Process/WebServerProcessStateObserver.cs rename to src/Dotnet.Watch/Watch/Process/WebServerProcessStateObserver.cs diff --git a/src/BuiltInTools/Watch/Properties/AssemblyInfo.cs b/src/Dotnet.Watch/Watch/Properties/AssemblyInfo.cs similarity index 100% rename from src/BuiltInTools/Watch/Properties/AssemblyInfo.cs rename to src/Dotnet.Watch/Watch/Properties/AssemblyInfo.cs diff --git a/src/BuiltInTools/Watch/RuntimeDependencies.props b/src/Dotnet.Watch/Watch/RuntimeDependencies.props similarity index 100% rename from src/BuiltInTools/Watch/RuntimeDependencies.props rename to src/Dotnet.Watch/Watch/RuntimeDependencies.props diff --git a/src/BuiltInTools/Watch/UI/BuildOutput.cs b/src/Dotnet.Watch/Watch/UI/BuildOutput.cs similarity index 100% rename from src/BuiltInTools/Watch/UI/BuildOutput.cs rename to src/Dotnet.Watch/Watch/UI/BuildOutput.cs diff --git a/src/BuiltInTools/Watch/UI/ConsoleInputReader.cs b/src/Dotnet.Watch/Watch/UI/ConsoleInputReader.cs similarity index 100% rename from src/BuiltInTools/Watch/UI/ConsoleInputReader.cs rename to src/Dotnet.Watch/Watch/UI/ConsoleInputReader.cs diff --git a/src/BuiltInTools/Watch/UI/ConsoleReporter.cs b/src/Dotnet.Watch/Watch/UI/ConsoleReporter.cs similarity index 100% rename from src/BuiltInTools/Watch/UI/ConsoleReporter.cs rename to src/Dotnet.Watch/Watch/UI/ConsoleReporter.cs diff --git a/src/BuiltInTools/Watch/UI/IConsole.cs b/src/Dotnet.Watch/Watch/UI/IConsole.cs similarity index 100% rename from src/BuiltInTools/Watch/UI/IConsole.cs rename to src/Dotnet.Watch/Watch/UI/IConsole.cs diff --git a/src/BuiltInTools/Watch/UI/IReporter.cs b/src/Dotnet.Watch/Watch/UI/IReporter.cs similarity index 100% rename from src/BuiltInTools/Watch/UI/IReporter.cs rename to src/Dotnet.Watch/Watch/UI/IReporter.cs diff --git a/src/BuiltInTools/Watch/UI/OutputLine.cs b/src/Dotnet.Watch/Watch/UI/OutputLine.cs similarity index 100% rename from src/BuiltInTools/Watch/UI/OutputLine.cs rename to src/Dotnet.Watch/Watch/UI/OutputLine.cs diff --git a/src/BuiltInTools/Watch/UI/PhysicalConsole.cs b/src/Dotnet.Watch/Watch/UI/PhysicalConsole.cs similarity index 100% rename from src/BuiltInTools/Watch/UI/PhysicalConsole.cs rename to src/Dotnet.Watch/Watch/UI/PhysicalConsole.cs diff --git a/src/BuiltInTools/Watch/UI/RestartPrompt.cs b/src/Dotnet.Watch/Watch/UI/RestartPrompt.cs similarity index 100% rename from src/BuiltInTools/Watch/UI/RestartPrompt.cs rename to src/Dotnet.Watch/Watch/UI/RestartPrompt.cs diff --git a/src/BuiltInTools/Watch/UI/ShutdownHandler.cs b/src/Dotnet.Watch/Watch/UI/ShutdownHandler.cs similarity index 100% rename from src/BuiltInTools/Watch/UI/ShutdownHandler.cs rename to src/Dotnet.Watch/Watch/UI/ShutdownHandler.cs diff --git a/src/BuiltInTools/Watch/Utilities/CommandLineUtilities.cs b/src/Dotnet.Watch/Watch/Utilities/CommandLineUtilities.cs similarity index 100% rename from src/BuiltInTools/Watch/Utilities/CommandLineUtilities.cs rename to src/Dotnet.Watch/Watch/Utilities/CommandLineUtilities.cs diff --git a/src/BuiltInTools/Watch/Utilities/Disposables.cs b/src/Dotnet.Watch/Watch/Utilities/Disposables.cs similarity index 100% rename from src/BuiltInTools/Watch/Utilities/Disposables.cs rename to src/Dotnet.Watch/Watch/Utilities/Disposables.cs diff --git a/src/BuiltInTools/Watch/Utilities/Option.cs b/src/Dotnet.Watch/Watch/Utilities/Option.cs similarity index 100% rename from src/BuiltInTools/Watch/Utilities/Option.cs rename to src/Dotnet.Watch/Watch/Utilities/Option.cs diff --git a/src/BuiltInTools/Watch/Utilities/PathUtilities.cs b/src/Dotnet.Watch/Watch/Utilities/PathUtilities.cs similarity index 100% rename from src/BuiltInTools/Watch/Utilities/PathUtilities.cs rename to src/Dotnet.Watch/Watch/Utilities/PathUtilities.cs diff --git a/src/BuiltInTools/Watch/Utilities/ProcessUtilities.cs b/src/Dotnet.Watch/Watch/Utilities/ProcessUtilities.cs similarity index 100% rename from src/BuiltInTools/Watch/Utilities/ProcessUtilities.cs rename to src/Dotnet.Watch/Watch/Utilities/ProcessUtilities.cs diff --git a/src/BuiltInTools/Watch/Utilities/Versions.cs b/src/Dotnet.Watch/Watch/Utilities/Versions.cs similarity index 100% rename from src/BuiltInTools/Watch/Utilities/Versions.cs rename to src/Dotnet.Watch/Watch/Utilities/Versions.cs diff --git a/src/BuiltInTools/Web.Middleware/.editorconfig b/src/Dotnet.Watch/Web.Middleware/.editorconfig similarity index 100% rename from src/BuiltInTools/Web.Middleware/.editorconfig rename to src/Dotnet.Watch/Web.Middleware/.editorconfig diff --git a/src/BuiltInTools/Web.Middleware/ApplicationPaths.cs b/src/Dotnet.Watch/Web.Middleware/ApplicationPaths.cs similarity index 100% rename from src/BuiltInTools/Web.Middleware/ApplicationPaths.cs rename to src/Dotnet.Watch/Web.Middleware/ApplicationPaths.cs diff --git a/src/BuiltInTools/Web.Middleware/BlazorHotReload.js b/src/Dotnet.Watch/Web.Middleware/BlazorHotReload.js similarity index 100% rename from src/BuiltInTools/Web.Middleware/BlazorHotReload.js rename to src/Dotnet.Watch/Web.Middleware/BlazorHotReload.js diff --git a/src/BuiltInTools/Web.Middleware/BlazorWasmHotReloadMiddleware.cs b/src/Dotnet.Watch/Web.Middleware/BlazorWasmHotReloadMiddleware.cs similarity index 100% rename from src/BuiltInTools/Web.Middleware/BlazorWasmHotReloadMiddleware.cs rename to src/Dotnet.Watch/Web.Middleware/BlazorWasmHotReloadMiddleware.cs diff --git a/src/BuiltInTools/Web.Middleware/BrowserRefreshMiddleware.cs b/src/Dotnet.Watch/Web.Middleware/BrowserRefreshMiddleware.cs similarity index 100% rename from src/BuiltInTools/Web.Middleware/BrowserRefreshMiddleware.cs rename to src/Dotnet.Watch/Web.Middleware/BrowserRefreshMiddleware.cs diff --git a/src/BuiltInTools/Web.Middleware/BrowserScriptMiddleware.cs b/src/Dotnet.Watch/Web.Middleware/BrowserScriptMiddleware.cs similarity index 100% rename from src/BuiltInTools/Web.Middleware/BrowserScriptMiddleware.cs rename to src/Dotnet.Watch/Web.Middleware/BrowserScriptMiddleware.cs diff --git a/src/BuiltInTools/Web.Middleware/HostingStartup.cs b/src/Dotnet.Watch/Web.Middleware/HostingStartup.cs similarity index 100% rename from src/BuiltInTools/Web.Middleware/HostingStartup.cs rename to src/Dotnet.Watch/Web.Middleware/HostingStartup.cs diff --git a/src/BuiltInTools/Web.Middleware/Microsoft.DotNet.HotReload.Web.Middleware.Package.csproj b/src/Dotnet.Watch/Web.Middleware/Microsoft.DotNet.HotReload.Web.Middleware.Package.csproj similarity index 100% rename from src/BuiltInTools/Web.Middleware/Microsoft.DotNet.HotReload.Web.Middleware.Package.csproj rename to src/Dotnet.Watch/Web.Middleware/Microsoft.DotNet.HotReload.Web.Middleware.Package.csproj diff --git a/src/BuiltInTools/Web.Middleware/Microsoft.DotNet.HotReload.Web.Middleware.projitems b/src/Dotnet.Watch/Web.Middleware/Microsoft.DotNet.HotReload.Web.Middleware.projitems similarity index 100% rename from src/BuiltInTools/Web.Middleware/Microsoft.DotNet.HotReload.Web.Middleware.projitems rename to src/Dotnet.Watch/Web.Middleware/Microsoft.DotNet.HotReload.Web.Middleware.projitems diff --git a/src/BuiltInTools/Web.Middleware/Microsoft.DotNet.HotReload.Web.Middleware.shproj b/src/Dotnet.Watch/Web.Middleware/Microsoft.DotNet.HotReload.Web.Middleware.shproj similarity index 100% rename from src/BuiltInTools/Web.Middleware/Microsoft.DotNet.HotReload.Web.Middleware.shproj rename to src/Dotnet.Watch/Web.Middleware/Microsoft.DotNet.HotReload.Web.Middleware.shproj diff --git a/src/BuiltInTools/Web.Middleware/ResponseStreamWrapper.cs b/src/Dotnet.Watch/Web.Middleware/ResponseStreamWrapper.cs similarity index 100% rename from src/BuiltInTools/Web.Middleware/ResponseStreamWrapper.cs rename to src/Dotnet.Watch/Web.Middleware/ResponseStreamWrapper.cs diff --git a/src/BuiltInTools/Web.Middleware/ScriptInjectingStream.cs b/src/Dotnet.Watch/Web.Middleware/ScriptInjectingStream.cs similarity index 100% rename from src/BuiltInTools/Web.Middleware/ScriptInjectingStream.cs rename to src/Dotnet.Watch/Web.Middleware/ScriptInjectingStream.cs diff --git a/src/BuiltInTools/Web.Middleware/StartupHook.cs b/src/Dotnet.Watch/Web.Middleware/StartupHook.cs similarity index 100% rename from src/BuiltInTools/Web.Middleware/StartupHook.cs rename to src/Dotnet.Watch/Web.Middleware/StartupHook.cs diff --git a/src/BuiltInTools/Web.Middleware/WebSocketScriptInjection.js b/src/Dotnet.Watch/Web.Middleware/WebSocketScriptInjection.js similarity index 100% rename from src/BuiltInTools/Web.Middleware/WebSocketScriptInjection.js rename to src/Dotnet.Watch/Web.Middleware/WebSocketScriptInjection.js diff --git a/src/BuiltInTools/dotnet-watch.slnf b/src/Dotnet.Watch/dotnet-watch.slnf similarity index 57% rename from src/BuiltInTools/dotnet-watch.slnf rename to src/Dotnet.Watch/dotnet-watch.slnf index 51bc310af91d..48e156d1458e 100644 --- a/src/BuiltInTools/dotnet-watch.slnf +++ b/src/Dotnet.Watch/dotnet-watch.slnf @@ -2,27 +2,27 @@ "solution": { "path": "..\\..\\sdk.slnx", "projects": [ - "src\\BuiltInTools\\AspireService\\Microsoft.WebTools.AspireService.Package.csproj", - "src\\BuiltInTools\\AspireService\\Microsoft.WebTools.AspireService.shproj", - "src\\BuiltInTools\\BrowserRefresh\\Microsoft.AspNetCore.Watch.BrowserRefresh.csproj", - "src\\BuiltInTools\\DotNetDeltaApplier\\Microsoft.Extensions.DotNetDeltaApplier.csproj", - "src\\BuiltInTools\\DotNetWatchTasks\\DotNetWatchTasks.csproj", - "src\\BuiltInTools\\HotReloadAgent.Data\\Microsoft.DotNet.HotReload.Agent.Data.Package.csproj", - "src\\BuiltInTools\\HotReloadAgent.Data\\Microsoft.DotNet.HotReload.Agent.Data.shproj", - "src\\BuiltInTools\\HotReloadAgent.Host\\Microsoft.DotNet.HotReload.Agent.Host.Package.csproj", - "src\\BuiltInTools\\HotReloadAgent.Host\\Microsoft.DotNet.HotReload.Agent.Host.shproj", - "src\\BuiltInTools\\HotReloadAgent.PipeRpc\\Microsoft.DotNet.HotReload.Agent.PipeRpc.Package.csproj", - "src\\BuiltInTools\\HotReloadAgent.PipeRpc\\Microsoft.DotNet.HotReload.Agent.PipeRpc.shproj", - "src\\BuiltInTools\\HotReloadAgent.WebAssembly.Browser\\Microsoft.DotNet.HotReload.WebAssembly.Browser.csproj", - "src\\BuiltInTools\\HotReloadAgent\\Microsoft.DotNet.HotReload.Agent.Package.csproj", - "src\\BuiltInTools\\HotReloadAgent\\Microsoft.DotNet.HotReload.Agent.shproj", - "src\\BuiltInTools\\HotReloadClient\\Microsoft.DotNet.HotReload.Client.Package.csproj", - "src\\BuiltInTools\\HotReloadClient\\Microsoft.DotNet.HotReload.Client.shproj", - "src\\BuiltInTools\\Web.Middleware\\Microsoft.DotNet.HotReload.Web.Middleware.Package.csproj", - "src\\BuiltInTools\\Web.Middleware\\Microsoft.DotNet.HotReload.Web.Middleware.shproj", - "src\\BuiltInTools\\Watch.Aspire\\Microsoft.DotNet.HotReload.Watch.Aspire.csproj", - "src\\BuiltInTools\\Watch\\Microsoft.DotNet.HotReload.Watch.csproj", - "src\\BuiltInTools\\dotnet-watch\\dotnet-watch.csproj", + "src\\Dotnet.Watch\\AspireService\\Microsoft.WebTools.AspireService.Package.csproj", + "src\\Dotnet.Watch\\AspireService\\Microsoft.WebTools.AspireService.shproj", + "src\\Dotnet.Watch\\BrowserRefresh\\Microsoft.AspNetCore.Watch.BrowserRefresh.csproj", + "src\\Dotnet.Watch\\DotNetDeltaApplier\\Microsoft.Extensions.DotNetDeltaApplier.csproj", + "src\\Dotnet.Watch\\DotNetWatchTasks\\DotNetWatchTasks.csproj", + "src\\Dotnet.Watch\\HotReloadAgent.Data\\Microsoft.DotNet.HotReload.Agent.Data.Package.csproj", + "src\\Dotnet.Watch\\HotReloadAgent.Data\\Microsoft.DotNet.HotReload.Agent.Data.shproj", + "src\\Dotnet.Watch\\HotReloadAgent.Host\\Microsoft.DotNet.HotReload.Agent.Host.Package.csproj", + "src\\Dotnet.Watch\\HotReloadAgent.Host\\Microsoft.DotNet.HotReload.Agent.Host.shproj", + "src\\Dotnet.Watch\\HotReloadAgent.PipeRpc\\Microsoft.DotNet.HotReload.Agent.PipeRpc.Package.csproj", + "src\\Dotnet.Watch\\HotReloadAgent.PipeRpc\\Microsoft.DotNet.HotReload.Agent.PipeRpc.shproj", + "src\\Dotnet.Watch\\HotReloadAgent.WebAssembly.Browser\\Microsoft.DotNet.HotReload.WebAssembly.Browser.csproj", + "src\\Dotnet.Watch\\HotReloadAgent\\Microsoft.DotNet.HotReload.Agent.Package.csproj", + "src\\Dotnet.Watch\\HotReloadAgent\\Microsoft.DotNet.HotReload.Agent.shproj", + "src\\Dotnet.Watch\\HotReloadClient\\Microsoft.DotNet.HotReload.Client.Package.csproj", + "src\\Dotnet.Watch\\HotReloadClient\\Microsoft.DotNet.HotReload.Client.shproj", + "src\\Dotnet.Watch\\Web.Middleware\\Microsoft.DotNet.HotReload.Web.Middleware.Package.csproj", + "src\\Dotnet.Watch\\Web.Middleware\\Microsoft.DotNet.HotReload.Web.Middleware.shproj", + "src\\Dotnet.Watch\\Watch.Aspire\\Microsoft.DotNet.HotReload.Watch.Aspire.csproj", + "src\\Dotnet.Watch\\Watch\\Microsoft.DotNet.HotReload.Watch.csproj", + "src\\Dotnet.Watch\\dotnet-watch\\dotnet-watch.csproj", "src\\Cli\\Microsoft.DotNet.Cli.Definitions\\Microsoft.DotNet.Cli.Definitions.csproj", "src\\Microsoft.DotNet.ProjectTools\\Microsoft.DotNet.ProjectTools.csproj", "test\\Microsoft.AspNetCore.Watch.BrowserRefresh.Tests\\Microsoft.AspNetCore.Watch.BrowserRefresh.Tests.csproj", @@ -37,4 +37,4 @@ "test\\dotnet-watch.Tests\\dotnet-watch.Tests.csproj" ] } -} \ No newline at end of file +} diff --git a/src/BuiltInTools/dotnet-watch/CommandLine/CommandLineOptions.cs b/src/Dotnet.Watch/dotnet-watch/CommandLine/CommandLineOptions.cs similarity index 100% rename from src/BuiltInTools/dotnet-watch/CommandLine/CommandLineOptions.cs rename to src/Dotnet.Watch/dotnet-watch/CommandLine/CommandLineOptions.cs diff --git a/src/BuiltInTools/dotnet-watch/CommandLine/DotnetWatchCommandDefinition.cs b/src/Dotnet.Watch/dotnet-watch/CommandLine/DotnetWatchCommandDefinition.cs similarity index 100% rename from src/BuiltInTools/dotnet-watch/CommandLine/DotnetWatchCommandDefinition.cs rename to src/Dotnet.Watch/dotnet-watch/CommandLine/DotnetWatchCommandDefinition.cs diff --git a/src/BuiltInTools/dotnet-watch/DotnetToolSettings.xml b/src/Dotnet.Watch/dotnet-watch/DotnetToolSettings.xml similarity index 100% rename from src/BuiltInTools/dotnet-watch/DotnetToolSettings.xml rename to src/Dotnet.Watch/dotnet-watch/DotnetToolSettings.xml diff --git a/src/BuiltInTools/dotnet-watch/Program.cs b/src/Dotnet.Watch/dotnet-watch/Program.cs similarity index 100% rename from src/BuiltInTools/dotnet-watch/Program.cs rename to src/Dotnet.Watch/dotnet-watch/Program.cs diff --git a/src/BuiltInTools/dotnet-watch/Properties/AssemblyInfo.cs b/src/Dotnet.Watch/dotnet-watch/Properties/AssemblyInfo.cs similarity index 100% rename from src/BuiltInTools/dotnet-watch/Properties/AssemblyInfo.cs rename to src/Dotnet.Watch/dotnet-watch/Properties/AssemblyInfo.cs diff --git a/src/BuiltInTools/dotnet-watch/Properties/launchSettings.json b/src/Dotnet.Watch/dotnet-watch/Properties/launchSettings.json similarity index 100% rename from src/BuiltInTools/dotnet-watch/Properties/launchSettings.json rename to src/Dotnet.Watch/dotnet-watch/Properties/launchSettings.json diff --git a/src/BuiltInTools/dotnet-watch/README.md b/src/Dotnet.Watch/dotnet-watch/README.md similarity index 100% rename from src/BuiltInTools/dotnet-watch/README.md rename to src/Dotnet.Watch/dotnet-watch/README.md diff --git a/src/BuiltInTools/dotnet-watch/Resources.resx b/src/Dotnet.Watch/dotnet-watch/Resources.resx similarity index 100% rename from src/BuiltInTools/dotnet-watch/Resources.resx rename to src/Dotnet.Watch/dotnet-watch/Resources.resx diff --git a/src/BuiltInTools/dotnet-watch/Watch/BuildEvaluator.cs b/src/Dotnet.Watch/dotnet-watch/Watch/BuildEvaluator.cs similarity index 100% rename from src/BuiltInTools/dotnet-watch/Watch/BuildEvaluator.cs rename to src/Dotnet.Watch/dotnet-watch/Watch/BuildEvaluator.cs diff --git a/src/BuiltInTools/dotnet-watch/Watch/DotNetWatch.targets b/src/Dotnet.Watch/dotnet-watch/Watch/DotNetWatch.targets similarity index 100% rename from src/BuiltInTools/dotnet-watch/Watch/DotNetWatch.targets rename to src/Dotnet.Watch/dotnet-watch/Watch/DotNetWatch.targets diff --git a/src/BuiltInTools/dotnet-watch/Watch/DotNetWatcher.cs b/src/Dotnet.Watch/dotnet-watch/Watch/DotNetWatcher.cs similarity index 100% rename from src/BuiltInTools/dotnet-watch/Watch/DotNetWatcher.cs rename to src/Dotnet.Watch/dotnet-watch/Watch/DotNetWatcher.cs diff --git a/src/BuiltInTools/dotnet-watch/Watch/MSBuildFileSetResult.cs b/src/Dotnet.Watch/dotnet-watch/Watch/MSBuildFileSetResult.cs similarity index 100% rename from src/BuiltInTools/dotnet-watch/Watch/MSBuildFileSetResult.cs rename to src/Dotnet.Watch/dotnet-watch/Watch/MSBuildFileSetResult.cs diff --git a/src/BuiltInTools/dotnet-watch/Watch/MsBuildFileSetFactory.cs b/src/Dotnet.Watch/dotnet-watch/Watch/MsBuildFileSetFactory.cs similarity index 100% rename from src/BuiltInTools/dotnet-watch/Watch/MsBuildFileSetFactory.cs rename to src/Dotnet.Watch/dotnet-watch/Watch/MsBuildFileSetFactory.cs diff --git a/src/BuiltInTools/dotnet-watch/Watch/StaticFileHandler.cs b/src/Dotnet.Watch/dotnet-watch/Watch/StaticFileHandler.cs similarity index 100% rename from src/BuiltInTools/dotnet-watch/Watch/StaticFileHandler.cs rename to src/Dotnet.Watch/dotnet-watch/Watch/StaticFileHandler.cs diff --git a/src/BuiltInTools/dotnet-watch/dotnet-watch.csproj b/src/Dotnet.Watch/dotnet-watch/dotnet-watch.csproj similarity index 100% rename from src/BuiltInTools/dotnet-watch/dotnet-watch.csproj rename to src/Dotnet.Watch/dotnet-watch/dotnet-watch.csproj diff --git a/src/BuiltInTools/dotnet-watch/runtimeconfig.template.json b/src/Dotnet.Watch/dotnet-watch/runtimeconfig.template.json similarity index 100% rename from src/BuiltInTools/dotnet-watch/runtimeconfig.template.json rename to src/Dotnet.Watch/dotnet-watch/runtimeconfig.template.json diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.cs.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.cs.xlf similarity index 100% rename from src/BuiltInTools/dotnet-watch/xlf/Resources.cs.xlf rename to src/Dotnet.Watch/dotnet-watch/xlf/Resources.cs.xlf diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.de.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.de.xlf similarity index 100% rename from src/BuiltInTools/dotnet-watch/xlf/Resources.de.xlf rename to src/Dotnet.Watch/dotnet-watch/xlf/Resources.de.xlf diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.es.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.es.xlf similarity index 100% rename from src/BuiltInTools/dotnet-watch/xlf/Resources.es.xlf rename to src/Dotnet.Watch/dotnet-watch/xlf/Resources.es.xlf diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.fr.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.fr.xlf similarity index 100% rename from src/BuiltInTools/dotnet-watch/xlf/Resources.fr.xlf rename to src/Dotnet.Watch/dotnet-watch/xlf/Resources.fr.xlf diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.it.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.it.xlf similarity index 100% rename from src/BuiltInTools/dotnet-watch/xlf/Resources.it.xlf rename to src/Dotnet.Watch/dotnet-watch/xlf/Resources.it.xlf diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.ja.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.ja.xlf similarity index 100% rename from src/BuiltInTools/dotnet-watch/xlf/Resources.ja.xlf rename to src/Dotnet.Watch/dotnet-watch/xlf/Resources.ja.xlf diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.ko.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.ko.xlf similarity index 100% rename from src/BuiltInTools/dotnet-watch/xlf/Resources.ko.xlf rename to src/Dotnet.Watch/dotnet-watch/xlf/Resources.ko.xlf diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.pl.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.pl.xlf similarity index 100% rename from src/BuiltInTools/dotnet-watch/xlf/Resources.pl.xlf rename to src/Dotnet.Watch/dotnet-watch/xlf/Resources.pl.xlf diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.pt-BR.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.pt-BR.xlf similarity index 100% rename from src/BuiltInTools/dotnet-watch/xlf/Resources.pt-BR.xlf rename to src/Dotnet.Watch/dotnet-watch/xlf/Resources.pt-BR.xlf diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.ru.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.ru.xlf similarity index 100% rename from src/BuiltInTools/dotnet-watch/xlf/Resources.ru.xlf rename to src/Dotnet.Watch/dotnet-watch/xlf/Resources.ru.xlf diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.tr.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.tr.xlf similarity index 100% rename from src/BuiltInTools/dotnet-watch/xlf/Resources.tr.xlf rename to src/Dotnet.Watch/dotnet-watch/xlf/Resources.tr.xlf diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.zh-Hans.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.zh-Hans.xlf similarity index 100% rename from src/BuiltInTools/dotnet-watch/xlf/Resources.zh-Hans.xlf rename to src/Dotnet.Watch/dotnet-watch/xlf/Resources.zh-Hans.xlf diff --git a/src/BuiltInTools/dotnet-watch/xlf/Resources.zh-Hant.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.zh-Hant.xlf similarity index 100% rename from src/BuiltInTools/dotnet-watch/xlf/Resources.zh-Hant.xlf rename to src/Dotnet.Watch/dotnet-watch/xlf/Resources.zh-Hant.xlf diff --git a/src/Layout/redist/redist.csproj b/src/Layout/redist/redist.csproj index 80aea476d46c..f2362f96ee80 100644 --- a/src/Layout/redist/redist.csproj +++ b/src/Layout/redist/redist.csproj @@ -66,7 +66,7 @@ - + diff --git a/src/WasmSdk/Tasks/Microsoft.NET.Sdk.WebAssembly.Tasks.csproj b/src/WasmSdk/Tasks/Microsoft.NET.Sdk.WebAssembly.Tasks.csproj index afb60e54d774..839de0121c45 100644 --- a/src/WasmSdk/Tasks/Microsoft.NET.Sdk.WebAssembly.Tasks.csproj +++ b/src/WasmSdk/Tasks/Microsoft.NET.Sdk.WebAssembly.Tasks.csproj @@ -40,7 +40,7 @@ - + true false TargetFramework;TargetFrameworks diff --git a/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests.csproj b/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests.csproj index 03b46badbae2..a9b32a2352b2 100644 --- a/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests.csproj +++ b/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests.csproj @@ -9,7 +9,7 @@ - + diff --git a/test/Microsoft.DotNet.HotReload.Client.Tests/Microsoft.DotNet.HotReload.Client.Tests.csproj b/test/Microsoft.DotNet.HotReload.Client.Tests/Microsoft.DotNet.HotReload.Client.Tests.csproj index 1253990897ce..ea1d50fa89d0 100644 --- a/test/Microsoft.DotNet.HotReload.Client.Tests/Microsoft.DotNet.HotReload.Client.Tests.csproj +++ b/test/Microsoft.DotNet.HotReload.Client.Tests/Microsoft.DotNet.HotReload.Client.Tests.csproj @@ -36,7 +36,7 @@ - - - + + + diff --git a/test/Microsoft.DotNet.HotReload.Test.Utilities/Microsoft.DotNet.HotReload.Test.Utilities.csproj b/test/Microsoft.DotNet.HotReload.Test.Utilities/Microsoft.DotNet.HotReload.Test.Utilities.csproj index c27c0c1d9a25..f267d2070886 100644 --- a/test/Microsoft.DotNet.HotReload.Test.Utilities/Microsoft.DotNet.HotReload.Test.Utilities.csproj +++ b/test/Microsoft.DotNet.HotReload.Test.Utilities/Microsoft.DotNet.HotReload.Test.Utilities.csproj @@ -8,7 +8,7 @@ - + diff --git a/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/Microsoft.DotNet.HotReload.Watch.Aspire.Tests.csproj b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/Microsoft.DotNet.HotReload.Watch.Aspire.Tests.csproj index 361b5e101143..728c13a54f9b 100644 --- a/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/Microsoft.DotNet.HotReload.Watch.Aspire.Tests.csproj +++ b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/Microsoft.DotNet.HotReload.Watch.Aspire.Tests.csproj @@ -8,8 +8,8 @@ - + - + diff --git a/test/Microsoft.Extensions.DotNetDeltaApplier.Tests/Microsoft.Extensions.DotNetDeltaApplier.Tests.csproj b/test/Microsoft.Extensions.DotNetDeltaApplier.Tests/Microsoft.Extensions.DotNetDeltaApplier.Tests.csproj index c86f821366d9..d6b9a4167851 100644 --- a/test/Microsoft.Extensions.DotNetDeltaApplier.Tests/Microsoft.Extensions.DotNetDeltaApplier.Tests.csproj +++ b/test/Microsoft.Extensions.DotNetDeltaApplier.Tests/Microsoft.Extensions.DotNetDeltaApplier.Tests.csproj @@ -14,11 +14,11 @@ - + - + diff --git a/test/Microsoft.WebTools.AspireService.Tests/Microsoft.WebTools.AspireService.Tests.csproj b/test/Microsoft.WebTools.AspireService.Tests/Microsoft.WebTools.AspireService.Tests.csproj index 3effab61b6ce..4fe189842af0 100644 --- a/test/Microsoft.WebTools.AspireService.Tests/Microsoft.WebTools.AspireService.Tests.csproj +++ b/test/Microsoft.WebTools.AspireService.Tests/Microsoft.WebTools.AspireService.Tests.csproj @@ -16,6 +16,6 @@ - + diff --git a/test/dotnet-watch.Tests/dotnet-watch.Tests.csproj b/test/dotnet-watch.Tests/dotnet-watch.Tests.csproj index 9b1afe3702b4..0b9bf77c0747 100644 --- a/test/dotnet-watch.Tests/dotnet-watch.Tests.csproj +++ b/test/dotnet-watch.Tests/dotnet-watch.Tests.csproj @@ -14,8 +14,8 @@ Setting ExcludeAssets and Private ensures that no assemblies that have public types that are or depend on msbuild types are present in the output directory of the project. See TestUtilities/ModuleInitializer.cs. --> - - + + @@ -37,5 +37,5 @@ - + From f1481e6d9f1561f1be0edadc93b1c1b69dd27653 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 01:37:17 +0000 Subject: [PATCH 139/179] Reset files to release/10.0.2xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- NuGet.config | 3 +- eng/Version.Details.props | 368 ++++++------- eng/Version.Details.xml | 677 ++++++++++++------------ eng/common/templates/steps/vmr-sync.yml | 21 + eng/common/templates/vmr-build-pr.yml | 1 - eng/common/tools.ps1 | 5 - eng/common/tools.sh | 8 +- eng/common/vmr-sync.ps1 | 38 +- eng/common/vmr-sync.sh | 30 +- global.json | 6 +- 10 files changed, 564 insertions(+), 593 deletions(-) diff --git a/NuGet.config b/NuGet.config index 47972b83c700..f3f728c95515 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,6 @@ - @@ -39,6 +38,8 @@ + + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 1b62c6d101ba..f6f22c57654f 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,139 +6,141 @@ This file should be imported by eng/Versions.props - 10.0.5-servicing.26124.113 - 10.0.5-servicing.26124.113 - 10.0.5-servicing.26124.113 - 10.0.5-servicing.26124.113 - 10.0.5 - 10.0.5-servicing.26124.113 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5-servicing.26124.113 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5-servicing.26124.113 - 10.0.5 - 10.0.5-servicing.26124.113 - 10.0.5-servicing.26124.113 - 10.0.0-preview.26124.113 - 10.0.5 - 10.0.5 - 18.0.11 - 18.0.11-servicing-26124-113 - 7.0.2-rc.12513 - 10.0.105 - 5.0.0-2.26124.113 - 5.0.0-2.26124.113 - 5.0.0-2.26124.113 - 5.0.0-2.26124.113 - 5.0.0-2.26124.113 - 5.0.0-2.26124.113 - 5.0.0-2.26124.113 - 10.0.0-preview.26124.113 - 5.0.0-2.26124.113 - 5.0.0-2.26124.113 - 2.0.0-preview.1.26124.113 - 2.2.5 - 10.0.0-beta.26124.113 - 10.0.0-beta.26124.113 - 10.0.0-beta.26124.113 - 10.0.0-beta.26124.113 - 10.0.0-beta.26124.113 - 10.0.0-beta.26124.113 - 10.0.5 - 10.0.5 - 10.0.5-servicing.26124.113 - 10.0.5-servicing.26124.113 - 10.0.0-beta.26124.113 - 10.0.0-beta.26124.113 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 14.0.105-servicing.26124.113 - 10.0.5 - 5.0.0-2.26124.113 - 5.0.0-2.26124.113 - 10.0.5-servicing.26124.113 - 10.0.5 - 10.0.5 + 10.0.0-preview.26120.103 + 18.3.0-release-26120-103 + 18.3.0-release-26120-103 + 7.3.0-preview.1.12103 + 10.0.200-alpha.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 10.0.0-preview.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 15.2.100-preview2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 10.0.0-preview.7.25377.103 - 10.0.0-preview.26124.113 - 10.0.5-servicing.26124.113 - 18.0.1-release-26124-113 - 10.0.5 - 10.0.5-servicing.26124.113 - 10.0.105 - 10.0.105 - 10.0.105 - 10.0.105 - 10.0.105 - 10.0.105 - 10.0.105 - 10.0.105 - 10.0.105-servicing.26124.113 - 10.0.105 - 10.0.105-servicing.26124.113 - 10.0.105 - 10.0.105 - 10.0.105-servicing.26124.113 - 18.0.1-release-26124-113 - 18.0.1-release-26124-113 - 3.2.5 - 10.0.5 - 10.0.5-servicing.26124.113 - 10.0.5 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 10.0.5 - 2.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 + 10.0.0-preview.26120.103 + 18.3.0-release-26120-103 + 10.0.200-alpha.26120.103 + 10.0.200-alpha.26120.103 + 10.0.200-alpha.26120.103 + 10.0.200-alpha.26120.103 + 10.0.200-alpha.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 18.3.0-release-26120-103 + 18.3.0-release-26120-103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + + 10.0.2-servicing.25612.105 + 10.0.2-servicing.25612.105 + 10.0.2-servicing.25612.105 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2 + 2.0.0-preview.1.25612.105 + 2.2.2 + 10.0.2 + 10.0.2 + 10.0.0-rtm.25523.111 + 10.0.0-rtm.25523.111 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2-servicing.25612.105 + 3.2.2 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2 + 2.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 2.1.0 @@ -148,31 +150,7 @@ This file should be imported by eng/Versions.props - $(dotnetdevcertsPackageVersion) - $(dotnetuserjwtsPackageVersion) - $(dotnetusersecretsPackageVersion) - $(MicrosoftAspNetCoreAnalyzersPackageVersion) - $(MicrosoftAspNetCoreAppRefPackageVersion) - $(MicrosoftAspNetCoreAppRefInternalPackageVersion) - $(MicrosoftAspNetCoreAuthenticationFacebookPackageVersion) - $(MicrosoftAspNetCoreAuthenticationGooglePackageVersion) - $(MicrosoftAspNetCoreAuthenticationMicrosoftAccountPackageVersion) - $(MicrosoftAspNetCoreAuthorizationPackageVersion) - $(MicrosoftAspNetCoreComponentsPackageVersion) - $(MicrosoftAspNetCoreComponentsAnalyzersPackageVersion) - $(MicrosoftAspNetCoreComponentsFormsPackageVersion) - $(MicrosoftAspNetCoreComponentsSdkAnalyzersPackageVersion) - $(MicrosoftAspNetCoreComponentsWebPackageVersion) - $(MicrosoftAspNetCoreComponentsWebAssemblyPackageVersion) - $(MicrosoftAspNetCoreComponentsWebAssemblyServerPackageVersion) - $(MicrosoftAspNetCoreComponentsWebViewPackageVersion) - $(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion) - $(MicrosoftAspNetCoreMetadataPackageVersion) - $(MicrosoftAspNetCoreMvcAnalyzersPackageVersion) - $(MicrosoftAspNetCoreMvcApiAnalyzersPackageVersion) $(MicrosoftAspNetCoreMvcRazorExtensionsToolingInternalPackageVersion) - $(MicrosoftAspNetCoreTestHostPackageVersion) - $(MicrosoftBclAsyncInterfacesPackageVersion) $(MicrosoftBuildPackageVersion) $(MicrosoftBuildLocalizationPackageVersion) $(MicrosoftBuildNuGetSdkResolverPackageVersion) @@ -183,46 +161,25 @@ This file should be imported by eng/Versions.props $(MicrosoftCodeAnalysisCSharpCodeStylePackageVersion) $(MicrosoftCodeAnalysisCSharpFeaturesPackageVersion) $(MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion) + $(MicrosoftCodeAnalysisExternalAccessHotReloadPackageVersion) $(MicrosoftCodeAnalysisPublicApiAnalyzersPackageVersion) $(MicrosoftCodeAnalysisRazorToolingInternalPackageVersion) $(MicrosoftCodeAnalysisWorkspacesCommonPackageVersion) $(MicrosoftCodeAnalysisWorkspacesMSBuildPackageVersion) - $(MicrosoftDeploymentDotNetReleasesPackageVersion) - $(MicrosoftDiaSymReaderPackageVersion) $(MicrosoftDotNetArcadeSdkPackageVersion) $(MicrosoftDotNetBuildTasksInstallersPackageVersion) $(MicrosoftDotNetBuildTasksTemplatingPackageVersion) $(MicrosoftDotNetBuildTasksWorkloadsPackageVersion) $(MicrosoftDotNetHelixSdkPackageVersion) $(MicrosoftDotNetSignToolPackageVersion) - $(MicrosoftDotNetWebItemTemplates100PackageVersion) - $(MicrosoftDotNetWebProjectTemplates100PackageVersion) - $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) - $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) $(MicrosoftDotNetXliffTasksPackageVersion) $(MicrosoftDotNetXUnitExtensionsPackageVersion) - $(MicrosoftExtensionsConfigurationIniPackageVersion) - $(MicrosoftExtensionsDependencyModelPackageVersion) - $(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion) - $(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion) - $(MicrosoftExtensionsFileSystemGlobbingPackageVersion) - $(MicrosoftExtensionsLoggingPackageVersion) - $(MicrosoftExtensionsLoggingAbstractionsPackageVersion) - $(MicrosoftExtensionsLoggingConsolePackageVersion) - $(MicrosoftExtensionsObjectPoolPackageVersion) $(MicrosoftFSharpCompilerPackageVersion) - $(MicrosoftJSInteropPackageVersion) $(MicrosoftNetCompilersToolsetPackageVersion) $(MicrosoftNetCompilersToolsetFrameworkPackageVersion) - $(MicrosoftNETHostModelPackageVersion) - $(MicrosoftNETILLinkTasksPackageVersion) - $(MicrosoftNETRuntimeEmscripten3156Cachewinx64PackageVersion) $(MicrosoftNETRuntimeEmscriptenSdkInternalPackageVersion) $(MicrosoftNETSdkRazorSourceGeneratorsTransportPackageVersion) - $(MicrosoftNETSdkWindowsDesktopPackageVersion) $(MicrosoftNETTestSdkPackageVersion) - $(MicrosoftNETCoreAppRefPackageVersion) - $(MicrosoftNETCorePlatformsPackageVersion) $(MicrosoftSourceLinkAzureReposGitPackageVersion) $(MicrosoftSourceLinkBitbucketGitPackageVersion) $(MicrosoftSourceLinkCommonPackageVersion) @@ -239,10 +196,6 @@ This file should be imported by eng/Versions.props $(MicrosoftTemplateSearchTemplateDiscoveryPackageVersion) $(MicrosoftTestPlatformBuildPackageVersion) $(MicrosoftTestPlatformCLIPackageVersion) - $(MicrosoftWebXdtPackageVersion) - $(MicrosoftWin32SystemEventsPackageVersion) - $(MicrosoftWindowsDesktopAppInternalPackageVersion) - $(MicrosoftWindowsDesktopAppRefPackageVersion) $(NuGetBuildTasksPackageVersion) $(NuGetBuildTasksConsolePackageVersion) $(NuGetBuildTasksPackPackageVersion) @@ -259,6 +212,57 @@ This file should be imported by eng/Versions.props $(NuGetProjectModelPackageVersion) $(NuGetProtocolPackageVersion) $(NuGetVersioningPackageVersion) + + $(dotnetdevcertsPackageVersion) + $(dotnetuserjwtsPackageVersion) + $(dotnetusersecretsPackageVersion) + $(MicrosoftAspNetCoreAnalyzersPackageVersion) + $(MicrosoftAspNetCoreAppRefPackageVersion) + $(MicrosoftAspNetCoreAppRefInternalPackageVersion) + $(MicrosoftAspNetCoreAuthenticationFacebookPackageVersion) + $(MicrosoftAspNetCoreAuthenticationGooglePackageVersion) + $(MicrosoftAspNetCoreAuthenticationMicrosoftAccountPackageVersion) + $(MicrosoftAspNetCoreAuthorizationPackageVersion) + $(MicrosoftAspNetCoreComponentsPackageVersion) + $(MicrosoftAspNetCoreComponentsAnalyzersPackageVersion) + $(MicrosoftAspNetCoreComponentsFormsPackageVersion) + $(MicrosoftAspNetCoreComponentsSdkAnalyzersPackageVersion) + $(MicrosoftAspNetCoreComponentsWebPackageVersion) + $(MicrosoftAspNetCoreComponentsWebAssemblyPackageVersion) + $(MicrosoftAspNetCoreComponentsWebAssemblyServerPackageVersion) + $(MicrosoftAspNetCoreComponentsWebViewPackageVersion) + $(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion) + $(MicrosoftAspNetCoreMetadataPackageVersion) + $(MicrosoftAspNetCoreMvcAnalyzersPackageVersion) + $(MicrosoftAspNetCoreMvcApiAnalyzersPackageVersion) + $(MicrosoftAspNetCoreTestHostPackageVersion) + $(MicrosoftBclAsyncInterfacesPackageVersion) + $(MicrosoftDeploymentDotNetReleasesPackageVersion) + $(MicrosoftDiaSymReaderPackageVersion) + $(MicrosoftDotNetWebItemTemplates100PackageVersion) + $(MicrosoftDotNetWebProjectTemplates100PackageVersion) + $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) + $(MicrosoftDotnetWpfProjectTemplatesPackageVersion) + $(MicrosoftExtensionsConfigurationIniPackageVersion) + $(MicrosoftExtensionsDependencyModelPackageVersion) + $(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion) + $(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion) + $(MicrosoftExtensionsFileSystemGlobbingPackageVersion) + $(MicrosoftExtensionsLoggingPackageVersion) + $(MicrosoftExtensionsLoggingAbstractionsPackageVersion) + $(MicrosoftExtensionsLoggingConsolePackageVersion) + $(MicrosoftExtensionsObjectPoolPackageVersion) + $(MicrosoftJSInteropPackageVersion) + $(MicrosoftNETHostModelPackageVersion) + $(MicrosoftNETILLinkTasksPackageVersion) + $(MicrosoftNETRuntimeEmscripten3156Cachewinx64PackageVersion) + $(MicrosoftNETSdkWindowsDesktopPackageVersion) + $(MicrosoftNETCoreAppRefPackageVersion) + $(MicrosoftNETCorePlatformsPackageVersion) + $(MicrosoftWebXdtPackageVersion) + $(MicrosoftWin32SystemEventsPackageVersion) + $(MicrosoftWindowsDesktopAppInternalPackageVersion) + $(MicrosoftWindowsDesktopAppRefPackageVersion) $(SystemCodeDomPackageVersion) $(SystemCommandLinePackageVersion) $(SystemComponentModelCompositionPackageVersion) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 57a75f563446..bf8a632c3640 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b @@ -68,170 +68,170 @@ https://github.com/dotnet/dotnet 6a953e76162f3f079405f80e28664fa51b136740 - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + b0f34d51fccc69fd334253924abd8d6853fad7aa + + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + b0f34d51fccc69fd334253924abd8d6853fad7aa - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b https://github.com/microsoft/testfx @@ -569,9 +572,9 @@ https://github.com/microsoft/testfx 1b29252aa39fe78bb4ada5fc2c238da99f3b4e9c - - https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b diff --git a/eng/common/templates/steps/vmr-sync.yml b/eng/common/templates/steps/vmr-sync.yml index eb619c502683..599afb6186b8 100644 --- a/eng/common/templates/steps/vmr-sync.yml +++ b/eng/common/templates/steps/vmr-sync.yml @@ -38,6 +38,27 @@ steps: displayName: Label PR commit workingDirectory: $(Agent.BuildDirectory)/repo +- script: | + vmr_sha=$(grep -oP '(?<=Sha=")[^"]*' $(Agent.BuildDirectory)/repo/eng/Version.Details.xml) + echo "##vso[task.setvariable variable=vmr_sha]$vmr_sha" + displayName: Obtain the vmr sha from Version.Details.xml (Unix) + condition: ne(variables['Agent.OS'], 'Windows_NT') + workingDirectory: $(Agent.BuildDirectory)/repo + +- powershell: | + [xml]$xml = Get-Content -Path $(Agent.BuildDirectory)/repo/eng/Version.Details.xml + $vmr_sha = $xml.SelectSingleNode("//Source").Sha + Write-Output "##vso[task.setvariable variable=vmr_sha]$vmr_sha" + displayName: Obtain the vmr sha from Version.Details.xml (Windows) + condition: eq(variables['Agent.OS'], 'Windows_NT') + workingDirectory: $(Agent.BuildDirectory)/repo + +- script: | + git fetch --all + git checkout $(vmr_sha) + displayName: Checkout VMR at correct sha for repo flow + workingDirectory: ${{ parameters.vmrPath }} + - script: | git config --global user.name "dotnet-maestro[bot]" git config --global user.email "dotnet-maestro[bot]@users.noreply.github.com" diff --git a/eng/common/templates/vmr-build-pr.yml b/eng/common/templates/vmr-build-pr.yml index 2f3694fa1323..ce3c29a62faf 100644 --- a/eng/common/templates/vmr-build-pr.yml +++ b/eng/common/templates/vmr-build-pr.yml @@ -34,7 +34,6 @@ resources: type: github name: dotnet/dotnet endpoint: dotnet - ref: refs/heads/main # Set to whatever VMR branch the PR build should insert into stages: - template: /eng/pipelines/templates/stages/vmr-build.yml@vmr diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 977a2d4b1039..049fe6db994e 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -824,11 +824,6 @@ function MSBuild-Core() { $cmdArgs = "$($buildTool.Command) /m /nologo /clp:Summary /v:$verbosity /nr:$nodeReuse /p:ContinuousIntegrationBuild=$ci" - # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable - if ($env:MSBUILD_MT_ENABLED -eq "1") { - $cmdArgs += ' -mt' - } - if ($warnAsError) { $cmdArgs += ' /warnaserror /p:TreatWarningsAsErrors=true' } diff --git a/eng/common/tools.sh b/eng/common/tools.sh index 1b296f646c23..c1841c9dfd0f 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -526,13 +526,7 @@ function MSBuild-Core { } } - # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable - local mt_switch="" - if [[ "${MSBUILD_MT_ENABLED:-}" == "1" ]]; then - mt_switch="-mt" - fi - - RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch $mt_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" + RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" } function GetDarc { diff --git a/eng/common/vmr-sync.ps1 b/eng/common/vmr-sync.ps1 index b37992d91cf0..97302f3205be 100755 --- a/eng/common/vmr-sync.ps1 +++ b/eng/common/vmr-sync.ps1 @@ -103,20 +103,12 @@ Set-StrictMode -Version Latest Highlight 'Installing .NET, preparing the tooling..' . .\eng\common\tools.ps1 $dotnetRoot = InitializeDotNetCli -install:$true -$env:DOTNET_ROOT = $dotnetRoot $darc = Get-Darc +$dotnet = "$dotnetRoot\dotnet.exe" Highlight "Starting the synchronization of VMR.." # Synchronize the VMR -$versionDetailsPath = Resolve-Path (Join-Path $PSScriptRoot '..\Version.Details.xml') | Select-Object -ExpandProperty Path -[xml]$versionDetails = Get-Content -Path $versionDetailsPath -$repoName = $versionDetails.SelectSingleNode('//Source').Mapping -if (-not $repoName) { - Fail "Failed to resolve repo mapping from $versionDetailsPath" - exit 1 -} - $darcArgs = ( "vmr", "forwardflow", "--tmp", $tmpDir, @@ -138,27 +130,9 @@ if ($LASTEXITCODE -eq 0) { Highlight "Synchronization succeeded" } else { - Highlight "Failed to flow code into the local VMR. Falling back to resetting the VMR to match repo contents..." - git -C $vmrDir reset --hard - - $resetArgs = ( - "vmr", "reset", - "${repoName}:HEAD", - "--vmr", $vmrDir, - "--tmp", $tmpDir, - "--additional-remotes", "${repoName}:${repoRoot}" - ) - - & "$darc" $resetArgs - - if ($LASTEXITCODE -eq 0) { - Highlight "Successfully reset the VMR using 'darc vmr reset'" - } - else { - Fail "Synchronization of repo to VMR failed!" - Fail "'$vmrDir' is left in its last state (re-run of this script will reset it)." - Fail "Please inspect the logs which contain path to the failing patch file (use -debugOutput to get all the details)." - Fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script." - exit 1 - } + Fail "Synchronization of repo to VMR failed!" + Fail "'$vmrDir' is left in its last state (re-run of this script will reset it)." + Fail "Please inspect the logs which contain path to the failing patch file (use -debugOutput to get all the details)." + Fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script." + exit 1 } diff --git a/eng/common/vmr-sync.sh b/eng/common/vmr-sync.sh index 198caec59bd4..44239e331c0c 100755 --- a/eng/common/vmr-sync.sh +++ b/eng/common/vmr-sync.sh @@ -186,13 +186,6 @@ fi # Synchronize the VMR -version_details_path=$(cd "$scriptroot/.."; pwd -P)/Version.Details.xml -repo_name=$(grep -m 1 ' Date: Thu, 26 Feb 2026 02:02:38 +0000 Subject: [PATCH 140/179] Update dependencies from https://github.com/microsoft/testfx build 20260225.2 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26124.2 -> To Version 2.2.0-preview.26125.2 MSTest From Version 4.2.0-preview.26124.2 -> To Version 4.2.0-preview.26125.2 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index f6f22c57654f..8911c7f170ab 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -144,8 +144,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26124.2 - 4.2.0-preview.26124.2 + 2.2.0-preview.26125.2 + 4.2.0-preview.26125.2 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bf8a632c3640..33e1c1f2c812 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -564,13 +564,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - 1b29252aa39fe78bb4ada5fc2c238da99f3b4e9c + 642bcb895b95a111b5cdb235665a7c43496f85ef - + https://github.com/microsoft/testfx - 1b29252aa39fe78bb4ada5fc2c238da99f3b4e9c + 642bcb895b95a111b5cdb235665a7c43496f85ef https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet From b975903d588d958f369799fcbc4e66d623b4fa99 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 26 Feb 2026 02:02:39 +0000 Subject: [PATCH 141/179] Update dependencies from https://github.com/microsoft/testfx build 20260225.2 On relative base path root Microsoft.Testing.Platform From Version 2.2.0-preview.26124.2 -> To Version 2.2.0-preview.26125.2 MSTest From Version 4.2.0-preview.26124.2 -> To Version 4.2.0-preview.26125.2 --- eng/Version.Details.props | 4 ++-- eng/Version.Details.xml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 1b62c6d101ba..6f6110a36b33 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -142,8 +142,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26124.2 - 4.2.0-preview.26124.2 + 2.2.0-preview.26125.2 + 4.2.0-preview.26125.2 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 57a75f563446..92cd6ed105d6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -561,13 +561,13 @@ https://github.com/dotnet/dotnet 4f2d31c20fb1dea7a279c108c4fb2bf02824afee - + https://github.com/microsoft/testfx - 1b29252aa39fe78bb4ada5fc2c238da99f3b4e9c + 642bcb895b95a111b5cdb235665a7c43496f85ef - + https://github.com/microsoft/testfx - 1b29252aa39fe78bb4ada5fc2c238da99f3b4e9c + 642bcb895b95a111b5cdb235665a7c43496f85ef https://github.com/dotnet/dotnet From 55bffc5ce0c8fc586d913239157e0e6503812628 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 04:32:43 +0000 Subject: [PATCH 142/179] Reset files to release/10.0.3xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- eng/Version.Details.props | 133 +++++++++---------- eng/Version.Details.xml | 271 +++++++++++++++++++------------------- global.json | 4 +- 3 files changed, 207 insertions(+), 201 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 8911c7f170ab..ba78063ca632 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,68 +6,69 @@ This file should be imported by eng/Versions.props - 10.0.0-preview.26120.103 - 18.3.0-release-26120-103 - 18.3.0-release-26120-103 - 7.3.0-preview.1.12103 - 10.0.200-alpha.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 - 10.0.0-preview.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 - 10.0.0-beta.26120.103 - 10.0.0-beta.26120.103 - 10.0.0-beta.26120.103 - 10.0.0-beta.26120.103 - 10.0.0-beta.26120.103 - 10.0.0-beta.26120.103 - 10.0.0-beta.26120.103 - 10.0.0-beta.26120.103 - 15.2.100-preview2.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 + 10.0.0-preview.26118.105 + 18.3.0-preview-26118-105 + 18.3.0-preview-26118-105 + 7.5.0-rc.11905 + 10.0.300-alpha.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 10.0.0-preview.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 15.2.300-servicing.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 10.0.0-preview.7.25377.103 - 10.0.0-preview.26120.103 - 18.3.0-release-26120-103 - 10.0.200-alpha.26120.103 - 10.0.200-alpha.26120.103 - 10.0.200-alpha.26120.103 - 10.0.200-alpha.26120.103 - 10.0.200-alpha.26120.103 - 10.0.200-preview.26120.103 - 10.0.200-preview.26120.103 - 10.0.200-preview.26120.103 - 10.0.200-preview.26120.103 - 10.0.200-preview.26120.103 - 10.0.200-preview.26120.103 - 10.0.200-preview.26120.103 - 10.0.200-preview.26120.103 - 10.0.200-preview.26120.103 - 18.3.0-release-26120-103 - 18.3.0-release-26120-103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 + 10.0.0-preview.26118.105 + 18.3.0-release-26118-105 + 10.0.300-alpha.26118.105 + 10.0.300-alpha.26118.105 + 10.0.300-alpha.26118.105 + 10.0.300-alpha.26118.105 + 10.0.300-alpha.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 18.3.0-release-26118-105 + 18.3.0-release-26118-105 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 10.0.2-servicing.25612.105 10.0.2-servicing.25612.105 @@ -97,9 +98,9 @@ This file should be imported by eng/Versions.props 2.2.2 10.0.2 10.0.2 - 10.0.0-rtm.25523.111 - 10.0.0-rtm.25523.111 + 10.0.2-servicing.25612.105 10.0.2 + 10.0.2 10.0.2 10.0.2 10.0.2 @@ -144,8 +145,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26125.2 - 4.2.0-preview.26125.2 + 2.1.0-preview.25571.1 + 4.1.0-preview.25571.1 @@ -242,8 +243,8 @@ This file should be imported by eng/Versions.props $(MicrosoftDotNetWebItemTemplates100PackageVersion) $(MicrosoftDotNetWebProjectTemplates100PackageVersion) $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) - $(MicrosoftDotnetWpfProjectTemplatesPackageVersion) $(MicrosoftExtensionsConfigurationIniPackageVersion) + $(MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion) $(MicrosoftExtensionsDependencyModelPackageVersion) $(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion) $(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 33e1c1f2c812..91b93b8c46e6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,42 +1,42 @@ - + - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -72,138 +72,142 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + + https://github.com/dotnet/roslyn + 46a48b8c1dfce7c35da115308bedd6a5954fd78a + + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -370,25 +374,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -405,29 +409,29 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 @@ -440,6 +444,11 @@ 44525024595742ebe09023abe709df51de65009b + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + fad253f51b461736dfd3cd9c15977bb7493becef + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b @@ -514,63 +523,59 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - b0f34d51fccc69fd334253924abd8d6853fad7aa - - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - b0f34d51fccc69fd334253924abd8d6853fad7aa + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - 642bcb895b95a111b5cdb235665a7c43496f85ef + 43e592148ac1c7916908477bdffcf2a345affa6d - + https://github.com/microsoft/testfx - 642bcb895b95a111b5cdb235665a7c43496f85ef + 43e592148ac1c7916908477bdffcf2a345affa6d https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet diff --git a/global.json b/global.json index f710c04c94f9..b1ab2c7674d8 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26120.103", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26120.103", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26118.105", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26118.105", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 524ea958349f58209775a91b4f30bfea5f953efd Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 26 Feb 2026 07:24:05 +0000 Subject: [PATCH 143/179] Update dependencies from build 303486 Updated Dependencies: dotnet-dev-certs, dotnet-user-jwts, dotnet-user-secrets, Microsoft.AspNetCore.Analyzers, Microsoft.AspNetCore.App.Ref.Internal, Microsoft.AspNetCore.Components.SdkAnalyzers, Microsoft.AspNetCore.DeveloperCertificates.XPlat, Microsoft.AspNetCore.Mvc.Analyzers, Microsoft.AspNetCore.Mvc.Api.Analyzers, Microsoft.Dotnet.WinForms.ProjectTemplates, Microsoft.DotNet.Wpf.ProjectTemplates, Microsoft.NET.HostModel, Microsoft.NET.Sdk.WindowsDesktop, Microsoft.NETCore.Platforms, Microsoft.WindowsDesktop.App.Internal (Version 10.0.5-servicing.26124.113 -> 10.0.5-servicing.26125.123) Microsoft.AspNetCore.App.Ref, Microsoft.AspNetCore.Authentication.Facebook, Microsoft.AspNetCore.Authentication.Google, Microsoft.AspNetCore.Authentication.MicrosoftAccount, Microsoft.AspNetCore.Authorization, Microsoft.AspNetCore.Components, Microsoft.AspNetCore.Components.Analyzers, Microsoft.AspNetCore.Components.Forms, Microsoft.AspNetCore.Components.Web, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.AspNetCore.Components.WebAssembly.Server, Microsoft.AspNetCore.Components.WebView, Microsoft.AspNetCore.Metadata, Microsoft.AspNetCore.TestHost, Microsoft.Bcl.AsyncInterfaces, Microsoft.DotNet.Web.ItemTemplates.10.0, Microsoft.DotNet.Web.ProjectTemplates.10.0, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Embedded, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.ObjectPool, Microsoft.JSInterop, Microsoft.NET.ILLink.Tasks, Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64, Microsoft.NETCore.App.Ref, Microsoft.Win32.SystemEvents, Microsoft.WindowsDesktop.App.Ref, System.CodeDom, System.ComponentModel.Composition, System.Composition.AttributedModel, System.Composition.Convention, System.Composition.Hosting, System.Composition.Runtime, System.Composition.TypedParts, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Formats.Asn1, System.IO.Hashing, System.Reflection.MetadataLoadContext, System.Resources.Extensions, System.Security.Cryptography.Pkcs, System.Security.Cryptography.ProtectedData, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encoding.CodePages, System.Text.Json, System.Windows.Extensions (Version 10.0.5 -> 10.0.5) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.26124.113 -> 10.0.0-preview.26125.123) Microsoft.Build (Version 18.0.11 -> 18.0.11) Microsoft.Build.Localization (Version 18.0.11-servicing-26124-113 -> 18.0.11-servicing-26125-123) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.0.2-rc.12513 -> 7.0.2-rc.12623) Microsoft.Build.Tasks.Git, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab, Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common (Version 10.0.105 -> 10.0.105) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.0.0-2.26124.113 -> 5.0.0-2.26125.123) Microsoft.Deployment.DotNet.Releases (Version 2.0.0-preview.1.26124.113 -> 2.0.0-preview.1.26125.123) Microsoft.DiaSymReader (Version 2.2.5 -> 2.2.5) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.26124.113 -> 10.0.0-beta.26125.123) Microsoft.FSharp.Compiler (Version 14.0.105-servicing.26124.113 -> 14.0.105-servicing.26125.123) Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.0.1-release-26124-113 -> 18.0.2-release-26125-123) Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.105-servicing.26124.113 -> 10.0.105-servicing.26125.123) Microsoft.Web.Xdt (Version 3.2.5 -> 3.2.5) System.CommandLine (Version 2.0.5 -> 2.0.5) [[ commit created by automation ]] --- NuGet.config | 2 +- eng/Version.Details.props | 126 ++++++------ eng/Version.Details.xml | 392 +++++++++++++++++++------------------- global.json | 4 +- 4 files changed, 262 insertions(+), 262 deletions(-) diff --git a/NuGet.config b/NuGet.config index 47972b83c700..2cd0b3e115dd 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 6f6110a36b33..24d6d0eca430 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,12 +6,12 @@ This file should be imported by eng/Versions.props - 10.0.5-servicing.26124.113 - 10.0.5-servicing.26124.113 - 10.0.5-servicing.26124.113 - 10.0.5-servicing.26124.113 + 10.0.5-servicing.26125.123 + 10.0.5-servicing.26125.123 + 10.0.5-servicing.26125.123 + 10.0.5-servicing.26125.123 10.0.5 - 10.0.5-servicing.26124.113 + 10.0.5-servicing.26125.123 10.0.5 10.0.5 10.0.5 @@ -19,46 +19,46 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26124.113 + 10.0.5-servicing.26125.123 10.0.5 10.0.5 10.0.5 10.0.5 - 10.0.5-servicing.26124.113 + 10.0.5-servicing.26125.123 10.0.5 - 10.0.5-servicing.26124.113 - 10.0.5-servicing.26124.113 - 10.0.0-preview.26124.113 + 10.0.5-servicing.26125.123 + 10.0.5-servicing.26125.123 + 10.0.0-preview.26125.123 10.0.5 10.0.5 18.0.11 - 18.0.11-servicing-26124-113 - 7.0.2-rc.12513 + 18.0.11-servicing-26125-123 + 7.0.2-rc.12623 10.0.105 - 5.0.0-2.26124.113 - 5.0.0-2.26124.113 - 5.0.0-2.26124.113 - 5.0.0-2.26124.113 - 5.0.0-2.26124.113 - 5.0.0-2.26124.113 - 5.0.0-2.26124.113 - 10.0.0-preview.26124.113 - 5.0.0-2.26124.113 - 5.0.0-2.26124.113 - 2.0.0-preview.1.26124.113 + 5.0.0-2.26125.123 + 5.0.0-2.26125.123 + 5.0.0-2.26125.123 + 5.0.0-2.26125.123 + 5.0.0-2.26125.123 + 5.0.0-2.26125.123 + 5.0.0-2.26125.123 + 10.0.0-preview.26125.123 + 5.0.0-2.26125.123 + 5.0.0-2.26125.123 + 2.0.0-preview.1.26125.123 2.2.5 - 10.0.0-beta.26124.113 - 10.0.0-beta.26124.113 - 10.0.0-beta.26124.113 - 10.0.0-beta.26124.113 - 10.0.0-beta.26124.113 - 10.0.0-beta.26124.113 + 10.0.0-beta.26125.123 + 10.0.0-beta.26125.123 + 10.0.0-beta.26125.123 + 10.0.0-beta.26125.123 + 10.0.0-beta.26125.123 + 10.0.0-beta.26125.123 10.0.5 10.0.5 - 10.0.5-servicing.26124.113 - 10.0.5-servicing.26124.113 - 10.0.0-beta.26124.113 - 10.0.0-beta.26124.113 + 10.0.5-servicing.26125.123 + 10.0.5-servicing.26125.123 + 10.0.0-beta.26125.123 + 10.0.0-beta.26125.123 10.0.5 10.0.5 10.0.5 @@ -68,19 +68,19 @@ This file should be imported by eng/Versions.props 10.0.5 10.0.5 10.0.5 - 14.0.105-servicing.26124.113 + 14.0.105-servicing.26125.123 10.0.5 - 5.0.0-2.26124.113 - 5.0.0-2.26124.113 - 10.0.5-servicing.26124.113 + 5.0.0-2.26125.123 + 5.0.0-2.26125.123 + 10.0.5-servicing.26125.123 10.0.5 10.0.5 10.0.0-preview.7.25377.103 - 10.0.0-preview.26124.113 - 10.0.5-servicing.26124.113 - 18.0.1-release-26124-113 + 10.0.0-preview.26125.123 + 10.0.5-servicing.26125.123 + 18.0.2-release-26125-123 10.0.5 - 10.0.5-servicing.26124.113 + 10.0.5-servicing.26125.123 10.0.105 10.0.105 10.0.105 @@ -89,34 +89,34 @@ This file should be imported by eng/Versions.props 10.0.105 10.0.105 10.0.105 - 10.0.105-servicing.26124.113 + 10.0.105-servicing.26125.123 10.0.105 - 10.0.105-servicing.26124.113 + 10.0.105-servicing.26125.123 10.0.105 10.0.105 - 10.0.105-servicing.26124.113 - 18.0.1-release-26124-113 - 18.0.1-release-26124-113 + 10.0.105-servicing.26125.123 + 18.0.2-release-26125-123 + 18.0.2-release-26125-123 3.2.5 10.0.5 - 10.0.5-servicing.26124.113 + 10.0.5-servicing.26125.123 10.0.5 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 - 7.0.2-rc.12513 + 7.0.2-rc.12623 + 7.0.2-rc.12623 + 7.0.2-rc.12623 + 7.0.2-rc.12623 + 7.0.2-rc.12623 + 7.0.2-rc.12623 + 7.0.2-rc.12623 + 7.0.2-rc.12623 + 7.0.2-rc.12623 + 7.0.2-rc.12623 + 7.0.2-rc.12623 + 7.0.2-rc.12623 + 7.0.2-rc.12623 + 7.0.2-rc.12623 + 7.0.2-rc.12623 + 7.0.2-rc.12623 10.0.5 2.0.5 10.0.5 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 92cd6ed105d6..f3efceb132ed 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e @@ -70,168 +70,168 @@ https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e - + https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e https://github.com/microsoft/testfx @@ -571,7 +571,7 @@ https://github.com/dotnet/dotnet - 4f2d31c20fb1dea7a279c108c4fb2bf02824afee + 8d7e7d733b9daf56fe6db46ff6d5205895e0444e diff --git a/global.json b/global.json index 0b49fb996278..197e6534da14 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26124.113", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26124.113", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26125.123", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26125.123", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From 5740c6d3fb7c054873c687deb815280ac1a6f2a8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 09:46:05 +0000 Subject: [PATCH 144/179] Reset files to release/10.0.2xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- NuGet.config | 3 +- eng/Version.Details.props | 368 ++++++------- eng/Version.Details.xml | 677 ++++++++++++------------ eng/common/templates/steps/vmr-sync.yml | 21 + eng/common/templates/vmr-build-pr.yml | 1 - eng/common/tools.ps1 | 5 - eng/common/tools.sh | 8 +- eng/common/vmr-sync.ps1 | 38 +- eng/common/vmr-sync.sh | 30 +- global.json | 6 +- 10 files changed, 564 insertions(+), 593 deletions(-) diff --git a/NuGet.config b/NuGet.config index 2cd0b3e115dd..f3f728c95515 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,6 @@ - @@ -39,6 +38,8 @@ + + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 24d6d0eca430..8911c7f170ab 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,139 +6,141 @@ This file should be imported by eng/Versions.props - 10.0.5-servicing.26125.123 - 10.0.5-servicing.26125.123 - 10.0.5-servicing.26125.123 - 10.0.5-servicing.26125.123 - 10.0.5 - 10.0.5-servicing.26125.123 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5-servicing.26125.123 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5-servicing.26125.123 - 10.0.5 - 10.0.5-servicing.26125.123 - 10.0.5-servicing.26125.123 - 10.0.0-preview.26125.123 - 10.0.5 - 10.0.5 - 18.0.11 - 18.0.11-servicing-26125-123 - 7.0.2-rc.12623 - 10.0.105 - 5.0.0-2.26125.123 - 5.0.0-2.26125.123 - 5.0.0-2.26125.123 - 5.0.0-2.26125.123 - 5.0.0-2.26125.123 - 5.0.0-2.26125.123 - 5.0.0-2.26125.123 - 10.0.0-preview.26125.123 - 5.0.0-2.26125.123 - 5.0.0-2.26125.123 - 2.0.0-preview.1.26125.123 - 2.2.5 - 10.0.0-beta.26125.123 - 10.0.0-beta.26125.123 - 10.0.0-beta.26125.123 - 10.0.0-beta.26125.123 - 10.0.0-beta.26125.123 - 10.0.0-beta.26125.123 - 10.0.5 - 10.0.5 - 10.0.5-servicing.26125.123 - 10.0.5-servicing.26125.123 - 10.0.0-beta.26125.123 - 10.0.0-beta.26125.123 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 14.0.105-servicing.26125.123 - 10.0.5 - 5.0.0-2.26125.123 - 5.0.0-2.26125.123 - 10.0.5-servicing.26125.123 - 10.0.5 - 10.0.5 + 10.0.0-preview.26120.103 + 18.3.0-release-26120-103 + 18.3.0-release-26120-103 + 7.3.0-preview.1.12103 + 10.0.200-alpha.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 10.0.0-preview.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 10.0.0-beta.26120.103 + 15.2.100-preview2.26120.103 + 5.3.0-2.26120.103 + 5.3.0-2.26120.103 10.0.0-preview.7.25377.103 - 10.0.0-preview.26125.123 - 10.0.5-servicing.26125.123 - 18.0.2-release-26125-123 - 10.0.5 - 10.0.5-servicing.26125.123 - 10.0.105 - 10.0.105 - 10.0.105 - 10.0.105 - 10.0.105 - 10.0.105 - 10.0.105 - 10.0.105 - 10.0.105-servicing.26125.123 - 10.0.105 - 10.0.105-servicing.26125.123 - 10.0.105 - 10.0.105 - 10.0.105-servicing.26125.123 - 18.0.2-release-26125-123 - 18.0.2-release-26125-123 - 3.2.5 - 10.0.5 - 10.0.5-servicing.26125.123 - 10.0.5 - 7.0.2-rc.12623 - 7.0.2-rc.12623 - 7.0.2-rc.12623 - 7.0.2-rc.12623 - 7.0.2-rc.12623 - 7.0.2-rc.12623 - 7.0.2-rc.12623 - 7.0.2-rc.12623 - 7.0.2-rc.12623 - 7.0.2-rc.12623 - 7.0.2-rc.12623 - 7.0.2-rc.12623 - 7.0.2-rc.12623 - 7.0.2-rc.12623 - 7.0.2-rc.12623 - 7.0.2-rc.12623 - 10.0.5 - 2.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 - 10.0.5 + 10.0.0-preview.26120.103 + 18.3.0-release-26120-103 + 10.0.200-alpha.26120.103 + 10.0.200-alpha.26120.103 + 10.0.200-alpha.26120.103 + 10.0.200-alpha.26120.103 + 10.0.200-alpha.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 10.0.200-preview.26120.103 + 18.3.0-release-26120-103 + 18.3.0-release-26120-103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + 7.3.0-preview.1.12103 + + 10.0.2-servicing.25612.105 + 10.0.2-servicing.25612.105 + 10.0.2-servicing.25612.105 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2 + 2.0.0-preview.1.25612.105 + 2.2.2 + 10.0.2 + 10.0.2 + 10.0.0-rtm.25523.111 + 10.0.0-rtm.25523.111 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2-servicing.25612.105 + 3.2.2 + 10.0.2 + 10.0.2-servicing.25612.105 + 10.0.2 + 10.0.2 + 2.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 + 10.0.2 2.1.0 @@ -148,31 +150,7 @@ This file should be imported by eng/Versions.props - $(dotnetdevcertsPackageVersion) - $(dotnetuserjwtsPackageVersion) - $(dotnetusersecretsPackageVersion) - $(MicrosoftAspNetCoreAnalyzersPackageVersion) - $(MicrosoftAspNetCoreAppRefPackageVersion) - $(MicrosoftAspNetCoreAppRefInternalPackageVersion) - $(MicrosoftAspNetCoreAuthenticationFacebookPackageVersion) - $(MicrosoftAspNetCoreAuthenticationGooglePackageVersion) - $(MicrosoftAspNetCoreAuthenticationMicrosoftAccountPackageVersion) - $(MicrosoftAspNetCoreAuthorizationPackageVersion) - $(MicrosoftAspNetCoreComponentsPackageVersion) - $(MicrosoftAspNetCoreComponentsAnalyzersPackageVersion) - $(MicrosoftAspNetCoreComponentsFormsPackageVersion) - $(MicrosoftAspNetCoreComponentsSdkAnalyzersPackageVersion) - $(MicrosoftAspNetCoreComponentsWebPackageVersion) - $(MicrosoftAspNetCoreComponentsWebAssemblyPackageVersion) - $(MicrosoftAspNetCoreComponentsWebAssemblyServerPackageVersion) - $(MicrosoftAspNetCoreComponentsWebViewPackageVersion) - $(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion) - $(MicrosoftAspNetCoreMetadataPackageVersion) - $(MicrosoftAspNetCoreMvcAnalyzersPackageVersion) - $(MicrosoftAspNetCoreMvcApiAnalyzersPackageVersion) $(MicrosoftAspNetCoreMvcRazorExtensionsToolingInternalPackageVersion) - $(MicrosoftAspNetCoreTestHostPackageVersion) - $(MicrosoftBclAsyncInterfacesPackageVersion) $(MicrosoftBuildPackageVersion) $(MicrosoftBuildLocalizationPackageVersion) $(MicrosoftBuildNuGetSdkResolverPackageVersion) @@ -183,46 +161,25 @@ This file should be imported by eng/Versions.props $(MicrosoftCodeAnalysisCSharpCodeStylePackageVersion) $(MicrosoftCodeAnalysisCSharpFeaturesPackageVersion) $(MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion) + $(MicrosoftCodeAnalysisExternalAccessHotReloadPackageVersion) $(MicrosoftCodeAnalysisPublicApiAnalyzersPackageVersion) $(MicrosoftCodeAnalysisRazorToolingInternalPackageVersion) $(MicrosoftCodeAnalysisWorkspacesCommonPackageVersion) $(MicrosoftCodeAnalysisWorkspacesMSBuildPackageVersion) - $(MicrosoftDeploymentDotNetReleasesPackageVersion) - $(MicrosoftDiaSymReaderPackageVersion) $(MicrosoftDotNetArcadeSdkPackageVersion) $(MicrosoftDotNetBuildTasksInstallersPackageVersion) $(MicrosoftDotNetBuildTasksTemplatingPackageVersion) $(MicrosoftDotNetBuildTasksWorkloadsPackageVersion) $(MicrosoftDotNetHelixSdkPackageVersion) $(MicrosoftDotNetSignToolPackageVersion) - $(MicrosoftDotNetWebItemTemplates100PackageVersion) - $(MicrosoftDotNetWebProjectTemplates100PackageVersion) - $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) - $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) $(MicrosoftDotNetXliffTasksPackageVersion) $(MicrosoftDotNetXUnitExtensionsPackageVersion) - $(MicrosoftExtensionsConfigurationIniPackageVersion) - $(MicrosoftExtensionsDependencyModelPackageVersion) - $(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion) - $(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion) - $(MicrosoftExtensionsFileSystemGlobbingPackageVersion) - $(MicrosoftExtensionsLoggingPackageVersion) - $(MicrosoftExtensionsLoggingAbstractionsPackageVersion) - $(MicrosoftExtensionsLoggingConsolePackageVersion) - $(MicrosoftExtensionsObjectPoolPackageVersion) $(MicrosoftFSharpCompilerPackageVersion) - $(MicrosoftJSInteropPackageVersion) $(MicrosoftNetCompilersToolsetPackageVersion) $(MicrosoftNetCompilersToolsetFrameworkPackageVersion) - $(MicrosoftNETHostModelPackageVersion) - $(MicrosoftNETILLinkTasksPackageVersion) - $(MicrosoftNETRuntimeEmscripten3156Cachewinx64PackageVersion) $(MicrosoftNETRuntimeEmscriptenSdkInternalPackageVersion) $(MicrosoftNETSdkRazorSourceGeneratorsTransportPackageVersion) - $(MicrosoftNETSdkWindowsDesktopPackageVersion) $(MicrosoftNETTestSdkPackageVersion) - $(MicrosoftNETCoreAppRefPackageVersion) - $(MicrosoftNETCorePlatformsPackageVersion) $(MicrosoftSourceLinkAzureReposGitPackageVersion) $(MicrosoftSourceLinkBitbucketGitPackageVersion) $(MicrosoftSourceLinkCommonPackageVersion) @@ -239,10 +196,6 @@ This file should be imported by eng/Versions.props $(MicrosoftTemplateSearchTemplateDiscoveryPackageVersion) $(MicrosoftTestPlatformBuildPackageVersion) $(MicrosoftTestPlatformCLIPackageVersion) - $(MicrosoftWebXdtPackageVersion) - $(MicrosoftWin32SystemEventsPackageVersion) - $(MicrosoftWindowsDesktopAppInternalPackageVersion) - $(MicrosoftWindowsDesktopAppRefPackageVersion) $(NuGetBuildTasksPackageVersion) $(NuGetBuildTasksConsolePackageVersion) $(NuGetBuildTasksPackPackageVersion) @@ -259,6 +212,57 @@ This file should be imported by eng/Versions.props $(NuGetProjectModelPackageVersion) $(NuGetProtocolPackageVersion) $(NuGetVersioningPackageVersion) + + $(dotnetdevcertsPackageVersion) + $(dotnetuserjwtsPackageVersion) + $(dotnetusersecretsPackageVersion) + $(MicrosoftAspNetCoreAnalyzersPackageVersion) + $(MicrosoftAspNetCoreAppRefPackageVersion) + $(MicrosoftAspNetCoreAppRefInternalPackageVersion) + $(MicrosoftAspNetCoreAuthenticationFacebookPackageVersion) + $(MicrosoftAspNetCoreAuthenticationGooglePackageVersion) + $(MicrosoftAspNetCoreAuthenticationMicrosoftAccountPackageVersion) + $(MicrosoftAspNetCoreAuthorizationPackageVersion) + $(MicrosoftAspNetCoreComponentsPackageVersion) + $(MicrosoftAspNetCoreComponentsAnalyzersPackageVersion) + $(MicrosoftAspNetCoreComponentsFormsPackageVersion) + $(MicrosoftAspNetCoreComponentsSdkAnalyzersPackageVersion) + $(MicrosoftAspNetCoreComponentsWebPackageVersion) + $(MicrosoftAspNetCoreComponentsWebAssemblyPackageVersion) + $(MicrosoftAspNetCoreComponentsWebAssemblyServerPackageVersion) + $(MicrosoftAspNetCoreComponentsWebViewPackageVersion) + $(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion) + $(MicrosoftAspNetCoreMetadataPackageVersion) + $(MicrosoftAspNetCoreMvcAnalyzersPackageVersion) + $(MicrosoftAspNetCoreMvcApiAnalyzersPackageVersion) + $(MicrosoftAspNetCoreTestHostPackageVersion) + $(MicrosoftBclAsyncInterfacesPackageVersion) + $(MicrosoftDeploymentDotNetReleasesPackageVersion) + $(MicrosoftDiaSymReaderPackageVersion) + $(MicrosoftDotNetWebItemTemplates100PackageVersion) + $(MicrosoftDotNetWebProjectTemplates100PackageVersion) + $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) + $(MicrosoftDotnetWpfProjectTemplatesPackageVersion) + $(MicrosoftExtensionsConfigurationIniPackageVersion) + $(MicrosoftExtensionsDependencyModelPackageVersion) + $(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion) + $(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion) + $(MicrosoftExtensionsFileSystemGlobbingPackageVersion) + $(MicrosoftExtensionsLoggingPackageVersion) + $(MicrosoftExtensionsLoggingAbstractionsPackageVersion) + $(MicrosoftExtensionsLoggingConsolePackageVersion) + $(MicrosoftExtensionsObjectPoolPackageVersion) + $(MicrosoftJSInteropPackageVersion) + $(MicrosoftNETHostModelPackageVersion) + $(MicrosoftNETILLinkTasksPackageVersion) + $(MicrosoftNETRuntimeEmscripten3156Cachewinx64PackageVersion) + $(MicrosoftNETSdkWindowsDesktopPackageVersion) + $(MicrosoftNETCoreAppRefPackageVersion) + $(MicrosoftNETCorePlatformsPackageVersion) + $(MicrosoftWebXdtPackageVersion) + $(MicrosoftWin32SystemEventsPackageVersion) + $(MicrosoftWindowsDesktopAppInternalPackageVersion) + $(MicrosoftWindowsDesktopAppRefPackageVersion) $(SystemCodeDomPackageVersion) $(SystemCommandLinePackageVersion) $(SystemComponentModelCompositionPackageVersion) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f3efceb132ed..33e1c1f2c812 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b @@ -68,170 +68,170 @@ https://github.com/dotnet/dotnet 6a953e76162f3f079405f80e28664fa51b136740 - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + b0f34d51fccc69fd334253924abd8d6853fad7aa + + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + b0f34d51fccc69fd334253924abd8d6853fad7aa - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - + https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + ee15891825b40d11a37b0d9f4357cfdc9ee7b884 - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b https://github.com/microsoft/testfx @@ -569,9 +572,9 @@ https://github.com/microsoft/testfx 642bcb895b95a111b5cdb235665a7c43496f85ef - - https://github.com/dotnet/dotnet - 8d7e7d733b9daf56fe6db46ff6d5205895e0444e + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + 44525024595742ebe09023abe709df51de65009b diff --git a/eng/common/templates/steps/vmr-sync.yml b/eng/common/templates/steps/vmr-sync.yml index eb619c502683..599afb6186b8 100644 --- a/eng/common/templates/steps/vmr-sync.yml +++ b/eng/common/templates/steps/vmr-sync.yml @@ -38,6 +38,27 @@ steps: displayName: Label PR commit workingDirectory: $(Agent.BuildDirectory)/repo +- script: | + vmr_sha=$(grep -oP '(?<=Sha=")[^"]*' $(Agent.BuildDirectory)/repo/eng/Version.Details.xml) + echo "##vso[task.setvariable variable=vmr_sha]$vmr_sha" + displayName: Obtain the vmr sha from Version.Details.xml (Unix) + condition: ne(variables['Agent.OS'], 'Windows_NT') + workingDirectory: $(Agent.BuildDirectory)/repo + +- powershell: | + [xml]$xml = Get-Content -Path $(Agent.BuildDirectory)/repo/eng/Version.Details.xml + $vmr_sha = $xml.SelectSingleNode("//Source").Sha + Write-Output "##vso[task.setvariable variable=vmr_sha]$vmr_sha" + displayName: Obtain the vmr sha from Version.Details.xml (Windows) + condition: eq(variables['Agent.OS'], 'Windows_NT') + workingDirectory: $(Agent.BuildDirectory)/repo + +- script: | + git fetch --all + git checkout $(vmr_sha) + displayName: Checkout VMR at correct sha for repo flow + workingDirectory: ${{ parameters.vmrPath }} + - script: | git config --global user.name "dotnet-maestro[bot]" git config --global user.email "dotnet-maestro[bot]@users.noreply.github.com" diff --git a/eng/common/templates/vmr-build-pr.yml b/eng/common/templates/vmr-build-pr.yml index 2f3694fa1323..ce3c29a62faf 100644 --- a/eng/common/templates/vmr-build-pr.yml +++ b/eng/common/templates/vmr-build-pr.yml @@ -34,7 +34,6 @@ resources: type: github name: dotnet/dotnet endpoint: dotnet - ref: refs/heads/main # Set to whatever VMR branch the PR build should insert into stages: - template: /eng/pipelines/templates/stages/vmr-build.yml@vmr diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 977a2d4b1039..049fe6db994e 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -824,11 +824,6 @@ function MSBuild-Core() { $cmdArgs = "$($buildTool.Command) /m /nologo /clp:Summary /v:$verbosity /nr:$nodeReuse /p:ContinuousIntegrationBuild=$ci" - # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable - if ($env:MSBUILD_MT_ENABLED -eq "1") { - $cmdArgs += ' -mt' - } - if ($warnAsError) { $cmdArgs += ' /warnaserror /p:TreatWarningsAsErrors=true' } diff --git a/eng/common/tools.sh b/eng/common/tools.sh index 1b296f646c23..c1841c9dfd0f 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -526,13 +526,7 @@ function MSBuild-Core { } } - # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable - local mt_switch="" - if [[ "${MSBUILD_MT_ENABLED:-}" == "1" ]]; then - mt_switch="-mt" - fi - - RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch $mt_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" + RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" } function GetDarc { diff --git a/eng/common/vmr-sync.ps1 b/eng/common/vmr-sync.ps1 index b37992d91cf0..97302f3205be 100755 --- a/eng/common/vmr-sync.ps1 +++ b/eng/common/vmr-sync.ps1 @@ -103,20 +103,12 @@ Set-StrictMode -Version Latest Highlight 'Installing .NET, preparing the tooling..' . .\eng\common\tools.ps1 $dotnetRoot = InitializeDotNetCli -install:$true -$env:DOTNET_ROOT = $dotnetRoot $darc = Get-Darc +$dotnet = "$dotnetRoot\dotnet.exe" Highlight "Starting the synchronization of VMR.." # Synchronize the VMR -$versionDetailsPath = Resolve-Path (Join-Path $PSScriptRoot '..\Version.Details.xml') | Select-Object -ExpandProperty Path -[xml]$versionDetails = Get-Content -Path $versionDetailsPath -$repoName = $versionDetails.SelectSingleNode('//Source').Mapping -if (-not $repoName) { - Fail "Failed to resolve repo mapping from $versionDetailsPath" - exit 1 -} - $darcArgs = ( "vmr", "forwardflow", "--tmp", $tmpDir, @@ -138,27 +130,9 @@ if ($LASTEXITCODE -eq 0) { Highlight "Synchronization succeeded" } else { - Highlight "Failed to flow code into the local VMR. Falling back to resetting the VMR to match repo contents..." - git -C $vmrDir reset --hard - - $resetArgs = ( - "vmr", "reset", - "${repoName}:HEAD", - "--vmr", $vmrDir, - "--tmp", $tmpDir, - "--additional-remotes", "${repoName}:${repoRoot}" - ) - - & "$darc" $resetArgs - - if ($LASTEXITCODE -eq 0) { - Highlight "Successfully reset the VMR using 'darc vmr reset'" - } - else { - Fail "Synchronization of repo to VMR failed!" - Fail "'$vmrDir' is left in its last state (re-run of this script will reset it)." - Fail "Please inspect the logs which contain path to the failing patch file (use -debugOutput to get all the details)." - Fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script." - exit 1 - } + Fail "Synchronization of repo to VMR failed!" + Fail "'$vmrDir' is left in its last state (re-run of this script will reset it)." + Fail "Please inspect the logs which contain path to the failing patch file (use -debugOutput to get all the details)." + Fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script." + exit 1 } diff --git a/eng/common/vmr-sync.sh b/eng/common/vmr-sync.sh index 198caec59bd4..44239e331c0c 100755 --- a/eng/common/vmr-sync.sh +++ b/eng/common/vmr-sync.sh @@ -186,13 +186,6 @@ fi # Synchronize the VMR -version_details_path=$(cd "$scriptroot/.."; pwd -P)/Version.Details.xml -repo_name=$(grep -m 1 ' Date: Thu, 26 Feb 2026 11:16:21 -0800 Subject: [PATCH 145/179] Split ApplyDeltaTests into multiple types (#53158) --- ...omCreateXUnitWorkItemsWithTestExclusion.cs | 2 +- .../HotReload/ApplyDeltaTests.cs | 1408 ----------------- .../HotReload/AspireHotReloadTests.cs | 176 +++ .../HotReload/AutoRestartTests.cs | 206 +++ .../HotReload/LoggingTests.cs | 63 + .../HotReload/MauiHotReloadTests.cs | 63 + .../HotReload/MetadataUpdateHandlerTests.cs | 90 ++ .../HotReload/ProjectUpdateTests.cs | 288 ++++ .../HotReload/RazorHotReloadTests.cs | 172 ++ .../HotReload/SourceFileUpdateTests.cs | 364 +++++ .../HotReload/TerminationTests.cs | 74 + 11 files changed, 1497 insertions(+), 1409 deletions(-) delete mode 100644 test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs create mode 100644 test/dotnet-watch.Tests/HotReload/AspireHotReloadTests.cs create mode 100644 test/dotnet-watch.Tests/HotReload/AutoRestartTests.cs create mode 100644 test/dotnet-watch.Tests/HotReload/LoggingTests.cs create mode 100644 test/dotnet-watch.Tests/HotReload/MauiHotReloadTests.cs create mode 100644 test/dotnet-watch.Tests/HotReload/MetadataUpdateHandlerTests.cs create mode 100644 test/dotnet-watch.Tests/HotReload/ProjectUpdateTests.cs create mode 100644 test/dotnet-watch.Tests/HotReload/RazorHotReloadTests.cs create mode 100644 test/dotnet-watch.Tests/HotReload/SourceFileUpdateTests.cs create mode 100644 test/dotnet-watch.Tests/HotReload/TerminationTests.cs diff --git a/test/HelixTasks/SDKCustomCreateXUnitWorkItemsWithTestExclusion.cs b/test/HelixTasks/SDKCustomCreateXUnitWorkItemsWithTestExclusion.cs index f8617f5dce26..a3e8eb3e64e4 100644 --- a/test/HelixTasks/SDKCustomCreateXUnitWorkItemsWithTestExclusion.cs +++ b/test/HelixTasks/SDKCustomCreateXUnitWorkItemsWithTestExclusion.cs @@ -159,7 +159,7 @@ private async Task ExecuteAsync() var testFilter = string.IsNullOrEmpty(assemblyPartitionInfo.ClassListArgumentString) ? "" : $"--filter \"{assemblyPartitionInfo.ClassListArgumentString}\""; string command = $"{driver} test {assemblyName} -e HELIX_WORK_ITEM_TIMEOUT={timeout} {testExecutionDirectory} {msbuildAdditionalSdkResolverFolder} " + - $"{(XUnitArguments != null ? " " + XUnitArguments : "")} --results-directory .{Path.DirectorySeparatorChar} --logger trx --logger \"console;verbosity=detailed\" --blame-hang --blame-hang-timeout 25m {testFilter} {enableDiagLogging} {arguments}"; + $"{(XUnitArguments != null ? " " + XUnitArguments : "")} --results-directory .{Path.DirectorySeparatorChar} --logger trx --logger \"console;verbosity=detailed\" --blame-hang --blame-hang-timeout 60m {testFilter} {enableDiagLogging} {arguments}"; Log.LogMessage($"Creating work item with properties Identity: {assemblyName}, PayloadDirectory: {publishDirectory}, Command: {command}"); diff --git a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs deleted file mode 100644 index ec0cf50a78cf..000000000000 --- a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs +++ /dev/null @@ -1,1408 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -#nullable disable - -using System.Text.RegularExpressions; - -namespace Microsoft.DotNet.Watch.UnitTests -{ - public class ApplyDeltaTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) - { - [Fact] - public async Task AddSourceFile() - { - Log("AddSourceFile started"); - - var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps") - .WithSource(); - - var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); - - App.Start(testAsset, [], "AppWithDeps"); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - // add a new file: - UpdateSourceFile(Path.Combine(dependencyDir, "AnotherLib.cs"), """ - public class AnotherLib - { - public static void Print() - => System.Console.WriteLine("Changed!"); - } - """); - - await App.WaitUntilOutputContains(MessageDescriptor.ReEvaluationCompleted); - - // update existing file: - UpdateSourceFile(Path.Combine(dependencyDir, "Foo.cs"), """ - public class Lib - { - public static void Print() - => AnotherLib.Print(); - } - """); - - await App.WaitUntilOutputContains("Changed!"); - } - - [Fact] - public async Task ChangeFileInDependency() - { - var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps") - .WithSource(); - - var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); - - App.Start(testAsset, [], "AppWithDeps"); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - var newSrc = """ - public class Lib - { - public static void Print() - => System.Console.WriteLine("Changed!"); - } - """; - - UpdateSourceFile(Path.Combine(dependencyDir, "Foo.cs"), newSrc); - - await App.WaitUntilOutputContains("dotnet watch 🔥 Hot reload capabilities: AddExplicitInterfaceImplementation AddFieldRva AddInstanceFieldToExistingType AddMethodToExistingType AddStaticFieldToExistingType Baseline ChangeCustomAttributes GenericAddFieldToExistingType GenericAddMethodToExistingType GenericUpdateMethod NewTypeDefinition UpdateParameters."); - - await App.WaitUntilOutputContains("Changed!"); - } - - [Fact] - public async Task ProjectChange_UpdateDirectoryBuildPropsThenUpdateSource() - { - var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps") - .WithSource(); - - var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); - - App.Start(testAsset, [], "AppWithDeps"); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - UpdateSourceFile( - Path.Combine(testAsset.Path, "Directory.Build.props"), - src => src.Replace("false", "true")); - - await App.WaitUntilOutputContains(MessageDescriptor.NoManagedCodeChangesToApply); - await App.WaitUntilOutputContains(MessageDescriptor.ProjectChangeTriggeredReEvaluation); - - App.Process.ClearOutput(); - - var newSrc = """ - public class Lib - { - public static unsafe void Print() - { - char c = '!'; - char* pc = &c; - System.Console.WriteLine($"Changed{*pc}"); - } - } - """; - - UpdateSourceFile(Path.Combine(dependencyDir, "Foo.cs"), newSrc); - - await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); - await App.WaitUntilOutputContains("Changed!"); - } - - [Theory] - [CombinatorialData] - public async Task ProjectChange_Update(bool isDirectoryProps) - { - var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps", identifier: isDirectoryProps.ToString()) - .WithSource(); - - var symbolName = isDirectoryProps ? "BUILD_CONST_IN_PROPS" : "BUILD_CONST_IN_CSPROJ"; - - var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); - var libSourcePath = Path.Combine(dependencyDir, "Foo.cs"); - var buildFilePath = isDirectoryProps ? Path.Combine(testAsset.Path, "Directory.Build.props") : Path.Combine(dependencyDir, "Dependency.csproj"); - - File.WriteAllText(libSourcePath, $$""" - public class Lib - { - public static void Print() - { - #if {{symbolName}} - System.Console.WriteLine("{{symbolName}} set"); - #else - System.Console.WriteLine("{{symbolName}} not set"); - #endif - } - } - """); - - App.Start(testAsset, ["--non-interactive"], "AppWithDeps"); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - await App.WaitUntilOutputContains($"{symbolName} set"); - App.Process.ClearOutput(); - - UpdateSourceFile(buildFilePath, src => src.Replace(symbolName, "")); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - await App.WaitUntilOutputContains(MessageDescriptor.ProjectChangeTriggeredReEvaluation); - await App.WaitUntilOutputContains("dotnet watch ⌚ [auto-restart] error ENC1102: Changing project setting 'DefineConstants'"); - - await App.WaitUntilOutputContains($"{symbolName} not set"); - } - - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/12001")] - public async Task ProjectChange_DirectoryBuildProps_Add() - { - var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps") - .WithSource(); - - var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); - var libSourcePath = Path.Combine(dependencyDir, "Foo.cs"); - var directoryBuildProps = Path.Combine(testAsset.Path, "Directory.Build.props"); - - // delete the file before we start the app, it will be added later: - File.Delete(directoryBuildProps); - - File.WriteAllText(libSourcePath, """ - public class Lib - { - public static void Print() - { - #if BUILD_CONST_IN_PROPS - System.Console.WriteLine("BUILD_CONST_IN_PROPS set"); - #else - System.Console.WriteLine("BUILD_CONST_IN_PROPS not set"); - #endif - } - } - """); - - App.Start(testAsset, [], "AppWithDeps"); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - await App.WaitUntilOutputContains("BUILD_CONST_IN_PROPS set"); - App.Process.ClearOutput(); - - UpdateSourceFile( - directoryBuildProps, - src => src.Replace("BUILD_CONST_IN_PROPS", "")); - - await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); - await App.WaitUntilOutputContains("BUILD_CONST not set"); - - await App.WaitUntilOutputContains(MessageDescriptor.ProjectChangeTriggeredReEvaluation); - } - - [Fact] - public async Task ProjectChange_DirectoryBuildProps_Delete() - { - var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps") - .WithSource(); - - var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); - var libSourcePath = Path.Combine(dependencyDir, "Foo.cs"); - var directoryBuildProps = Path.Combine(testAsset.Path, "Directory.Build.props"); - - File.WriteAllText(libSourcePath, """ - public class Lib - { - public static void Print() - { - #if BUILD_CONST_IN_PROPS - System.Console.WriteLine("BUILD_CONST_IN_PROPS set"); - #else - System.Console.WriteLine("BUILD_CONST_IN_PROPS not set"); - #endif - } - } - """); - - App.Start(testAsset, ["--non-interactive"], "AppWithDeps"); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - await App.WaitUntilOutputContains("BUILD_CONST_IN_PROPS set"); - - // delete Directory.Build.props that defines BUILD_CONST_IN_PROPS - Log($"Deleting {directoryBuildProps}"); - File.Delete(directoryBuildProps); - - // Project needs to be re-evaluated: - await App.WaitUntilOutputContains(MessageDescriptor.ProjectChangeTriggeredReEvaluation); - App.Process.ClearOutput(); - - await App.WaitUntilOutputContains("BUILD_CONST_IN_PROPS not set"); - } - - [Fact] - public async Task DefaultItemExcludes_DefaultItemsEnabled() - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") - .WithSource() - .WithProjectChanges(project => - { - project.Root.Descendants() - .First(e => e.Name.LocalName == "PropertyGroup") - .Add(XElement.Parse(""" - $(DefaultItemExcludes);AppData/**/*.* - """)); - }); - - var appDataDir = Path.Combine(testAsset.Path, "AppData", "dir"); - var appDataFilePath = Path.Combine(appDataDir, "ShouldBeIgnored.cs"); - - Directory.CreateDirectory(appDataDir); - - App.Start(testAsset, []); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - await App.WaitUntilOutputContains(new Regex(@"dotnet watch ⌚ Exclusion glob: 'AppData/[*][*]/[*][.][*];bin[/\\]+Debug[/\\]+[*][*];obj[/\\]+Debug[/\\]+[*][*];bin[/\\]+[*][*];obj[/\\]+[*][*]")); - App.Process.ClearOutput(); - - UpdateSourceFile(appDataFilePath, """ - class X; - """); - - await App.WaitUntilOutputContains($"dotnet watch ⌚ Ignoring change in excluded file '{appDataFilePath}': Add. Path matches DefaultItemExcludes glob 'AppData/**/*.*' set in '{testAsset.Path}'."); - } - - [Fact] - public async Task DefaultItemExcludes_DefaultItemsDisabled() - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") - .WithSource() - .WithProjectChanges(project => - { - project.Root.Descendants() - .First(e => e.Name.LocalName == "PropertyGroup") - .Add(XElement.Parse(""" - false - """)); - - project.Root.Descendants() - .First(e => e.Name.LocalName == "ItemGroup") - .Add(XElement.Parse(""" - - """)); - }); - - var binDir = Path.Combine(testAsset.Path, "bin", "Debug", ToolsetInfo.CurrentTargetFramework); - var binDirFilePath = Path.Combine(binDir, "ShouldBeIgnored.cs"); - - var objDir = Path.Combine(testAsset.Path, "obj", "Debug", ToolsetInfo.CurrentTargetFramework); - var objDirFilePath = Path.Combine(objDir, "ShouldBeIgnored.cs"); - - Directory.CreateDirectory(binDir); - - App.Start(testAsset, []); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - await App.WaitUntilOutputContains($"dotnet watch ⌚ Excluded directory: '{binDir}'"); - await App.WaitUntilOutputContains($"dotnet watch ⌚ Excluded directory: '{objDir}'"); - App.Process.ClearOutput(); - - UpdateSourceFile(binDirFilePath, "class X;"); - UpdateSourceFile(objDirFilePath, "class X;"); - - await App.WaitUntilOutputContains($"dotnet watch ⌚ Ignoring change in output directory: Add '{binDirFilePath}'"); - await App.WaitUntilOutputContains($"dotnet watch ⌚ Ignoring change in output directory: Add '{objDirFilePath}'"); - } - - [Fact] - public async Task ProjectChange_GlobalUsings() - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") - .WithSource(); - - var programPath = Path.Combine(testAsset.Path, "Program.cs"); - var projectPath = Path.Combine(testAsset.Path, "WatchHotReloadApp.csproj"); - - App.Start(testAsset, []); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - // missing System.Linq import: - UpdateSourceFile(programPath, content => content.Replace(""" - Console.WriteLine("."); - """, - """ - Console.WriteLine($">>> {typeof(XDocument)}"); - """)); - - await App.WaitUntilOutputContains(MessageDescriptor.UnableToApplyChanges); - App.Process.ClearOutput(); - - UpdateSourceFile(projectPath, content => content.Replace(""" - - """, - """ - - """)); - - await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); - - await App.WaitUntilOutputContains(">>> System.Xml.Linq.XDocument"); - - await App.WaitUntilOutputContains(MessageDescriptor.ReEvaluationCompleted); - } - - [Fact] - public async Task BinaryLogs() - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") - .WithSource(); - - var projectPath = Path.Combine(testAsset.Path, "WatchHotReloadApp.csproj"); - var logDir = Path.Combine(testAsset.Path, "logs"); - var binLogPath = Path.Combine(logDir, "Test.binlog"); - var binLogPathBase = Path.ChangeExtension(binLogPath, "").TrimEnd('.'); - - Assert.False(Directory.Exists(logDir)); - - App.SuppressVerboseLogging(); - App.Start(testAsset, ["--verbose", $"-bl:{binLogPath}"], testFlags: TestFlags.None); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - var expectedLogs = new List() - { - // dotnet build log - binLogPath, - // dotnet run log - binLogPathBase + "-dotnet-run.binlog", - // initial DTB: - binLogPathBase + "-dotnet-watch.DesignTimeBuild.WatchHotReloadApp.csproj.1.binlog" - }; - - VerifyExpectedLogFiles(); - - UpdateSourceFile(projectPath, content => content.Replace(""" - - """, - """ - - """)); - - await App.WaitUntilOutputContains(MessageDescriptor.ReEvaluationCompleted); - - // project update triggered restore and DTB: - expectedLogs.Add(binLogPathBase + "-dotnet-watch.Restore.WatchHotReloadApp.csproj.2.binlog"); - expectedLogs.Add(binLogPathBase + "-dotnet-watch.DesignTimeBuild.WatchHotReloadApp.csproj.3.binlog"); - - VerifyExpectedLogFiles(); - - void VerifyExpectedLogFiles() - { - AssertEx.SequenceEqual( - expectedLogs.Order(), - Directory.EnumerateFileSystemEntries(logDir, "*.*", SearchOption.AllDirectories).Order()); - } - } - - [Theory] - [CombinatorialData] - public async Task AutoRestartOnRudeEdit(bool nonInteractive) - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: nonInteractive.ToString()) - .WithSource(); - - if (!nonInteractive) - { - testAsset = testAsset - .WithProjectChanges(project => - { - project.Root.Descendants() - .First(e => e.Name.LocalName == "PropertyGroup") - .Add(XElement.Parse(""" - true - """)); - }); - } - - var programPath = Path.Combine(testAsset.Path, "Program.cs"); - - App.Start(testAsset, nonInteractive ? ["--non-interactive"] : []); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - App.Process.ClearOutput(); - - // rude edit: adding virtual method - UpdateSourceFile(programPath, src => src.Replace("/* member placeholder */", "public virtual void F() {}")); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - await App.WaitUntilOutputContains(MessageDescriptor.RestartNeededToApplyChanges); - await App.WaitUntilOutputContains($"⌚ [auto-restart] {programPath}(39,11): error ENC0023: Adding an abstract method or overriding an inherited method requires restarting the application."); - await App.WaitUntilOutputContains($"[WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Exited"); - await App.WaitUntilOutputContains($"[WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Launched"); - App.Process.ClearOutput(); - - // valid edit: - UpdateSourceFile(programPath, src => src.Replace("public virtual void F() {}", "public virtual void F() { Console.WriteLine(1); }")); - - await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); - } - - [Theory(Skip = "https://github.com/dotnet/sdk/issues/51469")] - [CombinatorialData] - public async Task AutoRestartOnRuntimeRudeEdit(bool nonInteractive) - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: nonInteractive.ToString()) - .WithSource(); - - var tfm = ToolsetInfo.CurrentTargetFramework; - var programPath = Path.Combine(testAsset.Path, "Program.cs"); - - // Changes the type of lambda without updating top-level code. - // The loop will end up calling the old version of the lambda resulting in runtime rude edit. - - File.WriteAllText(programPath, """ - using System; - using System.Threading; - - var d = C.F(); - - while (true) - { - Thread.Sleep(250); - d(1); - } - - class C - { - public static Action F() - { - return a => - { - Console.WriteLine(a.GetType()); - }; - } - } - """); - - App.Start(testAsset, nonInteractive ? ["--non-interactive"] : []); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - await App.WaitUntilOutputContains("System.Int32"); - App.Process.ClearOutput(); - - UpdateSourceFile(programPath, src => src.Replace("Action", "Action")); - - // The following agent messages must be reported in order. - // The HotReloadException handler needs to be installed and update handlers invoked and completed before the - // HotReloadException handler may proceed with runtime rude edit processing and application restart. - await App.WaitForOutputLineContaining($"dotnet watch 🕵️ [WatchHotReloadApp ({tfm})] HotReloadException handler installed."); - await App.WaitForOutputLineContaining($"dotnet watch 🕵️ [WatchHotReloadApp ({tfm})] Invoking metadata update handlers."); - await App.WaitForOutputLineContaining($"dotnet watch 🕵️ [WatchHotReloadApp ({tfm})] Updates applied."); - await App.WaitForOutputLineContaining($"dotnet watch 🕵️ [WatchHotReloadApp ({tfm})] Runtime rude edit detected:"); - - await App.WaitUntilOutputContains($"dotnet watch ⚠ [WatchHotReloadApp ({tfm})] " + - "Attempted to invoke a deleted lambda or local function implementation. " + - "This can happen when lambda or local function is deleted while the application is running."); - - await App.WaitUntilOutputContains(MessageDescriptor.RestartingApplication, $"WatchHotReloadApp ({tfm})"); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - await App.WaitUntilOutputContains("System.Byte"); - } - - [Fact] - public async Task AutoRestartOnRudeEditAfterRestartPrompt() - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") - .WithSource(); - - var programPath = Path.Combine(testAsset.Path, "Program.cs"); - - App.Start(testAsset, [], testFlags: TestFlags.ReadKeyFromStdin); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - App.Process.ClearOutput(); - - // rude edit: adding virtual method - UpdateSourceFile(programPath, src => src.Replace("/* member placeholder */", "public virtual void F() {}")); - - // the prompt is printed into stdout while the error is printed into stderr, so they might arrive in any order: - await App.WaitUntilOutputContains(" ❔ Do you want to restart your app? Yes (y) / No (n) / Always (a) / Never (v)"); - await App.WaitUntilOutputContains(MessageDescriptor.RestartNeededToApplyChanges); - - await App.WaitUntilOutputContains($"❌ {programPath}(39,11): error ENC0023: Adding an abstract method or overriding an inherited method requires restarting the application."); - App.Process.ClearOutput(); - - App.SendKey('a'); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - App.AssertOutputContains($"[WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Exited"); - App.AssertOutputContains($"[WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Launched"); - App.Process.ClearOutput(); - - // rude edit: deleting virtual method - UpdateSourceFile(programPath, src => src.Replace("public virtual void F() {}", "")); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - await App.WaitUntilOutputContains(MessageDescriptor.RestartNeededToApplyChanges); - await App.WaitUntilOutputContains($"⌚ [auto-restart] {programPath}(39,1): error ENC0033: Deleting method 'F()' requires restarting the application."); - await App.WaitUntilOutputContains($"[WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Exited"); - await App.WaitUntilOutputContains($"[WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Launched"); - } - - [Theory] - [CombinatorialData] - public async Task AutoRestartOnNoEffectEdit(bool nonInteractive) - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: nonInteractive.ToString()) - .WithSource(); - - if (!nonInteractive) - { - testAsset = testAsset - .WithProjectChanges(project => - { - project.Root.Descendants() - .First(e => e.Name.LocalName == "PropertyGroup") - .Add(XElement.Parse(""" - true - """)); - }); - } - - var programPath = Path.Combine(testAsset.Path, "Program.cs"); - - App.Start(testAsset, nonInteractive ? ["--non-interactive"] : []); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - App.Process.ClearOutput(); - - // top-level code change: - UpdateSourceFile(programPath, src => src.Replace("Started", "")); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - await App.WaitUntilOutputContains(MessageDescriptor.RestartNeededToApplyChanges); - await App.WaitUntilOutputContains($"⌚ [auto-restart] {programPath}(17,19): warning ENC0118: Changing 'top-level code' might not have any effect until the application is restarted."); - await App.WaitUntilOutputContains($"[WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Exited"); - await App.WaitUntilOutputContains($"[WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Launched"); - await App.WaitUntilOutputContains(""); - App.Process.ClearOutput(); - - // valid edit: - UpdateSourceFile(programPath, src => src.Replace("/* member placeholder */", "public void F() {}")); - - await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); - } - - /// - /// Unchanged project doesn't build. Wait for source change and rebuild. - /// - [Fact] - public async Task BaselineCompilationError() - { - var testAsset = TestAssets.CopyTestAsset("WatchNoDepsApp") - .WithSource(); - - var programPath = Path.Combine(testAsset.Path, "Program.cs"); - File.WriteAllText(programPath, - """ - Console.Write - """); - - App.Start(testAsset, []); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); - - UpdateSourceFile(programPath, """ - System.Console.WriteLine(""); - """); - - await App.WaitUntilOutputContains(""); - } - - [Theory] - [InlineData("PublishAot", "True")] - [InlineData("PublishTrimmed", "True")] - [InlineData("StartupHookSupport", "False")] - public async Task ChangeFileInAotProject(string propertyName, string propertyValue) - { - var tfm = ToolsetInfo.CurrentTargetFramework; - - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: $"{propertyName};{propertyValue}") - .WithSource() - .WithProjectChanges(project => - { - project.Root.Descendants() - .First(e => e.Name.LocalName == "PropertyGroup") - .Add(XElement.Parse($"<{propertyName}>{propertyValue}")); - }); - - var programPath = Path.Combine(testAsset.Path, "Program.cs"); - - App.Start(testAsset, ["--non-interactive"]); - - await App.WaitForOutputLineContaining($"[WatchHotReloadApp ({tfm})] " + MessageDescriptor.ProjectDoesNotSupportHotReload.GetMessage($"'{propertyName}' property is '{propertyValue}'")); - await App.WaitForOutputLineContaining(MessageDescriptor.WaitingForChanges); - App.Process.ClearOutput(); - - UpdateSourceFile(programPath, content => content.Replace("Console.WriteLine(\".\");", "Console.WriteLine(\"\");")); - - await App.WaitForOutputLineContaining($"[auto-restart] {programPath}(1,1): error ENC0097"); // Applying source changes while the application is running is not supported by the runtime. - await App.WaitForOutputLineContaining(""); - } - - [Fact] - public async Task ChangeFileInFSharpProject() - { - var testAsset = TestAssets.CopyTestAsset("FSharpTestAppSimple") - .WithSource(); - - App.Start(testAsset, []); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); - - UpdateSourceFile(Path.Combine(testAsset.Path, "Program.fs"), content => content.Replace("Hello World!", "")); - - await App.WaitUntilOutputContains(""); - } - - [Fact] - public async Task ChangeFileInFSharpProjectWithLoop() - { - var testAsset = TestAssets.CopyTestAsset("FSharpTestAppSimple") - .WithSource(); - - var source = """ - module ConsoleApplication.Program - - open System - open System.Threading - - [] - let main argv = - printfn "Waiting" - Thread.Sleep(Timeout.Infinite) - 0 - """; - - var sourcePath = Path.Combine(testAsset.Path, "Program.fs"); - - File.WriteAllText(sourcePath, source); - - App.Start(testAsset, ["--non-interactive"]); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - App.Process.ClearOutput(); - - UpdateSourceFile(sourcePath, content => content.Replace("Waiting", "")); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - await App.WaitUntilOutputContains(""); - App.Process.ClearOutput(); - - UpdateSourceFile(sourcePath, content => content.Replace("", "")); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - await App.WaitUntilOutputContains(""); - } - - // Test is timing out on .NET Framework: https://github.com/dotnet/sdk/issues/41669 - [CoreMSBuildOnlyFact] - public async Task HandleTypeLoadFailure() - { - var testAsset = TestAssets.CopyTestAsset("WatchAppTypeLoadFailure") - .WithSource(); - - App.Start(testAsset, [], "App"); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - var newSrc = """ - class DepSubType : Dep - { - int F() => 2; - } - - class Printer - { - public static void Print() - { - Console.WriteLine("Changed!"); - } - } - """; - - UpdateSourceFile(Path.Combine(testAsset.Path, "App", "Update.cs"), newSrc); - - await App.WaitUntilOutputContains("Updated types: Printer"); - } - - [Fact] - public async Task MetadataUpdateHandler_NoActions() - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") - .WithSource(); - - var sourcePath = Path.Combine(testAsset.Path, "Program.cs"); - - var source = File.ReadAllText(sourcePath, Encoding.UTF8) - .Replace("// ", """ - [assembly: System.Reflection.Metadata.MetadataUpdateHandler(typeof(AppUpdateHandler))] - """) - + """ - class AppUpdateHandler - { - } - """; - - File.WriteAllText(sourcePath, source, Encoding.UTF8); - - App.Start(testAsset, []); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - UpdateSourceFile(sourcePath, source.Replace("Console.WriteLine(\".\");", "Console.WriteLine(\"\");")); - - await App.WaitUntilOutputContains(""); - - await App.WaitUntilOutputContains( - $"dotnet watch ⚠ [WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Expected to find a static method 'ClearCache', 'UpdateApplication' or 'UpdateContent' on type 'AppUpdateHandler, WatchHotReloadApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' but neither exists."); - } - - [Theory] - [CombinatorialData] - public async Task MetadataUpdateHandler_Exception(bool verbose) - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: verbose.ToString()) - .WithSource(); - - var sourcePath = Path.Combine(testAsset.Path, "Program.cs"); - - var source = File.ReadAllText(sourcePath, Encoding.UTF8) - .Replace("// ", """ - [assembly: System.Reflection.Metadata.MetadataUpdateHandler(typeof(AppUpdateHandler))] - """) - + """ - class AppUpdateHandler - { - public static void ClearCache(Type[] types) => throw new System.InvalidOperationException("Bug!"); - } - """; - - File.WriteAllText(sourcePath, source, Encoding.UTF8); - - if (!verbose) - { - App.SuppressVerboseLogging(); - } - - App.Start(testAsset, []); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - UpdateSourceFile(sourcePath, source.Replace("Console.WriteLine(\".\");", "Console.WriteLine(\"\");")); - - await App.WaitUntilOutputContains(""); - - await App.WaitUntilOutputContains($"dotnet watch ⚠ [WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Exception from 'AppUpdateHandler.ClearCache': System.InvalidOperationException: Bug!"); - - if (verbose) - { - await App.WaitUntilOutputContains(MessageDescriptor.UpdateBatchCompleted); - } - else - { - // shouldn't see any agent messages: - App.AssertOutputDoesNotContain("🕵️"); - } - } - - [PlatformSpecificFact(TestPlatforms.Windows)] - public async Task GracefulTermination_Windows() - { - var tfm = ToolsetInfo.CurrentTargetFramework; - - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") - .WithSource(); - - var programPath = Path.Combine(testAsset.Path, "Program.cs"); - - UpdateSourceFile(programPath, src => src.Replace("// ", """ - Console.CancelKeyPress += (sender, e) => - { - e.Cancel = true; - Console.WriteLine("Ctrl+C detected! Performing cleanup..."); - Environment.Exit(0); - }; - """)); - - App.Start(testAsset, [], testFlags: TestFlags.ReadKeyFromStdin); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - await App.WaitUntilOutputContains($"dotnet watch 🕵️ [WatchHotReloadApp ({tfm})] Windows Ctrl+C handling enabled."); - - await App.WaitUntilOutputContains("Started"); - - App.SendControlC(); - - await App.WaitUntilOutputContains("Ctrl+C detected! Performing cleanup..."); - await App.WaitUntilOutputContains("exited with exit code 0."); - } - - [PlatformSpecificFact(TestPlatforms.AnyUnix)] - public async Task GracefulTermination_Unix() - { - var tfm = ToolsetInfo.CurrentTargetFramework; - - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") - .WithSource(); - - var programPath = Path.Combine(testAsset.Path, "Program.cs"); - - UpdateSourceFile(programPath, src => src.Replace("// ", """ - using var termSignalRegistration = PosixSignalRegistration.Create(PosixSignal.SIGTERM, _ => - { - Console.WriteLine("SIGTERM detected! Performing cleanup..."); - }); - """)); - - App.Start(testAsset, [], testFlags: TestFlags.ReadKeyFromStdin); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - await App.WaitUntilOutputContains($"dotnet watch 🕵️ [WatchHotReloadApp ({tfm})] Posix signal handlers registered."); - - await App.WaitUntilOutputContains("Started"); - - App.SendControlC(); - - await App.WaitUntilOutputContains("SIGTERM detected! Performing cleanup..."); - await App.WaitUntilOutputContains("exited with exit code 0."); - } - - [PlatformSpecificTheory(TestPlatforms.Windows | TestPlatforms.OSX)] // https://github.com/dotnet/sdk/issues/53114 - [CombinatorialData] - public async Task BlazorWasm(bool projectSpecifiesCapabilities) - { - var tfm = ToolsetInfo.CurrentTargetFramework; - - var testAsset = TestAssets.CopyTestAsset("WatchBlazorWasm", identifier: projectSpecifiesCapabilities.ToString()) - .WithSource(); - - if (projectSpecifiesCapabilities) - { - testAsset = testAsset.WithProjectChanges(proj => - { - proj.Root.Descendants() - .First(e => e.Name.LocalName == "PropertyGroup") - .Add(XElement.Parse(""" - Baseline;AddMethodToExistingType - """)); - }); - } - - var port = TestOptions.GetTestPort(); - App.Start(testAsset, ["--urls", "http://localhost:" + port], testFlags: TestFlags.MockBrowser); - - await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToUseBrowserRefresh); - await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToLaunchBrowser); - - // env variable passed when launching the server: - await App.WaitUntilOutputContains($"HOTRELOAD_DELTA_CLIENT_LOG_MESSAGES=dotnet watch 🕵️ [blazorwasm ({tfm})]"); - App.Process.ClearOutput(); - - // Middleware should have been loaded to blazor-devserver before the browser is launched: - await App.WaitUntilOutputContains("dbug: Microsoft.AspNetCore.Watch.BrowserRefresh.BlazorWasmHotReloadMiddleware[0]"); - await App.WaitUntilOutputContains("dbug: Microsoft.AspNetCore.Watch.BrowserRefresh.BrowserScriptMiddleware[0]"); - await App.WaitUntilOutputContains("Middleware loaded. Script /_framework/aspnetcore-browser-refresh.js"); - await App.WaitUntilOutputContains("Middleware loaded. Script /_framework/blazor-hotreload.js"); - await App.WaitUntilOutputContains("dbug: Microsoft.AspNetCore.Watch.BrowserRefresh.BrowserRefreshMiddleware"); - await App.WaitUntilOutputContains("Middleware loaded: DOTNET_MODIFIABLE_ASSEMBLIES=debug, __ASPNETCORE_BROWSER_TOOLS=true"); - - // shouldn't see any agent messages (agent is not loaded into blazor-devserver): - App.AssertOutputDoesNotContain("🕵️"); - - // Browser is launched based on blazor-devserver output "Now listening on: ...". - await App.WaitUntilOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage($"http://localhost:{port}")); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - App.Process.ClearOutput(); - - var newSource = """ - @page "/" -

Updated

- """; - - UpdateSourceFile(Path.Combine(testAsset.Path, "Pages", "Index.razor"), newSource); - - // WebAssemblyHotReloadCapabilities set by project is overwritten in WASM SDK targets: - await App.WaitUntilOutputContains("dotnet watch 🔥 Hot reload capabilities: AddExplicitInterfaceImplementation AddInstanceFieldToExistingType AddMethodToExistingType AddStaticFieldToExistingType Baseline ChangeCustomAttributes GenericAddFieldToExistingType GenericAddMethodToExistingType GenericUpdateMethod NewTypeDefinition UpdateParameters."); - await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); - } - - [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.OSX)] // https://github.com/dotnet/sdk/issues/53114 - public async Task BlazorWasm_MSBuildWarning() - { - var testAsset = TestAssets - .CopyTestAsset("WatchBlazorWasm") - .WithSource() - .WithProjectChanges(proj => - { - proj.Root.Descendants() - .Single(e => e.Name.LocalName == "ItemGroup") - .Add(XElement.Parse(""" - - """)); - }); - - var port = TestOptions.GetTestPort(); - App.Start(testAsset, ["--urls", "http://localhost:" + port], testFlags: TestFlags.MockBrowser); - - await App.WaitUntilOutputContains("dotnet watch ⚠ msbuild: [Warning] Duplicate source file"); - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - } - - [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.OSX)] // https://github.com/dotnet/sdk/issues/53114 - public async Task BlazorWasm_Restart() - { - var testAsset = TestAssets.CopyTestAsset("WatchBlazorWasm") - .WithSource(); - - var port = TestOptions.GetTestPort(); - App.Start(testAsset, ["--urls", "http://localhost:" + port, "--non-interactive"], testFlags: TestFlags.ReadKeyFromStdin | TestFlags.MockBrowser); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToUseBrowserRefresh); - await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToLaunchBrowser); - await App.WaitUntilOutputContains(MessageDescriptor.PressCtrlRToRestart); - - // Browser is launched based on blazor-devserver output "Now listening on: ...". - await App.WaitUntilOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage($"http://localhost:{port}")); - - App.SendControlR(); - - await App.WaitUntilOutputContains(MessageDescriptor.ReloadingBrowser); - } - - [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.OSX)] // https://github.com/dotnet/sdk/issues/53114 - public async Task BlazorWasmHosted() - { - var testAsset = TestAssets.CopyTestAsset("WatchBlazorWasmHosted") - .WithSource(); - - var port = TestOptions.GetTestPort(); - App.Start(testAsset, ["--urls", "http://localhost:" + port], "blazorhosted", testFlags: TestFlags.MockBrowser); - - await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToUseBrowserRefresh); - await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToLaunchBrowser); - await App.WaitUntilOutputContains(MessageDescriptor.ApplicationKind_BlazorHosted); - } - - [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.OSX)] // https://github.com/dotnet/sdk/issues/53114 - public async Task Razor_Component_ScopedCssAndStaticAssets() - { - var testAsset = TestAssets.CopyTestAsset("WatchRazorWithDeps") - .WithSource(); - - var port = TestOptions.GetTestPort(); - App.Start(testAsset, ["--urls", "http://localhost:" + port], relativeProjectDirectory: "RazorApp", testFlags: TestFlags.MockBrowser); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToUseBrowserRefresh); - await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToLaunchBrowser); - await App.WaitUntilOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage($"http://localhost:{port}")); - App.Process.ClearOutput(); - - var scopedCssPath = Path.Combine(testAsset.Path, "RazorClassLibrary", "Components", "Example.razor.css"); - - var newCss = """ - .example { - color: blue; - } - """; - - UpdateSourceFile(scopedCssPath, newCss); - await App.WaitUntilOutputContains(MessageDescriptor.StaticAssetsChangesApplied); - await App.WaitUntilOutputContains(MessageDescriptor.NoManagedCodeChangesToApply); - - await App.WaitUntilOutputContains(MessageDescriptor.SendingStaticAssetUpdateRequest.GetMessage("wwwroot/RazorClassLibrary.bundle.scp.css")); - App.Process.ClearOutput(); - - var cssPath = Path.Combine(testAsset.Path, "RazorApp", "wwwroot", "app.css"); - UpdateSourceFile(cssPath, content => content.Replace("background-color: white;", "background-color: red;")); - - await App.WaitUntilOutputContains(MessageDescriptor.StaticAssetsChangesApplied); - await App.WaitUntilOutputContains(MessageDescriptor.NoManagedCodeChangesToApply); - - await App.WaitUntilOutputContains(MessageDescriptor.SendingStaticAssetUpdateRequest.GetMessage("wwwroot/app.css")); - App.Process.ClearOutput(); - } - - /// - /// Currently only works on Windows. - /// Add TestPlatforms.OSX once https://github.com/dotnet/sdk/issues/45521 is fixed. - /// - [PlatformSpecificFact(TestPlatforms.Windows)] - public async Task MauiBlazor() - { - var testAsset = TestAssets.CopyTestAsset("WatchMauiBlazor") - .WithSource(); - - var workloadInstallCommandSpec = new DotnetCommand(Logger, ["workload", "install", "maui", "--include-previews"]) - { - WorkingDirectory = testAsset.Path, - }; - - var result = workloadInstallCommandSpec.Execute(); - Assert.Equal(0, result.ExitCode); - - var platform = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "windows10.0.19041.0" : "maccatalyst"; - var tfm = $"{ToolsetInfo.CurrentTargetFramework}-{platform}"; - App.Start(testAsset, ["-f", tfm]); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - // update code file: - var razorPath = Path.Combine(testAsset.Path, "Components", "Pages", "Home.razor"); - UpdateSourceFile(razorPath, content => content.Replace("Hello, world!", "Updated")); - - await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); - - await App.WaitUntilOutputContains("Microsoft.AspNetCore.Components.HotReload.HotReloadManager.UpdateApplication"); - App.Process.ClearOutput(); - - // update static asset: - var cssPath = Path.Combine(testAsset.Path, "wwwroot", "css", "app.css"); - UpdateSourceFile(cssPath, content => content.Replace("background-color: white;", "background-color: red;")); - - await App.WaitUntilOutputContains(MessageDescriptor.StaticAssetsChangesApplied); - await App.WaitUntilOutputContains("Microsoft.AspNetCore.Components.WebView.StaticContentHotReloadManager.UpdateContent"); - await App.WaitUntilOutputContains(MessageDescriptor.NoManagedCodeChangesToApply); - App.Process.ClearOutput(); - - // update scoped css: - var scopedCssPath = Path.Combine(testAsset.Path, "Components", "Pages", "Counter.razor.css"); - UpdateSourceFile(scopedCssPath, content => content.Replace("background-color: green", "background-color: red")); - - await App.WaitUntilOutputContains(MessageDescriptor.StaticAssetsChangesApplied); - await App.WaitUntilOutputContains("Microsoft.AspNetCore.Components.WebView.StaticContentHotReloadManager.UpdateContent"); - await App.WaitUntilOutputContains(MessageDescriptor.NoManagedCodeChangesToApply); - } - - // Test is timing out on .NET Framework: https://github.com/dotnet/sdk/issues/41669 - [CoreMSBuildOnlyFact] - public async Task HandleMissingAssemblyFailure() - { - var testAsset = TestAssets.CopyTestAsset("WatchAppMissingAssemblyFailure") - .WithSource(); - - App.Start(testAsset, [], "App"); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - var newSrc = /* lang=c#-test */""" - using System; - - public class DepType - { - int F() => 1; - } - - public class Printer - { - public static void Print() - => Console.WriteLine("Updated!"); - } - """; - - // Delete all files in testAsset.Path named Dep.dll - foreach (var depDll in Directory.GetFiles(testAsset.Path, "Dep2.dll", SearchOption.AllDirectories)) - { - File.Delete(depDll); - } - - File.WriteAllText(Path.Combine(testAsset.Path, "App", "Update.cs"), newSrc); - - await App.WaitUntilOutputContains("Updated types: Printer"); - } - - [Theory] - [InlineData(true, Skip = "https://github.com/dotnet/sdk/issues/43320")] - [InlineData(false)] - public async Task RenameSourceFile(bool useMove) - { - Log("RenameSourceFile started"); - - var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps") - .WithSource(); - - var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); - var oldFilePath = Path.Combine(dependencyDir, "Foo.cs"); - var newFilePath = Path.Combine(dependencyDir, "Renamed.cs"); - - var source = """ - using System; - using System.IO; - using System.Runtime.CompilerServices; - - public class Lib - { - public static void Print() => PrintFileName(); - - public static void PrintFileName([CallerFilePathAttribute] string filePath = null) - { - Console.WriteLine($"> {Path.GetFileName(filePath)}"); - } - } - """; - - File.WriteAllText(oldFilePath, source); - - App.Start(testAsset, [], "AppWithDeps"); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - // rename the file: - if (useMove) - { - File.Move(oldFilePath, newFilePath); - } - else - { - File.Delete(oldFilePath); - File.WriteAllText(newFilePath, source); - } - - Log($"Renamed '{oldFilePath}' to '{newFilePath}'."); - - await App.AssertOutputLineStartsWith("> Renamed.cs"); - } - - [Theory] - [InlineData(true, Skip = "https://github.com/dotnet/sdk/issues/43320")] - [InlineData(false)] - public async Task RenameDirectory(bool useMove) - { - Log("RenameSourceFile started"); - - var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps", identifier: useMove.ToString()) - .WithSource(); - - var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); - var oldSubdir = Path.Combine(dependencyDir, "Subdir"); - var newSubdir = Path.Combine(dependencyDir, "NewSubdir"); - - var source = """ - using System; - using System.IO; - using System.Runtime.CompilerServices; - - public class Lib - { - public static void Print() => PrintDirectoryName(); - - public static void PrintDirectoryName([CallerFilePathAttribute] string filePath = null) - { - Console.WriteLine($"> {Path.GetFileName(Path.GetDirectoryName(filePath))}"); - } - } - """; - - File.Delete(Path.Combine(dependencyDir, "Foo.cs")); - Directory.CreateDirectory(oldSubdir); - File.WriteAllText(Path.Combine(oldSubdir, "Foo.cs"), source); - - App.Start(testAsset, ["--non-interactive"], "AppWithDeps"); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - // rename the directory: - if (useMove) - { - Directory.Move(oldSubdir, newSubdir); - } - else - { - Directory.Delete(oldSubdir, recursive: true); - Directory.CreateDirectory(newSubdir); - File.WriteAllText(Path.Combine(newSubdir, "Foo.cs"), source); - } - - Log($"Renamed '{oldSubdir}' to '{newSubdir}'."); - - // dotnet-watch may observe the delete separately from the new file write. - // If so, rude edit is reported, the app is auto-restarted and we should observe the final result. - - await App.WaitUntilOutputContains("> NewSubdir"); - } - - [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/sdk/issues/53058, https://github.com/dotnet/sdk/issues/53061, https://github.com/dotnet/sdk/issues/53114 - public async Task Aspire_BuildError_ManualRestart() - { - var tfm = ToolsetInfo.CurrentTargetFramework; - var testAsset = TestAssets.CopyTestAsset("WatchAspire") - .WithSource(); - - var serviceSourcePath = Path.Combine(testAsset.Path, "WatchAspire.ApiService", "Program.cs"); - var serviceProjectPath = Path.Combine(testAsset.Path, "WatchAspire.ApiService", "WatchAspire.ApiService.csproj"); - var serviceSource = File.ReadAllText(serviceSourcePath, Encoding.UTF8); - - var webSourcePath = Path.Combine(testAsset.Path, "WatchAspire.Web", "Program.cs"); - var webProjectPath = Path.Combine(testAsset.Path, "WatchAspire.Web", "WatchAspire.Web.csproj"); - - App.Start(testAsset, ["-lp", "http"], relativeProjectDirectory: "WatchAspire.AppHost", testFlags: TestFlags.ReadKeyFromStdin); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - // check that Aspire server output is logged via dotnet-watch reporter: - await App.WaitUntilOutputContains("dotnet watch ⭐ Now listening on:"); - - // wait until after all DCP sessions have started: - await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Session started"); - await App.WaitUntilOutputContains("dotnet watch ⭐ [#2] Session started"); - await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Session started"); - - // MigrationService terminated: - await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Sending 'sessionTerminated'"); - - // working directory of the service should be its project directory: - await App.WaitUntilOutputContains($"ApiService working directory: '{Path.GetDirectoryName(serviceProjectPath)}'"); - - // Service -- valid code change: - UpdateSourceFile( - serviceSourcePath, - serviceSource.Replace("Enumerable.Range(1, 5)", "Enumerable.Range(1, 10)")); - - await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); - - await App.WaitUntilOutputContains("Using Aspire process launcher."); - - // Only one browser should be launched (dashboard). The child process shouldn't launch a browser. - Assert.Equal(1, App.Process.Output.Count(line => line.StartsWith("dotnet watch ⌚ Launching browser: "))); - App.Process.ClearOutput(); - - // rude edit with build error: - UpdateSourceFile( - serviceSourcePath, - serviceSource.Replace("record WeatherForecast", "record WeatherForecast2")); - - // the prompt is printed into stdout while the error is printed into stderr, so they might arrive in any order: - await App.WaitUntilOutputContains(" ❔ Do you want to restart these projects? Yes (y) / No (n) / Always (a) / Never (v)"); - await App.WaitUntilOutputContains(MessageDescriptor.RestartNeededToApplyChanges); - - await App.WaitUntilOutputContains($"dotnet watch ❌ {serviceSourcePath}(40,1): error ENC0020: Renaming record 'WeatherForecast' requires restarting the application."); - await App.WaitUntilOutputContains("dotnet watch ⌚ Affected projects:"); - await App.WaitUntilOutputContains("dotnet watch ⌚ WatchAspire.ApiService"); - App.Process.ClearOutput(); - - App.SendKey('y'); - - await App.WaitUntilOutputContains(MessageDescriptor.FixBuildError); - - await App.WaitUntilOutputContains("Application is shutting down..."); - - await App.WaitUntilOutputContains($"[WatchAspire.ApiService ({tfm})] Exited"); - - await App.WaitUntilOutputContains(MessageDescriptor.Building.GetMessage(serviceProjectPath)); - await App.WaitUntilOutputContains("error CS0246: The type or namespace name 'WeatherForecast' could not be found"); - App.Process.ClearOutput(); - - // fix build error: - UpdateSourceFile( - serviceSourcePath, - serviceSource.Replace("WeatherForecast", "WeatherForecast2")); - - await App.WaitUntilOutputContains(MessageDescriptor.ProjectsRestarted.GetMessage(1)); - - await App.WaitUntilOutputContains(MessageDescriptor.BuildSucceeded.GetMessage(serviceProjectPath)); - await App.WaitUntilOutputContains(MessageDescriptor.ProjectsRebuilt); - await App.WaitUntilOutputContains($"Starting: '{serviceProjectPath}'"); - - // Wait for the process to start before shutting down, so we can reliably verify Exited message below. - // The agent startup hook might not be initialized yet (signal handlers registered), - // so the process might need to be forcefully killed. We could wait until the agent is initialized - // but it's good to test this scenario. - await App.WaitUntilOutputContains(MessageDescriptor.LaunchedProcess, $"WatchAspire.ApiService ({tfm})"); - - App.Process.ClearOutput(); - - App.SendControlC(); - - await App.WaitUntilOutputContains(MessageDescriptor.ShutdownRequested); - - await App.WaitUntilOutputContains($"[WatchAspire.ApiService ({tfm})] Exited"); - await App.WaitUntilOutputContains($"[WatchAspire.Web ({tfm})] Exited"); - await App.WaitUntilOutputContains($"[WatchAspire.AppHost ({tfm})] Exited"); - - await App.WaitUntilOutputContains("dotnet watch ⭐ Waiting for server to shutdown ..."); - - await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Stop session"); - await App.WaitUntilOutputContains("dotnet watch ⭐ [#2] Stop session"); - await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Stop session"); - await App.WaitUntilOutputContains("dotnet watch ⭐ [#2] Sending 'sessionTerminated'"); - await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Sending 'sessionTerminated'"); - } - - [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/sdk/issues/53058, https://github.com/dotnet/sdk/issues/53061, https://github.com/dotnet/sdk/issues/53114 - public async Task Aspire_NoEffect_AutoRestart() - { - var tfm = ToolsetInfo.CurrentTargetFramework; - var testAsset = TestAssets.CopyTestAsset("WatchAspire") - .WithSource(); - - var webSourcePath = Path.Combine(testAsset.Path, "WatchAspire.Web", "Program.cs"); - var webProjectPath = Path.Combine(testAsset.Path, "WatchAspire.Web", "WatchAspire.Web.csproj"); - var webSource = File.ReadAllText(webSourcePath, Encoding.UTF8); - - App.Start(testAsset, ["-lp", "http", "--non-interactive"], relativeProjectDirectory: "WatchAspire.AppHost"); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - - await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Session started"); - await App.WaitUntilOutputContains(MessageDescriptor.Exited, $"WatchAspire.MigrationService ({tfm})"); - await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Sending 'sessionTerminated'"); - - // migration service output should not be printed to dotnet-watch output, it should be sent via DCP as a notification: - await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Sending 'serviceLogs': log_message=' Migration complete', is_std_err=False"); - - // wait until after DCP sessions have been started for all projects: - await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Session started"); - - App.AssertOutputDoesNotContain(new Regex("^ +Migration complete")); - - App.Process.ClearOutput(); - - // no-effect edit: - UpdateSourceFile(webSourcePath, src => src.Replace("/* top-level placeholder */", "builder.Services.AddRazorComponents();")); - - await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); - await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Session started"); - await App.WaitUntilOutputContains(MessageDescriptor.ProjectsRestarted.GetMessage(1)); - App.AssertOutputDoesNotContain("⚠"); - - // The process exited and should not participate in Hot Reload: - App.AssertOutputDoesNotContain($"[WatchAspire.MigrationService ({tfm})]"); - App.AssertOutputDoesNotContain("dotnet watch ⭐ [#1]"); - - App.Process.ClearOutput(); - - // lambda body edit: - UpdateSourceFile(webSourcePath, src => src.Replace("Hello world!", "")); - - await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); - await App.WaitUntilOutputContains($"dotnet watch 🕵️ [WatchAspire.Web ({tfm})] Updates applied."); - App.AssertOutputDoesNotContain(MessageDescriptor.ProjectsRebuilt); - App.AssertOutputDoesNotContain(MessageDescriptor.ProjectsRestarted); - App.AssertOutputDoesNotContain("⚠"); - - // The process exited and should not participate in Hot Reload: - App.AssertOutputDoesNotContain($"[WatchAspire.MigrationService ({tfm})]"); - App.AssertOutputDoesNotContain("dotnet watch ⭐ [#1]"); - } - } -} diff --git a/test/dotnet-watch.Tests/HotReload/AspireHotReloadTests.cs b/test/dotnet-watch.Tests/HotReload/AspireHotReloadTests.cs new file mode 100644 index 000000000000..fa3de559d3e8 --- /dev/null +++ b/test/dotnet-watch.Tests/HotReload/AspireHotReloadTests.cs @@ -0,0 +1,176 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable disable + +using System.Text.RegularExpressions; + +namespace Microsoft.DotNet.Watch.UnitTests +{ + public class AspireHotReloadTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) + { + [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/sdk/issues/53058, https://github.com/dotnet/sdk/issues/53061, https://github.com/dotnet/sdk/issues/53114 + public async Task Aspire_BuildError_ManualRestart() + { + var tfm = ToolsetInfo.CurrentTargetFramework; + var testAsset = TestAssets.CopyTestAsset("WatchAspire") + .WithSource(); + + var serviceSourcePath = Path.Combine(testAsset.Path, "WatchAspire.ApiService", "Program.cs"); + var serviceProjectPath = Path.Combine(testAsset.Path, "WatchAspire.ApiService", "WatchAspire.ApiService.csproj"); + var serviceSource = File.ReadAllText(serviceSourcePath, Encoding.UTF8); + + var webSourcePath = Path.Combine(testAsset.Path, "WatchAspire.Web", "Program.cs"); + var webProjectPath = Path.Combine(testAsset.Path, "WatchAspire.Web", "WatchAspire.Web.csproj"); + + App.Start(testAsset, ["-lp", "http"], relativeProjectDirectory: "WatchAspire.AppHost", testFlags: TestFlags.ReadKeyFromStdin); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + // check that Aspire server output is logged via dotnet-watch reporter: + await App.WaitUntilOutputContains("dotnet watch ⭐ Now listening on:"); + + // wait until after all DCP sessions have started: + await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Session started"); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#2] Session started"); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Session started"); + + // MigrationService terminated: + await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Sending 'sessionTerminated'"); + + // working directory of the service should be its project directory: + await App.WaitUntilOutputContains($"ApiService working directory: '{Path.GetDirectoryName(serviceProjectPath)}'"); + + // Service -- valid code change: + UpdateSourceFile( + serviceSourcePath, + serviceSource.Replace("Enumerable.Range(1, 5)", "Enumerable.Range(1, 10)")); + + await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); + + await App.WaitUntilOutputContains("Using Aspire process launcher."); + + // Only one browser should be launched (dashboard). The child process shouldn't launch a browser. + Assert.Equal(1, App.Process.Output.Count(line => line.StartsWith("dotnet watch ⌚ Launching browser: "))); + App.Process.ClearOutput(); + + // rude edit with build error: + UpdateSourceFile( + serviceSourcePath, + serviceSource.Replace("record WeatherForecast", "record WeatherForecast2")); + + // the prompt is printed into stdout while the error is printed into stderr, so they might arrive in any order: + await App.WaitUntilOutputContains(" ❔ Do you want to restart these projects? Yes (y) / No (n) / Always (a) / Never (v)"); + await App.WaitUntilOutputContains(MessageDescriptor.RestartNeededToApplyChanges); + + await App.WaitUntilOutputContains($"dotnet watch ❌ {serviceSourcePath}(40,1): error ENC0020: Renaming record 'WeatherForecast' requires restarting the application."); + await App.WaitUntilOutputContains("dotnet watch ⌚ Affected projects:"); + await App.WaitUntilOutputContains("dotnet watch ⌚ WatchAspire.ApiService"); + App.Process.ClearOutput(); + + App.SendKey('y'); + + await App.WaitUntilOutputContains(MessageDescriptor.FixBuildError); + + await App.WaitUntilOutputContains("Application is shutting down..."); + + await App.WaitUntilOutputContains($"[WatchAspire.ApiService ({tfm})] Exited"); + + await App.WaitUntilOutputContains(MessageDescriptor.Building.GetMessage(serviceProjectPath)); + await App.WaitUntilOutputContains("error CS0246: The type or namespace name 'WeatherForecast' could not be found"); + App.Process.ClearOutput(); + + // fix build error: + UpdateSourceFile( + serviceSourcePath, + serviceSource.Replace("WeatherForecast", "WeatherForecast2")); + + await App.WaitUntilOutputContains(MessageDescriptor.ProjectsRestarted.GetMessage(1)); + + await App.WaitUntilOutputContains(MessageDescriptor.BuildSucceeded.GetMessage(serviceProjectPath)); + await App.WaitUntilOutputContains(MessageDescriptor.ProjectsRebuilt); + await App.WaitUntilOutputContains($"Starting: '{serviceProjectPath}'"); + + // Wait for the process to start before shutting down, so we can reliably verify Exited message below. + // The agent startup hook might not be initialized yet (signal handlers registered), + // so the process might need to be forcefully killed. We could wait until the agent is initialized + // but it's good to test this scenario. + await App.WaitUntilOutputContains(MessageDescriptor.LaunchedProcess, $"WatchAspire.ApiService ({tfm})"); + + App.Process.ClearOutput(); + + App.SendControlC(); + + await App.WaitUntilOutputContains(MessageDescriptor.ShutdownRequested); + + await App.WaitUntilOutputContains($"[WatchAspire.ApiService ({tfm})] Exited"); + await App.WaitUntilOutputContains($"[WatchAspire.Web ({tfm})] Exited"); + await App.WaitUntilOutputContains($"[WatchAspire.AppHost ({tfm})] Exited"); + + await App.WaitUntilOutputContains("dotnet watch ⭐ Waiting for server to shutdown ..."); + + await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Stop session"); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#2] Stop session"); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Stop session"); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#2] Sending 'sessionTerminated'"); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Sending 'sessionTerminated'"); + } + + [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/sdk/issues/53058, https://github.com/dotnet/sdk/issues/53061, https://github.com/dotnet/sdk/issues/53114 + public async Task Aspire_NoEffect_AutoRestart() + { + var tfm = ToolsetInfo.CurrentTargetFramework; + var testAsset = TestAssets.CopyTestAsset("WatchAspire") + .WithSource(); + + var webSourcePath = Path.Combine(testAsset.Path, "WatchAspire.Web", "Program.cs"); + var webProjectPath = Path.Combine(testAsset.Path, "WatchAspire.Web", "WatchAspire.Web.csproj"); + var webSource = File.ReadAllText(webSourcePath, Encoding.UTF8); + + App.Start(testAsset, ["-lp", "http", "--non-interactive"], relativeProjectDirectory: "WatchAspire.AppHost"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Session started"); + await App.WaitUntilOutputContains(MessageDescriptor.Exited, $"WatchAspire.MigrationService ({tfm})"); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Sending 'sessionTerminated'"); + + // migration service output should not be printed to dotnet-watch output, it should be sent via DCP as a notification: + await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Sending 'serviceLogs': log_message=' Migration complete', is_std_err=False"); + + // wait until after DCP sessions have been started for all projects: + await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Session started"); + + App.AssertOutputDoesNotContain(new Regex("^ +Migration complete")); + + App.Process.ClearOutput(); + + // no-effect edit: + UpdateSourceFile(webSourcePath, src => src.Replace("/* top-level placeholder */", "builder.Services.AddRazorComponents();")); + + await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); + await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Session started"); + await App.WaitUntilOutputContains(MessageDescriptor.ProjectsRestarted.GetMessage(1)); + App.AssertOutputDoesNotContain("⚠"); + + // The process exited and should not participate in Hot Reload: + App.AssertOutputDoesNotContain($"[WatchAspire.MigrationService ({tfm})]"); + App.AssertOutputDoesNotContain("dotnet watch ⭐ [#1]"); + + App.Process.ClearOutput(); + + // lambda body edit: + UpdateSourceFile(webSourcePath, src => src.Replace("Hello world!", "")); + + await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); + await App.WaitUntilOutputContains($"dotnet watch 🕵️ [WatchAspire.Web ({tfm})] Updates applied."); + App.AssertOutputDoesNotContain(MessageDescriptor.ProjectsRebuilt); + App.AssertOutputDoesNotContain(MessageDescriptor.ProjectsRestarted); + App.AssertOutputDoesNotContain("⚠"); + + // The process exited and should not participate in Hot Reload: + App.AssertOutputDoesNotContain($"[WatchAspire.MigrationService ({tfm})]"); + App.AssertOutputDoesNotContain("dotnet watch ⭐ [#1]"); + } + } +} diff --git a/test/dotnet-watch.Tests/HotReload/AutoRestartTests.cs b/test/dotnet-watch.Tests/HotReload/AutoRestartTests.cs new file mode 100644 index 000000000000..ac8eb70ca1a9 --- /dev/null +++ b/test/dotnet-watch.Tests/HotReload/AutoRestartTests.cs @@ -0,0 +1,206 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable disable + +using System.Text.RegularExpressions; + +namespace Microsoft.DotNet.Watch.UnitTests +{ + public class AutoRestartTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) + { + [Theory] + [CombinatorialData] + public async Task AutoRestartOnRudeEdit(bool nonInteractive) + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: nonInteractive.ToString()) + .WithSource(); + + if (!nonInteractive) + { + testAsset = testAsset + .WithProjectChanges(project => + { + project.Root.Descendants() + .First(e => e.Name.LocalName == "PropertyGroup") + .Add(XElement.Parse(""" + true + """)); + }); + } + + var programPath = Path.Combine(testAsset.Path, "Program.cs"); + + App.Start(testAsset, nonInteractive ? ["--non-interactive"] : []); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + App.Process.ClearOutput(); + + // rude edit: adding virtual method + UpdateSourceFile(programPath, src => src.Replace("/* member placeholder */", "public virtual void F() {}")); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + await App.WaitUntilOutputContains(MessageDescriptor.RestartNeededToApplyChanges); + await App.WaitUntilOutputContains($"⌚ [auto-restart] {programPath}(39,11): error ENC0023: Adding an abstract method or overriding an inherited method requires restarting the application."); + await App.WaitUntilOutputContains($"[WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Exited"); + await App.WaitUntilOutputContains($"[WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Launched"); + App.Process.ClearOutput(); + + // valid edit: + UpdateSourceFile(programPath, src => src.Replace("public virtual void F() {}", "public virtual void F() { Console.WriteLine(1); }")); + + await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); + } + + [Theory(Skip = "https://github.com/dotnet/sdk/issues/51469")] + [CombinatorialData] + public async Task AutoRestartOnRuntimeRudeEdit(bool nonInteractive) + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: nonInteractive.ToString()) + .WithSource(); + + var tfm = ToolsetInfo.CurrentTargetFramework; + var programPath = Path.Combine(testAsset.Path, "Program.cs"); + + // Changes the type of lambda without updating top-level code. + // The loop will end up calling the old version of the lambda resulting in runtime rude edit. + + File.WriteAllText(programPath, """ + using System; + using System.Threading; + + var d = C.F(); + + while (true) + { + Thread.Sleep(250); + d(1); + } + + class C + { + public static Action F() + { + return a => + { + Console.WriteLine(a.GetType()); + }; + } + } + """); + + App.Start(testAsset, nonInteractive ? ["--non-interactive"] : []); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + await App.WaitUntilOutputContains("System.Int32"); + App.Process.ClearOutput(); + + UpdateSourceFile(programPath, src => src.Replace("Action", "Action")); + + // The following agent messages must be reported in order. + // The HotReloadException handler needs to be installed and update handlers invoked and completed before the + // HotReloadException handler may proceed with runtime rude edit processing and application restart. + await App.WaitForOutputLineContaining($"dotnet watch 🕵️ [WatchHotReloadApp ({tfm})] HotReloadException handler installed."); + await App.WaitForOutputLineContaining($"dotnet watch 🕵️ [WatchHotReloadApp ({tfm})] Invoking metadata update handlers."); + await App.WaitForOutputLineContaining($"dotnet watch 🕵️ [WatchHotReloadApp ({tfm})] Updates applied."); + await App.WaitForOutputLineContaining($"dotnet watch 🕵️ [WatchHotReloadApp ({tfm})] Runtime rude edit detected:"); + + await App.WaitUntilOutputContains($"dotnet watch ⚠ [WatchHotReloadApp ({tfm})] " + + "Attempted to invoke a deleted lambda or local function implementation. " + + "This can happen when lambda or local function is deleted while the application is running."); + + await App.WaitUntilOutputContains(MessageDescriptor.RestartingApplication, $"WatchHotReloadApp ({tfm})"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + await App.WaitUntilOutputContains("System.Byte"); + } + + [Fact] + public async Task AutoRestartOnRudeEditAfterRestartPrompt() + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") + .WithSource(); + + var programPath = Path.Combine(testAsset.Path, "Program.cs"); + + App.Start(testAsset, [], testFlags: TestFlags.ReadKeyFromStdin); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + App.Process.ClearOutput(); + + // rude edit: adding virtual method + UpdateSourceFile(programPath, src => src.Replace("/* member placeholder */", "public virtual void F() {}")); + + // the prompt is printed into stdout while the error is printed into stderr, so they might arrive in any order: + await App.WaitUntilOutputContains(" ❔ Do you want to restart your app? Yes (y) / No (n) / Always (a) / Never (v)"); + await App.WaitUntilOutputContains(MessageDescriptor.RestartNeededToApplyChanges); + + await App.WaitUntilOutputContains($"❌ {programPath}(39,11): error ENC0023: Adding an abstract method or overriding an inherited method requires restarting the application."); + App.Process.ClearOutput(); + + App.SendKey('a'); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + App.AssertOutputContains($"[WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Exited"); + App.AssertOutputContains($"[WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Launched"); + App.Process.ClearOutput(); + + // rude edit: deleting virtual method + UpdateSourceFile(programPath, src => src.Replace("public virtual void F() {}", "")); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + await App.WaitUntilOutputContains(MessageDescriptor.RestartNeededToApplyChanges); + await App.WaitUntilOutputContains($"⌚ [auto-restart] {programPath}(39,1): error ENC0033: Deleting method 'F()' requires restarting the application."); + await App.WaitUntilOutputContains($"[WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Exited"); + await App.WaitUntilOutputContains($"[WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Launched"); + } + + [Theory] + [CombinatorialData] + public async Task AutoRestartOnNoEffectEdit(bool nonInteractive) + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: nonInteractive.ToString()) + .WithSource(); + + if (!nonInteractive) + { + testAsset = testAsset + .WithProjectChanges(project => + { + project.Root.Descendants() + .First(e => e.Name.LocalName == "PropertyGroup") + .Add(XElement.Parse(""" + true + """)); + }); + } + + var programPath = Path.Combine(testAsset.Path, "Program.cs"); + + App.Start(testAsset, nonInteractive ? ["--non-interactive"] : []); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + App.Process.ClearOutput(); + + // top-level code change: + UpdateSourceFile(programPath, src => src.Replace("Started", "")); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + await App.WaitUntilOutputContains(MessageDescriptor.RestartNeededToApplyChanges); + await App.WaitUntilOutputContains($"⌚ [auto-restart] {programPath}(17,19): warning ENC0118: Changing 'top-level code' might not have any effect until the application is restarted."); + await App.WaitUntilOutputContains($"[WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Exited"); + await App.WaitUntilOutputContains($"[WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Launched"); + await App.WaitUntilOutputContains(""); + App.Process.ClearOutput(); + + // valid edit: + UpdateSourceFile(programPath, src => src.Replace("/* member placeholder */", "public void F() {}")); + + await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); + } + } +} diff --git a/test/dotnet-watch.Tests/HotReload/LoggingTests.cs b/test/dotnet-watch.Tests/HotReload/LoggingTests.cs new file mode 100644 index 000000000000..0ad55c936b67 --- /dev/null +++ b/test/dotnet-watch.Tests/HotReload/LoggingTests.cs @@ -0,0 +1,63 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable disable + +namespace Microsoft.DotNet.Watch.UnitTests +{ + public class LoggingTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) + { + [Fact] + public async Task BinaryLogs() + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") + .WithSource(); + + var projectPath = Path.Combine(testAsset.Path, "WatchHotReloadApp.csproj"); + var logDir = Path.Combine(testAsset.Path, "logs"); + var binLogPath = Path.Combine(logDir, "Test.binlog"); + var binLogPathBase = Path.ChangeExtension(binLogPath, "").TrimEnd('.'); + + Assert.False(Directory.Exists(logDir)); + + App.SuppressVerboseLogging(); + App.Start(testAsset, ["--verbose", $"-bl:{binLogPath}"], testFlags: TestFlags.None); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + var expectedLogs = new List() + { + // dotnet build log + binLogPath, + // dotnet run log + binLogPathBase + "-dotnet-run.binlog", + // initial DTB: + binLogPathBase + "-dotnet-watch.DesignTimeBuild.WatchHotReloadApp.csproj.1.binlog" + }; + + VerifyExpectedLogFiles(); + + UpdateSourceFile(projectPath, content => content.Replace(""" + + """, + """ + + """)); + + await App.WaitUntilOutputContains(MessageDescriptor.ReEvaluationCompleted); + + // project update triggered restore and DTB: + expectedLogs.Add(binLogPathBase + "-dotnet-watch.Restore.WatchHotReloadApp.csproj.2.binlog"); + expectedLogs.Add(binLogPathBase + "-dotnet-watch.DesignTimeBuild.WatchHotReloadApp.csproj.3.binlog"); + + VerifyExpectedLogFiles(); + + void VerifyExpectedLogFiles() + { + AssertEx.SequenceEqual( + expectedLogs.Order(), + Directory.EnumerateFileSystemEntries(logDir, "*.*", SearchOption.AllDirectories).Order()); + } + } + } +} diff --git a/test/dotnet-watch.Tests/HotReload/MauiHotReloadTests.cs b/test/dotnet-watch.Tests/HotReload/MauiHotReloadTests.cs new file mode 100644 index 000000000000..7d81311f00de --- /dev/null +++ b/test/dotnet-watch.Tests/HotReload/MauiHotReloadTests.cs @@ -0,0 +1,63 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable disable + +using System.Text.RegularExpressions; + +namespace Microsoft.DotNet.Watch.UnitTests +{ + public class MauiHotReloadTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) + { + /// + /// Currently only works on Windows. + /// Add TestPlatforms.OSX once https://github.com/dotnet/sdk/issues/45521 is fixed. + /// + [PlatformSpecificFact(TestPlatforms.Windows)] + public async Task MauiBlazor() + { + var testAsset = TestAssets.CopyTestAsset("WatchMauiBlazor") + .WithSource(); + + var workloadInstallCommandSpec = new DotnetCommand(Logger, ["workload", "install", "maui", "--include-previews"]) + { + WorkingDirectory = testAsset.Path, + }; + + var result = workloadInstallCommandSpec.Execute(); + Assert.Equal(0, result.ExitCode); + + var platform = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "windows10.0.19041.0" : "maccatalyst"; + var tfm = $"{ToolsetInfo.CurrentTargetFramework}-{platform}"; + App.Start(testAsset, ["-f", tfm]); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + // update code file: + var razorPath = Path.Combine(testAsset.Path, "Components", "Pages", "Home.razor"); + UpdateSourceFile(razorPath, content => content.Replace("Hello, world!", "Updated")); + + await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); + + await App.WaitUntilOutputContains("Microsoft.AspNetCore.Components.HotReload.HotReloadManager.UpdateApplication"); + App.Process.ClearOutput(); + + // update static asset: + var cssPath = Path.Combine(testAsset.Path, "wwwroot", "css", "app.css"); + UpdateSourceFile(cssPath, content => content.Replace("background-color: white;", "background-color: red;")); + + await App.WaitUntilOutputContains(MessageDescriptor.StaticAssetsChangesApplied); + await App.WaitUntilOutputContains("Microsoft.AspNetCore.Components.WebView.StaticContentHotReloadManager.UpdateContent"); + await App.WaitUntilOutputContains(MessageDescriptor.NoManagedCodeChangesToApply); + App.Process.ClearOutput(); + + // update scoped css: + var scopedCssPath = Path.Combine(testAsset.Path, "Components", "Pages", "Counter.razor.css"); + UpdateSourceFile(scopedCssPath, content => content.Replace("background-color: green", "background-color: red")); + + await App.WaitUntilOutputContains(MessageDescriptor.StaticAssetsChangesApplied); + await App.WaitUntilOutputContains("Microsoft.AspNetCore.Components.WebView.StaticContentHotReloadManager.UpdateContent"); + await App.WaitUntilOutputContains(MessageDescriptor.NoManagedCodeChangesToApply); + } + } +} diff --git a/test/dotnet-watch.Tests/HotReload/MetadataUpdateHandlerTests.cs b/test/dotnet-watch.Tests/HotReload/MetadataUpdateHandlerTests.cs new file mode 100644 index 000000000000..dbf7ecccba0d --- /dev/null +++ b/test/dotnet-watch.Tests/HotReload/MetadataUpdateHandlerTests.cs @@ -0,0 +1,90 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable disable + +namespace Microsoft.DotNet.Watch.UnitTests +{ + public class MetadataUpdateHandlerTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) + { + [Fact] + public async Task NoActions() + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") + .WithSource(); + + var sourcePath = Path.Combine(testAsset.Path, "Program.cs"); + + var source = File.ReadAllText(sourcePath, Encoding.UTF8) + .Replace("// ", """ + [assembly: System.Reflection.Metadata.MetadataUpdateHandler(typeof(AppUpdateHandler))] + """) + + """ + class AppUpdateHandler + { + } + """; + + File.WriteAllText(sourcePath, source, Encoding.UTF8); + + App.Start(testAsset, []); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + UpdateSourceFile(sourcePath, source.Replace("Console.WriteLine(\".\");", "Console.WriteLine(\"\");")); + + await App.WaitUntilOutputContains(""); + + await App.WaitUntilOutputContains( + $"dotnet watch ⚠ [WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Expected to find a static method 'ClearCache', 'UpdateApplication' or 'UpdateContent' on type 'AppUpdateHandler, WatchHotReloadApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' but neither exists."); + } + + [Theory] + [CombinatorialData] + public async Task Exception(bool verbose) + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: verbose.ToString()) + .WithSource(); + + var sourcePath = Path.Combine(testAsset.Path, "Program.cs"); + + var source = File.ReadAllText(sourcePath, Encoding.UTF8) + .Replace("// ", """ + [assembly: System.Reflection.Metadata.MetadataUpdateHandler(typeof(AppUpdateHandler))] + """) + + """ + class AppUpdateHandler + { + public static void ClearCache(Type[] types) => throw new System.InvalidOperationException("Bug!"); + } + """; + + File.WriteAllText(sourcePath, source, Encoding.UTF8); + + if (!verbose) + { + App.SuppressVerboseLogging(); + } + + App.Start(testAsset, []); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + UpdateSourceFile(sourcePath, source.Replace("Console.WriteLine(\".\");", "Console.WriteLine(\"\");")); + + await App.WaitUntilOutputContains(""); + + await App.WaitUntilOutputContains($"dotnet watch ⚠ [WatchHotReloadApp ({ToolsetInfo.CurrentTargetFramework})] Exception from 'AppUpdateHandler.ClearCache': System.InvalidOperationException: Bug!"); + + if (verbose) + { + await App.WaitUntilOutputContains(MessageDescriptor.UpdateBatchCompleted); + } + else + { + // shouldn't see any agent messages: + App.AssertOutputDoesNotContain("🕵️"); + } + } + } +} diff --git a/test/dotnet-watch.Tests/HotReload/ProjectUpdateTests.cs b/test/dotnet-watch.Tests/HotReload/ProjectUpdateTests.cs new file mode 100644 index 000000000000..e3e5b32274aa --- /dev/null +++ b/test/dotnet-watch.Tests/HotReload/ProjectUpdateTests.cs @@ -0,0 +1,288 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable disable + +using System.Text.RegularExpressions; + +namespace Microsoft.DotNet.Watch.UnitTests +{ + public class ProjectUpdateTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) + { + [Fact] + public async Task UpdateDirectoryBuildPropsThenUpdateSource() + { + var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps") + .WithSource(); + + var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); + + App.Start(testAsset, [], "AppWithDeps"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + UpdateSourceFile( + Path.Combine(testAsset.Path, "Directory.Build.props"), + src => src.Replace("false", "true")); + + await App.WaitUntilOutputContains(MessageDescriptor.NoManagedCodeChangesToApply); + await App.WaitUntilOutputContains(MessageDescriptor.ProjectChangeTriggeredReEvaluation); + + App.Process.ClearOutput(); + + var newSrc = """ + public class Lib + { + public static unsafe void Print() + { + char c = '!'; + char* pc = &c; + System.Console.WriteLine($"Changed{*pc}"); + } + } + """; + + UpdateSourceFile(Path.Combine(dependencyDir, "Foo.cs"), newSrc); + + await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); + await App.WaitUntilOutputContains("Changed!"); + } + + [Theory] + [CombinatorialData] + public async Task Update(bool isDirectoryProps) + { + var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps", identifier: isDirectoryProps.ToString()) + .WithSource(); + + var symbolName = isDirectoryProps ? "BUILD_CONST_IN_PROPS" : "BUILD_CONST_IN_CSPROJ"; + + var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); + var libSourcePath = Path.Combine(dependencyDir, "Foo.cs"); + var buildFilePath = isDirectoryProps ? Path.Combine(testAsset.Path, "Directory.Build.props") : Path.Combine(dependencyDir, "Dependency.csproj"); + + File.WriteAllText(libSourcePath, $$""" + public class Lib + { + public static void Print() + { + #if {{symbolName}} + System.Console.WriteLine("{{symbolName}} set"); + #else + System.Console.WriteLine("{{symbolName}} not set"); + #endif + } + } + """); + + App.Start(testAsset, ["--non-interactive"], "AppWithDeps"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + await App.WaitUntilOutputContains($"{symbolName} set"); + App.Process.ClearOutput(); + + UpdateSourceFile(buildFilePath, src => src.Replace(symbolName, "")); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + await App.WaitUntilOutputContains(MessageDescriptor.ProjectChangeTriggeredReEvaluation); + await App.WaitUntilOutputContains("dotnet watch ⌚ [auto-restart] error ENC1102: Changing project setting 'DefineConstants'"); + + await App.WaitUntilOutputContains($"{symbolName} not set"); + } + + [Fact(Skip = "https://github.com/dotnet/msbuild/issues/12001")] + public async Task DirectoryBuildProps_Add() + { + var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps") + .WithSource(); + + var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); + var libSourcePath = Path.Combine(dependencyDir, "Foo.cs"); + var directoryBuildProps = Path.Combine(testAsset.Path, "Directory.Build.props"); + + // delete the file before we start the app, it will be added later: + File.Delete(directoryBuildProps); + + File.WriteAllText(libSourcePath, """ + public class Lib + { + public static void Print() + { + #if BUILD_CONST_IN_PROPS + System.Console.WriteLine("BUILD_CONST_IN_PROPS set"); + #else + System.Console.WriteLine("BUILD_CONST_IN_PROPS not set"); + #endif + } + } + """); + + App.Start(testAsset, [], "AppWithDeps"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + await App.WaitUntilOutputContains("BUILD_CONST_IN_PROPS set"); + App.Process.ClearOutput(); + + UpdateSourceFile( + directoryBuildProps, + src => src.Replace("BUILD_CONST_IN_PROPS", "")); + + await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); + await App.WaitUntilOutputContains("BUILD_CONST not set"); + + await App.WaitUntilOutputContains(MessageDescriptor.ProjectChangeTriggeredReEvaluation); + } + + [Fact] + public async Task DirectoryBuildProps_Delete() + { + var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps") + .WithSource(); + + var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); + var libSourcePath = Path.Combine(dependencyDir, "Foo.cs"); + var directoryBuildProps = Path.Combine(testAsset.Path, "Directory.Build.props"); + + File.WriteAllText(libSourcePath, """ + public class Lib + { + public static void Print() + { + #if BUILD_CONST_IN_PROPS + System.Console.WriteLine("BUILD_CONST_IN_PROPS set"); + #else + System.Console.WriteLine("BUILD_CONST_IN_PROPS not set"); + #endif + } + } + """); + + App.Start(testAsset, ["--non-interactive"], "AppWithDeps"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + await App.WaitUntilOutputContains("BUILD_CONST_IN_PROPS set"); + + // delete Directory.Build.props that defines BUILD_CONST_IN_PROPS + Log($"Deleting {directoryBuildProps}"); + File.Delete(directoryBuildProps); + + // Project needs to be re-evaluated: + await App.WaitUntilOutputContains(MessageDescriptor.ProjectChangeTriggeredReEvaluation); + App.Process.ClearOutput(); + + await App.WaitUntilOutputContains("BUILD_CONST_IN_PROPS not set"); + } + + [Fact] + public async Task DefaultItemExcludes_DefaultItemsEnabled() + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") + .WithSource() + .WithProjectChanges(project => + { + project.Root.Descendants() + .First(e => e.Name.LocalName == "PropertyGroup") + .Add(XElement.Parse(""" + $(DefaultItemExcludes);AppData/**/*.* + """)); + }); + + var appDataDir = Path.Combine(testAsset.Path, "AppData", "dir"); + var appDataFilePath = Path.Combine(appDataDir, "ShouldBeIgnored.cs"); + + Directory.CreateDirectory(appDataDir); + + App.Start(testAsset, []); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + await App.WaitUntilOutputContains(new Regex(@"dotnet watch ⌚ Exclusion glob: 'AppData/[*][*]/[*][.][*];bin[/\\]+Debug[/\\]+[*][*];obj[/\\]+Debug[/\\]+[*][*];bin[/\\]+[*][*];obj[/\\]+[*][*]")); + App.Process.ClearOutput(); + + UpdateSourceFile(appDataFilePath, """ + class X; + """); + + await App.WaitUntilOutputContains($"dotnet watch ⌚ Ignoring change in excluded file '{appDataFilePath}': Add. Path matches DefaultItemExcludes glob 'AppData/**/*.*' set in '{testAsset.Path}'."); + } + + [Fact] + public async Task DefaultItemExcludes_DefaultItemsDisabled() + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") + .WithSource() + .WithProjectChanges(project => + { + project.Root.Descendants() + .First(e => e.Name.LocalName == "PropertyGroup") + .Add(XElement.Parse(""" + false + """)); + + project.Root.Descendants() + .First(e => e.Name.LocalName == "ItemGroup") + .Add(XElement.Parse(""" + + """)); + }); + + var binDir = Path.Combine(testAsset.Path, "bin", "Debug", ToolsetInfo.CurrentTargetFramework); + var binDirFilePath = Path.Combine(binDir, "ShouldBeIgnored.cs"); + + var objDir = Path.Combine(testAsset.Path, "obj", "Debug", ToolsetInfo.CurrentTargetFramework); + var objDirFilePath = Path.Combine(objDir, "ShouldBeIgnored.cs"); + + Directory.CreateDirectory(binDir); + + App.Start(testAsset, []); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + await App.WaitUntilOutputContains($"dotnet watch ⌚ Excluded directory: '{binDir}'"); + await App.WaitUntilOutputContains($"dotnet watch ⌚ Excluded directory: '{objDir}'"); + App.Process.ClearOutput(); + + UpdateSourceFile(binDirFilePath, "class X;"); + UpdateSourceFile(objDirFilePath, "class X;"); + + await App.WaitUntilOutputContains($"dotnet watch ⌚ Ignoring change in output directory: Add '{binDirFilePath}'"); + await App.WaitUntilOutputContains($"dotnet watch ⌚ Ignoring change in output directory: Add '{objDirFilePath}'"); + } + + [Fact] + public async Task GlobalUsings() + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") + .WithSource(); + + var programPath = Path.Combine(testAsset.Path, "Program.cs"); + var projectPath = Path.Combine(testAsset.Path, "WatchHotReloadApp.csproj"); + + App.Start(testAsset, []); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + // missing System.Linq import: + UpdateSourceFile(programPath, content => content.Replace(""" + Console.WriteLine("."); + """, + """ + Console.WriteLine($">>> {typeof(XDocument)}"); + """)); + + await App.WaitUntilOutputContains(MessageDescriptor.UnableToApplyChanges); + App.Process.ClearOutput(); + + UpdateSourceFile(projectPath, content => content.Replace(""" + + """, + """ + + """)); + + await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); + + await App.WaitUntilOutputContains(">>> System.Xml.Linq.XDocument"); + + await App.WaitUntilOutputContains(MessageDescriptor.ReEvaluationCompleted); + } + } +} diff --git a/test/dotnet-watch.Tests/HotReload/RazorHotReloadTests.cs b/test/dotnet-watch.Tests/HotReload/RazorHotReloadTests.cs new file mode 100644 index 000000000000..e3f442f1e274 --- /dev/null +++ b/test/dotnet-watch.Tests/HotReload/RazorHotReloadTests.cs @@ -0,0 +1,172 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable disable + +using System.Text.RegularExpressions; + +namespace Microsoft.DotNet.Watch.UnitTests +{ + public class RazorHotReloadTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) + { + [PlatformSpecificTheory(TestPlatforms.Windows | TestPlatforms.OSX)] // https://github.com/dotnet/sdk/issues/53114 + [CombinatorialData] + public async Task BlazorWasm(bool projectSpecifiesCapabilities) + { + var tfm = ToolsetInfo.CurrentTargetFramework; + + var testAsset = TestAssets.CopyTestAsset("WatchBlazorWasm", identifier: projectSpecifiesCapabilities.ToString()) + .WithSource(); + + if (projectSpecifiesCapabilities) + { + testAsset = testAsset.WithProjectChanges(proj => + { + proj.Root.Descendants() + .First(e => e.Name.LocalName == "PropertyGroup") + .Add(XElement.Parse(""" + Baseline;AddMethodToExistingType + """)); + }); + } + + var port = TestOptions.GetTestPort(); + App.Start(testAsset, ["--urls", "http://localhost:" + port], testFlags: TestFlags.MockBrowser); + + await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToUseBrowserRefresh); + await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToLaunchBrowser); + + // env variable passed when launching the server: + await App.WaitUntilOutputContains($"HOTRELOAD_DELTA_CLIENT_LOG_MESSAGES=dotnet watch 🕵️ [blazorwasm ({tfm})]"); + App.Process.ClearOutput(); + + // Middleware should have been loaded to blazor-devserver before the browser is launched: + await App.WaitUntilOutputContains("dbug: Microsoft.AspNetCore.Watch.BrowserRefresh.BlazorWasmHotReloadMiddleware[0]"); + await App.WaitUntilOutputContains("dbug: Microsoft.AspNetCore.Watch.BrowserRefresh.BrowserScriptMiddleware[0]"); + await App.WaitUntilOutputContains("Middleware loaded. Script /_framework/aspnetcore-browser-refresh.js"); + await App.WaitUntilOutputContains("Middleware loaded. Script /_framework/blazor-hotreload.js"); + await App.WaitUntilOutputContains("dbug: Microsoft.AspNetCore.Watch.BrowserRefresh.BrowserRefreshMiddleware"); + await App.WaitUntilOutputContains("Middleware loaded: DOTNET_MODIFIABLE_ASSEMBLIES=debug, __ASPNETCORE_BROWSER_TOOLS=true"); + + // shouldn't see any agent messages (agent is not loaded into blazor-devserver): + App.AssertOutputDoesNotContain("🕵️"); + + // Browser is launched based on blazor-devserver output "Now listening on: ...". + await App.WaitUntilOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage($"http://localhost:{port}")); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + App.Process.ClearOutput(); + + var newSource = """ + @page "/" +

Updated

+ """; + + UpdateSourceFile(Path.Combine(testAsset.Path, "Pages", "Index.razor"), newSource); + + // WebAssemblyHotReloadCapabilities set by project is overwritten in WASM SDK targets: + await App.WaitUntilOutputContains("dotnet watch 🔥 Hot reload capabilities: AddExplicitInterfaceImplementation AddInstanceFieldToExistingType AddMethodToExistingType AddStaticFieldToExistingType Baseline ChangeCustomAttributes GenericAddFieldToExistingType GenericAddMethodToExistingType GenericUpdateMethod NewTypeDefinition UpdateParameters."); + await App.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); + } + + [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.OSX)] // https://github.com/dotnet/sdk/issues/53114 + public async Task BlazorWasm_MSBuildWarning() + { + var testAsset = TestAssets + .CopyTestAsset("WatchBlazorWasm") + .WithSource() + .WithProjectChanges(proj => + { + proj.Root.Descendants() + .Single(e => e.Name.LocalName == "ItemGroup") + .Add(XElement.Parse(""" + + """)); + }); + + var port = TestOptions.GetTestPort(); + App.Start(testAsset, ["--urls", "http://localhost:" + port], testFlags: TestFlags.MockBrowser); + + await App.WaitUntilOutputContains("dotnet watch ⚠ msbuild: [Warning] Duplicate source file"); + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + } + + [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.OSX)] // https://github.com/dotnet/sdk/issues/53114 + public async Task BlazorWasm_Restart() + { + var testAsset = TestAssets.CopyTestAsset("WatchBlazorWasm") + .WithSource(); + + var port = TestOptions.GetTestPort(); + App.Start(testAsset, ["--urls", "http://localhost:" + port, "--non-interactive"], testFlags: TestFlags.ReadKeyFromStdin | TestFlags.MockBrowser); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToUseBrowserRefresh); + await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToLaunchBrowser); + await App.WaitUntilOutputContains(MessageDescriptor.PressCtrlRToRestart); + + // Browser is launched based on blazor-devserver output "Now listening on: ...". + await App.WaitUntilOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage($"http://localhost:{port}")); + + App.SendControlR(); + + await App.WaitUntilOutputContains(MessageDescriptor.ReloadingBrowser); + } + + [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.OSX)] // https://github.com/dotnet/sdk/issues/53114 + public async Task BlazorWasmHosted() + { + var testAsset = TestAssets.CopyTestAsset("WatchBlazorWasmHosted") + .WithSource(); + + var port = TestOptions.GetTestPort(); + App.Start(testAsset, ["--urls", "http://localhost:" + port], "blazorhosted", testFlags: TestFlags.MockBrowser); + + await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToUseBrowserRefresh); + await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToLaunchBrowser); + await App.WaitUntilOutputContains(MessageDescriptor.ApplicationKind_BlazorHosted); + } + + [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.OSX)] // https://github.com/dotnet/sdk/issues/53114 + public async Task Razor_Component_ScopedCssAndStaticAssets() + { + var testAsset = TestAssets.CopyTestAsset("WatchRazorWithDeps") + .WithSource(); + + var port = TestOptions.GetTestPort(); + App.Start(testAsset, ["--urls", "http://localhost:" + port], relativeProjectDirectory: "RazorApp", testFlags: TestFlags.MockBrowser); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToUseBrowserRefresh); + await App.WaitUntilOutputContains(MessageDescriptor.ConfiguredToLaunchBrowser); + await App.WaitUntilOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage($"http://localhost:{port}")); + App.Process.ClearOutput(); + + var scopedCssPath = Path.Combine(testAsset.Path, "RazorClassLibrary", "Components", "Example.razor.css"); + + var newCss = """ + .example { + color: blue; + } + """; + + UpdateSourceFile(scopedCssPath, newCss); + await App.WaitUntilOutputContains(MessageDescriptor.StaticAssetsChangesApplied); + await App.WaitUntilOutputContains(MessageDescriptor.NoManagedCodeChangesToApply); + + await App.WaitUntilOutputContains(MessageDescriptor.SendingStaticAssetUpdateRequest.GetMessage("wwwroot/RazorClassLibrary.bundle.scp.css")); + App.Process.ClearOutput(); + + var cssPath = Path.Combine(testAsset.Path, "RazorApp", "wwwroot", "app.css"); + UpdateSourceFile(cssPath, content => content.Replace("background-color: white;", "background-color: red;")); + + await App.WaitUntilOutputContains(MessageDescriptor.StaticAssetsChangesApplied); + await App.WaitUntilOutputContains(MessageDescriptor.NoManagedCodeChangesToApply); + + await App.WaitUntilOutputContains(MessageDescriptor.SendingStaticAssetUpdateRequest.GetMessage("wwwroot/app.css")); + App.Process.ClearOutput(); + } + } +} diff --git a/test/dotnet-watch.Tests/HotReload/SourceFileUpdateTests.cs b/test/dotnet-watch.Tests/HotReload/SourceFileUpdateTests.cs new file mode 100644 index 000000000000..097fae8b52cd --- /dev/null +++ b/test/dotnet-watch.Tests/HotReload/SourceFileUpdateTests.cs @@ -0,0 +1,364 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable disable + +namespace Microsoft.DotNet.Watch.UnitTests +{ + public class SourceFileUpdateTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) + { + [Fact] + public async Task AddSourceFile() + { + Log("AddSourceFile started"); + + var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps") + .WithSource(); + + var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); + + App.Start(testAsset, [], "AppWithDeps"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + // add a new file: + UpdateSourceFile(Path.Combine(dependencyDir, "AnotherLib.cs"), """ + public class AnotherLib + { + public static void Print() + => System.Console.WriteLine("Changed!"); + } + """); + + await App.WaitUntilOutputContains(MessageDescriptor.ReEvaluationCompleted); + + // update existing file: + UpdateSourceFile(Path.Combine(dependencyDir, "Foo.cs"), """ + public class Lib + { + public static void Print() + => AnotherLib.Print(); + } + """); + + await App.WaitUntilOutputContains("Changed!"); + } + + [Fact] + public async Task ChangeFileInDependency() + { + var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps") + .WithSource(); + + var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); + + App.Start(testAsset, [], "AppWithDeps"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + var newSrc = """ + public class Lib + { + public static void Print() + => System.Console.WriteLine("Changed!"); + } + """; + + UpdateSourceFile(Path.Combine(dependencyDir, "Foo.cs"), newSrc); + + await App.WaitUntilOutputContains("dotnet watch 🔥 Hot reload capabilities: AddExplicitInterfaceImplementation AddFieldRva AddInstanceFieldToExistingType AddMethodToExistingType AddStaticFieldToExistingType Baseline ChangeCustomAttributes GenericAddFieldToExistingType GenericAddMethodToExistingType GenericUpdateMethod NewTypeDefinition UpdateParameters."); + + await App.WaitUntilOutputContains("Changed!"); + } + + /// + /// Unchanged project doesn't build. Wait for source change and rebuild. + /// + [Fact] + public async Task BaselineCompilationError() + { + var testAsset = TestAssets.CopyTestAsset("WatchNoDepsApp") + .WithSource(); + + var programPath = Path.Combine(testAsset.Path, "Program.cs"); + File.WriteAllText(programPath, + """ + Console.Write + """); + + App.Start(testAsset, []); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + + UpdateSourceFile(programPath, """ + System.Console.WriteLine(""); + """); + + await App.WaitUntilOutputContains(""); + } + + [Theory] + [InlineData("PublishAot", "True")] + [InlineData("PublishTrimmed", "True")] + [InlineData("StartupHookSupport", "False")] + public async Task ChangeFileInAotProject(string propertyName, string propertyValue) + { + var tfm = ToolsetInfo.CurrentTargetFramework; + + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: $"{propertyName};{propertyValue}") + .WithSource() + .WithProjectChanges(project => + { + project.Root.Descendants() + .First(e => e.Name.LocalName == "PropertyGroup") + .Add(XElement.Parse($"<{propertyName}>{propertyValue}")); + }); + + var programPath = Path.Combine(testAsset.Path, "Program.cs"); + + App.Start(testAsset, ["--non-interactive"]); + + await App.WaitForOutputLineContaining($"[WatchHotReloadApp ({tfm})] " + MessageDescriptor.ProjectDoesNotSupportHotReload.GetMessage($"'{propertyName}' property is '{propertyValue}'")); + await App.WaitForOutputLineContaining(MessageDescriptor.WaitingForChanges); + App.Process.ClearOutput(); + + UpdateSourceFile(programPath, content => content.Replace("Console.WriteLine(\".\");", "Console.WriteLine(\"\");")); + + await App.WaitForOutputLineContaining($"[auto-restart] {programPath}(1,1): error ENC0097"); // Applying source changes while the application is running is not supported by the runtime. + await App.WaitForOutputLineContaining(""); + } + + [Fact] + public async Task ChangeFileInFSharpProject() + { + var testAsset = TestAssets.CopyTestAsset("FSharpTestAppSimple") + .WithSource(); + + App.Start(testAsset, []); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + + UpdateSourceFile(Path.Combine(testAsset.Path, "Program.fs"), content => content.Replace("Hello World!", "")); + + await App.WaitUntilOutputContains(""); + } + + [Fact] + public async Task ChangeFileInFSharpProjectWithLoop() + { + var testAsset = TestAssets.CopyTestAsset("FSharpTestAppSimple") + .WithSource(); + + var source = """ + module ConsoleApplication.Program + + open System + open System.Threading + + [] + let main argv = + printfn "Waiting" + Thread.Sleep(Timeout.Infinite) + 0 + """; + + var sourcePath = Path.Combine(testAsset.Path, "Program.fs"); + + File.WriteAllText(sourcePath, source); + + App.Start(testAsset, ["--non-interactive"]); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + App.Process.ClearOutput(); + + UpdateSourceFile(sourcePath, content => content.Replace("Waiting", "")); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + await App.WaitUntilOutputContains(""); + App.Process.ClearOutput(); + + UpdateSourceFile(sourcePath, content => content.Replace("", "")); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + await App.WaitUntilOutputContains(""); + } + + // Test is timing out on .NET Framework: https://github.com/dotnet/sdk/issues/41669 + [CoreMSBuildOnlyFact] + public async Task HandleTypeLoadFailure() + { + var testAsset = TestAssets.CopyTestAsset("WatchAppTypeLoadFailure") + .WithSource(); + + App.Start(testAsset, [], "App"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + var newSrc = """ + class DepSubType : Dep + { + int F() => 2; + } + + class Printer + { + public static void Print() + { + Console.WriteLine("Changed!"); + } + } + """; + + UpdateSourceFile(Path.Combine(testAsset.Path, "App", "Update.cs"), newSrc); + + await App.WaitUntilOutputContains("Updated types: Printer"); + } + + // Test is timing out on .NET Framework: https://github.com/dotnet/sdk/issues/41669 + [CoreMSBuildOnlyFact] + public async Task HandleMissingAssemblyFailure() + { + var testAsset = TestAssets.CopyTestAsset("WatchAppMissingAssemblyFailure") + .WithSource(); + + App.Start(testAsset, [], "App"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + var newSrc = /* lang=c#-test */""" + using System; + + public class DepType + { + int F() => 1; + } + + public class Printer + { + public static void Print() + => Console.WriteLine("Updated!"); + } + """; + + // Delete all files in testAsset.Path named Dep.dll + foreach (var depDll in Directory.GetFiles(testAsset.Path, "Dep2.dll", SearchOption.AllDirectories)) + { + File.Delete(depDll); + } + + File.WriteAllText(Path.Combine(testAsset.Path, "App", "Update.cs"), newSrc); + + await App.WaitUntilOutputContains("Updated types: Printer"); + } + + [Theory] + [InlineData(true, Skip = "https://github.com/dotnet/sdk/issues/43320")] + [InlineData(false)] + public async Task RenameSourceFile(bool useMove) + { + Log("RenameSourceFile started"); + + var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps") + .WithSource(); + + var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); + var oldFilePath = Path.Combine(dependencyDir, "Foo.cs"); + var newFilePath = Path.Combine(dependencyDir, "Renamed.cs"); + + var source = """ + using System; + using System.IO; + using System.Runtime.CompilerServices; + + public class Lib + { + public static void Print() => PrintFileName(); + + public static void PrintFileName([CallerFilePathAttribute] string filePath = null) + { + Console.WriteLine($"> {Path.GetFileName(filePath)}"); + } + } + """; + + File.WriteAllText(oldFilePath, source); + + App.Start(testAsset, [], "AppWithDeps"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + // rename the file: + if (useMove) + { + File.Move(oldFilePath, newFilePath); + } + else + { + File.Delete(oldFilePath); + File.WriteAllText(newFilePath, source); + } + + Log($"Renamed '{oldFilePath}' to '{newFilePath}'."); + + await App.AssertOutputLineStartsWith("> Renamed.cs"); + } + + [Theory] + [InlineData(true, Skip = "https://github.com/dotnet/sdk/issues/43320")] + [InlineData(false)] + public async Task RenameDirectory(bool useMove) + { + Log("RenameSourceFile started"); + + var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps", identifier: useMove.ToString()) + .WithSource(); + + var dependencyDir = Path.Combine(testAsset.Path, "Dependency"); + var oldSubdir = Path.Combine(dependencyDir, "Subdir"); + var newSubdir = Path.Combine(dependencyDir, "NewSubdir"); + + var source = """ + using System; + using System.IO; + using System.Runtime.CompilerServices; + + public class Lib + { + public static void Print() => PrintDirectoryName(); + + public static void PrintDirectoryName([CallerFilePathAttribute] string filePath = null) + { + Console.WriteLine($"> {Path.GetFileName(Path.GetDirectoryName(filePath))}"); + } + } + """; + + File.Delete(Path.Combine(dependencyDir, "Foo.cs")); + Directory.CreateDirectory(oldSubdir); + File.WriteAllText(Path.Combine(oldSubdir, "Foo.cs"), source); + + App.Start(testAsset, ["--non-interactive"], "AppWithDeps"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + // rename the directory: + if (useMove) + { + Directory.Move(oldSubdir, newSubdir); + } + else + { + Directory.Delete(oldSubdir, recursive: true); + Directory.CreateDirectory(newSubdir); + File.WriteAllText(Path.Combine(newSubdir, "Foo.cs"), source); + } + + Log($"Renamed '{oldSubdir}' to '{newSubdir}'."); + + // dotnet-watch may observe the delete separately from the new file write. + // If so, rude edit is reported, the app is auto-restarted and we should observe the final result. + + await App.WaitUntilOutputContains("> NewSubdir"); + } + } +} diff --git a/test/dotnet-watch.Tests/HotReload/TerminationTests.cs b/test/dotnet-watch.Tests/HotReload/TerminationTests.cs new file mode 100644 index 000000000000..7fe09eea4085 --- /dev/null +++ b/test/dotnet-watch.Tests/HotReload/TerminationTests.cs @@ -0,0 +1,74 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable disable + +namespace Microsoft.DotNet.Watch.UnitTests +{ + public class TerminationTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) + { + [PlatformSpecificFact(TestPlatforms.Windows)] + public async Task GracefulTermination_Windows() + { + var tfm = ToolsetInfo.CurrentTargetFramework; + + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") + .WithSource(); + + var programPath = Path.Combine(testAsset.Path, "Program.cs"); + + UpdateSourceFile(programPath, src => src.Replace("// ", """ + Console.CancelKeyPress += (sender, e) => + { + e.Cancel = true; + Console.WriteLine("Ctrl+C detected! Performing cleanup..."); + Environment.Exit(0); + }; + """)); + + App.Start(testAsset, [], testFlags: TestFlags.ReadKeyFromStdin); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + await App.WaitUntilOutputContains($"dotnet watch 🕵️ [WatchHotReloadApp ({tfm})] Windows Ctrl+C handling enabled."); + + await App.WaitUntilOutputContains("Started"); + + App.SendControlC(); + + await App.WaitUntilOutputContains("Ctrl+C detected! Performing cleanup..."); + await App.WaitUntilOutputContains("exited with exit code 0."); + } + + [PlatformSpecificFact(TestPlatforms.AnyUnix)] + public async Task GracefulTermination_Unix() + { + var tfm = ToolsetInfo.CurrentTargetFramework; + + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") + .WithSource(); + + var programPath = Path.Combine(testAsset.Path, "Program.cs"); + + UpdateSourceFile(programPath, src => src.Replace("// ", """ + using var termSignalRegistration = PosixSignalRegistration.Create(PosixSignal.SIGTERM, _ => + { + Console.WriteLine("SIGTERM detected! Performing cleanup..."); + }); + """)); + + App.Start(testAsset, [], testFlags: TestFlags.ReadKeyFromStdin); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + await App.WaitUntilOutputContains($"dotnet watch 🕵️ [WatchHotReloadApp ({tfm})] Posix signal handlers registered."); + + await App.WaitUntilOutputContains("Started"); + + App.SendControlC(); + + await App.WaitUntilOutputContains("SIGTERM detected! Performing cleanup..."); + await App.WaitUntilOutputContains("exited with exit code 0."); + } + } +} From bdb5a2a5e22dec278a035dc1d84d1bb8a162c149 Mon Sep 17 00:00:00 2001 From: Jan Jones Date: Thu, 26 Feb 2026 22:23:27 +0100 Subject: [PATCH 146/179] Consolidate file-level directive manipulation (#53136) --- .../FileLevelDirectiveHelpers.cs | 46 ++++++++++++++----- .../InternalAPI.Unshipped.txt | 4 +- .../Project/Convert/ProjectConvertCommand.cs | 4 +- .../Commands/Run/FileBasedAppSourceEditor.cs | 28 +++++++---- .../Run/VirtualProjectBuildingCommand.cs | 18 ++++++++ .../VirtualProjectBuilder.cs | 34 -------------- .../Convert/DotnetProjectConvertTests.cs | 3 +- .../Run/FileBasedAppSourceEditorTests.cs | 45 ++++++++++++++++++ 8 files changed, 121 insertions(+), 61 deletions(-) diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs b/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs index 99e7ba172924..89413dc860cc 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs @@ -77,7 +77,6 @@ void ReportErrorFor(SyntaxTrivia trivia) } } - // The result should be ordered by source location, RemoveDirectivesFromFile depends on that. return builder.ToImmutable(); } @@ -112,7 +111,7 @@ public static void FindLeadingDirectives( { TextSpan span = GetFullSpan(previousWhiteSpaceSpan, trivia); - var whiteSpace = GetWhiteSpaceInfo(triviaList, index); + var whiteSpace = GetWhiteSpaceInfo(triviaList, index, span); var info = new CSharpDirective.ParseInfo { SourceFile = sourceFile, @@ -134,7 +133,7 @@ public static void FindLeadingDirectives( var value = parts.Length > 1 ? parts[1] : ""; Debug.Assert(!(parts.Length > 2)); - var whiteSpace = GetWhiteSpaceInfo(triviaList, index); + var whiteSpace = GetWhiteSpaceInfo(triviaList, index, span); var context = new CSharpDirective.ParseContext { Info = new() @@ -183,35 +182,42 @@ static TextSpan GetFullSpan(TextSpan previousWhiteSpaceSpan, SyntaxTrivia trivia return previousWhiteSpaceSpan.IsEmpty ? trivia.FullSpan : TextSpan.FromBounds(previousWhiteSpaceSpan.Start, trivia.FullSpan.End); } - static (WhiteSpaceInfo Leading, WhiteSpaceInfo Trailing) GetWhiteSpaceInfo(in SyntaxTriviaList triviaList, int index) + static (WhiteSpaceInfo Leading, WhiteSpaceInfo Trailing) GetWhiteSpaceInfo(in SyntaxTriviaList triviaList, int index, TextSpan excludeSpan) { (WhiteSpaceInfo Leading, WhiteSpaceInfo Trailing) result = default; for (int i = index - 1; i >= 0; i--) { - if (!Fill(ref result.Leading, triviaList, i)) break; + if (!Fill(ref result.Leading, triviaList, i, excludeSpan)) break; } for (int i = index + 1; i < triviaList.Count; i++) { - if (!Fill(ref result.Trailing, triviaList, i)) break; + if (!Fill(ref result.Trailing, triviaList, i, excludeSpan)) break; } return result; - static bool Fill(ref WhiteSpaceInfo info, in SyntaxTriviaList triviaList, int index) + static bool Fill(ref WhiteSpaceInfo info, in SyntaxTriviaList triviaList, int index, TextSpan excludeSpan) { var trivia = triviaList[index]; + + var length = trivia.FullSpan.Length - (trivia.FullSpan.Intersection(excludeSpan)?.Length ?? 0); + if (trivia.IsKind(SyntaxKind.EndOfLineTrivia)) { - info.LineBreaks += 1; - info.TotalLength += trivia.FullSpan.Length; + if (length != 0) + { + info.BlankLineLength += info.RestLength + length; + info.RestLength = 0; + } + return true; } if (trivia.IsKind(SyntaxKind.WhitespaceTrivia)) { - info.TotalLength += trivia.FullSpan.Length; + info.RestLength += length; return true; } @@ -256,8 +262,15 @@ internal static partial class Patterns internal struct WhiteSpaceInfo { - public int LineBreaks; - public int TotalLength; + /// + /// Size of whitespace that consists of only blank lines (i.e., lines that contain only whitespace). + /// + public int BlankLineLength; + + /// + /// Size of the remaining whitespace on a not-entirely-blank line. + /// + public int RestLength; } /// @@ -271,11 +284,20 @@ internal abstract class CSharpDirective(in CSharpDirective.ParseInfo info) public readonly struct ParseInfo { public required SourceFile SourceFile { get; init; } + /// /// Span of the full line including the trailing line break. /// public required TextSpan Span { get; init; } + + /// + /// Additional leading whitespace not included in . + /// public required WhiteSpaceInfo LeadingWhiteSpace { get; init; } + + /// + /// Additional trailing whitespace not included in . + /// public required WhiteSpaceInfo TrailingWhiteSpace { get; init; } } diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/InternalAPI.Unshipped.txt b/src/Cli/Microsoft.DotNet.FileBasedPrograms/InternalAPI.Unshipped.txt index df17c8e67fc1..8beab97ae92c 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/InternalAPI.Unshipped.txt +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/InternalAPI.Unshipped.txt @@ -114,8 +114,8 @@ Microsoft.DotNet.FileBasedPrograms.SourceFile.SourceFile(string! Path, Microsoft Microsoft.DotNet.FileBasedPrograms.SourceFile.Text.get -> Microsoft.CodeAnalysis.Text.SourceText! Microsoft.DotNet.FileBasedPrograms.SourceFile.Text.init -> void Microsoft.DotNet.FileBasedPrograms.WhiteSpaceInfo -Microsoft.DotNet.FileBasedPrograms.WhiteSpaceInfo.LineBreaks -> int -Microsoft.DotNet.FileBasedPrograms.WhiteSpaceInfo.TotalLength -> int +Microsoft.DotNet.FileBasedPrograms.WhiteSpaceInfo.BlankLineLength -> int +Microsoft.DotNet.FileBasedPrograms.WhiteSpaceInfo.RestLength -> int Microsoft.DotNet.FileBasedPrograms.WhiteSpaceInfo.WhiteSpaceInfo() -> void Microsoft.DotNet.ProjectTools.ProjectLocator override abstract Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ToString() -> string! diff --git a/src/Cli/dotnet/Commands/Project/Convert/ProjectConvertCommand.cs b/src/Cli/dotnet/Commands/Project/Convert/ProjectConvertCommand.cs index 4cf768909127..9199c78c3684 100644 --- a/src/Cli/dotnet/Commands/Project/Convert/ProjectConvertCommand.cs +++ b/src/Cli/dotnet/Commands/Project/Convert/ProjectConvertCommand.cs @@ -67,7 +67,7 @@ public override int Execute() } else { - VirtualProjectBuilder.RemoveDirectivesFromFile(evaluatedDirectives, builder.EntryPointSourceFile, targetFile); + VirtualProjectBuildingCommand.RemoveDirectivesFromFile(builder.EntryPointSourceFile, targetFile); } // Create project file. @@ -112,7 +112,7 @@ public override int Execute() else { var sourceFile = SourceFile.Load(item.FullPath); - VirtualProjectBuilder.RemoveDirectivesFromFile(evaluatedDirectives, sourceFile, targetItemFullPath); + VirtualProjectBuildingCommand.RemoveDirectivesFromFile(sourceFile, targetItemFullPath); } } else diff --git a/src/Cli/dotnet/Commands/Run/FileBasedAppSourceEditor.cs b/src/Cli/dotnet/Commands/Run/FileBasedAppSourceEditor.cs index 764aeec88f95..cb7bf28db9ef 100644 --- a/src/Cli/dotnet/Commands/Run/FileBasedAppSourceEditor.cs +++ b/src/Cli/dotnet/Commands/Run/FileBasedAppSourceEditor.cs @@ -230,27 +230,37 @@ public void Remove(CSharpDirective directive) { var span = directive.Info.Span; var start = span.Start; - var length = span.Length + DetermineTrailingLengthToRemove(directive); + var length = span.Length; + + DetermineWhiteSpaceToRemove(directive, out int leadingLength, out int trailingLength); + start -= leadingLength; + length += trailingLength; + SourceFile = SourceFile with { Text = SourceFile.Text.Replace(start: start, length: length, newText: string.Empty) }; } - private static int DetermineTrailingLengthToRemove(CSharpDirective directive) + private static void DetermineWhiteSpaceToRemove(CSharpDirective directive, out int leadingLength, out int trailingLength) { - // If there are blank lines both before and after the directive, remove the trailing white space. - if (directive.Info.LeadingWhiteSpace.LineBreaks > 0 && directive.Info.TrailingWhiteSpace.LineBreaks > 0) + // If there are blank lines both before and after the directive, remove the trailing blank lines. + if (directive.Info.LeadingWhiteSpace.BlankLineLength > 0 && directive.Info.TrailingWhiteSpace.BlankLineLength > 0) { - return directive.Info.TrailingWhiteSpace.TotalLength; + leadingLength = 0; + trailingLength = directive.Info.TrailingWhiteSpace.BlankLineLength; + return; } // If the directive (including leading white space) starts at the beginning of the file, - // remove both the leading and trailing white space. - var startBeforeWhiteSpace = directive.Info.Span.Start - directive.Info.LeadingWhiteSpace.TotalLength; + // remove both the leading and trailing blank lines. + var startBeforeWhiteSpace = directive.Info.Span.Start - directive.Info.LeadingWhiteSpace.BlankLineLength; if (startBeforeWhiteSpace == 0) { - return directive.Info.LeadingWhiteSpace.TotalLength + directive.Info.TrailingWhiteSpace.TotalLength; + leadingLength = directive.Info.LeadingWhiteSpace.BlankLineLength; + trailingLength = directive.Info.TrailingWhiteSpace.BlankLineLength; + return; } Debug.Assert(startBeforeWhiteSpace > 0); - return 0; + leadingLength = 0; + trailingLength = 0; } } diff --git a/src/Cli/dotnet/Commands/Run/VirtualProjectBuildingCommand.cs b/src/Cli/dotnet/Commands/Run/VirtualProjectBuildingCommand.cs index 3cbd7b9bd1e8..0011c2604535 100644 --- a/src/Cli/dotnet/Commands/Run/VirtualProjectBuildingCommand.cs +++ b/src/Cli/dotnet/Commands/Run/VirtualProjectBuildingCommand.cs @@ -1180,6 +1180,24 @@ public static void CreateTempSubdirectory(string path) throw new GracefulException( $"{new SourceFile(path, text).GetLocationString(textSpan)}: {FileBasedProgramsResources.DirectiveError}: {message}", innerException); + + public static SourceFile RemoveDirectivesFromFile(SourceFile sourceFile) + { + var editor = FileBasedAppSourceEditor.Load(sourceFile); + + while (editor.Directives is [{ } directive, ..]) + { + editor.Remove(directive); + } + + return editor.SourceFile; + } + + public static void RemoveDirectivesFromFile(SourceFile sourceFile, string targetFilePath) + { + var modifiedFile = RemoveDirectivesFromFile(sourceFile); + (modifiedFile with { Path = targetFilePath }).Save(); + } } internal sealed class RunFileBuildCacheEntry diff --git a/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs b/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs index b394dd14de71..2356b742ea2c 100644 --- a/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs +++ b/src/Microsoft.DotNet.ProjectTools/VirtualProjectBuilder.cs @@ -774,38 +774,4 @@ static void WriteImport(TextWriter writer, string project, CSharpDirective.Sdk s } } } - - internal static SourceFile RemoveDirectivesFromFile(ImmutableArray directives, SourceFile sourceFile) - { - if (directives.Length == 0) - { - return sourceFile; - } - -#if DEBUG - var filteredDirectives = directives.Where(d => d.Info.SourceFile.Path == sourceFile.Path); - Debug.Assert( - filteredDirectives.OrderBy(static d => d.Info.Span.Start).SequenceEqual(filteredDirectives), - "Directives should be ordered by source location."); -#endif - - var text = sourceFile.Text; - - for (int i = directives.Length - 1; i >= 0; i--) - { - var directive = directives[i]; - if (directive.Info.SourceFile.Path == sourceFile.Path) - { - text = text.Replace(directive.Info.Span, string.Empty); - } - } - - return sourceFile with { Text = text }; - } - - internal static void RemoveDirectivesFromFile(ImmutableArray directives, SourceFile sourceFile, string targetFilePath) - { - var modifiedFile = RemoveDirectivesFromFile(directives, sourceFile); - (modifiedFile with { Path = targetFilePath }).Save(); - } } diff --git a/test/dotnet.Tests/CommandTests/Project/Convert/DotnetProjectConvertTests.cs b/test/dotnet.Tests/CommandTests/Project/Convert/DotnetProjectConvertTests.cs index b379f8eee8bb..adcb13515a90 100644 --- a/test/dotnet.Tests/CommandTests/Project/Convert/DotnetProjectConvertTests.cs +++ b/test/dotnet.Tests/CommandTests/Project/Convert/DotnetProjectConvertTests.cs @@ -1645,7 +1645,6 @@ public void Directives_BlankLines() """, expectedProject: expectedProject, expectedCSharp: """ - Console.WriteLine(); """); @@ -1968,7 +1967,7 @@ private static void Convert( actualProject = projectWriter.ToString(); - var convertedFile = VirtualProjectBuilder.RemoveDirectivesFromFile(directives, builder.EntryPointSourceFile); + var convertedFile = VirtualProjectBuildingCommand.RemoveDirectivesFromFile(builder.EntryPointSourceFile); actualCSharp = convertedFile.Text != builder.EntryPointSourceFile.Text ? convertedFile.Text.ToString() : null; } diff --git a/test/dotnet.Tests/CommandTests/Run/FileBasedAppSourceEditorTests.cs b/test/dotnet.Tests/CommandTests/Run/FileBasedAppSourceEditorTests.cs index 191276f6a03a..4b1ffa3f73dc 100644 --- a/test/dotnet.Tests/CommandTests/Run/FileBasedAppSourceEditorTests.cs +++ b/test/dotnet.Tests/CommandTests/Run/FileBasedAppSourceEditorTests.cs @@ -109,6 +109,51 @@ public void PreExistingWhiteSpace() """)); } + [Fact] + public void LeadingWhiteSpace() + { + Verify( + """ + + #:package MyPackage@1.0.0 + Console.WriteLine(); + """, + (static editor => editor.Remove(editor.Directives.Single()), + """ + + Console.WriteLine(); + """)); + + Verify( + """ + #:package MyPackage@1.0.0 + Console.WriteLine(); + """, + (static editor => editor.Remove(editor.Directives.Single()), + """ + Console.WriteLine(); + """)); + } + + [Fact] + public void WhiteSpaceOutsideLines() + { + Verify( + $""" + // trailing{" "} + + #:package MyPackage@1.0.0 + + // leading + """, + (static editor => editor.Remove(editor.Directives.Single()), + $""" + // trailing{" "} + + // leading + """)); + } + [Fact] public void Comments() { From b26f45d6d9514eef86d773123bc8a98ee6fd6f43 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 26 Feb 2026 23:18:15 +0000 Subject: [PATCH 147/179] Initial plan From 07322512f2a90efe7b8a41b4a092ee3a3d8c46d7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 26 Feb 2026 23:24:58 +0000 Subject: [PATCH 148/179] Update Locked comments to include apostrophes for InvalidIncludeExcludeMapping entries Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com> --- .../FileBasedProgramsResources.resx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileBasedProgramsResources.resx b/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileBasedProgramsResources.resx index b2c4f12785eb..cbe3d3838aa3 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileBasedProgramsResources.resx +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileBasedProgramsResources.resx @@ -175,11 +175,11 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. From 5cf33c739290fd3dbed68ebe32125cd3a310f8b4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 26 Feb 2026 23:55:54 +0000 Subject: [PATCH 149/179] Update XLF translation files - 2026-02-26 --- .../xlf/FileBasedProgramsResources.cs.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.de.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.es.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.fr.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.it.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.ja.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.ko.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.pl.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.pt-BR.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.ru.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.tr.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.zh-Hans.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.zh-Hant.xlf | 4 ++-- 13 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf index 70e6d2d7252b..f7abe17e7469 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf @@ -40,12 +40,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf index a6e86cdb09d8..c06f16ccfe5d 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf @@ -40,12 +40,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf index 76d8f9968652..e07d63de44da 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf @@ -40,12 +40,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf index 8d6c4042d47a..f8ac150fba81 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf @@ -40,12 +40,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf index b630dba53574..1c884708ab43 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf @@ -40,12 +40,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf index 9c0a354e501f..ff9690e00576 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf @@ -40,12 +40,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf index a10e12d4353a..caba35215b23 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf @@ -40,12 +40,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf index 0892381d07be..ecffd7e67744 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf @@ -40,12 +40,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf index 27d61a6c0cf8..b3fb3867077b 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf @@ -40,12 +40,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf index 381e8f4b8038..2249fdaefe41 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf @@ -40,12 +40,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf index 014caf69d8ae..46134db6424f 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf @@ -40,12 +40,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf index b0223d61e6ca..5e755b716575 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf @@ -40,12 +40,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf index b141d76c8c90..a93e0402ec5e 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf @@ -40,12 +40,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="="} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="."} + {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. From 449dad76a0830b2af60e0bf59444e1d44ea7ef16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Matou=C5=A1ek?= Date: Thu, 26 Feb 2026 20:23:55 -0800 Subject: [PATCH 150/179] Streamline web socket config, KestrelWebSocketServer impl (#53108) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: dbreshears <3432571+dbreshears@users.noreply.github.com> Co-authored-by: tmat <41759+tmat@users.noreply.github.com> --- .../Web/BrowserRefreshServer.cs | 20 +- .../Web/KestrelWebSocketServer.cs | 128 ++++----- .../HotReloadClient/Web/WebSocketConfig.cs | 39 +++ .../WebSocketClientTransport.cs | 246 +++++++++--------- .../Watch/AppModels/MobileAppModel.cs | 3 +- .../Watch/AppModels/WebApplicationAppModel.cs | 3 +- .../Watch/Context/EnvironmentOptions.cs | 13 +- .../Watch/Context/EnvironmentVariables.cs | 15 +- .../Web/KestrelWebSocketServerTests.cs | 21 ++ 9 files changed, 264 insertions(+), 224 deletions(-) create mode 100644 src/Dotnet.Watch/HotReloadClient/Web/WebSocketConfig.cs create mode 100644 test/dotnet-watch.Tests/Web/KestrelWebSocketServerTests.cs diff --git a/src/Dotnet.Watch/HotReloadClient/Web/BrowserRefreshServer.cs b/src/Dotnet.Watch/HotReloadClient/Web/BrowserRefreshServer.cs index 8d139846350a..bc5cbc67d007 100644 --- a/src/Dotnet.Watch/HotReloadClient/Web/BrowserRefreshServer.cs +++ b/src/Dotnet.Watch/HotReloadClient/Web/BrowserRefreshServer.cs @@ -26,8 +26,7 @@ internal sealed class BrowserRefreshServer( ILoggerFactory loggerFactory, string middlewareAssemblyPath, string dotnetPath, - string? autoReloadWebSocketHostName, - int? autoReloadWebSocketPort, + WebSocketConfig webSocketConfig, bool suppressTimeouts) : AbstractBrowserRefreshServer(middlewareAssemblyPath, logger, loggerFactory) { @@ -36,21 +35,16 @@ protected override bool SuppressTimeouts protected override async ValueTask CreateAndStartHostAsync(CancellationToken cancellationToken) { - var hostName = autoReloadWebSocketHostName ?? "127.0.0.1"; - var port = autoReloadWebSocketPort ?? 0; var supportsTls = await KestrelWebSocketServer.IsTlsSupportedAsync(dotnetPath, suppressTimeouts, cancellationToken); + if (!supportsTls) + { + webSocketConfig = webSocketConfig.WithSecurePort(null); + } - var server = new KestrelWebSocketServer(Logger, WebSocketRequestAsync); - await server.StartServerAsync(hostName, port, supportsTls ? 0 : null, cancellationToken); + var server = await KestrelWebSocketServer.StartServerAsync(webSocketConfig, WebSocketRequestAsync, cancellationToken); // URLs are only available after the server has started. - return new WebServerHost(server, GetServerUrls(server.ServerUrls), virtualDirectory: "/"); - } - - private ImmutableArray GetServerUrls(ImmutableArray serverUrls) - { - Debug.Assert(serverUrls.Length > 0); - return [.. serverUrls.Select(s => KestrelWebSocketServer.GetWebSocketUrl(s, autoReloadWebSocketHostName))]; + return new WebServerHost(server, server.ServerUrls, virtualDirectory: "/"); } private async Task WebSocketRequestAsync(HttpContext context) diff --git a/src/Dotnet.Watch/HotReloadClient/Web/KestrelWebSocketServer.cs b/src/Dotnet.Watch/HotReloadClient/Web/KestrelWebSocketServer.cs index 41d0522f5715..ec6033f648c6 100644 --- a/src/Dotnet.Watch/HotReloadClient/Web/KestrelWebSocketServer.cs +++ b/src/Dotnet.Watch/HotReloadClient/Web/KestrelWebSocketServer.cs @@ -26,55 +26,15 @@ namespace Microsoft.DotNet.HotReload; /// Sealed WebSocket server using Kestrel. /// Uses a request handler delegate for all WebSocket handling. /// -internal sealed class KestrelWebSocketServer : IDisposable +internal sealed class KestrelWebSocketServer(IHost host, ImmutableArray serverUrls) : IDisposable { - private readonly RequestDelegate _requestHandler; - private readonly ILogger _logger; - - private IHost? _host; - public ImmutableArray ServerUrls { get; private set; } = []; - - public KestrelWebSocketServer(ILogger logger, RequestDelegate requestHandler) - { - _logger = logger; - _requestHandler = requestHandler; - } + private static bool? s_lazyTlsSupported; public void Dispose() - { - _host?.Dispose(); - } + => host.Dispose(); - private static bool? s_lazyTlsSupported; - - /// - /// Checks whether TLS is supported by running dotnet dev-certs https --check --quiet. - /// - public static async ValueTask IsTlsSupportedAsync(string dotnetPath, bool suppressTimeouts, CancellationToken cancellationToken) - { - var result = s_lazyTlsSupported; - if (result.HasValue) - { - return result.Value; - } - - try - { - using var process = Process.Start(dotnetPath, "dev-certs https --check --quiet"); - await process - .WaitForExitAsync(cancellationToken) - .WaitAsync(suppressTimeouts ? TimeSpan.MaxValue : TimeSpan.FromSeconds(10), cancellationToken); - - result = process.ExitCode == 0; - } - catch - { - result = false; - } - - s_lazyTlsSupported = result; - return result.Value; - } + public ImmutableArray ServerUrls + => serverUrls; /// /// Starts the Kestrel WebSocket server. @@ -83,68 +43,80 @@ await process /// HTTP port to bind to (0 for auto-assign) /// HTTPS port to bind to in addition to HTTP port. Null to skip HTTPS. /// Cancellation token - public async ValueTask StartServerAsync(string hostName, int port, int? securePort, CancellationToken cancellationToken) + public static async ValueTask StartServerAsync(WebSocketConfig config, RequestDelegate requestHandler, CancellationToken cancellationToken) { - if (_host != null) - { - throw new InvalidOperationException("Server already started"); - } - - _host = new HostBuilder() + var host = new HostBuilder() .ConfigureWebHost(builder => { builder.UseKestrel(); - - if (securePort.HasValue) - { - builder.UseUrls($"http://{hostName}:{port}", $"https://{hostName}:{securePort.Value}"); - } - else - { - builder.UseUrls($"http://{hostName}:{port}"); - } + builder.UseUrls([.. config.GetHttpUrls()]); builder.Configure(app => { app.UseWebSockets(); - app.Run(_requestHandler); + app.Run(requestHandler); }); }) .Build(); - await _host.StartAsync(cancellationToken); + await host.StartAsync(cancellationToken); // URLs are only available after the server has started. - var addresses = _host.Services + var addresses = host.Services .GetRequiredService() .Features .Get()? - .Addresses; + .Addresses ?? []; + + return new KestrelWebSocketServer(host, serverUrls: [.. addresses.Select(GetWebSocketUrl)]); + } - if (addresses != null) + /// + /// Converts an HTTP(S) URL to a WebSocket URL and replaces 127.0.0.1 with localhost. + /// + internal static string GetWebSocketUrl(string httpUrl) + { + var uri = new Uri(httpUrl, UriKind.Absolute); + var builder = new UriBuilder(uri) + { + Scheme = uri.Scheme == "https" ? "wss" : "ws" + }; + + if (builder.Host == "127.0.0.1") { - ServerUrls = [.. addresses]; + builder.Host = "localhost"; } - _logger.LogDebug("WebSocket server started at: {Urls}", string.Join(", ", ServerUrls.Select(url => GetWebSocketUrl(url)))); + return builder.Uri.ToString().TrimEnd('/'); } /// - /// Converts an HTTP(S) URL to a WebSocket URL. - /// When is not specified, also replaces 127.0.0.1 with localhost. + /// Checks whether TLS is supported by running dotnet dev-certs https --check --quiet. /// - internal static string GetWebSocketUrl(string httpUrl, string? hostName = null) + public static async ValueTask IsTlsSupportedAsync(string dotnetPath, bool suppressTimeouts, CancellationToken cancellationToken) { - if (hostName is null) + var result = s_lazyTlsSupported; + if (result.HasValue) { - return httpUrl - .Replace("http://127.0.0.1", "ws://localhost", StringComparison.Ordinal) - .Replace("https://127.0.0.1", "wss://localhost", StringComparison.Ordinal); + return result.Value; } - return httpUrl - .Replace("https://", "wss://", StringComparison.Ordinal) - .Replace("http://", "ws://", StringComparison.Ordinal); + try + { + using var process = Process.Start(dotnetPath, "dev-certs https --check --quiet"); + await process + .WaitForExitAsync(cancellationToken) + .WaitAsync(suppressTimeouts ? TimeSpan.MaxValue : TimeSpan.FromSeconds(10), cancellationToken); + + result = process.ExitCode == 0; + } + catch + { + result = false; + } + + s_lazyTlsSupported = result; + return result.Value; } } diff --git a/src/Dotnet.Watch/HotReloadClient/Web/WebSocketConfig.cs b/src/Dotnet.Watch/HotReloadClient/Web/WebSocketConfig.cs new file mode 100644 index 000000000000..66887d28b348 --- /dev/null +++ b/src/Dotnet.Watch/HotReloadClient/Web/WebSocketConfig.cs @@ -0,0 +1,39 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable enable + +using System.Collections.Generic; + +namespace Microsoft.DotNet.HotReload; + +internal readonly struct WebSocketConfig(int port, int? securePort, string? hostName) +{ + /// + /// 0 to auto-assign. + /// + public int Port => port; + + /// + /// 0 to auto-assign, null to disable HTTPS/WSS. + /// + public int? SecurePort => securePort; + + // Use 127.0.0.1 instead of "localhost" because Kestrel doesn't support dynamic port binding with "localhost". + // System.InvalidOperationException: Dynamic port binding is not supported when binding to localhost. + // You must either bind to 127.0.0.1:0 or [::1]:0, or both. + public string HostName => hostName ?? "127.0.0.1"; + + public IEnumerable GetHttpUrls() + { + yield return $"http://{HostName}:{Port}"; + + if (SecurePort.HasValue) + { + yield return $"https://{HostName}:{SecurePort.Value}"; + } + } + + public WebSocketConfig WithSecurePort(int? value) + => new(port, value, hostName); +} diff --git a/src/Dotnet.Watch/HotReloadClient/WebSocketClientTransport.cs b/src/Dotnet.Watch/HotReloadClient/WebSocketClientTransport.cs index b10f5aa63674..91bff33e95e0 100644 --- a/src/Dotnet.Watch/HotReloadClient/WebSocketClientTransport.cs +++ b/src/Dotnet.Watch/HotReloadClient/WebSocketClientTransport.cs @@ -28,178 +28,186 @@ namespace Microsoft.DotNet.HotReload; /// internal sealed class WebSocketClientTransport : ClientTransport { - private readonly ILogger _logger; private readonly KestrelWebSocketServer _server; - private readonly SharedSecretProvider _sharedSecretProvider = new(); - private readonly TaskCompletionSource _clientConnectedSource = new(); + private readonly RequestHandler _handler; - private WebSocket? _clientSocket; - - // Reused across WriteAsync calls to avoid allocations. - // WriteAsync is invoked under a semaphore in DefaultHotReloadClient. - private MemoryStream? _sendBuffer; + private WebSocketClientTransport(KestrelWebSocketServer server, RequestHandler handler) + { + _server = server; + _handler = handler; + } - private WebSocketClientTransport(ILogger logger) + public override void Dispose() { - _logger = logger; - _server = new KestrelWebSocketServer(logger, HandleRequestAsync); + _server.Dispose(); + _handler.Dispose(); } /// /// Creates and starts a new instance. /// - public static async Task CreateAsync(int port, int? securePort, ILogger logger, CancellationToken cancellationToken) + public static async Task CreateAsync(WebSocketConfig config, ILogger logger, CancellationToken cancellationToken) { - var transport = new WebSocketClientTransport(logger); - - // Start Kestrel server with WebSocket support. - // Use 127.0.0.1 instead of "localhost" because Kestrel doesn't support dynamic port binding with "localhost". - // System.InvalidOperationException: Dynamic port binding is not supported when binding to localhost. - // You must either bind to 127.0.0.1:0 or [::1]:0, or both. - await transport._server.StartServerAsync("127.0.0.1", port, securePort: securePort, cancellationToken); + var handler = new RequestHandler(logger); + var server = await KestrelWebSocketServer.StartServerAsync(config, handler.HandleRequestAsync, cancellationToken); + var transport = new WebSocketClientTransport(server, handler); + logger.LogDebug("WebSocket server started at: {Urls}", string.Join(", ", server.ServerUrls)); return transport; } - /// - /// The bound port number, for testing. Only valid after server has started. - /// - internal int Port => new Uri(_server.ServerUrls.Select(url => KestrelWebSocketServer.GetWebSocketUrl(url)).First()).Port; - public override void ConfigureEnvironment(IDictionary env) { // Set the WebSocket endpoint for the app to connect to. // Use the actual bound URL from the server (important when port 0 was requested). - env[AgentEnvironmentVariables.DotNetWatchHotReloadWebSocketEndpoint] = _server.ServerUrls.Select(url => KestrelWebSocketServer.GetWebSocketUrl(url)).First(); + env[AgentEnvironmentVariables.DotNetWatchHotReloadWebSocketEndpoint] = _server.ServerUrls.First(); // Set the RSA public key for the client to encrypt its shared secret. // This is the same authentication mechanism used by BrowserRefreshServer. - env[AgentEnvironmentVariables.DotNetWatchHotReloadWebSocketKey] = _sharedSecretProvider.GetPublicKey(); + env[AgentEnvironmentVariables.DotNetWatchHotReloadWebSocketKey] = _handler.SharedSecretProvider.GetPublicKey(); } - private async Task HandleRequestAsync(HttpContext context) + public override Task WaitForConnectionAsync(CancellationToken cancellationToken) + => _handler.ClientConnectedSource.Task.WaitAsync(cancellationToken); + + public override ValueTask WriteAsync(byte type, Func? writePayload, CancellationToken cancellationToken) + => _handler.WriteAsync(type, writePayload, cancellationToken); + + public override ValueTask ReadAsync(CancellationToken cancellationToken) + => _handler.ReadAsync(cancellationToken); + + private sealed class RequestHandler(ILogger logger) : IDisposable { - if (!context.WebSockets.IsWebSocketRequest) - { - context.Response.StatusCode = 400; - return; - } + public SharedSecretProvider SharedSecretProvider { get; } = new(); + public TaskCompletionSource ClientConnectedSource { get; } = new(); - // Validate the shared secret from the subprotocol - string? subProtocol = context.WebSockets.WebSocketRequestedProtocols is [var sp] ? sp : null; + private WebSocket? _clientSocket; - if (subProtocol == null) - { - _logger.LogWarning("WebSocket connection rejected: missing subprotocol (shared secret)"); - context.Response.StatusCode = 401; - return; - } + // Reused across WriteAsync calls to avoid allocations. + // WriteAsync is invoked under a semaphore in DefaultHotReloadClient. + private MemoryStream? _sendBuffer; - // Decrypt and validate the secret - try + public void Dispose() { - _sharedSecretProvider.DecryptSecret(WebUtility.UrlDecode(subProtocol)); + logger.LogDebug("Disposing agent websocket transport"); + + _sendBuffer?.Dispose(); + _clientSocket?.Dispose(); + SharedSecretProvider.Dispose(); } - catch (Exception ex) + + public async Task HandleRequestAsync(HttpContext context) { - _logger.LogWarning("WebSocket connection rejected: invalid shared secret - {Message}", ex.Message); - context.Response.StatusCode = 401; - return; - } + if (!context.WebSockets.IsWebSocketRequest) + { + context.Response.StatusCode = 400; + return; + } - var webSocket = await context.WebSockets.AcceptWebSocketAsync(subProtocol); + // Validate the shared secret from the subprotocol + string? subProtocol = context.WebSockets.WebSocketRequestedProtocols is [var sp] ? sp : null; - _logger.LogDebug("WebSocket client connected"); + if (subProtocol == null) + { + logger.LogWarning("WebSocket connection rejected: missing subprotocol (shared secret)"); + context.Response.StatusCode = 401; + return; + } - _clientSocket = webSocket; - _clientConnectedSource.TrySetResult(webSocket); + // Decrypt and validate the secret + try + { + SharedSecretProvider.DecryptSecret(WebUtility.UrlDecode(subProtocol)); + } + catch (Exception ex) + { + logger.LogWarning("WebSocket connection rejected: invalid shared secret - {Message}", ex.Message); + context.Response.StatusCode = 401; + return; + } - // Keep the request alive until the connection is closed or aborted - try - { - await Task.Delay(Timeout.InfiniteTimeSpan, context.RequestAborted); - } - catch (OperationCanceledException) when (context.RequestAborted.IsCancellationRequested) - { - // Expected when the client disconnects or the request is aborted - } + var webSocket = await context.WebSockets.AcceptWebSocketAsync(subProtocol); - _logger.LogDebug("WebSocket client disconnected"); - } + logger.LogDebug("WebSocket client connected"); - public override Task WaitForConnectionAsync(CancellationToken cancellationToken) => - _clientConnectedSource.Task.WaitAsync(cancellationToken); + _clientSocket = webSocket; + ClientConnectedSource.TrySetResult(webSocket); - public override async ValueTask WriteAsync(byte type, Func? writePayload, CancellationToken cancellationToken) - { - if (_clientSocket == null || _clientSocket.State != WebSocketState.Open) - { - throw new InvalidOperationException("No active WebSocket connection from the client."); + // Keep the request alive until the connection is closed or aborted + try + { + await Task.Delay(Timeout.InfiniteTimeSpan, context.RequestAborted); + } + catch (OperationCanceledException) when (context.RequestAborted.IsCancellationRequested) + { + // Expected when the client disconnects or the request is aborted + } + + logger.LogDebug("WebSocket client disconnected"); } - // Serialize the complete message to a reusable buffer, then send as a single WebSocket message - _sendBuffer ??= new MemoryStream(); - _sendBuffer.SetLength(0); + public async ValueTask WriteAsync(byte type, Func? writePayload, CancellationToken cancellationToken) + { + if (_clientSocket == null || _clientSocket.State != WebSocketState.Open) + { + throw new InvalidOperationException("No active WebSocket connection from the client."); + } - await _sendBuffer.WriteAsync(type, cancellationToken); + // Serialize the complete message to a reusable buffer, then send as a single WebSocket message + _sendBuffer ??= new MemoryStream(); + _sendBuffer.SetLength(0); - if (writePayload != null) - { - await writePayload(_sendBuffer, cancellationToken); - } + await _sendBuffer.WriteAsync(type, cancellationToken); - await _clientSocket.SendAsync( - new ArraySegment(_sendBuffer.GetBuffer(), 0, (int)_sendBuffer.Length), - WebSocketMessageType.Binary, - endOfMessage: true, - cancellationToken); - } + if (writePayload != null) + { + await writePayload(_sendBuffer, cancellationToken); + } - public override async ValueTask ReadAsync(CancellationToken cancellationToken) - { - if (_clientSocket == null || _clientSocket.State != WebSocketState.Open) - { - return null; + await _clientSocket.SendAsync( + new ArraySegment(_sendBuffer.GetBuffer(), 0, (int)_sendBuffer.Length), + WebSocketMessageType.Binary, + endOfMessage: true, + cancellationToken); } - // Receive a complete WebSocket message - var buffer = ArrayPool.Shared.Rent(4096); - try + public async ValueTask ReadAsync(CancellationToken cancellationToken) { - var stream = new MemoryStream(); - WebSocketReceiveResult result; - do + if (_clientSocket == null || _clientSocket.State != WebSocketState.Open) + { + return null; + } + + // Receive a complete WebSocket message + var buffer = ArrayPool.Shared.Rent(4096); + try { - result = await _clientSocket.ReceiveAsync(new ArraySegment(buffer), cancellationToken); - if (result.MessageType == WebSocketMessageType.Close) + var stream = new MemoryStream(); + WebSocketReceiveResult result; + do { - stream.Dispose(); - return null; + result = await _clientSocket.ReceiveAsync(new ArraySegment(buffer), cancellationToken); + if (result.MessageType == WebSocketMessageType.Close) + { + stream.Dispose(); + return null; + } + stream.Write(buffer, 0, result.Count); } - stream.Write(buffer, 0, result.Count); - } - while (!result.EndOfMessage); + while (!result.EndOfMessage); - stream.Position = 0; + stream.Position = 0; - // Read the response type byte from the message - var type = (ResponseType)await stream.ReadByteAsync(cancellationToken); - return new ClientTransportResponse(type, stream, disposeStream: true); - } - finally - { - ArrayPool.Shared.Return(buffer); + // Read the response type byte from the message + var type = (ResponseType)await stream.ReadByteAsync(cancellationToken); + return new ClientTransportResponse(type, stream, disposeStream: true); + } + finally + { + ArrayPool.Shared.Return(buffer); + } } } - - public override void Dispose() - { - _logger.LogDebug("Disposing agent websocket transport"); - _sendBuffer?.Dispose(); - _clientSocket?.Dispose(); - _sharedSecretProvider.Dispose(); - _server.Dispose(); - } } #endif diff --git a/src/Dotnet.Watch/Watch/AppModels/MobileAppModel.cs b/src/Dotnet.Watch/Watch/AppModels/MobileAppModel.cs index fa3d16509151..198f06f6f20a 100644 --- a/src/Dotnet.Watch/Watch/AppModels/MobileAppModel.cs +++ b/src/Dotnet.Watch/Watch/AppModels/MobileAppModel.cs @@ -20,8 +20,7 @@ public override async ValueTask CreateClientsAsync(ILogger cli if (IsManagedAgentSupported(project, clientLogger)) { var transport = await WebSocketClientTransport.CreateAsync( - context.EnvironmentOptions.AgentWebSocketPort, - context.EnvironmentOptions.AgentWebSocketSecurePort, + context.EnvironmentOptions.AgentWebSocketConfig, clientLogger, cancellationToken); diff --git a/src/Dotnet.Watch/Watch/AppModels/WebApplicationAppModel.cs b/src/Dotnet.Watch/Watch/AppModels/WebApplicationAppModel.cs index 2460d27a79e7..6258919dbdd0 100644 --- a/src/Dotnet.Watch/Watch/AppModels/WebApplicationAppModel.cs +++ b/src/Dotnet.Watch/Watch/AppModels/WebApplicationAppModel.cs @@ -58,8 +58,7 @@ private static string GetMiddlewareAssemblyPath() context.LoggerFactory, middlewareAssemblyPath: GetMiddlewareAssemblyPath(), dotnetPath: context.EnvironmentOptions.MuxerPath, - autoReloadWebSocketHostName: context.EnvironmentOptions.AutoReloadWebSocketHostName, - autoReloadWebSocketPort: context.EnvironmentOptions.AutoReloadWebSocketPort, + webSocketConfig: context.EnvironmentOptions.BrowserWebSocketConfig, suppressTimeouts: context.EnvironmentOptions.TestFlags != TestFlags.None); } diff --git a/src/Dotnet.Watch/Watch/Context/EnvironmentOptions.cs b/src/Dotnet.Watch/Watch/Context/EnvironmentOptions.cs index 016c774130bf..7a69972fac19 100644 --- a/src/Dotnet.Watch/Watch/Context/EnvironmentOptions.cs +++ b/src/Dotnet.Watch/Watch/Context/EnvironmentOptions.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics; +using Microsoft.DotNet.HotReload; using Microsoft.Extensions.Logging; namespace Microsoft.DotNet.Watch @@ -37,11 +38,9 @@ internal sealed record EnvironmentOptions( bool SuppressEmojis = false, bool RestartOnRudeEdit = false, LogLevel? CliLogLevel = null, - string? AutoReloadWebSocketHostName = null, - int? AutoReloadWebSocketPort = null, string? BrowserPath = null, - int AgentWebSocketPort = 0, - int? AgentWebSocketSecurePort = null, + WebSocketConfig BrowserWebSocketConfig = default, + WebSocketConfig AgentWebSocketConfig = default, TestFlags TestFlags = TestFlags.None, string TestOutput = "") { @@ -58,11 +57,9 @@ internal sealed record EnvironmentOptions( SuppressEmojis: EnvironmentVariables.SuppressEmojis, RestartOnRudeEdit: EnvironmentVariables.RestartOnRudeEdit, CliLogLevel: EnvironmentVariables.CliLogLevel, - AutoReloadWebSocketHostName: EnvironmentVariables.AutoReloadWSHostName, - AutoReloadWebSocketPort: EnvironmentVariables.AutoReloadWSPort, BrowserPath: EnvironmentVariables.BrowserPath, - AgentWebSocketPort: EnvironmentVariables.AgentWebSocketPort, - AgentWebSocketSecurePort: EnvironmentVariables.AgentWebSocketSecurePort, + BrowserWebSocketConfig: new(EnvironmentVariables.BrowserWebSocketPort, EnvironmentVariables.BrowserWebSocketSecurePort, EnvironmentVariables.BrowserWebSocketHostName), + AgentWebSocketConfig: new(EnvironmentVariables.AgentWebSocketPort, EnvironmentVariables.AgentWebSocketSecurePort, hostName: null), TestFlags: EnvironmentVariables.TestFlags, TestOutput: EnvironmentVariables.TestOutputDir ); diff --git a/src/Dotnet.Watch/Watch/Context/EnvironmentVariables.cs b/src/Dotnet.Watch/Watch/Context/EnvironmentVariables.cs index d9dde6c02640..ac4dfa5db843 100644 --- a/src/Dotnet.Watch/Watch/Context/EnvironmentVariables.cs +++ b/src/Dotnet.Watch/Watch/Context/EnvironmentVariables.cs @@ -59,8 +59,19 @@ public static LogLevel? CliLogLevel public static TestFlags TestFlags => Environment.GetEnvironmentVariable("__DOTNET_WATCH_TEST_FLAGS") is { } value ? Enum.Parse(value) : TestFlags.None; public static string TestOutputDir => Environment.GetEnvironmentVariable("__DOTNET_WATCH_TEST_OUTPUT_DIR") ?? ""; - public static string? AutoReloadWSHostName => Environment.GetEnvironmentVariable("DOTNET_WATCH_AUTO_RELOAD_WS_HOSTNAME"); - public static int? AutoReloadWSPort => ReadInt("DOTNET_WATCH_AUTO_RELOAD_WS_PORT"); + public static string? BrowserWebSocketHostName => Environment.GetEnvironmentVariable("DOTNET_WATCH_AUTO_RELOAD_WS_HOSTNAME"); + + /// + /// Port used for browser WebSocket communication. Defaults to 0 (auto-assign) if not specified. + /// + public static int BrowserWebSocketPort => ReadInt("DOTNET_WATCH_AUTO_RELOAD_WS_PORT") ?? 0; + + /// + /// Secure (HTTPS/WSS) port used for browser WebSocket communication. Defaults to 0 (auto-assign) if not specified. + /// Only used if TLS is supported and enabled. + /// + public static int BrowserWebSocketSecurePort => ReadInt("DOTNET_WATCH_AUTO_RELOAD_WSS_PORT") ?? 0; + public static string? BrowserPath => Environment.GetEnvironmentVariable("DOTNET_WATCH_BROWSER_PATH"); /// diff --git a/test/dotnet-watch.Tests/Web/KestrelWebSocketServerTests.cs b/test/dotnet-watch.Tests/Web/KestrelWebSocketServerTests.cs new file mode 100644 index 000000000000..dd6993ac75c7 --- /dev/null +++ b/test/dotnet-watch.Tests/Web/KestrelWebSocketServerTests.cs @@ -0,0 +1,21 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.DotNet.HotReload; + +namespace Microsoft.DotNet.Watch.UnitTests; + +public class KestrelWebSocketServerTests +{ + [Theory] + [InlineData("http://contoso.com:10", "ws://contoso.com:10")] + [InlineData("https://contoso.com:10", "wss://contoso.com:10")] + [InlineData("http://127.0.0.10:10", "ws://127.0.0.10:10")] + [InlineData("https://127.0.0.10:10", "wss://127.0.0.10:10")] + [InlineData("http://127.0.0.1:10", "ws://localhost:10")] + [InlineData("https://127.0.0.1:10", "wss://localhost:10")] + public void Urls(string httpUrl, string wsUrl) + { + Assert.Equal(wsUrl, KestrelWebSocketServer.GetWebSocketUrl(httpUrl)); + } +} From 71335fc9c2be297e9f69583ec14b7ca48691fd29 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 27 Feb 2026 12:07:13 +0000 Subject: [PATCH 151/179] Reset files to release/10.0.3xx Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- eng/Version.Details.props | 133 +++++++++---------- eng/Version.Details.xml | 271 +++++++++++++++++++------------------- global.json | 4 +- 3 files changed, 207 insertions(+), 201 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 8911c7f170ab..ba78063ca632 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,68 +6,69 @@ This file should be imported by eng/Versions.props - 10.0.0-preview.26120.103 - 18.3.0-release-26120-103 - 18.3.0-release-26120-103 - 7.3.0-preview.1.12103 - 10.0.200-alpha.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 - 10.0.0-preview.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 - 10.0.0-beta.26120.103 - 10.0.0-beta.26120.103 - 10.0.0-beta.26120.103 - 10.0.0-beta.26120.103 - 10.0.0-beta.26120.103 - 10.0.0-beta.26120.103 - 10.0.0-beta.26120.103 - 10.0.0-beta.26120.103 - 15.2.100-preview2.26120.103 - 5.3.0-2.26120.103 - 5.3.0-2.26120.103 + 10.0.0-preview.26118.105 + 18.3.0-preview-26118-105 + 18.3.0-preview-26118-105 + 7.5.0-rc.11905 + 10.0.300-alpha.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 10.0.0-preview.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 10.0.0-beta.26118.105 + 15.2.300-servicing.26118.105 + 5.5.0-2.26118.105 + 5.5.0-2.26118.105 10.0.0-preview.7.25377.103 - 10.0.0-preview.26120.103 - 18.3.0-release-26120-103 - 10.0.200-alpha.26120.103 - 10.0.200-alpha.26120.103 - 10.0.200-alpha.26120.103 - 10.0.200-alpha.26120.103 - 10.0.200-alpha.26120.103 - 10.0.200-preview.26120.103 - 10.0.200-preview.26120.103 - 10.0.200-preview.26120.103 - 10.0.200-preview.26120.103 - 10.0.200-preview.26120.103 - 10.0.200-preview.26120.103 - 10.0.200-preview.26120.103 - 10.0.200-preview.26120.103 - 10.0.200-preview.26120.103 - 18.3.0-release-26120-103 - 18.3.0-release-26120-103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 - 7.3.0-preview.1.12103 + 10.0.0-preview.26118.105 + 18.3.0-release-26118-105 + 10.0.300-alpha.26118.105 + 10.0.300-alpha.26118.105 + 10.0.300-alpha.26118.105 + 10.0.300-alpha.26118.105 + 10.0.300-alpha.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 10.0.300-preview.26118.105 + 18.3.0-release-26118-105 + 18.3.0-release-26118-105 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 + 7.5.0-rc.11905 10.0.2-servicing.25612.105 10.0.2-servicing.25612.105 @@ -97,9 +98,9 @@ This file should be imported by eng/Versions.props 2.2.2 10.0.2 10.0.2 - 10.0.0-rtm.25523.111 - 10.0.0-rtm.25523.111 + 10.0.2-servicing.25612.105 10.0.2 + 10.0.2 10.0.2 10.0.2 10.0.2 @@ -144,8 +145,8 @@ This file should be imported by eng/Versions.props 2.1.0 - 2.2.0-preview.26125.2 - 4.2.0-preview.26125.2 + 2.1.0-preview.25571.1 + 4.1.0-preview.25571.1 @@ -242,8 +243,8 @@ This file should be imported by eng/Versions.props $(MicrosoftDotNetWebItemTemplates100PackageVersion) $(MicrosoftDotNetWebProjectTemplates100PackageVersion) $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) - $(MicrosoftDotnetWpfProjectTemplatesPackageVersion) $(MicrosoftExtensionsConfigurationIniPackageVersion) + $(MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion) $(MicrosoftExtensionsDependencyModelPackageVersion) $(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion) $(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 33e1c1f2c812..91b93b8c46e6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,42 +1,42 @@ - + - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -72,138 +72,142 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + + https://github.com/dotnet/roslyn + 46a48b8c1dfce7c35da115308bedd6a5954fd78a + + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -370,25 +374,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -405,29 +409,29 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 @@ -440,6 +444,11 @@ 44525024595742ebe09023abe709df51de65009b + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet + fad253f51b461736dfd3cd9c15977bb7493becef + + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b @@ -514,63 +523,59 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - b0f34d51fccc69fd334253924abd8d6853fad7aa - - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - b0f34d51fccc69fd334253924abd8d6853fad7aa + 44525024595742ebe09023abe709df51de65009b - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 - + https://github.com/dotnet/dotnet - ee15891825b40d11a37b0d9f4357cfdc9ee7b884 + d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet 44525024595742ebe09023abe709df51de65009b - + https://github.com/microsoft/testfx - 642bcb895b95a111b5cdb235665a7c43496f85ef + 43e592148ac1c7916908477bdffcf2a345affa6d - + https://github.com/microsoft/testfx - 642bcb895b95a111b5cdb235665a7c43496f85ef + 43e592148ac1c7916908477bdffcf2a345affa6d https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet diff --git a/global.json b/global.json index f710c04c94f9..b1ab2c7674d8 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26120.103", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26120.103", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26118.105", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26118.105", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440" From a583f95c50123fcdef1caa78026a1fdbe522e954 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 27 Feb 2026 12:45:20 -0600 Subject: [PATCH 152/179] Fix tool install --source option not being respected for global and local tools (#52787) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com> --- .../ToolInstallGlobalOrToolPathCommand.cs | 4 +- .../Tool/Install/ToolInstallLocalCommand.cs | 1 + .../Tool/Install/ToolInstallLocalInstaller.cs | 2 + .../NuGetPackageDownloader.cs | 38 +++++++++++++++++++ 4 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/Cli/dotnet/Commands/Tool/Install/ToolInstallGlobalOrToolPathCommand.cs b/src/Cli/dotnet/Commands/Tool/Install/ToolInstallGlobalOrToolPathCommand.cs index 2dc68913c50f..c4eb054318ee 100644 --- a/src/Cli/dotnet/Commands/Tool/Install/ToolInstallGlobalOrToolPathCommand.cs +++ b/src/Cli/dotnet/Commands/Tool/Install/ToolInstallGlobalOrToolPathCommand.cs @@ -97,8 +97,7 @@ public ToolInstallGlobalOrToolPathCommand( var tempDir = new DirectoryPath(TemporaryDirectory.CreateSubdirectory()); var configOption = parseResult.GetValue(Definition.ConfigOption); - var sourceOption = parseResult.GetValue(Definition.AddSourceOption); - var packageSourceLocation = new PackageSourceLocation(string.IsNullOrEmpty(configOption) ? null : new FilePath(configOption), additionalSourceFeeds: sourceOption, basePath: _currentWorkingDirectory); + var packageSourceLocation = new PackageSourceLocation(string.IsNullOrEmpty(configOption) ? null : new FilePath(configOption), sourceFeedOverrides: _source, additionalSourceFeeds: _addSource, basePath: _currentWorkingDirectory); restoreActionConfig = Definition.RestoreOptions.ToRestoreActionConfig(parseResult); @@ -109,6 +108,7 @@ public ToolInstallGlobalOrToolPathCommand( { var packageSourceLocationForValidation = new PackageSourceLocation( nugetConfig: GetConfigFile(), + sourceFeedOverrides: _source, additionalSourceFeeds: _addSource, basePath: _currentWorkingDirectory); diff --git a/src/Cli/dotnet/Commands/Tool/Install/ToolInstallLocalCommand.cs b/src/Cli/dotnet/Commands/Tool/Install/ToolInstallLocalCommand.cs index 5ee05b4fa10d..03de7b8a4b35 100644 --- a/src/Cli/dotnet/Commands/Tool/Install/ToolInstallLocalCommand.cs +++ b/src/Cli/dotnet/Commands/Tool/Install/ToolInstallLocalCommand.cs @@ -68,6 +68,7 @@ public ToolInstallLocalCommand( _toolLocalPackageInstaller = new ToolInstallLocalInstaller( configFilePath: parseResult.GetValue(Definition.ConfigOption), sources: parseResult.GetValue(Definition.AddSourceOption), + sourceFeedOverrides: parseResult.GetValue(Definition.SourceOption), verbosity: parseResult.GetValue(Definition.VerbosityOption), toolPackageDownloader, runtimeJsonPathForTests, diff --git a/src/Cli/dotnet/Commands/Tool/Install/ToolInstallLocalInstaller.cs b/src/Cli/dotnet/Commands/Tool/Install/ToolInstallLocalInstaller.cs index ec464f2ee64e..a29693931cae 100644 --- a/src/Cli/dotnet/Commands/Tool/Install/ToolInstallLocalInstaller.cs +++ b/src/Cli/dotnet/Commands/Tool/Install/ToolInstallLocalInstaller.cs @@ -12,6 +12,7 @@ namespace Microsoft.DotNet.Cli.Commands.Tool.Install; internal sealed class ToolInstallLocalInstaller( string? configFilePath, string[]? sources, + string[]? sourceFeedOverrides, VerbosityOptions verbosity, IToolPackageDownloader? toolPackageDownloader = null, string? runtimeJsonPathForTests = null, @@ -49,6 +50,7 @@ public IToolPackage Install(FilePath manifestFile, PackageId packageId, VersionR IToolPackage toolDownloadedPackage = _toolPackageDownloader.InstallPackage( new PackageLocation( nugetConfig: configFile, + sourceFeedOverrides: sourceFeedOverrides, additionalFeeds: sources, rootConfigDirectory: rootConfigDirectory), packageId, diff --git a/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs b/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs index cdba7ea6f87e..7768f6f5d68b 100644 --- a/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs +++ b/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs @@ -472,6 +472,44 @@ public IEnumerable LoadNuGetSources(PackageId packageId, PackageS LoadOverrideSources(packageSourceLocation) : LoadDefaultSources(packageId, packageSourceLocation, packageSourceMapping); + // When using override sources, additional sources should still be appended + if ((packageSourceLocation?.SourceFeedOverrides.Any() ?? false) && + (packageSourceLocation?.AdditionalSourceFeed?.Any() ?? false)) + { + var sourceList = sources.ToList(); + var existingUris = new HashSet(sourceList.Where(s => s.SourceUri != null).Select(s => s.SourceUri)); + + foreach (string additionalSource in packageSourceLocation.AdditionalSourceFeed) + { + if (string.IsNullOrWhiteSpace(additionalSource)) + { + continue; + } + + PackageSource newSource = new(additionalSource); + if (newSource.TrySourceAsUri == null) + { + _verboseLogger.LogWarning(string.Format( + CliStrings.FailedToLoadNuGetSource, + additionalSource)); + continue; + } + + // Skip if already present (matches existing pattern in LoadDefaultSources) + if (newSource.SourceUri != null && existingUris.Contains(newSource.SourceUri)) + { + continue; + } + + sourceList.Add(newSource); + if (newSource.SourceUri != null) + { + existingUris.Add(newSource.SourceUri); + } + } + sources = sourceList; + } + if (!sources.Any()) { throw new NuGetPackageInstallerException("No NuGet sources are defined or enabled"); From 3dbb55d571b69492e4367020d65d085bc369f83f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 10 Feb 2026 21:51:42 +0000 Subject: [PATCH 153/179] Enable auto-approval for tool exec in non-interactive mode Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com> --- .../Common/CommonOptions.cs | 2 +- .../Tool/Execute/ToolExecuteCommand.cs | 21 +++++++------------ 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/Common/CommonOptions.cs b/src/Cli/Microsoft.DotNet.Cli.Definitions/Common/CommonOptions.cs index 3c9fd451dd28..1b29143cd8f1 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/Common/CommonOptions.cs +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/Common/CommonOptions.cs @@ -234,7 +234,7 @@ public static Argument DefaultToCurrentDirectory(this Argument a }.ForwardAs("-restore"); private static bool IsCIEnvironmentOrRedirected() => - new Telemetry.CIEnvironmentDetectorForTelemetry().IsCIEnvironment() || Console.IsOutputRedirected; + new Telemetry.CIEnvironmentDetectorForTelemetry().IsCIEnvironment() || Console.IsOutputRedirected || Console.IsInputRedirected; public const string InteractiveOptionName = "--interactive"; diff --git a/src/Cli/dotnet/Commands/Tool/Execute/ToolExecuteCommand.cs b/src/Cli/dotnet/Commands/Tool/Execute/ToolExecuteCommand.cs index f33175940357..21b677b2420b 100644 --- a/src/Cli/dotnet/Commands/Tool/Execute/ToolExecuteCommand.cs +++ b/src/Cli/dotnet/Commands/Tool/Execute/ToolExecuteCommand.cs @@ -104,18 +104,13 @@ public override int Execute() // but we don't support this for local or one-shot tools. if (!_toolPackageDownloader.TryGetDownloadedTool(packageId, bestVersion, targetFramework: null, verbosity: _verbosity, out var toolPackage)) { - if (!UserAgreedToRunFromSource(packageId, bestVersion, packageSource)) + var userAgreed = UserAgreedToRunFromSource(packageId, bestVersion, packageSource); + + // In non-interactive mode (userAgreed == null), auto-approve the tool installation + if (userAgreed == false) { - if (_interactive) - { - Reporter.Error.WriteLine(CliCommandStrings.ToolDownloadCanceled.Red().Bold()); - return ERROR_CANCELLED; - } - else - { - Reporter.Error.WriteLine(CliCommandStrings.ToolDownloadNeedsConfirmation.Red().Bold()); - return 1; - } + Reporter.Error.WriteLine(CliCommandStrings.ToolDownloadCanceled.Red().Bold()); + return ERROR_CANCELLED; } // We've already determined which source we will use and displayed that in a confirmation message to the user. @@ -142,7 +137,7 @@ public override int Execute() return result.ExitCode; } - private bool UserAgreedToRunFromSource(PackageId packageId, NuGetVersion version, PackageSource source) + private bool? UserAgreedToRunFromSource(PackageId packageId, NuGetVersion version, PackageSource source) { string promptMessage = string.Format(CliCommandStrings.ToolDownloadConfirmationPrompt, packageId, version.ToString(), source.Source); @@ -150,6 +145,6 @@ private bool UserAgreedToRunFromSource(PackageId packageId, NuGetVersion version promptMessage, yesOption: _parseResult.GetValue(Definition.YesOption), interactiveOption: _parseResult.GetValue(Definition.RestoreOptions.InteractiveOption), - acceptEscapeForFalse: true) == true; + acceptEscapeForFalse: true); } } From 1a1df30f8f52988ebc84f44a10274f613a10c94c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 10 Feb 2026 22:20:12 +0000 Subject: [PATCH 154/179] Remove debug code and finalize non-interactive auto-approval logic Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com> --- src/Cli/dotnet/InteractiveConsole.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Cli/dotnet/InteractiveConsole.cs b/src/Cli/dotnet/InteractiveConsole.cs index 7b00d0b1fb0b..89f92dbb9adb 100644 --- a/src/Cli/dotnet/InteractiveConsole.cs +++ b/src/Cli/dotnet/InteractiveConsole.cs @@ -25,7 +25,8 @@ public static class InteractiveConsole return true; } - if (!interactiveOption) + // Auto-approve in non-interactive mode (stdin redirected, CI environment, or explicit --no-interactive) + if (!interactiveOption || Console.IsInputRedirected) { return null; } From f0b2cd4e63cfccaa4673bea3f9298042d6e3c58d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 10 Feb 2026 22:21:02 +0000 Subject: [PATCH 155/179] Address code review feedback: add documentation and clarify tri-state logic Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com> --- .../Commands/Tool/Execute/ToolExecuteCommand.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Cli/dotnet/Commands/Tool/Execute/ToolExecuteCommand.cs b/src/Cli/dotnet/Commands/Tool/Execute/ToolExecuteCommand.cs index 21b677b2420b..e690b39a6176 100644 --- a/src/Cli/dotnet/Commands/Tool/Execute/ToolExecuteCommand.cs +++ b/src/Cli/dotnet/Commands/Tool/Execute/ToolExecuteCommand.cs @@ -106,7 +106,9 @@ public override int Execute() { var userAgreed = UserAgreedToRunFromSource(packageId, bestVersion, packageSource); - // In non-interactive mode (userAgreed == null), auto-approve the tool installation + // userAgreed can be: true (explicit approval), false (explicit rejection), or null (auto-approve in non-interactive mode) + // We only show an error and exit when the user explicitly rejects (false) + // When null (non-interactive), we fall through and proceed with installation if (userAgreed == false) { Reporter.Error.WriteLine(CliCommandStrings.ToolDownloadCanceled.Red().Bold()); @@ -137,6 +139,15 @@ public override int Execute() return result.ExitCode; } + /// + /// Prompts the user to confirm downloading and running a tool from the specified source. + /// + /// + /// if the user explicitly approved the download (via --yes flag or interactive prompt), + /// if the user explicitly rejected the download (via interactive prompt), + /// if running in non-interactive mode (stdin redirected, CI environment, or --interactive=false), + /// indicating automatic approval should proceed. + /// private bool? UserAgreedToRunFromSource(PackageId packageId, NuGetVersion version, PackageSource source) { string promptMessage = string.Format(CliCommandStrings.ToolDownloadConfirmationPrompt, packageId, version.ToString(), source.Source); From 489ba2d567122cae5d72ce03b22172b789642cf5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Feb 2026 18:03:20 +0000 Subject: [PATCH 156/179] Remove approval prompt - running dnx is implicit approval Co-authored-by: baronfel <573979+baronfel@users.noreply.github.com> --- .../Common/CommonOptions.cs | 2 +- .../Tool/Execute/ToolExecuteCommand.cs | 37 +------------------ src/Cli/dotnet/InteractiveConsole.cs | 3 +- 3 files changed, 3 insertions(+), 39 deletions(-) diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/Common/CommonOptions.cs b/src/Cli/Microsoft.DotNet.Cli.Definitions/Common/CommonOptions.cs index 1b29143cd8f1..3c9fd451dd28 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/Common/CommonOptions.cs +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/Common/CommonOptions.cs @@ -234,7 +234,7 @@ public static Argument DefaultToCurrentDirectory(this Argument a }.ForwardAs("-restore"); private static bool IsCIEnvironmentOrRedirected() => - new Telemetry.CIEnvironmentDetectorForTelemetry().IsCIEnvironment() || Console.IsOutputRedirected || Console.IsInputRedirected; + new Telemetry.CIEnvironmentDetectorForTelemetry().IsCIEnvironment() || Console.IsOutputRedirected; public const string InteractiveOptionName = "--interactive"; diff --git a/src/Cli/dotnet/Commands/Tool/Execute/ToolExecuteCommand.cs b/src/Cli/dotnet/Commands/Tool/Execute/ToolExecuteCommand.cs index e690b39a6176..77429f17ed18 100644 --- a/src/Cli/dotnet/Commands/Tool/Execute/ToolExecuteCommand.cs +++ b/src/Cli/dotnet/Commands/Tool/Execute/ToolExecuteCommand.cs @@ -21,15 +21,12 @@ namespace Microsoft.DotNet.Cli.Commands.Tool.Execute; internal sealed class ToolExecuteCommand : CommandBase { - const int ERROR_CANCELLED = 1223; // Windows error code for "Operation canceled by user" - private readonly PackageIdentityWithRange _packageToolIdentityArgument; private readonly IEnumerable _forwardArguments; private readonly bool _allowRollForward; private readonly string? _configFile; private readonly string[] _sources; private readonly string[] _addSource; - private readonly bool _interactive; private readonly VerbosityOptions _verbosity; private readonly IToolPackageDownloader _toolPackageDownloader = ToolPackageFactory.CreateToolPackageStoresAndDownloader().downloader; @@ -46,7 +43,6 @@ public ToolExecuteCommand(ParseResult result, ToolManifestFinder? toolManifestFi _configFile = result.GetValue(Definition.ConfigOption); _sources = result.GetValue(Definition.SourceOption) ?? []; _addSource = result.GetValue(Definition.AddSourceOption) ?? []; - _interactive = result.GetValue(Definition.RestoreOptions.InteractiveOption); _verbosity = result.GetValue(Definition.VerbosityOption); _restoreActionConfig = Definition.RestoreOptions.ToRestoreActionConfig(result); _toolManifestFinder = toolManifestFinder ?? new ToolManifestFinder(new DirectoryPath(currentWorkingDirectory ?? Directory.GetCurrentDirectory())); @@ -104,18 +100,7 @@ public override int Execute() // but we don't support this for local or one-shot tools. if (!_toolPackageDownloader.TryGetDownloadedTool(packageId, bestVersion, targetFramework: null, verbosity: _verbosity, out var toolPackage)) { - var userAgreed = UserAgreedToRunFromSource(packageId, bestVersion, packageSource); - - // userAgreed can be: true (explicit approval), false (explicit rejection), or null (auto-approve in non-interactive mode) - // We only show an error and exit when the user explicitly rejects (false) - // When null (non-interactive), we fall through and proceed with installation - if (userAgreed == false) - { - Reporter.Error.WriteLine(CliCommandStrings.ToolDownloadCanceled.Red().Bold()); - return ERROR_CANCELLED; - } - - // We've already determined which source we will use and displayed that in a confirmation message to the user. + // We've already determined which source we will use and will use it to download the package. // So set the package location here to override the source feeds to just the source we already resolved to. // This does mean that we won't work with feeds that have a primary package but where the RID-specific packages are on // other feeds, but this is probably OK. @@ -138,24 +123,4 @@ public override int Execute() var result = command.Execute(); return result.ExitCode; } - - /// - /// Prompts the user to confirm downloading and running a tool from the specified source. - /// - /// - /// if the user explicitly approved the download (via --yes flag or interactive prompt), - /// if the user explicitly rejected the download (via interactive prompt), - /// if running in non-interactive mode (stdin redirected, CI environment, or --interactive=false), - /// indicating automatic approval should proceed. - /// - private bool? UserAgreedToRunFromSource(PackageId packageId, NuGetVersion version, PackageSource source) - { - string promptMessage = string.Format(CliCommandStrings.ToolDownloadConfirmationPrompt, packageId, version.ToString(), source.Source); - - return InteractiveConsole.Confirm( - promptMessage, - yesOption: _parseResult.GetValue(Definition.YesOption), - interactiveOption: _parseResult.GetValue(Definition.RestoreOptions.InteractiveOption), - acceptEscapeForFalse: true); - } } diff --git a/src/Cli/dotnet/InteractiveConsole.cs b/src/Cli/dotnet/InteractiveConsole.cs index 89f92dbb9adb..7b00d0b1fb0b 100644 --- a/src/Cli/dotnet/InteractiveConsole.cs +++ b/src/Cli/dotnet/InteractiveConsole.cs @@ -25,8 +25,7 @@ public static class InteractiveConsole return true; } - // Auto-approve in non-interactive mode (stdin redirected, CI environment, or explicit --no-interactive) - if (!interactiveOption || Console.IsInputRedirected) + if (!interactiveOption) { return null; } From a73677de700bc524954d6232daf586ff217bcaec Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 13:21:04 +0000 Subject: [PATCH 157/179] Remove unused ToolDownload resource strings and update xlf files Co-authored-by: dsplaisted <145043+dsplaisted@users.noreply.github.com> --- .../dotnet/Commands/CliCommandStrings.resx | 11 --------- .../Commands/xlf/CliCommandStrings.cs.xlf | 23 +++---------------- .../Commands/xlf/CliCommandStrings.de.xlf | 23 +++---------------- .../Commands/xlf/CliCommandStrings.es.xlf | 23 +++---------------- .../Commands/xlf/CliCommandStrings.fr.xlf | 23 +++---------------- .../Commands/xlf/CliCommandStrings.it.xlf | 23 +++---------------- .../Commands/xlf/CliCommandStrings.ja.xlf | 23 +++---------------- .../Commands/xlf/CliCommandStrings.ko.xlf | 23 +++---------------- .../Commands/xlf/CliCommandStrings.pl.xlf | 23 +++---------------- .../Commands/xlf/CliCommandStrings.pt-BR.xlf | 23 +++---------------- .../Commands/xlf/CliCommandStrings.ru.xlf | 23 +++---------------- .../Commands/xlf/CliCommandStrings.tr.xlf | 23 +++---------------- .../xlf/CliCommandStrings.zh-Hans.xlf | 23 +++---------------- .../xlf/CliCommandStrings.zh-Hant.xlf | 23 +++---------------- 14 files changed, 39 insertions(+), 271 deletions(-) diff --git a/src/Cli/dotnet/Commands/CliCommandStrings.resx b/src/Cli/dotnet/Commands/CliCommandStrings.resx index 01c897cf2d9d..3409d4bbf61b 100644 --- a/src/Cli/dotnet/Commands/CliCommandStrings.resx +++ b/src/Cli/dotnet/Commands/CliCommandStrings.resx @@ -1473,10 +1473,6 @@ and the corresponding package Ids for installed tools using the command Zero tests ran - - Tool package {0}@{1} will be downloaded from source {2}. -Proceed? - y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. @@ -1488,13 +1484,6 @@ Proceed? Please type '{0}' for yes or '{1}' for no. - - Tool package download canceled - - - Tool package download needs confirmation. Run in interactive mode or use the "--yes" command-line option to confirm. - {Locked="--yes"} - Specifying a solution for 'dotnet test' should be via '--solution'. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf index 87039c7a22b0..89e7ec564896 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf @@ -315,17 +315,17 @@ Další informace najdete na https://aka.ms/dotnet-test/mtp. Please type '{0}' for yes or '{1}' for no. - Zadejte prosím {0} pro yes (ano) nebo {1} pro no (ne). + Please type '{0}' for yes or '{1}' for no. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. @@ -1776,23 +1776,6 @@ Cílem projektu je více architektur. Pomocí parametru {0} určete, která arch Umožňuje instalaci nebo správu nástrojů, které rozšiřují prostředí .NET. - - Tool package download canceled - Stahování balíčku nástrojů bylo zrušeno. - - - - Tool package {0}@{1} will be downloaded from source {2}. -Proceed? - Balíček nástroje {0}@{1} bude stažen ze zdroje {2}. -Chcete pokračovat? - - - - Tool package download needs confirmation. Run in interactive mode or use the "--yes" command-line option to confirm. - Stažení balíčku nástroje vyžaduje potvrzení. Spusťte v interaktivním režimu nebo potvrďte akci pomocí možnosti příkazového řádku --yes. - {Locked="--yes"} - You can invoke the tool using the following command: {0} Tool '{1}' (version '{2}') was successfully installed. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf index 6495eb8cbb7f..0e372c5570dc 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf @@ -315,17 +315,17 @@ Weitere Informationen finden Sie unter https://aka.ms/dotnet-test/mtp. Please type '{0}' for yes or '{1}' for no. - Geben Sie "{0}" für Ja oder "{1}" für Nein ein. + Please type '{0}' for yes or '{1}' for no. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. @@ -1776,23 +1776,6 @@ Ihr Projekt verwendet mehrere Zielframeworks. Geben Sie über "{0}" an, welches Hiermit werden Tools zum Erweitern der .NET-Benutzeroberfläche installiert oder verwaltet. - - Tool package download canceled - Download des Toolpakets abgebrochen - - - - Tool package {0}@{1} will be downloaded from source {2}. -Proceed? - Das Toolpaket {0}@{1} wird aus der Quelle "{2}" heruntergeladen. -Vorgang fortsetzen? - - - - Tool package download needs confirmation. Run in interactive mode or use the "--yes" command-line option to confirm. - Der Download des Toolpakets muss bestätigt werden. Führen Sie den Vorgang im interaktiven Modus aus oder verwenden Sie zur Bestätigung die Befehlszeilenoption "--yes". - {Locked="--yes"} - You can invoke the tool using the following command: {0} Tool '{1}' (version '{2}') was successfully installed. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf index 1fda3c644d0d..0ad5ba10d9af 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf @@ -315,17 +315,17 @@ Consulte https://aka.ms/dotnet-test/mtp para obtener más información. Please type '{0}' for yes or '{1}' for no. - Escriba "{0}" para sí o "{1}" para no. + Please type '{0}' for yes or '{1}' for no. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - s + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. @@ -1776,23 +1776,6 @@ Su proyecto tiene como destino varias plataformas. Especifique la que quiere usa Instala o administra herramientas que mejoran la experiencia de .NET. - - Tool package download canceled - Descarga del paquete de herramientas cancelada - - - - Tool package {0}@{1} will be downloaded from source {2}. -Proceed? - El paquete de herramientas {0}@{1} se descargará desde el origen {2}. -¿Quiere continuar? - - - - Tool package download needs confirmation. Run in interactive mode or use the "--yes" command-line option to confirm. - La descarga del paquete de herramientas necesita confirmación. Ejecute en modo interactivo o use la opción de línea de comandos "--yes" para confirmar. - {Locked="--yes"} - You can invoke the tool using the following command: {0} Tool '{1}' (version '{2}') was successfully installed. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf index a0c4864e27b7..e4ea987f4530 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf @@ -315,17 +315,17 @@ Pour découvrir plus d’informations, consultez https://aka.ms/dotnet-test/mtp. Please type '{0}' for yes or '{1}' for no. - Tapez « {0} » pour Oui ou « {1} » pour non. + Please type '{0}' for yes or '{1}' for no. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - o + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. @@ -1776,23 +1776,6 @@ Votre projet cible plusieurs frameworks. Spécifiez le framework à exécuter à Installez ou gérez les outils qui étendent l'expérience .NET. - - Tool package download canceled - Téléchargement du package d'outils annulé - - - - Tool package {0}@{1} will be downloaded from source {2}. -Proceed? - Le package d’outils {0}@{1} sera téléchargé à partir de la source {2}. -Voulez-vous continuer ? - - - - Tool package download needs confirmation. Run in interactive mode or use the "--yes" command-line option to confirm. - Le téléchargement du package d’outils doit être confirmé. Exécutez en mode interactif ou utilisez l’option de ligne de commande « --yes » pour confirmer. - {Locked="--yes"} - You can invoke the tool using the following command: {0} Tool '{1}' (version '{2}') was successfully installed. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf index 93b0d141502e..ecc9b18ae221 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf @@ -315,17 +315,17 @@ Per altre informazioni, vedere https://aka.ms/dotnet-test/mtp. Please type '{0}' for yes or '{1}' for no. - Digita '{0}' per sì o '{1}' per no. + Please type '{0}' for yes or '{1}' for no. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. @@ -1776,23 +1776,6 @@ Il progetto è destinato a più framework. Specificare il framework da eseguire Consente di installare o gestire strumenti che estendono l'esperienza .NET. - - Tool package download canceled - Download del pacchetto dello strumento annullato - - - - Tool package {0}@{1} will be downloaded from source {2}. -Proceed? - Il pacchetto dello strumento {0}@{1} verrà scaricato da {2}. -Procedere? - - - - Tool package download needs confirmation. Run in interactive mode or use the "--yes" command-line option to confirm. - Il download del pacchetto dello strumento richiede conferma. Esegui in modalità interattiva o usa l'opzione della riga di comando "--yes" per confermare. - {Locked="--yes"} - You can invoke the tool using the following command: {0} Tool '{1}' (version '{2}') was successfully installed. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf index 6f381e8dc374..19623104b5eb 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf @@ -315,17 +315,17 @@ See https://aka.ms/dotnet-test/mtp for more information. Please type '{0}' for yes or '{1}' for no. - はいの場合は「{0}」、いいえの場合は「{1}」と入力してください。 + Please type '{0}' for yes or '{1}' for no. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. @@ -1776,23 +1776,6 @@ Your project targets multiple frameworks. Specify which framework to run using ' .NET のエクスペリエンスを向上するツールをインストールまたは管理します。 - - Tool package download canceled - ツール パッケージのダウンロードがキャンセルされました - - - - Tool package {0}@{1} will be downloaded from source {2}. -Proceed? - ツール パッケージ {0}@{1} がソース {2} からダウンロードされます。 -続行しますか? - - - - Tool package download needs confirmation. Run in interactive mode or use the "--yes" command-line option to confirm. - ツール パッケージのダウンロードには確認が必要です。対話モードで実行するか、"--yes" コマンド ライン オプションを使用して確認してください。 - {Locked="--yes"} - You can invoke the tool using the following command: {0} Tool '{1}' (version '{2}') was successfully installed. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf index 3c166af15408..0d2098834fe9 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf @@ -315,17 +315,17 @@ See https://aka.ms/dotnet-test/mtp for more information. Please type '{0}' for yes or '{1}' for no. - '{0}'을(를) 예로 입력하거나 '{1}'을(를) 아니요로 입력하세요. + Please type '{0}' for yes or '{1}' for no. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. @@ -1776,23 +1776,6 @@ Your project targets multiple frameworks. Specify which framework to run using ' .NET 환경을 확장하는 도구를 설치하거나 관리합니다. - - Tool package download canceled - 도구 패키지 다운로드가 취소됨 - - - - Tool package {0}@{1} will be downloaded from source {2}. -Proceed? - 도구 패키지 {0}@{1}이(가) 원본 {2}에서 다운로드됩니다. -계속하시겠습니까? - - - - Tool package download needs confirmation. Run in interactive mode or use the "--yes" command-line option to confirm. - 도구 패키지 다운로드를 확인해야 합니다. 대화형 모드에서 실행하거나 "--yes" 명령줄 옵션을 사용하여 확인하세요. - {Locked="--yes"} - You can invoke the tool using the following command: {0} Tool '{1}' (version '{2}') was successfully installed. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf index fa5e1b2e9879..7ee42fdf3b9a 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf @@ -315,17 +315,17 @@ Aby uzyskać więcej informacji, zobacz https://aka.ms/dotnet-test/mtp. Please type '{0}' for yes or '{1}' for no. - Wpisz „{0}”, aby dla tak lub „{1}” dla nie. + Please type '{0}' for yes or '{1}' for no. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - t + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. @@ -1776,23 +1776,6 @@ Projekt ma wiele platform docelowych. Określ platformę do uruchomienia przy u Zainstaluj lub zarządzaj narzędziami, które rozszerzają środowisko .NET. - - Tool package download canceled - Anulowano pobieranie pakietu narzędzi - - - - Tool package {0}@{1} will be downloaded from source {2}. -Proceed? - Pakiet narzędzi {0}@{1} zostanie pobrany ze źródła {2}. -Kontynuować? - - - - Tool package download needs confirmation. Run in interactive mode or use the "--yes" command-line option to confirm. - Pobieranie pakietu narzędzi wymaga potwierdzenia. Uruchom w trybie interakcyjnym lub użyj opcji wiersza polecenia „--yes”, aby potwierdzić. - {Locked="--yes"} - You can invoke the tool using the following command: {0} Tool '{1}' (version '{2}') was successfully installed. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf index cc2960778369..ec9386ac8ce2 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf @@ -315,17 +315,17 @@ Consulte https://aka.ms/dotnet-test/mtp para obter mais informações. Please type '{0}' for yes or '{1}' for no. - Digite "{0}" para sim ou "{1}" para não. + Please type '{0}' for yes or '{1}' for no. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. @@ -1776,23 +1776,6 @@ Ele tem diversas estruturas como destino. Especifique que estrutura executar usa Instalar ou gerenciar ferramentas que ampliam a experiência do .NET. - - Tool package download canceled - Download do pacote de ferramentas cancelado - - - - Tool package {0}@{1} will be downloaded from source {2}. -Proceed? - O pacote de ferramentas {0}@{1} será baixado da fonte {2}. -Continuar? - - - - Tool package download needs confirmation. Run in interactive mode or use the "--yes" command-line option to confirm. - O download do pacote de ferramentas precisa de confirmação. Execute no modo interativo ou use a opção de linha de comando "--yes" para confirmar. - {Locked="--yes"} - You can invoke the tool using the following command: {0} Tool '{1}' (version '{2}') was successfully installed. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf index 145ca1df82e2..76838f7e3cb7 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf @@ -315,17 +315,17 @@ See https://aka.ms/dotnet-test/mtp for more information. Please type '{0}' for yes or '{1}' for no. - Введите "{0}", чтобы указать "да", и "{1}", чтобы указать "нет". + Please type '{0}' for yes or '{1}' for no. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. @@ -1776,23 +1776,6 @@ Your project targets multiple frameworks. Specify which framework to run using ' Установка и настройка инструментов, расширяющих возможности .NET. - - Tool package download canceled - Скачивание пакета инструмента отменено - - - - Tool package {0}@{1} will be downloaded from source {2}. -Proceed? - Пакет инструмента {0}@{1} будет скачан из источника {2}. -Продолжить? - - - - Tool package download needs confirmation. Run in interactive mode or use the "--yes" command-line option to confirm. - Для скачивания пакета инструмента требуется подтверждение. Запустите в интерактивном режиме или используйте параметр командной строки "--yes" для подтверждения. - {Locked="--yes"} - You can invoke the tool using the following command: {0} Tool '{1}' (version '{2}') was successfully installed. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf index 43069343d2b7..a3cd8fdf1979 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf @@ -315,17 +315,17 @@ Daha fazla bilgi için https://aka.ms/dotnet-test/mtp adresine bakın. Please type '{0}' for yes or '{1}' for no. - Lütfen evet için '{0}' veya hayır için '{1}' yazın. + Please type '{0}' for yes or '{1}' for no. n - h + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - e + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. @@ -1776,23 +1776,6 @@ Projeniz birden fazla Framework'ü hedefliyor. '{0}' kullanarak hangi Framework' .NET deneyimini genişleten araçları yükler veya yönetir. - - Tool package download canceled - Araç paketi indirme işlemi iptal edildi - - - - Tool package {0}@{1} will be downloaded from source {2}. -Proceed? - Araç paketi {0}@{1} {2} kaynağından indirilecektir. -Devam edilsin mi? - - - - Tool package download needs confirmation. Run in interactive mode or use the "--yes" command-line option to confirm. - Araç paketinin indirilmesi için onay gerekiyor. Etkileşimli modda çalıştırın veya onaylamak için "--yes" komut satırı seçeneğini kullanın. - {Locked="--yes"} - You can invoke the tool using the following command: {0} Tool '{1}' (version '{2}') was successfully installed. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf index 6f8eff789795..79f7e5fb60a4 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf @@ -315,17 +315,17 @@ See https://aka.ms/dotnet-test/mtp for more information. Please type '{0}' for yes or '{1}' for no. - 请键入 '{0}' 以表示是或键入 '{1}' 以表示否。 + Please type '{0}' for yes or '{1}' for no. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. @@ -1776,23 +1776,6 @@ Your project targets multiple frameworks. Specify which framework to run using ' 安装或管理扩展 .NET 体验的工具。 - - Tool package download canceled - 已取消工具包下载 - - - - Tool package {0}@{1} will be downloaded from source {2}. -Proceed? - 将从源 {2} 下载工具包 {0}@{1}。 -是否继续? - - - - Tool package download needs confirmation. Run in interactive mode or use the "--yes" command-line option to confirm. - 工具包下载需要确认。在交互模式下运行,或使用 “--yes” 命令行选项进行确认。 - {Locked="--yes"} - You can invoke the tool using the following command: {0} Tool '{1}' (version '{2}') was successfully installed. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf index 0083657b8e1e..cdd6f3fc7076 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf @@ -315,17 +315,17 @@ See https://aka.ms/dotnet-test/mtp for more information. Please type '{0}' for yes or '{1}' for no. - 請輸入 '{0}' 表示是或 '{1}' 表示否。 + Please type '{0}' for yes or '{1}' for no. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. @@ -1776,23 +1776,6 @@ Your project targets multiple frameworks. Specify which framework to run using ' 安裝或管理可擴充 .NET 體驗的工具。 - - Tool package download canceled - 工具套件下載已取消 - - - - Tool package {0}@{1} will be downloaded from source {2}. -Proceed? - 將從來源 {2}下載工具套件 {0}@{1}。 -要繼續嗎? - - - - Tool package download needs confirmation. Run in interactive mode or use the "--yes" command-line option to confirm. - 工具套件下載需要確認。請以互動模式執行,或使用 "--yes" 命令列選項來確認。 - {Locked="--yes"} - You can invoke the tool using the following command: {0} Tool '{1}' (version '{2}') was successfully installed. From 8eac1303ba6cf8662ca8e5c6b445907c16fbaa65 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Fri, 27 Feb 2026 14:14:55 -0800 Subject: [PATCH 158/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2914498 --- .../xlf/FileBasedProgramsResources.cs.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.de.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.es.xlf | 8 ++++---- .../xlf/FileBasedProgramsResources.fr.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.it.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.ja.xlf | 8 ++++---- .../xlf/FileBasedProgramsResources.ko.xlf | 8 ++++---- .../xlf/FileBasedProgramsResources.pl.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.pt-BR.xlf | 8 ++++---- .../xlf/FileBasedProgramsResources.ru.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.tr.xlf | 8 ++++---- 11 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf index f7abe17e7469..06082920dafa 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf @@ -29,7 +29,7 @@ Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} - Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Nerozpoznaná přípona souboru v direktivě {0}. V současné době jsou rozpoznávány pouze tyto přípony: {1} {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' @@ -49,7 +49,7 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Každá položka ve vlastnosti MSBuild FileBasedProgramsItemMapping musí být mapována na neprázdný typ položky. Typ položky {0} v položce {1} je neplatný. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf index c06f16ccfe5d..e5143ceb186e 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf @@ -29,7 +29,7 @@ Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} - Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Unbekannte Dateierweiterung in der „{0}“-Anweisung. Derzeit werden nur diese Erweiterungen erkannt: {1} {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' @@ -49,7 +49,7 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Jeder Eintrag in der MSBuild-Eigenschaft „FileBasedProgramsItemMapping“ muss einem nicht leeren Elementtyp zugeordnet sein. Der Elementtyp „{0}“ im Eintrag „{1}“ ist ungültig. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf index e07d63de44da..7fcfcf9a443e 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf @@ -29,7 +29,7 @@ Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} - Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Extensión de archivo no reconocida en la directiva ''{0}. Actualmente solo se reconocen estas extensiones: {1} {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' @@ -39,17 +39,17 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Cada entrada de la propiedad MSBuild ''FileBasedProgramsItemMapping'' debe tener dos partes separadas por '='. La entrada ''{0}'' no es válida. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Cada entrada de la propiedad MSBuild ''FileBasedProgramsItemMapping'' debe asignarse desde una extensión de archivo que no esté vacía a partir de '.'. La extensión ''{0}'' de la entrada ''{1}'' no es válida. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Cada entrada de la propiedad MSBuild ''FileBasedProgramsItemMapping'' debe asignarse a un tipo de elemento no vacío. El tipo de elemento ''{0}'' de la entrada ''{1}'' no es válido. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf index f8ac150fba81..3219b19dddc7 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf @@ -29,7 +29,7 @@ Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} - Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Extension de fichier non reconnue dans la directive « {0} ». Seules ces extensions sont actuellement reconnues : {1} {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' @@ -49,7 +49,7 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Chaque entrée de la propriété MSBuild « FileBasedProgramsItemMapping » doit correspondre à un type d’élément non vide. Le type d’élément « {0} » dans l’entrée « {1} » est invalide. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf index 1c884708ab43..e91c768d3a49 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf @@ -29,7 +29,7 @@ Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} - Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Estensione file non riconosciuta nella direttiva "{0}". Sono riconosciute solo queste estensioni: {1} {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' @@ -49,7 +49,7 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Ogni voce nella proprietà MSBuild "FileBasedProgramsItemMapping" deve essere mappata a un tipo di elemento non vuoto. Il tipo di elemento "{0}" nella voce "{1}" non è valido. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf index ff9690e00576..2d2cc195c23a 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf @@ -29,7 +29,7 @@ Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} - Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + '{0}' ディレクティブ内の認識されないファイル拡張子。現在認識されている拡張子は次のとおりです: {1} {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' @@ -39,17 +39,17 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + 'FileBasedProgramsItemMapping' MSBuild プロパティの各エントリには、'=' で区切られた 2 つの部分が必要です。エントリ '{0}' が無効です。 {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + 'FileBasedProgramsItemMapping' MSBuild プロパティの各エントリは、'.' で始まる空でないファイル拡張子からマップする必要があります。エントリ '{0}' の拡張子 '{1}' は無効です。 {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + 'FileBasedProgramsItemMapping' MSBuild プロパティの各エントリは、空でないアイテムの種類にマップする必要があります。エントリ '{1}' のアイテムの種類 '{0}' が無効です。 {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf index caba35215b23..7082b47f9aa8 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf @@ -29,7 +29,7 @@ Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} - Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + '{0}' 지시문에서 인식할 수 없는 파일 확장자입니다. 현재 인식되는 확장자는 다음과 같습니다. {1}. {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' @@ -39,17 +39,17 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + 'FileBasedProgramsItemMapping' MSBuild 속성의 각 항목은 '='로 구분된 두 부분으로 구성되어야 합니다. '{0}' 항목이 잘못되었습니다. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + 'FileBasedProgramsItemMapping' MSBuild 속성의 각 항목은 '.'로 시작하는 비어 있지 않은 파일 확장명에 매핑되어야 합니다. '{0}' 항목의 확장명 '{1}'이(가) 잘못되었습니다. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + 'FileBasedProgramsItemMapping' MSBuild 속성의 각 항목은 비어 있지 않은 항목 종류에 매핑되어야 합니다. '{0}' 항목의 항목 종류 '{1}'이(가) 잘못되었습니다. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf index ecffd7e67744..9f88bcfee1e9 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf @@ -29,7 +29,7 @@ Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} - Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Nierozpoznane rozszerzenie pliku w dyrektywie „{0}”. Obecnie rozpoznawane są tylko te rozszerzenia: {1} {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' @@ -49,7 +49,7 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Każdy wpis w właściwości MSBuild „FileBasedProgramsItemMapping” musi mapować na niepusty typ elementu. Typ elementu „{0}” we wpisie „{1}” jest nieprawidłowy. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf index b3fb3867077b..a5ef266abb7e 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf @@ -29,7 +29,7 @@ Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} - Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Extensão de arquivo não reconhecida na diretiva '{0}'. Somente estas extensões são reconhecidas atualmente: {1} {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' @@ -39,17 +39,17 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Cada entrada na propriedade MSBuild 'FileBasedProgramsItemMapping' deve ter duas partes separadas por '='. A entrada '{0}' é inválida. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Cada entrada na propriedade MSBuild 'FileBasedProgramsItemMapping' deve mapear a partir de uma extensão de arquivo não vazia que comece com '.'. A extensão '{0}' na entrada '{1}' é inválida. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Cada entrada na propriedade MSBuild 'FileBasedProgramsItemMapping' deve mapear para um tipo de item não vazio. O tipo de item '{0}' na entrada '{1}' é inválido. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf index 2249fdaefe41..dc9834600f84 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf @@ -29,7 +29,7 @@ Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} - Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + Нераспознанное расширение файла в директиве "{0}". В настоящее время распознаются только следующие расширения: {1} {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' @@ -49,7 +49,7 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + Каждая запись в свойстве MSBuild "FileBasedProgramsItemMapping" должна сопоставляться с непустым типом элемента. Тип элемента "{0}" в записи "{1}" недопустим. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf index 46134db6424f..40ee3f703b98 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf @@ -29,7 +29,7 @@ Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} - Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + '{0}' yönergesinde tanınmayan dosya uzantısı var. Şu anda yalnızca şu uzantılar tanınıyor: {1} {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' @@ -39,17 +39,17 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + 'FileBasedProgramsItemMapping' MSBuild özelliğindeki her girdi, '=' ile ayrılmış iki bölümden oluşmalıdır. '{0}' girdisi geçersizdir. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + 'FileBasedProgramsItemMapping' MSBuild özelliğindeki her girdi, '.' ile başlayan boş olmayan bir dosya uzantısına karşılık gelmelidir. '{1}' girdisindeki '{0}' uzantısı geçersizdir. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + 'FileBasedProgramsItemMapping' MSBuild özelliğindeki her girdi, boş olmayan bir öğe türüne karşılık gelmelidir. '{1}' girdisindeki '{0}' öğe türü geçersizdir. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} From 97191e1cbb117a4f5368f531b87a9db2878d55ae Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Fri, 27 Feb 2026 14:16:10 -0800 Subject: [PATCH 159/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2914498 --- .../xlf/FileBasedProgramsResources.zh-Hans.xlf | 8 ++++---- .../xlf/FileBasedProgramsResources.zh-Hant.xlf | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf index 5e755b716575..b5c92edfd759 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf @@ -29,7 +29,7 @@ Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} - Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + '{0}' 指令中的文件扩展名无法识别。当前仅识别以下扩展名: {1} {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' @@ -39,17 +39,17 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + 'FileBasedProgramsItemMapping' MSBuild 属性中的每个条目必须包含由 '=' 分隔的两部分。条目 '{0}' 无效。 {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + 'FileBasedProgramsItemMapping' MSBuild 属性中的每个条目必须映射自以 '.' 开头的非空文件扩展名。条目 '{1}' 中的扩展名 '{0}' 无效。 {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + 'FileBasedProgramsItemMapping' MSBuild 属性中的每个条目必须映射到非空项类型。条目 '{1}' 中的项类型 '{0}' 无效。 {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf index a93e0402ec5e..5038ed670b59 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf @@ -29,7 +29,7 @@ Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} - Unrecognized file extension in the '{0}' directive. Only these extensions are currently recognized: {1} + '{0}' 指示詞中無法辨識的副檔名。目前僅能識別這些副檔名: {1} {0} is the directive - '#:include' or '#:exclude'. {1} is a comma-separated list of file extensions, like: '.cs', '.resx' @@ -39,7 +39,7 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + 'FileBasedProgramsItemMapping' MSBuild 屬性中的每個項目都必須有兩個部分,以 '=' 區隔。項目 '{0}' 無效。 {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} @@ -49,7 +49,7 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid. + 'FileBasedProgramsItemMapping' MSBuild 屬性中的每個項目都必須與非空白的項目類型對應。項目 '{1}' 中的項目類型 '{0}' 無效。 {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"} From 88d2ab83900e4656db6baaaaa3f84844acb69487 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Fri, 27 Feb 2026 14:18:41 -0800 Subject: [PATCH 160/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2914498 --- src/Dotnet.Format/dotnet-format/xlf/Resources.fr.xlf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Dotnet.Format/dotnet-format/xlf/Resources.fr.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.fr.xlf index c29da3ec3b44..dd3b82bc4a32 100644 --- a/src/Dotnet.Format/dotnet-format/xlf/Resources.fr.xlf +++ b/src/Dotnet.Format/dotnet-format/xlf/Resources.fr.xlf @@ -49,7 +49,7 @@ Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. - Fichier projet et fichier solution MSBuild trouvés dans '{0}'. Spécifiez celui qui doit être utilisé avec l'argument <espace de travail>. + Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. @@ -84,7 +84,7 @@ Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. - Le fichier projet ou le fichier solution MSBuild est introuvable dans '{0}'. Spécifiez celui qui doit être utilisé avec l'argument <espace de travail>. + Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. @@ -209,12 +209,12 @@ Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. - Plusieurs fichiers projet MSBuild trouvés dans '{0}'. Spécifiez celui qui doit être utilisé avec l'argument <espace de travail>. + Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. - Plusieurs fichiers solution MSBuild trouvés dans '{0}'. Spécifiez celui qui doit être utilisé avec l'argument <espace de travail>. + Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. @@ -399,7 +399,7 @@ Whether to treat the `<workspace>` argument as a simple folder of files. - Indique si l'argument '<espace de travail>' doit être traité en tant que simple dossier de fichiers. + Indique si l’argument `<workspace>` doit être traité en tant que simple dossier de fichiers. From c8aa73546de2c1f4436a99beee63f53ecd6f3753 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Fri, 27 Feb 2026 14:19:57 -0800 Subject: [PATCH 161/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2914498 --- .../dotnet-watch/xlf/Resources.cs.xlf | 18 +++++++------- .../dotnet-watch/xlf/Resources.de.xlf | 8 +++---- .../dotnet-watch/xlf/Resources.es.xlf | 10 ++++---- .../dotnet-watch/xlf/Resources.fr.xlf | 8 +++---- .../dotnet-watch/xlf/Resources.it.xlf | 24 +++++++++---------- .../dotnet-watch/xlf/Resources.ja.xlf | 8 +++---- .../dotnet-watch/xlf/Resources.ko.xlf | 8 +++---- .../dotnet-watch/xlf/Resources.pl.xlf | 8 +++---- .../dotnet-watch/xlf/Resources.pt-BR.xlf | 8 +++---- .../dotnet-watch/xlf/Resources.ru.xlf | 10 ++++---- .../dotnet-watch/xlf/Resources.tr.xlf | 14 +++++------ .../dotnet-watch/xlf/Resources.zh-Hans.xlf | 12 +++++----- .../dotnet-watch/xlf/Resources.zh-Hant.xlf | 8 +++---- 13 files changed, 72 insertions(+), 72 deletions(-) diff --git a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.cs.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.cs.xlf index 7aa5e7b4b623..1628e14ae227 100644 --- a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.cs.xlf +++ b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.cs.xlf @@ -4,17 +4,17 @@ Cannot specify both '{0}' and '{1}' options. - Cannot specify both '{0}' and '{1}' options. + Nedá se zadat současně možnost {0} i možnost {1}. Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + V {0} se nepovedlo najít soubor projektu MSBuild. Pomocí parametru --project zadejte, který projekt chcete použít. {Locked="MSBuild"}{Locked="--project"} Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - {0} obsahuje více souborů projektů MSBuild. Pomocí parametru --project zadejte, který soubor chcete použít. + {0} obsahuje více souborů projektů MSBuild. Pomocí parametru --project zadejte, který soubor chcete použít. {Locked="MSBuild"}{Locked="--project"} @@ -71,12 +71,12 @@ Proměnné prostředí: dotnet-watch nastaví tuto proměnnou na hodnotu 1 u všech spuštěných podřízených procesů. DOTNET_WATCH_ITERATION - dotnet-watch nastaví tuto proměnnou na hodnotu 1 a pokaždé ji zvýší o jedna pokaždé, + dotnet-watch nastaví tuto proměnnou na hodnotu 1 a pokaždé ji zvýší o jedna, když je soubor změněn a příkaz je restartován. DOTNET_WATCH_SUPPRESS_EMOJIS Pokud je nastavená hodnota 1 nebo true, dotnet-watch nebude zobrazovat emoji ve - výstupu konzoly. + výstupu konzole. Poznámky: Speciální možnost -- se používá k ohraničení konce možností a @@ -88,7 +88,7 @@ Poznámky: označuje, že --verbose by mělo být považováno za argument pro dotnet-run. -Příklady: +Examples: dotnet watch run dotnet watch test @@ -120,7 +120,7 @@ Příklady: Spustí dotnet-watch v neinteraktivním režimu. Tato možnost je podporována pouze při spuštění s povoleným opětovným načítáním za provozu. - Tuto možnost použijte, pokud chcete zabránit zachycení vstupu konzoly. + Tuto možnost použijte, pokud chcete zabránit zachycení vstupu konzole. @@ -138,13 +138,13 @@ Příklady: Show verbose output - Zobrazit podrobní výstup + Zobrazit podrobný výstup The specified path '{0}' is invalid: {1} - The specified path '{0}' is invalid: {1} + Zadaná cesta {0} je neplatná: {1} diff --git a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.de.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.de.xlf index 9413f5fd572d..903537d57e2b 100644 --- a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.de.xlf +++ b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.de.xlf @@ -4,17 +4,17 @@ Cannot specify both '{0}' and '{1}' options. - Cannot specify both '{0}' and '{1}' options. + Die Optionen „{0}“ und „{1}“ können nicht gemeinsam angegeben werden. Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + In "{0}" wurde keine MSBuild-Projektdatei gefunden. Geben Sie das zu verwendende Projekt über die Option "--project" an. {Locked="MSBuild"}{Locked="--project"} Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - In "{0}" wurden mehrere MSBuild-Projektdateien gefunden. Geben Sie über die Option "--project" an, welche verwendet werden soll. + In "{0}" wurden mehrere MSBuild-Projektdateien gefunden. Geben Sie über die Option "--project" an, welche verwendet werden soll. {Locked="MSBuild"}{Locked="--project"} @@ -144,7 +144,7 @@ Beispiele: The specified path '{0}' is invalid: {1} - The specified path '{0}' is invalid: {1} + Der angegebene Pfad „{0}“ ist ungültig: {1} diff --git a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.es.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.es.xlf index b8d10537fe5f..d808857128e5 100644 --- a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.es.xlf +++ b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.es.xlf @@ -4,17 +4,17 @@ Cannot specify both '{0}' and '{1}' options. - Cannot specify both '{0}' and '{1}' options. + No se pueden especificar las opciones ''{0}'' y ''{1}''. Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + No se encontró ningún archivo del proyecto MSBuild en "{0}". Especifique qué proyecto debe utilizarse con la opción --project. {Locked="MSBuild"}{Locked="--project"} Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - Se encontraron múltiples archivos del proyecto MSBuild en "{0}". Especifique cuál debe usarse con la opción --project. + Se encontraron múltiples archivos del proyecto MSBuild en "{0}". Especifique cuál debe usarse con la opción --project. {Locked="MSBuild"}{Locked="--project"} @@ -119,7 +119,7 @@ Ejemplos: Use this option to prevent console input from being captured. - Ejecuta dotnet-watch en modo no interactivo. Esta opción solo se admite cuando se ejecuta con la Recarga activa habilitada. + Ejecuta dotnet-watch en modo no interactivo. Esta opción solo se admite cuando se ejecuta con la recarga activa habilitada. Use esta opción para evitar que se capture la entrada de la consola. @@ -144,7 +144,7 @@ Ejemplos: The specified path '{0}' is invalid: {1} - The specified path '{0}' is invalid: {1} + La ruta de acceso especificada ''{0}'' no es válida: {1} diff --git a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.fr.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.fr.xlf index c8bee9490040..6957d76140e9 100644 --- a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.fr.xlf +++ b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.fr.xlf @@ -4,17 +4,17 @@ Cannot specify both '{0}' and '{1}' options. - Cannot specify both '{0}' and '{1}' options. + Nous n’avons pas pu spécifier « {0} » et « {1} » ensemble. Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + Fichier projet MSBuild introuvable dans '{0}'. Spécifiez le projet à utiliser avec l'option --project. {Locked="MSBuild"}{Locked="--project"} Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - Plusieurs fichiers projet MSBuild trouvés dans '{0}'. Spécifiez celui qui doit être utilisé avec l'option --project. + Plusieurs fichiers projet MSBuild trouvés dans '{0}'. Spécifiez celui qui doit être utilisé avec l'option --project. {Locked="MSBuild"}{Locked="--project"} @@ -144,7 +144,7 @@ Exemples : The specified path '{0}' is invalid: {1} - The specified path '{0}' is invalid: {1} + Le chemin d’accès spécifié « {0} » n’est pas valide : {1} diff --git a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.it.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.it.xlf index 8070c00fd221..95d0f981056d 100644 --- a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.it.xlf +++ b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.it.xlf @@ -4,17 +4,17 @@ Cannot specify both '{0}' and '{1}' options. - Cannot specify both '{0}' and '{1}' options. + Non è possibile specificare sia '{0}' che '{1}'. Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + In '{0}' non è stato possibile trovare alcun file di progetto MSBuild. Per specificare quello desiderato, usare l'opzione --project. {Locked="MSBuild"}{Locked="--project"} Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - In '{0}' sono stati trovati più file di progetto MSBuild. Per specificare quello desiderato, usare l'opzione --project. + In '{0}' sono stati trovati più file di progetto MSBuild. Per specificare quello desiderato, usare l'opzione --project. {Locked="MSBuild"}{Locked="--project"} @@ -65,18 +65,18 @@ Variabili di ambiente: DOTNET_USE_POLLING_FILE_WATCHER Se impostato su '1' o 'true', dotnet-watch eseguirà il polling del file system per modifiche. Questa operazione è necessaria per alcuni file system, ad esempio condivisioni di rete, - Volumi montati docker e altri file system virtuali. + volumi montati in Docker e altri file system virtuali. DOTNET_WATCH dotnet-watch imposta questa variabile su '1' in tutti i processi figlio avviati. DOTNET_WATCH_ITERATION - dotnet-watch imposta questa variabile su '1' e incrementa di uno ogni volta + dotnet-watch imposta questa variabile su '1' e la incrementa ogni volta di una unità un file viene modificato e il comando viene riavviato. DOTNET_WATCH_SUPPRESS_EMOJIS - Se impostato su '1' o 'true', dotnet-watch non mostrerà emoji nel - output della console. + Se impostato su '1' o 'true', dotnet-watch non mostrerà emoji nell'output + della console. Note: L'opzione speciale '--' viene usata per delimitare la fine delle opzioni e @@ -109,7 +109,7 @@ Esempi: Suppress hot reload for supported apps. - Elimina il ricaricamento rapido per le app supportate. + Eliminare il ricaricamento rapido per le app supportate. @@ -119,7 +119,7 @@ Esempi: Use this option to prevent console input from being captured. - Esegue dotnet-watch in modalità non interattiva. Questa opzione è supportata solo quando si esegue con Ricaricamento rapido abilitata. + Esegue dotnet-watch in modalità non interattiva. Questa opzione è supportata solo quando viene eseguita con Ricaricamento rapido abilitato. Usare questa opzione per impedire l'acquisizione dell'input della console. @@ -129,7 +129,7 @@ Esempi: Suppresses all output except warnings and errors - Elimina tutti gli output tranne gli avvisi e gli errori + Elimina tutti gli output, ad eccezione di avvisi ed errori @@ -138,13 +138,13 @@ Esempi: Show verbose output - Mostra l'output di verbose + Mostrare l'output dettagliato The specified path '{0}' is invalid: {1} - The specified path '{0}' is invalid: {1} + Il percorso specificato '{0}' non è valido: {1} diff --git a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.ja.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.ja.xlf index c1038676f546..a73fc27148c5 100644 --- a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.ja.xlf +++ b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.ja.xlf @@ -4,17 +4,17 @@ Cannot specify both '{0}' and '{1}' options. - Cannot specify both '{0}' and '{1}' options. + '{0}' オプションと '{1}' オプションの両方を指定することはできません。 Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + '{0}' で MSBuild プロジェクト ファイルが見つかりませんでした。使用するプロジェクトを --project オプションで指定してください。 {Locked="MSBuild"}{Locked="--project"} Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - 複数の MSBuild プロジェクト ファイルが '{0}' で見つかりました。使用するものを --project オプションで指定してください。 + 複数の MSBuild プロジェクト ファイルが '{0}' で見つかりました。使用するものを --project オプションで指定してください。 {Locked="MSBuild"}{Locked="--project"} @@ -144,7 +144,7 @@ Examples: The specified path '{0}' is invalid: {1} - The specified path '{0}' is invalid: {1} + 指定されたパス '{0}' は無効です: {1} diff --git a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.ko.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.ko.xlf index e41bd5548791..438aaae2de6b 100644 --- a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.ko.xlf +++ b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.ko.xlf @@ -4,17 +4,17 @@ Cannot specify both '{0}' and '{1}' options. - Cannot specify both '{0}' and '{1}' options. + '{0}' 옵션과 '{1}' 옵션은 함께 지정할 수 없습니다. Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + '{0}'에서 MSBuild 프로젝트 파일을 찾을 수 없습니다. --project 옵션을 사용하여 사용할 파일을 지정하세요. {Locked="MSBuild"}{Locked="--project"} Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - '{0}'에서 여러 MSBuild 프로젝트 파일을 찾았습니다. --project 옵션을 사용하여 사용할 파일을 지정하세요. + '{0}'에서 여러 MSBuild 프로젝트 파일을 찾았습니다. --project 옵션을 사용하여 사용할 파일을 지정하세요. {Locked="MSBuild"}{Locked="--project"} @@ -144,7 +144,7 @@ Examples: The specified path '{0}' is invalid: {1} - The specified path '{0}' is invalid: {1} + 지정한 경로 '{0}'이(가) 잘못되었습니다. {1}. diff --git a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.pl.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.pl.xlf index 82b3fe490047..da5a4d916ea3 100644 --- a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.pl.xlf +++ b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.pl.xlf @@ -4,17 +4,17 @@ Cannot specify both '{0}' and '{1}' options. - Cannot specify both '{0}' and '{1}' options. + Nie można określić jednocześnie opcji „{0}” i „{1}”. Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + Nie można znaleźć pliku projektu MSBuild w elemencie „{0}”. Określ projekt do użycia za pomocą opcji --project. {Locked="MSBuild"}{Locked="--project"} Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - W elemencie „{0}” znaleziono wiele plików projektów MSBuild. Określ projekt do użycia za pomocą opcji --project. + W elemencie „{0}” znaleziono wiele plików projektów MSBuild. Określ projekt do użycia za pomocą opcji --project. {Locked="MSBuild"}{Locked="--project"} @@ -144,7 +144,7 @@ Przykłady: The specified path '{0}' is invalid: {1} - The specified path '{0}' is invalid: {1} + Określona ścieżka „{0}” jest nieprawidłowa: {1} diff --git a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.pt-BR.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.pt-BR.xlf index 50d1a6500c7a..350dd86e376b 100644 --- a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.pt-BR.xlf +++ b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.pt-BR.xlf @@ -4,17 +4,17 @@ Cannot specify both '{0}' and '{1}' options. - Cannot specify both '{0}' and '{1}' options. + Não é possível especificar as opções "{0}" e "{1}". Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + Não foi possível encontrar um arquivo de projeto do MSBuild em '{0}'. Especifique qual projeto deve ser usado com a opção --project. {Locked="MSBuild"}{Locked="--project"} Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - Foram encontrados vários arquivos de projeto do MSBuild em '{0}'. Especifique qual deve ser usado com a opção --project. + Foram encontrados vários arquivos de projeto do MSBuild em '{0}'. Especifique qual deve ser usado com a opção --project. {Locked="MSBuild"}{Locked="--project"} @@ -144,7 +144,7 @@ Exemplos: The specified path '{0}' is invalid: {1} - The specified path '{0}' is invalid: {1} + O caminho especificado "{0}" é inválido: {1} diff --git a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.ru.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.ru.xlf index de5e711d342f..1d6c0f4a7395 100644 --- a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.ru.xlf +++ b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.ru.xlf @@ -4,17 +4,17 @@ Cannot specify both '{0}' and '{1}' options. - Cannot specify both '{0}' and '{1}' options. + Нельзя указывать параметры "{0}" и "{1}" одновременно. Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + Не удалось найти файл проекта MSBuild в "{0}". Укажите проект, который нужно использовать, с помощью параметра --project. {Locked="MSBuild"}{Locked="--project"} Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - В "{0}" обнаружено несколько файлов проекта MSBuild. Укажите файл, который нужно использовать, с помощью параметра --project. + В "{0}" обнаружено несколько файлов проекта MSBuild. Укажите файл, который нужно использовать, с помощью параметра --project. {Locked="MSBuild"}{Locked="--project"} @@ -119,7 +119,7 @@ Examples: Use this option to prevent console input from being captured. - Запускает dotnet-watch в неинтерактивном режиме. Этот параметр поддерживается только при запуске с включенной горячей перезагрузкой. + Запускает dotnet-watch в неинтерактивном режиме. Этот параметр поддерживается только при запуске с включенной Горячей перезагрузкой. Используйте этот параметр, чтобы предотвратить перехват входных данных консоли. @@ -144,7 +144,7 @@ Examples: The specified path '{0}' is invalid: {1} - The specified path '{0}' is invalid: {1} + Указанный путь "{0}" недопустим: {1} diff --git a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.tr.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.tr.xlf index e5e8100659c5..736d74b9ebad 100644 --- a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.tr.xlf +++ b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.tr.xlf @@ -4,17 +4,17 @@ Cannot specify both '{0}' and '{1}' options. - Cannot specify both '{0}' and '{1}' options. + Hem '{0}' hem de '{1}' seçeneği belirtilemez. Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + '{0}' içinde MSBuild proje dosyası bulunamadı. --project seçeneği ile kullanılacak projeyi belirtin. {Locked="MSBuild"}{Locked="--project"} Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - '{0}' içinde birden fazla MSBuild proje dosyası bulundu. --project seçeneği ile kullanılacak proje dosyalarını belirtin. + '{0}' içinde birden fazla MSBuild proje dosyası bulundu. --project seçeneği ile kullanılacak proje dosyalarını belirtin. {Locked="MSBuild"}{Locked="--project"} @@ -63,8 +63,8 @@ Examples: Ortam değişkenleri: DOTNET_USE_POLLING_FILE_WATCHER - '1' veya 'true' olarak ayarlandığında dotnet-watch, - değişiklikleri için dosya sistemini yoklar. Bu, ağ paylaşımları, + '1' veya 'true' olarak ayarlandığında dotnet-watch + değişiklikler için dosya sistemini yoklar. Bu, ağ paylaşımları, Docker'a bağlı birimler ve diğer sanal dosya sistemleri gibi bazı dosya sistemleri için gereklidir. DOTNET_WATCH @@ -75,7 +75,7 @@ Ortam değişkenleri: ve komut yeniden başlatıldığında bir artırır. DOTNET_WATCH_SUPPRESS_EMOJIS - '1' veya 'true' olarak ayarlandığında dotnet-watch, + '1' veya 'true' olarak ayarlandığında dotnet-watch konsol çıkışında emoji göstermez. Açıklamalar: @@ -144,7 +144,7 @@ Açıklamalar: The specified path '{0}' is invalid: {1} - The specified path '{0}' is invalid: {1} + Belirtilen '{0}' yolu geçersiz: {1} diff --git a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.zh-Hans.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.zh-Hans.xlf index 1389bd0cf5f3..15eeab84f477 100644 --- a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.zh-Hans.xlf +++ b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.zh-Hans.xlf @@ -4,17 +4,17 @@ Cannot specify both '{0}' and '{1}' options. - Cannot specify both '{0}' and '{1}' options. + 无法同时指定选项“{0}”和“{1}”。 Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + 无法在“{0}”中找到 MSBuild 项目文件。请指定要用于 --project 选项的项目。 {Locked="MSBuild"}{Locked="--project"} Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - 在“{0}”中找到多个 MSBuild 项目文件。请指定要将哪一个文件用于 --project 选项。 + 在“{0}”中找到多个 MSBuild 项目文件。请指定要将哪一个文件用于 --project 选项。 {Locked="MSBuild"}{Locked="--project"} @@ -60,7 +60,7 @@ Examples: -环境变量: +环境变量: DOTNET_USE_POLLING_FILE_WATCHER 设置为 "1" 或 "true" 时,dotnet-watch 将轮询文件系统 @@ -89,7 +89,7 @@ Examples: 指示应将 "--verbose" 转而视为 dotnet-run 的参数。 -示例: +示例: dotnet watch run dotnet watch test @@ -145,7 +145,7 @@ Examples: The specified path '{0}' is invalid: {1} - The specified path '{0}' is invalid: {1} + 指定的路径“{0}”无效: {1} diff --git a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.zh-Hant.xlf b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.zh-Hant.xlf index 2614a48063f1..aba90cffedeb 100644 --- a/src/Dotnet.Watch/dotnet-watch/xlf/Resources.zh-Hant.xlf +++ b/src/Dotnet.Watch/dotnet-watch/xlf/Resources.zh-Hant.xlf @@ -4,17 +4,17 @@ Cannot specify both '{0}' and '{1}' options. - Cannot specify both '{0}' and '{1}' options. + 無法同時指定 '{0}' 和 '{1}' 選項。 Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. - Could not find a MSBuild project file in '{0}'. Specify which project to use with the --project option. + 在 '{0}' 中找不到 MSBuild 專案檔。請指定要搭配 --project 選項使用的專案。 {Locked="MSBuild"}{Locked="--project"} Multiple MSBuild project files found in '{0}'. Specify which to use with the --project option. - 在 '{0}' 中找到多個 MSBuild 專案檔。請指定要搭配 --project 選項使用的專案檔。 + 在 '{0}' 中找到多個 MSBuild 專案檔。請指定要搭配 --project 選項使用的專案檔。 {Locked="MSBuild"}{Locked="--project"} @@ -144,7 +144,7 @@ Examples: The specified path '{0}' is invalid: {1} - The specified path '{0}' is invalid: {1} + 指定的路徑 '{0}' 無效: {1} From f2080c0b51c116798f4196729ff6a92ded8d9451 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Fri, 27 Feb 2026 14:21:12 -0800 Subject: [PATCH 162/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2914498 --- src/Microsoft.DotNet.ProjectTools/xlf/Resources.cs.xlf | 6 +++--- src/Microsoft.DotNet.ProjectTools/xlf/Resources.de.xlf | 6 +++--- src/Microsoft.DotNet.ProjectTools/xlf/Resources.es.xlf | 6 +++--- src/Microsoft.DotNet.ProjectTools/xlf/Resources.fr.xlf | 6 +++--- src/Microsoft.DotNet.ProjectTools/xlf/Resources.it.xlf | 6 +++--- src/Microsoft.DotNet.ProjectTools/xlf/Resources.ja.xlf | 6 +++--- src/Microsoft.DotNet.ProjectTools/xlf/Resources.ko.xlf | 6 +++--- src/Microsoft.DotNet.ProjectTools/xlf/Resources.pl.xlf | 6 +++--- src/Microsoft.DotNet.ProjectTools/xlf/Resources.pt-BR.xlf | 6 +++--- src/Microsoft.DotNet.ProjectTools/xlf/Resources.ru.xlf | 6 +++--- src/Microsoft.DotNet.ProjectTools/xlf/Resources.tr.xlf | 6 +++--- src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hans.xlf | 6 +++--- src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hant.xlf | 6 +++--- 13 files changed, 39 insertions(+), 39 deletions(-) diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.cs.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.cs.xlf index 805d86638902..c27bf12ff8da 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.cs.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.cs.xlf @@ -23,17 +23,17 @@ Nastavte odlišné názvy profilů. Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Nelze určit cestu k dočasnému adresáři. Zvažte konfiguraci proměnné prostředí TEMP v systému Windows nebo místní datové složky aplikace v systému Unix. This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. - This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + Toto je experimentální funkce. Pokud ji chcete povolit, nastavte vlastnost MSBuild {0} na hodnotu true. {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. File included via #:include directive (or Compile item) not found: {0} - File included via #:include directive (or Compile item) not found: {0} + Soubor zahrnutý prostřednictvím direktivy #:include (nebo položky Compile) nebyl nalezen: {0} {Locked="#:include"}{Locked="Compile"}. {0} is file path. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.de.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.de.xlf index ed5ebbf7e42d..be6f488dfaf6 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.de.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.de.xlf @@ -23,17 +23,17 @@ Erstellen Sie eindeutige Profilnamen. Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Ein temporärer Verzeichnispfad kann nicht ermittelt werden. Erwägen Sie, die TEMP-Umgebungsvariable unter Windows oder den lokalen App-Datenordner unter Unix zu konfigurieren. This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. - This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + Dies ist eine experimentelle Funktion. Legen Sie die MSBuild-Eigenschaft „{0}“ auf „true“ fest, um sie zu aktivieren. {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. File included via #:include directive (or Compile item) not found: {0} - File included via #:include directive (or Compile item) not found: {0} + Die über die #:include-Anweisung (oder das Compile-Element) eingebundene Datei wurde nicht gefunden: {0} {Locked="#:include"}{Locked="Compile"}. {0} is file path. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.es.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.es.xlf index b91740a132ba..417c200b9dec 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.es.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.es.xlf @@ -23,17 +23,17 @@ Defina nombres de perfiles distintos. Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + No se puede determinar una ruta de acceso temporal al directorio. Considere la posibilidad de configurar la variable de entorno TEMP en Windows o la carpeta de datos de la aplicación local en Unix. This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. - This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + Se trata de una característica experimental, establezca la propiedad "{0}" de MSBuild en "true" para habilitarla. {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. File included via #:include directive (or Compile item) not found: {0} - File included via #:include directive (or Compile item) not found: {0} + No se encuentra el archivo incluido mediante la directiva #:include (o elemento Compile): {0} {Locked="#:include"}{Locked="Compile"}. {0} is file path. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.fr.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.fr.xlf index de61a273b3c4..b9afff50e4be 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.fr.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.fr.xlf @@ -23,17 +23,17 @@ Faites en sorte que les noms de profil soient distincts. Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Impossible de déterminer un chemin d’accès pour le répertoire temporaire. Nous vous recommandons de configurer la variable d’environnement TEMP sous Windows ou le dossier des données d’application locale sous Unix. This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. - This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + Il s’agit d’une fonctionnalité expérimentale, définissez la propriété MSBuild « {0} » sur « true » pour l’activer. {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. File included via #:include directive (or Compile item) not found: {0} - File included via #:include directive (or Compile item) not found: {0} + Fichier inclus via la directive #:include (ou élément Compile) introuvable : {0} {Locked="#:include"}{Locked="Compile"}. {0} is file path. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.it.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.it.xlf index ece8ec04b6fe..b81b4e946977 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.it.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.it.xlf @@ -23,17 +23,17 @@ Rendi distinti i nomi profilo. Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Non è possibile determinare un percorso per la directory temporanea. Considerare la configurazione della variabile di ambiente TEMP in Windows o della cartella dei dati locali dell'app in Unix. This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. - This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + Questa è una funzionalità sperimentale, impostare la proprietà MSBuild "{0}" su "true" per abilitarla. {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. File included via #:include directive (or Compile item) not found: {0} - File included via #:include directive (or Compile item) not found: {0} + File incluso tramite direttiva #:include (o elemento Compile) non trovato: {0} {Locked="#:include"}{Locked="Compile"}. {0} is file path. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ja.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ja.xlf index 84d999508982..0e0a34c9824b 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ja.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ja.xlf @@ -23,17 +23,17 @@ Make the profile names distinct. Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + 一時ディレクトリ パスを特定できません。Windows で TEMP 環境変数を構成するか、Unix でローカル アプリ データ フォルダーを構成することを検討してください。 This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. - This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + これは試験的な機能です。有効にするには、MSBuild プロパティ '{0}' を 'true' に設定してください。 {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. File included via #:include directive (or Compile item) not found: {0} - File included via #:include directive (or Compile item) not found: {0} + #:include ディレクティブ (または Compile 項目) を介して含められているファイルが見つかりません: {0} {Locked="#:include"}{Locked="Compile"}. {0} is file path. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ko.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ko.xlf index d00ea6c13a2a..047b32c0f0e0 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ko.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ko.xlf @@ -23,17 +23,17 @@ Make the profile names distinct. Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + 임시 디렉터리 경로를 확인할 수 없습니다. Windows에서는 TEMP 환경 변수를, Unix에서는 로컬 앱 데이터 폴더를 설정하는 것이 좋습니다. This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. - This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + 이 기능은 실험적인 기능입니다. 사용하려면 MSBuild 속성 '{0}'을(를) 'true'로 설정하세요. {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. File included via #:include directive (or Compile item) not found: {0} - File included via #:include directive (or Compile item) not found: {0} + #:include 지시문(또는 Compile 항목)을 통해 포함된 파일을 찾을 수 없음: {0} {Locked="#:include"}{Locked="Compile"}. {0} is file path. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pl.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pl.xlf index 54df3d9fe109..cb88c3488035 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pl.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pl.xlf @@ -23,17 +23,17 @@ Rozróżnij nazwy profilów. Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Nie można określić tymczasowej ścieżki katalogu. Rozważ skonfigurowanie zmiennej środowiskowej TEMP w systemie Windows lub folderze danych aplikacji lokalnej w systemie Unix. This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. - This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + To funkcja eksperymentalna, ustaw właściwość MSBuild „{0}” na wartość „true”, aby ją włączyć. {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. File included via #:include directive (or Compile item) not found: {0} - File included via #:include directive (or Compile item) not found: {0} + Nie znaleziono pliku dołączonego za pomocą dyrektywy #:include (lub elementu Compile): {0} {Locked="#:include"}{Locked="Compile"}. {0} is file path. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pt-BR.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pt-BR.xlf index 4f89fd87a677..904cd0a49833 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pt-BR.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.pt-BR.xlf @@ -23,17 +23,17 @@ Diferencie os nomes dos perfis. Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Não é possível determinar um caminho de diretório temporário. Considere configurar a variável de ambiente TEMP no Windows ou a pasta de dados do aplicativo local no Unix. This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. - This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + Esse é um recurso experimental, defina a propriedade "{0}" do MSBuild como "true" para habilitá-lo. {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. File included via #:include directive (or Compile item) not found: {0} - File included via #:include directive (or Compile item) not found: {0} + Arquivo incluído por meio da diretiva #:include (ou item de Compile) não encontrado: {0} {Locked="#:include"}{Locked="Compile"}. {0} is file path. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ru.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ru.xlf index 68b5f2c01a03..11a9bdc7fae9 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ru.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.ru.xlf @@ -23,17 +23,17 @@ Make the profile names distinct. Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Не удалось определить путь к временному каталогу. Рассмотрите возможность настроить переменную среды TEMP в Windows или папку локальных данных приложений в Unix. This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. - This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + Это экспериментальная функция. Чтобы включить ее, присвойте свойству MSBuild "{0}" значение true. {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. File included via #:include directive (or Compile item) not found: {0} - File included via #:include directive (or Compile item) not found: {0} + Файл, включенный через директиву #:include (или элемент Compile), не найден: {0} {Locked="#:include"}{Locked="Compile"}. {0} is file path. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.tr.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.tr.xlf index 9502066ed859..d9db5826f9cd 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.tr.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.tr.xlf @@ -23,17 +23,17 @@ Profil adlarının birbirinden farklı olmasını sağlayın. Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + Geçici dizin yolu saptanamıyor. Windows'da TEMP ortam değişkenini veya Unix'te yerel uygulama verileri klasörünü yapılandırmayı göz önünde bulundurun. This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. - This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + Bu deneysel bir özelliktir, etkinleştirmek için '{0}' MSBuild özelliğini 'true' değerine ayarlayın. {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. File included via #:include directive (or Compile item) not found: {0} - File included via #:include directive (or Compile item) not found: {0} + #:include yönergesiyle (veya Compile öğesi) eklenen dosya bulunamadı: {0} {Locked="#:include"}{Locked="Compile"}. {0} is file path. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hans.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hans.xlf index f88c8de849d4..5eefc4c634b9 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hans.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hans.xlf @@ -23,17 +23,17 @@ Make the profile names distinct. Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + 无法确定临时目录路径。请考虑在 Windows 上配置 TEMP 环境变量,或在 Unix 上配置本地应用数据文件夹。 This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. - This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + 这是一项实验性功能,将 MSBuild 属性 '{0}' 设置为 'true' 以启用它。 {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. File included via #:include directive (or Compile item) not found: {0} - File included via #:include directive (or Compile item) not found: {0} + 找不到通过 #:include 指令(或 Compile 项)包含的文件: {0} {Locked="#:include"}{Locked="Compile"}. {0} is file path. diff --git a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hant.xlf b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hant.xlf index a28cdbc5580b..eb15ea99c933 100644 --- a/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hant.xlf +++ b/src/Microsoft.DotNet.ProjectTools/xlf/Resources.zh-Hant.xlf @@ -23,17 +23,17 @@ Make the profile names distinct. Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. - Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix. + 無法判斷暫存 目錄路徑。考慮在 Windows 上或 Unix 上的本機應用程式資料資料資料夾上設定 TEMP 環境變數。 This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. - This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it. + 這是實驗性功能,將 MSBuild 屬性 '{0}' 設定為 'true' 以啟用它。 {Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name. File included via #:include directive (or Compile item) not found: {0} - File included via #:include directive (or Compile item) not found: {0} + 找不到透過 #:include 指示詞 (或 Compile 項目) 包含的檔案: {0} {Locked="#:include"}{Locked="Compile"}. {0} is file path. From 4ab7968754c9a52f61981e45c15d9e05bd9d7169 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Fri, 27 Feb 2026 22:49:30 -0800 Subject: [PATCH 163/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2914767 --- .../xlf/FileBasedProgramsResources.zh-Hant.xlf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf index 5038ed670b59..d65f38fe59f2 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf @@ -44,7 +44,7 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + 'FileBasedProgramsItemMapping' MSBuild 屬性中的每個項目都必須從開頭為 '.' 的非空白副檔名對應。項目 '{1}' 中的副檔名 '{0}' 無效。 {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} From f26346fbe24c29fe298677c24b1d90be06286d9c Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Fri, 27 Feb 2026 22:51:53 -0800 Subject: [PATCH 164/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2914767 --- src/Dotnet.Format/dotnet-format/xlf/Resources.fr.xlf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Dotnet.Format/dotnet-format/xlf/Resources.fr.xlf b/src/Dotnet.Format/dotnet-format/xlf/Resources.fr.xlf index dd3b82bc4a32..a88cf427352f 100644 --- a/src/Dotnet.Format/dotnet-format/xlf/Resources.fr.xlf +++ b/src/Dotnet.Format/dotnet-format/xlf/Resources.fr.xlf @@ -49,7 +49,7 @@ Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. - Both a MSBuild project file and solution file found in '{0}'. Specify which to use with the <workspace> argument. + Fichier projet et fichier solution MSBuild trouvés dans '{0}'. Spécifiez celui qui doit être utilisé avec l'argument <espace de travail>. @@ -84,7 +84,7 @@ Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. - Could not find a MSBuild project file or solution file in '{0}'. Specify which to use with the <workspace> argument. + Le fichier projet ou le fichier solution MSBuild est introuvable dans « {0} ». Spécifiez celui qui doit être utilisé avec l'argument <espace de travail>. @@ -209,12 +209,12 @@ Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. - Multiple MSBuild project files found in '{0}'. Specify which to use with the <workspace> argument. + Plusieurs fichiers projet MSBuild trouvés dans « {0} ». Spécifiez celui qui doit être utilisé avec l'argument <espace de travail>. Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. - Multiple MSBuild solution files found in '{0}'. Specify which to use with the <workspace> argument. + Plusieurs fichiers solution MSBuild trouvés dans '{0}'. Spécifiez celui qui doit être utilisé avec l'argument <espace de travail>. From 21302b030c0d141ab4211e3994770d2a6175ba8d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Mar 2026 00:49:02 +0000 Subject: [PATCH 165/179] Hide --yes option from tool exec help since it's no longer needed Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com> --- .../Commands/Tool/ToolExecuteCommandDefinition.cs | 2 +- .../Microsoft.DotNet.Cli.Definitions/Common/CommonOptions.cs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/Commands/Tool/ToolExecuteCommandDefinition.cs b/src/Cli/Microsoft.DotNet.Cli.Definitions/Commands/Tool/ToolExecuteCommandDefinition.cs index 8be2cc363611..4447d91a68b4 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/Commands/Tool/ToolExecuteCommandDefinition.cs +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/Commands/Tool/ToolExecuteCommandDefinition.cs @@ -29,7 +29,7 @@ internal abstract class ToolExecuteCommandDefinitionBase : Command public readonly Option ConfigOption = ToolAppliedOption.CreateConfigOption(); public readonly Option SourceOption = ToolAppliedOption.CreateSourceOption(); public readonly Option AddSourceOption = ToolAppliedOption.CreateAddSourceOption(); - public readonly Option YesOption = CommonOptions.CreateYesOption(); + public readonly Option YesOption = CommonOptions.CreateYesOption(hidden: true); public readonly Option VerbosityOption = CommonOptions.CreateVerbosityOption(Utils.VerbosityOptions.normal); public readonly NuGetRestoreOptions RestoreOptions = new(forward: true); diff --git a/src/Cli/Microsoft.DotNet.Cli.Definitions/Common/CommonOptions.cs b/src/Cli/Microsoft.DotNet.Cli.Definitions/Common/CommonOptions.cs index 3c9fd451dd28..be5739b8991d 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Definitions/Common/CommonOptions.cs +++ b/src/Cli/Microsoft.DotNet.Cli.Definitions/Common/CommonOptions.cs @@ -12,11 +12,12 @@ namespace Microsoft.DotNet.Cli; internal static class CommonOptions { - public static Option CreateYesOption() => new("--yes", "-y") + public static Option CreateYesOption(bool hidden = false) => new("--yes", "-y") { Description = CommandDefinitionStrings.YesOptionDescription, Arity = ArgumentArity.Zero, - IsDynamic = true + IsDynamic = true, + Hidden = hidden }; public static Option?> CreatePropertyOption() => From 5a484c0c320ccae1341a248352230fad53200d98 Mon Sep 17 00:00:00 2001 From: Jan Jones Date: Tue, 3 Mar 2026 10:41:50 -0800 Subject: [PATCH 166/179] Rename ms.docs to ms-docs in mcp.json (#53237) --- .vscode/mcp.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/mcp.json b/.vscode/mcp.json index 58cd7abd73db..349c48195e8e 100644 --- a/.vscode/mcp.json +++ b/.vscode/mcp.json @@ -1,6 +1,6 @@ { "servers": { - "ms.docs": { + "ms-docs": { "url": "https://learn.microsoft.com/api/mcp", "type": "http" } From 3dea47a3733078e81a61616fd9ab13192b4d4e10 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Mar 2026 21:55:06 +0000 Subject: [PATCH 167/179] Initial plan From 694af54c3d08baa6711bab4f54e93e074be1c8ac Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Mar 2026 22:00:31 +0000 Subject: [PATCH 168/179] Initial plan Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com> --- .../src/Microsoft.CodeAnalysis.NetAnalyzers.sarif | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.CodeAnalysis.NetAnalyzers/src/Microsoft.CodeAnalysis.NetAnalyzers.sarif b/src/Microsoft.CodeAnalysis.NetAnalyzers/src/Microsoft.CodeAnalysis.NetAnalyzers.sarif index 07aaa4edfbba..498b1e3a5e93 100644 --- a/src/Microsoft.CodeAnalysis.NetAnalyzers/src/Microsoft.CodeAnalysis.NetAnalyzers.sarif +++ b/src/Microsoft.CodeAnalysis.NetAnalyzers/src/Microsoft.CodeAnalysis.NetAnalyzers.sarif @@ -7092,4 +7092,4 @@ } } ] -} +} \ No newline at end of file From adf4fc470fc85f774c268759a1d19db2d226d70b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Mar 2026 22:01:02 +0000 Subject: [PATCH 169/179] Fix ObjectDisposedException race condition in TimestampedFileLogger.WriteMessage Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com> --- .../Installer/Windows/TimestampedFileLogger.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Cli/dotnet/Installer/Windows/TimestampedFileLogger.cs b/src/Cli/dotnet/Installer/Windows/TimestampedFileLogger.cs index a2f520863edc..280184a3bb7e 100644 --- a/src/Cli/dotnet/Installer/Windows/TimestampedFileLogger.cs +++ b/src/Cli/dotnet/Installer/Windows/TimestampedFileLogger.cs @@ -176,7 +176,18 @@ protected override void WriteMessage(string message) { if (!_messageQueue.IsAddingCompleted) { - _messageQueue.Add(message); + try + { + _messageQueue.Add(message); + } + catch (ObjectDisposedException) + { + // The logger was disposed between the IsAddingCompleted check and Add. + } + catch (InvalidOperationException) + { + // CompleteAdding was called between the IsAddingCompleted check and Add. + } } } } From 827ffaa985dbd663104e9787c33825101b480e36 Mon Sep 17 00:00:00 2001 From: Jan Jones Date: Tue, 3 Mar 2026 14:11:53 -0800 Subject: [PATCH 170/179] Remove workarounds for a fixed issue in run-file tests (#53214) --- .../CommandTests/Run/RunFileTests.cs | 20 ++----------------- 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs b/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs index c908a7142cf2..971b43affb2c 100644 --- a/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs +++ b/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs @@ -2135,19 +2135,11 @@ public void Build_Library_MultiTarget() #:property OutputType=Library #:property PublishAot=false #:property LangVersion=preview + #:property TargetFramework= #:property TargetFrameworks=netstandard2.0;{ToolsetInfo.CurrentTargetFramework} class C; """); - // https://github.com/dotnet/sdk/issues/51077: cannot set this via `#:property` directive. - File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ - - - - - - """); - var artifactsDir = VirtualProjectBuilder.GetArtifactsPath(programFile); if (Directory.Exists(artifactsDir)) Directory.Delete(artifactsDir, recursive: true); @@ -2260,19 +2252,11 @@ public void Build_Exe_MultiTarget() #:property OutputType=Exe #:property PublishAot=false #:property LangVersion=preview + #:property TargetFramework= #:property TargetFrameworks=netstandard2.0;{ToolsetInfo.CurrentTargetFramework} Console.WriteLine("Hello Exe"); """); - // https://github.com/dotnet/sdk/issues/51077: cannot set this via `#:property` directive. - File.WriteAllText(Path.Join(testInstance.Path, "Directory.Build.props"), """ - - - - - - """); - var artifactsDir = VirtualProjectBuilder.GetArtifactsPath(programFile); if (Directory.Exists(artifactsDir)) Directory.Delete(artifactsDir, recursive: true); From b9e7f449b5c0abedd47931cd1c26a3d606409352 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Tue, 3 Mar 2026 14:51:30 -0800 Subject: [PATCH 171/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2917619 --- .../xlf/FileBasedProgramsResources.cs.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.de.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.fr.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.it.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.pl.xlf | 4 ++-- .../xlf/FileBasedProgramsResources.ru.xlf | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf index 06082920dafa..fccd6ec81449 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf @@ -39,12 +39,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Každá položka ve vlastnosti MSBuild FileBasedProgramsItemMapping musí mít dvě části oddělené znakem '='. Položka {0} je neplatná. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Každá položka ve vlastnosti MSBuild FileBasedProgramsItemMapping musí být mapována z neprázdné přípony souboru začínající na '.'. Přípona {0} v položce {1} je neplatná. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf index e5143ceb186e..acfc69549e69 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf @@ -39,12 +39,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Jeder Eintrag in der MSBuild-Eigenschaft „FileBasedProgramsItemMapping“ muss aus zwei durch '=' getrennten Teilen bestehen. Der Eintrag „{0}“ ist ungültig. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Jeder Eintrag in der MSBuild-Eigenschaft „FileBasedProgramsItemMapping“ muss einer nicht leeren Dateierweiterung zugeordnet sein, die mit '.' beginnt. Die Erweiterung „{0}“ im Eintrag „{1}“ ist ungültig. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf index 3219b19dddc7..88c34c93ba8a 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf @@ -39,12 +39,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Chaque entrée de la propriété MSBuild « FileBasedProgramsItemMapping » doit comporter deux parties séparées par '='. L’entrée « {0} » est invalide. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Chaque entrée de la propriété MSBuild « FileBasedProgramsItemMapping » doit correspondre à une extension de fichier non vide commençant par '.'. L’extension « {0} » dans l’entrée « {1} » est invalide. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf index e91c768d3a49..655d5b367356 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf @@ -39,12 +39,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Ogni voce nella proprietà MSBuild "FileBasedProgramsItemMapping" deve avere due parti separate da '='. La voce "{0}" non è valida. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Ogni voce nella proprietà MSBuild "FileBasedProgramsItemMapping" deve essere mappata da un'estensione di file non vuota che inizia con '.'. L'estensione "{0}" nella voce "{1}" non è valida. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf index 9f88bcfee1e9..4cd99b2c63c3 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf @@ -39,12 +39,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Każdy wpis we właściwości MSBuild „FileBasedProgramsItemMapping” musi składać się z dwóch części oddzielonych znakiem '='. Wpis „{0}” jest nieprawidłowy. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Każdy wpis we właściwości MSBuild „FileBasedProgramsItemMapping” musi mapować niepuste rozszerzenie pliku zaczynające się od '.'. Rozszerzenie „{0}” we wpisie „{1}” jest nieprawidłowe. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf index dc9834600f84..3405fe15916b 100644 --- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf +++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf @@ -39,12 +39,12 @@ Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must have two parts separated by '='. The entry '{0}' is invalid. + Каждая запись в свойстве MSBuild "FileBasedProgramsItemMapping" должна содержать две части, разделенные '='. Запись "{0}" недопустима. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'='"} Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. - Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map from a non-empty file extension starting with '.'. The extension '{0}' in entry '{1}' is invalid. + Каждая запись в свойстве MSBuild "FileBasedProgramsItemMapping" должна сопоставляться с непустым расширением файла, начинающимся с '.'. Расширение "{0}" в записи "{1}" недопустимо. {Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}{Locked="'.'"} From 14deca1e7c7fed62f19a3d8752c8336d217398ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Matou=C5=A1ek?= Date: Wed, 4 Mar 2026 09:06:36 -0800 Subject: [PATCH 172/179] Add a script that takes output of dotnet-watch tests and formats it to HTML that's easier to reason about (#53215) --- scripts/format-watch-test-output.cs | 439 ++++++++++++++++++++++++++++ 1 file changed, 439 insertions(+) create mode 100644 scripts/format-watch-test-output.cs diff --git a/scripts/format-watch-test-output.cs b/scripts/format-watch-test-output.cs new file mode 100644 index 000000000000..5e677ac38b3d --- /dev/null +++ b/scripts/format-watch-test-output.cs @@ -0,0 +1,439 @@ +// Usage: dotnet run analyze-watch-test-output.cs [output-html-file] +// Parses xUnit test output from dotnet watch, groups interleaved lines by test name, +// and generates an HTML page with collapsible test output sections. +// The first argument can be a local file path or a URL. If a URL is provided, +// the file is downloaded to a temp directory before processing. + +using System.Text; +using System.Text.RegularExpressions; + +if (args.Length < 1) +{ + Console.Error.WriteLine("Usage: dotnet run analyze-watch-test-output.cs [output-html-file]"); + return 1; +} + +string inputFile; +string? tempFile = null; + +if (Uri.TryCreate(args[0], UriKind.Absolute, out var uri) && (uri.Scheme == "http" || uri.Scheme == "https")) +{ + try + { + using var httpClient = new HttpClient(); + Console.Error.WriteLine($"Downloading {args[0]}..."); + var bytes = httpClient.GetByteArrayAsync(uri).GetAwaiter().GetResult(); + var fileName = Path.GetFileName(uri.LocalPath); + if (string.IsNullOrWhiteSpace(fileName)) + fileName = "downloaded-log.txt"; + tempFile = Path.Combine(Path.GetTempPath(), fileName); + File.WriteAllBytes(tempFile, bytes); + inputFile = tempFile; + Console.Error.WriteLine($"Downloaded to {tempFile}"); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error: Failed to download {args[0]}: {ex.Message}"); + return 1; + } +} +else +{ + inputFile = args[0]; +} + +if (!File.Exists(inputFile)) +{ + Console.Error.WriteLine($"Error: File not found: {inputFile}"); + return 1; +} + +var outputFile = args.Length > 1 ? args[1] : Path.ChangeExtension(inputFile, ".html"); + +try +{ + var lines = File.ReadAllLines(inputFile); + var tests = ParseTestOutput(lines); + var html = GenerateHtml(tests, inputFile); + File.WriteAllText(outputFile, html, Encoding.UTF8); + Console.WriteLine($"Wrote {outputFile} ({tests.Count} tests, {lines.Length} input lines)"); + return 0; +} +finally +{ + if (tempFile != null && File.Exists(tempFile)) + File.Delete(tempFile); +} + +// --- Parsing --- + +List ParseTestOutput(string[] allLines) +{ + // [xUnit.net HH:MM:SS.ss] TestName [TAG] content + var testLineRegex = new Regex( + @"^\[xUnit\.net\s+([^\]]+)\]\s{4,}(.+?)\s+\[(PASS|FAIL|SKIP|OUTPUT)\]\s?(.*)?$"); + + // [xUnit.net HH:MM:SS.ss] continuation (6+ spaces, no tag — e.g. skip reason) + var continuationRegex = new Regex( + @"^\[xUnit\.net\s+([^\]]+)\]\s{6,}(.+)$"); + + // [xUnit.net HH:MM:SS.ss] assembly: [Long Running Test] 'TestName', Elapsed: ... + var longRunningRegex = new Regex( + @"^\[xUnit\.net\s+([^\]]+)\]\s+\S+:\s+\[Long Running Test\]\s+'([^']+)'"); + + // Non-xunit result lines: Passed/Failed/Skipped TestName [time] + var resultRegex = new Regex( + @"^\s+(Passed|Failed|Skipped)\s+(.+?)\s+\["); + + var testMap = new Dictionary(StringComparer.Ordinal); + string? lastTestName = null; + + TestInfo GetOrCreate(string name) + { + if (!testMap.TryGetValue(name, out var info)) + { + info = new TestInfo(name); + testMap[name] = info; + } + return info; + } + + for (int i = 0; i < allLines.Length; i++) + { + var line = allLines[i]; + + // 1. Continuation line (6+ spaces) — check before test-specific to avoid + // capturing indented content (e.g. "[OUTPUT] ...") as a bogus test name. + var m = continuationRegex.Match(line); + if (m.Success) + { + if (lastTestName != null) + { + var info = GetOrCreate(lastTestName); + info.Lines.Add(m.Groups[2].Value); + } + continue; + } + + // 2. Test-specific xUnit line with tag + m = testLineRegex.Match(line); + if (m.Success) + { + var timestamp = m.Groups[1].Value; + var testName = m.Groups[2].Value; + var tag = m.Groups[3].Value; + var content = m.Groups[4].Value; + + var info = GetOrCreate(testName); + lastTestName = testName; + + if (tag.Equals("PASS", StringComparison.OrdinalIgnoreCase)) + { + info.Status = TestStatus.Passed; + info.Lines.Add("[PASS]"); + } + else if (tag.Equals("FAIL", StringComparison.OrdinalIgnoreCase)) + { + info.Status = TestStatus.Failed; + info.Lines.Add("[FAIL]"); + } + else if (tag.Equals("SKIP", StringComparison.OrdinalIgnoreCase)) + { + info.Status = TestStatus.Skipped; + info.Lines.Add("[SKIP]"); + } + else + { + // [OUTPUT] and other tags — show just the content + info.Lines.Add(content); + } + continue; + } + + // 3. Long Running Test line — skip + if (longRunningRegex.IsMatch(line)) + continue; + + // 4. Non-xunit result line (Passed/Failed/Skipped) + m = resultRegex.Match(line); + if (m.Success) + { + var result = m.Groups[1].Value; + var testName = m.Groups[2].Value; + var info = GetOrCreate(testName); + // Extract duration from e.g. " Passed TestName [67 ms]" + var durationMatch = Regex.Match(line, @"\[([^\]]+)\]\s*$"); + var duration = durationMatch.Success ? durationMatch.Groups[1].Value : ""; + info.Lines.Add($"{result} [{duration}]"); + + if (result.Equals("Passed", StringComparison.OrdinalIgnoreCase) && info.Status == TestStatus.Unknown) + info.Status = TestStatus.Passed; + else if (result.Equals("Failed", StringComparison.OrdinalIgnoreCase)) + info.Status = TestStatus.Failed; + else if (result.Equals("Skipped", StringComparison.OrdinalIgnoreCase) && info.Status == TestStatus.Unknown) + info.Status = TestStatus.Skipped; + continue; + } + } + + // Sort: failed first, then skipped, then unknown/running, then passed + var sorted = testMap.Values.ToList(); + sorted.Sort((a, b) => + { + int Order(TestStatus s) => s switch + { + TestStatus.Failed => 0, + TestStatus.Skipped => 1, + TestStatus.Unknown => 2, + TestStatus.Passed => 3, + _ => 4 + }; + int cmp = Order(a.Status).CompareTo(Order(b.Status)); + return cmp != 0 ? cmp : string.Compare(a.Name, b.Name, StringComparison.Ordinal); + }); + + return sorted; +} + +// --- HTML Generation --- + +string GenerateHtml(List tests, string sourceFile) +{ + int passed = tests.Count(t => t.Status == TestStatus.Passed); + int failed = tests.Count(t => t.Status == TestStatus.Failed); + int skipped = tests.Count(t => t.Status == TestStatus.Skipped); + int unknown = tests.Count(t => t.Status == TestStatus.Unknown); + + var sb = new StringBuilder(); + sb.AppendLine(""); + sb.AppendLine(""); + sb.AppendLine(""); + sb.AppendLine(""); + sb.AppendLine(""); + sb.AppendLine($"Test Output: {HtmlEncode(Path.GetFileName(sourceFile))}"); + sb.AppendLine(""); + sb.AppendLine(""); + sb.AppendLine(""); + sb.AppendLine($"

Test Output: {HtmlEncode(Path.GetFileName(sourceFile))}

"); + + sb.AppendLine("
"); + sb.AppendLine($" {tests.Count} tests"); + if (passed > 0) sb.AppendLine($" ✅ {passed} passed"); + if (failed > 0) sb.AppendLine($" ❌ {failed} failed"); + if (skipped > 0) sb.AppendLine($" ⏭ {skipped} skipped"); + if (unknown > 0) sb.AppendLine($" ⏳ {unknown} unknown"); + sb.AppendLine("
"); + + sb.AppendLine("
"); + + sb.AppendLine("
"); + sb.AppendLine(" "); + sb.AppendLine(" "); + sb.AppendLine("
"); + + sb.AppendLine("
"); + foreach (var test in tests) + { + var badgeClass = test.Status switch + { + TestStatus.Passed => "b-passed", + TestStatus.Failed => "b-failed", + TestStatus.Skipped => "b-skipped", + _ => "b-unknown" + }; + var badgeText = test.Status switch + { + TestStatus.Passed => "PASS", + TestStatus.Failed => "FAIL", + TestStatus.Skipped => "SKIP", + _ => "???" + }; + var openAttr = test.Status == TestStatus.Failed ? " open" : ""; + var arrow = test.Status == TestStatus.Failed ? "▼" : "▶"; + + sb.AppendLine($"
"); + sb.AppendLine($" {arrow}{badgeText}{HtmlEncode(test.Name)}({test.Lines.Count} lines)"); + sb.AppendLine("
"); + RenderTestLines(sb, test.Lines); + sb.AppendLine("
"); + sb.AppendLine("
"); + } + sb.AppendLine("
"); + + sb.AppendLine(""); + sb.AppendLine(""); + sb.AppendLine(""); + return sb.ToString(); +} + +void RenderTestLines(StringBuilder sb, List lines) +{ + var watchingRegex = new Regex(@"Watching \d+ file\(s\) for changes"); + var fileLineRegex = new Regex(@">\s+\S"); + var solutionRegex = new Regex(@"Solution after (project|document) update:"); + var solutionChildRegex = new Regex(@"(Project:|Document:|Additional:|Config:)\s"); + + int i = 0; + while (i < lines.Count) + { + if (watchingRegex.IsMatch(lines[i])) + { + i = RenderCollapsibleGroup(sb, lines, i, fileLineRegex); + } + else if (solutionRegex.IsMatch(lines[i])) + { + i = RenderCollapsibleGroup(sb, lines, i, solutionChildRegex); + } + else + { + // Collapse runs of more than 3 identical consecutive lines + int runLength = 1; + while (i + runLength < lines.Count && lines[i + runLength] == lines[i]) + runLength++; + + if (runLength > 3) + { + sb.AppendLine($"
{HtmlEncode(lines[i])} (×{runLength} repeated)
"); + for (int k = 0; k < runLength; k++) + sb.AppendLine(RenderLine(lines[i])); + sb.AppendLine("
"); + i += runLength; + } + else + { + sb.AppendLine(RenderLine(lines[i])); + i++; + } + } + } +} + +int RenderCollapsibleGroup(StringBuilder sb, List lines, int i, Regex childRegex) +{ + var headerLine = lines[i]; + var children = new List(); + int j = i + 1; + while (j < lines.Count && childRegex.IsMatch(lines[j])) + { + children.Add(lines[j]); + j++; + } + + if (children.Count > 0) + { + sb.AppendLine($"
{HtmlEncode(headerLine)}
"); + foreach (var child in children) + sb.AppendLine(RenderLine(child)); + sb.AppendLine("
"); + return j; + } + + sb.AppendLine(RenderLine(lines[i])); + return i + 1; +} + +static string HtmlEncode(string s) => s + .Replace("&", "&") + .Replace("<", "<") + .Replace(">", ">") + .Replace("\"", """); + +static string HtmlAttrEncode(string s) => HtmlEncode(s).Replace("'", "'"); + +static bool HasEmoji(string s) +{ + foreach (var rune in s.EnumerateRunes()) + { + int v = rune.Value; + if ((v >= 0x2300 && v <= 0x27BF) || (v >= 0x2900 && v <= 0x2BFF) || + (v >= 0x2600 && v <= 0x26FF) || (v >= 0x1F300 && v <= 0x1F9FF)) + return true; + } + return false; +} + +static string RenderLine(string line) +{ + if (Regex.IsMatch(line, @"^\[TEST [^\]]+:\d+\]")) + return $"
{HtmlEncode(line)}
"; + var cls = HasEmoji(line) ? "line" : "line no-emoji"; + return $"
{HtmlEncode(line)}
"; +} + +// --- Types --- + +enum TestStatus { Unknown, Passed, Failed, Skipped } + +class TestInfo(string name) +{ + public string Name { get; } = name; + public List Lines { get; } = []; + public TestStatus Status { get; set; } = TestStatus.Unknown; +} From 6765a4795520ede0cf11a3ee25d01f9525e50541 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Matou=C5=A1ek?= Date: Wed, 4 Mar 2026 15:37:28 -0800 Subject: [PATCH 173/179] Publish Microsoft.DotNet.ProjectTools package (#53265) --- .../Microsoft.DotNet.ProjectTools.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Microsoft.DotNet.ProjectTools/Microsoft.DotNet.ProjectTools.csproj b/src/Microsoft.DotNet.ProjectTools/Microsoft.DotNet.ProjectTools.csproj index ecea66d30440..82aafa0d013a 100644 --- a/src/Microsoft.DotNet.ProjectTools/Microsoft.DotNet.ProjectTools.csproj +++ b/src/Microsoft.DotNet.ProjectTools/Microsoft.DotNet.ProjectTools.csproj @@ -5,6 +5,7 @@ true enable MicrosoftAspNetCore + true
From 0d58eb42d0258175f8d6223cb5db3182a3fba5c7 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Wed, 4 Mar 2026 16:46:13 -0800 Subject: [PATCH 174/179] Localized file check-in by OneLocBuild Task: Build definition ID 140: Build ID 2918731 --- src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf | 6 +++--- src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf | 6 +++--- src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf | 6 +++--- src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf | 6 +++--- src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf | 6 +++--- src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf | 6 +++--- src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf | 6 +++--- src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf | 6 +++--- src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf | 6 +++--- src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf | 6 +++--- src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf | 6 +++--- src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf | 6 +++--- src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf | 6 +++--- 13 files changed, 39 insertions(+), 39 deletions(-) diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf index 89e7ec564896..5f26be8a57e6 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.cs.xlf @@ -315,17 +315,17 @@ Další informace najdete na https://aka.ms/dotnet-test/mtp. Please type '{0}' for yes or '{1}' for no. - Please type '{0}' for yes or '{1}' for no. + Zadejte prosím {0} pro yes (ano) nebo {1} pro no (ne). n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf index 0e372c5570dc..f4918e4ab985 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.de.xlf @@ -315,17 +315,17 @@ Weitere Informationen finden Sie unter https://aka.ms/dotnet-test/mtp. Please type '{0}' for yes or '{1}' for no. - Please type '{0}' for yes or '{1}' for no. + Geben Sie "{0}" für Ja oder "{1}" für Nein ein. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf index 0ad5ba10d9af..56480063bf85 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.es.xlf @@ -315,17 +315,17 @@ Consulte https://aka.ms/dotnet-test/mtp para obtener más información. Please type '{0}' for yes or '{1}' for no. - Please type '{0}' for yes or '{1}' for no. + Escriba "{0}" para sí o "{1}" para no. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + s For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf index e4ea987f4530..645a27ee0771 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.fr.xlf @@ -315,17 +315,17 @@ Pour découvrir plus d’informations, consultez https://aka.ms/dotnet-test/mtp. Please type '{0}' for yes or '{1}' for no. - Please type '{0}' for yes or '{1}' for no. + Tapez « {0} » pour Oui ou « {1} » pour non. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + o For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf index ecc9b18ae221..bddec219ad3c 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.it.xlf @@ -315,17 +315,17 @@ Per altre informazioni, vedere https://aka.ms/dotnet-test/mtp. Please type '{0}' for yes or '{1}' for no. - Please type '{0}' for yes or '{1}' for no. + Digita '{0}' per sì o '{1}' per no. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf index 19623104b5eb..d3fae0fdb405 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ja.xlf @@ -315,17 +315,17 @@ See https://aka.ms/dotnet-test/mtp for more information. Please type '{0}' for yes or '{1}' for no. - Please type '{0}' for yes or '{1}' for no. + はいの場合は「{0}」、いいえの場合は「{1}」と入力してください。 n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf index 0d2098834fe9..cfbd55329fb7 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ko.xlf @@ -315,17 +315,17 @@ See https://aka.ms/dotnet-test/mtp for more information. Please type '{0}' for yes or '{1}' for no. - Please type '{0}' for yes or '{1}' for no. + '{0}'을(를) 예로 입력하거나 '{1}'을(를) 아니요로 입력하세요. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf index 7ee42fdf3b9a..03c211863346 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pl.xlf @@ -315,17 +315,17 @@ Aby uzyskać więcej informacji, zobacz https://aka.ms/dotnet-test/mtp. Please type '{0}' for yes or '{1}' for no. - Please type '{0}' for yes or '{1}' for no. + Wpisz „{0}”, aby dla tak lub „{1}” dla nie. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + t For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf index ec9386ac8ce2..6d5e0e266e9d 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.pt-BR.xlf @@ -315,17 +315,17 @@ Consulte https://aka.ms/dotnet-test/mtp para obter mais informações. Please type '{0}' for yes or '{1}' for no. - Please type '{0}' for yes or '{1}' for no. + Digite "{0}" para sim ou "{1}" para não. n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf index 76838f7e3cb7..75697ddcb9f7 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.ru.xlf @@ -315,17 +315,17 @@ See https://aka.ms/dotnet-test/mtp for more information. Please type '{0}' for yes or '{1}' for no. - Please type '{0}' for yes or '{1}' for no. + Введите "{0}", чтобы указать "да", и "{1}", чтобы указать "нет". n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf index a3cd8fdf1979..4580e7ea8289 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.tr.xlf @@ -315,17 +315,17 @@ Daha fazla bilgi için https://aka.ms/dotnet-test/mtp adresine bakın. Please type '{0}' for yes or '{1}' for no. - Please type '{0}' for yes or '{1}' for no. + Lütfen evet için '{0}' veya hayır için '{1}' yazın. n - n + h For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + e For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf index 79f7e5fb60a4..04414a1431e6 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hans.xlf @@ -315,17 +315,17 @@ See https://aka.ms/dotnet-test/mtp for more information. Please type '{0}' for yes or '{1}' for no. - Please type '{0}' for yes or '{1}' for no. + 请键入 '{0}' 以表示是或键入 '{1}' 以表示否。 n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. diff --git a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf index cdd6f3fc7076..f4e880514628 100644 --- a/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf +++ b/src/Cli/dotnet/Commands/xlf/CliCommandStrings.zh-Hant.xlf @@ -315,17 +315,17 @@ See https://aka.ms/dotnet-test/mtp for more information. Please type '{0}' for yes or '{1}' for no. - Please type '{0}' for yes or '{1}' for no. + 請輸入 '{0}' 表示是或 '{1}' 表示否。 n - n + n For a command line connfirmation prompt, this is the key that should be pressed for "no", ie to cancel the operation. y - y + y For a command line connfirmation prompt, this is the key that should be pressed for "yes", ie to agree. From 887959b8ba473e28c54254111587f90f42de7c9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Matou=C5=A1ek?= Date: Wed, 4 Mar 2026 19:40:32 -0800 Subject: [PATCH 175/179] Watch Aspire (#53192) --- src/Dotnet.Watch/.editorconfig | 26 + src/Dotnet.Watch/Directory.Build.props | 6 + .../HotReloadClient/DefaultHotReloadClient.cs | 2 +- .../NamedPipeClientTransport.cs | 2 +- .../Watch.Aspire/AspireLauncher.cs | 52 ++ .../Commands/AspireCommandDefinition.cs | 31 + .../Commands/AspireHostCommandDefinition.cs | 31 + .../AspireResourceCommandDefinition.cs | 87 +++ .../Commands/AspireRootCommand.cs | 22 + .../Commands/AspireServerCommandDefinition.cs | 41 ++ .../Watch.Aspire/Commands/OptionExtensions.cs | 13 + .../Watch.Aspire/DotNetWatchLauncher.cs | 86 --- .../Watch.Aspire/DotNetWatchOptions.cs | 96 --- .../Watch.Aspire/Host/AspireHostLauncher.cs | 87 +++ ...osoft.DotNet.HotReload.Watch.Aspire.csproj | 4 +- src/Dotnet.Watch/Watch.Aspire/Program.cs | 28 +- .../Resource/AspireResourceLauncher.cs | 158 +++++ .../Resource/LaunchResourceRequest.cs | 14 + .../Server/AspireServerLauncher.cs | 67 +++ .../Server/AspireWatcherLauncher.cs | 55 ++ .../Server/ProcessLauncherFactory.cs | 358 +++++++++++ .../Server/StatusReportingLoggerFactory.cs | 85 +++ .../Server/WatchControlCommand.cs | 24 + .../Watch.Aspire/Server/WatchControlReader.cs | 109 ++++ .../Watch.Aspire/Server/WatchStatusEvent.cs | 38 ++ .../Watch.Aspire/Server/WatchStatusWriter.cs | 88 +++ .../Utilities/AspireEnvironmentVariables.cs | 14 + .../Watch/AppModels/WebApplicationAppModel.cs | 2 +- .../Watch/Aspire/AspireServiceFactory.cs | 3 +- .../Watch/Build/ProjectBuildManager.cs | 6 + .../Watch/Build/ProjectRepresentation.cs | 34 +- .../Watch/Context/EnvironmentOptions.cs | 23 +- .../Watch/Context/EnvironmentVariables.cs | 7 +- .../Watch/HotReload/CompilationHandler.cs | 86 ++- .../Watch/HotReload/HotReloadDotNetWatcher.cs | 96 +-- .../Microsoft.DotNet.HotReload.Watch.csproj | 3 +- .../Watch/Process/ProjectLauncher.cs | 7 +- .../Watch/Process/RunningProject.cs | 13 +- src/Dotnet.Watch/Watch/UI/ConsoleReporter.cs | 6 +- src/Dotnet.Watch/Watch/UI/IReporter.cs | 61 +- src/Dotnet.Watch/dotnet-watch/Program.cs | 20 +- .../dotnet-watch/Watch/DotNetWatcher.cs | 2 +- .../Watch/MsBuildFileSetFactory.cs | 2 +- .../AwaitableProcess.cs | 251 ++++---- .../DebugTestOutputLogger.cs | 13 +- .../TestLogger.cs | 5 + .../WatchSdkTest.cs | 50 ++ .../WatchableApp.cs | 188 +++--- .../AspireHostLauncherCliTests.cs | 145 +++++ .../AspireHostLauncherTests.cs | 156 +++++ .../AspireLauncherTests.cs | 145 +++++ .../AspireResourceLauncherCliTests.cs | 274 +++++++++ .../AspireServerLauncherCliTests.cs | 129 ++++ .../DotNetWatchLauncherTests.cs | 37 -- .../DotNetWatchOptionsTests.cs | 146 ----- ...DotNet.HotReload.Watch.Aspire.Tests.csproj | 4 + .../Utilities/PipeUtilities.cs | 44 ++ .../Commands/SdkCommandSpec.cs | 2 +- .../TestContext.cs | 2 +- .../ToolsetInfo.cs | 2 +- .../CommonTemplatesTests.cs | 12 +- .../DotnetClassTemplateTests.cs | 8 +- .../TemplateEngineSamplesTest.cs | 4 +- .../Build/EvaluationTests.cs | 13 +- .../CommandLine/BinaryLoggerTests.cs | 41 +- .../CommandLine/LaunchSettingsTests.cs | 12 +- .../CommandLine/ProgramTests.Arguments.cs | 137 +++++ .../CommandLine/ProgramTests.HostArguments.cs | 27 + .../CommandLine/ProgramTests.cs | 289 +-------- .../CommandLine/SubcommandTests.cs | 133 +++++ .../ConsoleReporterTests.cs | 14 +- .../HotReload/AspireHotReloadTests.cs | 9 +- .../HotReload/CompilationHandlerTests.cs | 2 +- .../HotReload/CtrlRTests.cs | 89 +++ .../HotReload/FileExclusionTests.cs | 115 ++++ .../HotReload/ProjectUpdateInProcTests.cs | 182 ++++++ .../HotReload/RuntimeProcessLauncherTests.cs | 561 +----------------- ...ceFileUpdateTests.HotReloadNotSupported.cs | 96 +++ .../HotReload/SourceFileUpdateTests.cs | 86 --- .../TestUtilities/DotNetWatchTestBase.cs | 61 +- .../InProcBuildTestCollection.cs | 13 - .../TestUtilities/InProcTestWatcher.cs | 72 +++ .../TestUtilities/MockFileSetFactory.cs | 2 +- .../TestUtilities/TestEventObserver.cs | 64 ++ .../TestObservableLoggerFactory.cs | 33 ++ .../TestUtilities/TestOptions.cs | 11 +- .../TestUtilities/TestReporter.cs | 37 +- .../TestRuntimeProcessLauncher.cs | 39 +- .../Watch/FileUpdateTests.cs | 52 ++ .../Watch/GlobbingAppTests.cs | 6 +- .../Watch/NoDepsAppTests.cs | 52 -- 91 files changed, 4076 insertions(+), 1784 deletions(-) create mode 100644 src/Dotnet.Watch/.editorconfig create mode 100644 src/Dotnet.Watch/Directory.Build.props create mode 100644 src/Dotnet.Watch/Watch.Aspire/AspireLauncher.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Commands/AspireCommandDefinition.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Commands/AspireHostCommandDefinition.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Commands/AspireResourceCommandDefinition.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Commands/AspireRootCommand.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Commands/AspireServerCommandDefinition.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Commands/OptionExtensions.cs delete mode 100644 src/Dotnet.Watch/Watch.Aspire/DotNetWatchLauncher.cs delete mode 100644 src/Dotnet.Watch/Watch.Aspire/DotNetWatchOptions.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Host/AspireHostLauncher.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Resource/AspireResourceLauncher.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Resource/LaunchResourceRequest.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Server/AspireServerLauncher.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Server/AspireWatcherLauncher.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Server/ProcessLauncherFactory.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Server/StatusReportingLoggerFactory.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Server/WatchControlCommand.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Server/WatchControlReader.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Server/WatchStatusEvent.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Server/WatchStatusWriter.cs create mode 100644 src/Dotnet.Watch/Watch.Aspire/Utilities/AspireEnvironmentVariables.cs create mode 100644 test/Microsoft.DotNet.HotReload.Test.Utilities/WatchSdkTest.cs rename test/{dotnet-watch.Tests/TestUtilities => Microsoft.DotNet.HotReload.Test.Utilities}/WatchableApp.cs (50%) create mode 100644 test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireHostLauncherCliTests.cs create mode 100644 test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireHostLauncherTests.cs create mode 100644 test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireLauncherTests.cs create mode 100644 test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireResourceLauncherCliTests.cs create mode 100644 test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireServerLauncherCliTests.cs delete mode 100644 test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/DotNetWatchLauncherTests.cs delete mode 100644 test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/DotNetWatchOptionsTests.cs create mode 100644 test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/Utilities/PipeUtilities.cs create mode 100644 test/dotnet-watch.Tests/CommandLine/ProgramTests.Arguments.cs create mode 100644 test/dotnet-watch.Tests/CommandLine/ProgramTests.HostArguments.cs create mode 100644 test/dotnet-watch.Tests/CommandLine/SubcommandTests.cs create mode 100644 test/dotnet-watch.Tests/HotReload/CtrlRTests.cs create mode 100644 test/dotnet-watch.Tests/HotReload/FileExclusionTests.cs create mode 100644 test/dotnet-watch.Tests/HotReload/ProjectUpdateInProcTests.cs create mode 100644 test/dotnet-watch.Tests/HotReload/SourceFileUpdateTests.HotReloadNotSupported.cs delete mode 100644 test/dotnet-watch.Tests/TestUtilities/InProcBuildTestCollection.cs create mode 100644 test/dotnet-watch.Tests/TestUtilities/InProcTestWatcher.cs create mode 100644 test/dotnet-watch.Tests/TestUtilities/TestEventObserver.cs create mode 100644 test/dotnet-watch.Tests/TestUtilities/TestObservableLoggerFactory.cs create mode 100644 test/dotnet-watch.Tests/Watch/FileUpdateTests.cs delete mode 100644 test/dotnet-watch.Tests/Watch/NoDepsAppTests.cs diff --git a/src/Dotnet.Watch/.editorconfig b/src/Dotnet.Watch/.editorconfig new file mode 100644 index 000000000000..54d2f34da8e4 --- /dev/null +++ b/src/Dotnet.Watch/.editorconfig @@ -0,0 +1,26 @@ +# EditorConfig to suppress warnings/errors for Watch solution + +root = false + +[*.cs] +# CA - Code Analysis warnings +dotnet_diagnostic.CA1305.severity = none # Specify IFormatProvider +dotnet_diagnostic.CA1822.severity = none # Mark members as static +dotnet_diagnostic.CA1835.severity = none # Prefer Memory-based overloads for ReadAsync/WriteAsync +dotnet_diagnostic.CA1852.severity = none # Seal internal types +dotnet_diagnostic.CA2007.severity = none # Do not directly await a Task +dotnet_diagnostic.CA2201.severity = none # Do not raise reserved exception types +dotnet_diagnostic.CA2008.severity = none # Do not create tasks without passing a TaskScheduler + +# CS - C# compiler warnings/errors +dotnet_diagnostic.CS1591.severity = none # Missing XML comment for publicly visible type or member +dotnet_diagnostic.CS1573.severity = none # Parameter 'sourceFile' has no matching param tag in the XML comment + +# IDE - IDE/Style warnings +dotnet_diagnostic.IDE0005.severity = none # Using directive is unnecessary +dotnet_diagnostic.IDE0011.severity = none # Add braces +dotnet_diagnostic.IDE0036.severity = none # Order modifiers +dotnet_diagnostic.IDE0060.severity = none # Remove unused parameter +dotnet_diagnostic.IDE0073.severity = none # File header does not match required text +dotnet_diagnostic.IDE0161.severity = none # Convert to file-scoped namespace +dotnet_diagnostic.IDE1006.severity = none # Naming rule violation diff --git a/src/Dotnet.Watch/Directory.Build.props b/src/Dotnet.Watch/Directory.Build.props new file mode 100644 index 000000000000..6fcadbd40f20 --- /dev/null +++ b/src/Dotnet.Watch/Directory.Build.props @@ -0,0 +1,6 @@ + + + + $(RepoRoot)src\Microsoft.DotNet.ProjectTools\ + + diff --git a/src/Dotnet.Watch/HotReloadClient/DefaultHotReloadClient.cs b/src/Dotnet.Watch/HotReloadClient/DefaultHotReloadClient.cs index 9ca5fb9cc271..c07dc05444fe 100644 --- a/src/Dotnet.Watch/HotReloadClient/DefaultHotReloadClient.cs +++ b/src/Dotnet.Watch/HotReloadClient/DefaultHotReloadClient.cs @@ -129,7 +129,7 @@ private async Task ListenForResponsesAsync(CancellationToken cancellationToken) { if (!cancellationToken.IsCancellationRequested) { - Logger.LogError("Failed to read response: {Message}", e.Message); + Logger.LogError("Failed to read response: {Exception}", e.ToString()); } } } diff --git a/src/Dotnet.Watch/HotReloadClient/NamedPipeClientTransport.cs b/src/Dotnet.Watch/HotReloadClient/NamedPipeClientTransport.cs index 2ab6027faf4c..0328c5aa4aca 100644 --- a/src/Dotnet.Watch/HotReloadClient/NamedPipeClientTransport.cs +++ b/src/Dotnet.Watch/HotReloadClient/NamedPipeClientTransport.cs @@ -49,7 +49,7 @@ public override void ConfigureEnvironment(IDictionary env) public override async Task WaitForConnectionAsync(CancellationToken cancellationToken) { - _logger.LogDebug("Waiting for application to connect to pipe {NamedPipeName}.", _namedPipeName); + _logger.LogDebug("Waiting for application to connect to pipe '{NamedPipeName}'.", _namedPipeName); try { diff --git a/src/Dotnet.Watch/Watch.Aspire/AspireLauncher.cs b/src/Dotnet.Watch/Watch.Aspire/AspireLauncher.cs new file mode 100644 index 000000000000..2dee0c755caf --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/AspireLauncher.cs @@ -0,0 +1,52 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch; + +internal abstract class AspireLauncher +{ + public EnvironmentOptions EnvironmentOptions { get; } + public GlobalOptions GlobalOptions { get; } + public PhysicalConsole Console { get; } + public ConsoleReporter Reporter { get; } + public LoggerFactory LoggerFactory { get; } + public ILogger Logger { get; } + + public AspireLauncher(GlobalOptions globalOptions, EnvironmentOptions environmentOptions) + { + GlobalOptions = globalOptions; + EnvironmentOptions = environmentOptions; + Console = new PhysicalConsole(environmentOptions.TestFlags); + Reporter = new ConsoleReporter(Console, environmentOptions.LogMessagePrefix, environmentOptions.SuppressEmojis); + LoggerFactory = new LoggerFactory(Reporter, environmentOptions.CliLogLevel ?? globalOptions.LogLevel); + Logger = LoggerFactory.CreateLogger(DotNetWatchContext.DefaultLogComponentName); + } + + public static AspireLauncher? TryCreate(string[] args) + { + var rootCommand = new AspireRootCommand(); + + var parseResult = rootCommand.Parse(args); + if (parseResult.Errors.Count > 0) + { + foreach (var error in parseResult.Errors) + { + System.Console.Error.WriteLine(error); + } + + return null; + } + + return parseResult.CommandResult.Command switch + { + AspireServerCommandDefinition serverCommand => AspireServerLauncher.TryCreate(parseResult, serverCommand), + AspireResourceCommandDefinition resourceCommand => AspireResourceLauncher.TryCreate(parseResult, resourceCommand), + AspireHostCommandDefinition hostCommand => AspireHostLauncher.TryCreate(parseResult, hostCommand), + _ => throw new InvalidOperationException(), + }; + } + + public abstract Task LaunchAsync(CancellationToken cancellationToken); +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Commands/AspireCommandDefinition.cs b/src/Dotnet.Watch/Watch.Aspire/Commands/AspireCommandDefinition.cs new file mode 100644 index 000000000000..0b3748dc2350 --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Commands/AspireCommandDefinition.cs @@ -0,0 +1,31 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.CommandLine; +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch; + +internal abstract class AspireCommandDefinition : Command +{ + public readonly Option QuietOption = new("--quiet") { Arity = ArgumentArity.Zero }; + public readonly Option VerboseOption = new("--verbose") { Arity = ArgumentArity.Zero }; + + protected AspireCommandDefinition(string name, string description) + : base(name, description) + { + Options.Add(VerboseOption); + Options.Add(QuietOption); + + VerboseOption.Validators.Add(v => + { + if (v.HasOption(QuietOption) && v.HasOption(VerboseOption)) + { + v.AddError("Cannot specify both '--quiet' and '--verbose' options."); + } + }); + } + + public LogLevel GetLogLevel(ParseResult parseResult) + => parseResult.GetValue(QuietOption) ? LogLevel.Warning : parseResult.GetValue(VerboseOption) ? LogLevel.Debug : LogLevel.Information; +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Commands/AspireHostCommandDefinition.cs b/src/Dotnet.Watch/Watch.Aspire/Commands/AspireHostCommandDefinition.cs new file mode 100644 index 000000000000..4475a7fcf2ce --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Commands/AspireHostCommandDefinition.cs @@ -0,0 +1,31 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.CommandLine; + +namespace Microsoft.DotNet.Watch; + +internal sealed class AspireHostCommandDefinition : AspireCommandDefinition +{ + public readonly Option SdkOption = new("--sdk") { Arity = ArgumentArity.ExactlyOne, Required = true, AllowMultipleArgumentsPerToken = false }; + + /// + /// Project or file. + /// + public readonly Option EntryPointOption = new("--entrypoint") { Arity = ArgumentArity.ExactlyOne, Required = true, AllowMultipleArgumentsPerToken = false }; + + public readonly Argument ApplicationArguments = new("arguments") { Arity = ArgumentArity.ZeroOrMore }; + public readonly Option NoLaunchProfileOption = new("--no-launch-profile") { Arity = ArgumentArity.Zero }; + public readonly Option LaunchProfileOption = new("--launch-profile", "-lp") { Arity = ArgumentArity.ExactlyOne }; + + public AspireHostCommandDefinition() + : base("host", "Starts AppHost project.") + { + Arguments.Add(ApplicationArguments); + + Options.Add(SdkOption); + Options.Add(EntryPointOption); + Options.Add(NoLaunchProfileOption); + Options.Add(LaunchProfileOption); + } +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Commands/AspireResourceCommandDefinition.cs b/src/Dotnet.Watch/Watch.Aspire/Commands/AspireResourceCommandDefinition.cs new file mode 100644 index 000000000000..88ead313c6bc --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Commands/AspireResourceCommandDefinition.cs @@ -0,0 +1,87 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.CommandLine; +using System.CommandLine.Parsing; + +namespace Microsoft.DotNet.Watch; + +internal sealed class AspireResourceCommandDefinition : AspireCommandDefinition +{ + public readonly Argument ApplicationArguments = new("arguments") { Arity = ArgumentArity.ZeroOrMore }; + + /// + /// Server pipe name. + /// + public readonly Option ServerOption = new("--server") + { + Arity = ArgumentArity.ExactlyOne, + Required = true, + AllowMultipleArgumentsPerToken = false + }; + + public readonly Option EntryPointOption = new("--entrypoint") + { + Arity = ArgumentArity.ExactlyOne, + Required = true, + AllowMultipleArgumentsPerToken = false + }; + + public readonly Option> EnvironmentOption = new("--environment", "-e") + { + Description = "Environment variables for the process", + CustomParser = ParseEnvironmentVariables, + AllowMultipleArgumentsPerToken = false + }; + + public readonly Option NoLaunchProfileOption = new("--no-launch-profile") { Arity = ArgumentArity.Zero }; + public readonly Option LaunchProfileOption = new("--launch-profile", "-lp") { Arity = ArgumentArity.ExactlyOne }; + + public AspireResourceCommandDefinition() + : base("resource", "Starts resource project.") + { + Arguments.Add(ApplicationArguments); + + Options.Add(ServerOption); + Options.Add(EntryPointOption); + Options.Add(EnvironmentOption); + Options.Add(NoLaunchProfileOption); + Options.Add(LaunchProfileOption); + } + + private static IReadOnlyDictionary ParseEnvironmentVariables(ArgumentResult argumentResult) + { + var result = new Dictionary(PathUtilities.OSSpecificPathComparer); + + List? invalid = null; + + foreach (var token in argumentResult.Tokens) + { + var separator = token.Value.IndexOf('='); + var (name, value) = (separator >= 0) + ? (token.Value[0..separator], token.Value[(separator + 1)..]) + : (token.Value, ""); + + name = name.Trim(); + + if (name != "") + { + result[name] = value; + } + else + { + invalid ??= []; + invalid.Add(token); + } + } + + if (invalid != null) + { + argumentResult.AddError(string.Format( + "Incorrectly formatted environment variables {0}", + string.Join(", ", invalid.Select(x => $"'{x.Value}'")))); + } + + return result; + } +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Commands/AspireRootCommand.cs b/src/Dotnet.Watch/Watch.Aspire/Commands/AspireRootCommand.cs new file mode 100644 index 000000000000..f9d3b6f6b266 --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Commands/AspireRootCommand.cs @@ -0,0 +1,22 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.CommandLine; + +namespace Microsoft.DotNet.Watch; + +internal sealed class AspireRootCommand : RootCommand +{ + public readonly AspireServerCommandDefinition ServerCommand = new(); + public readonly AspireResourceCommandDefinition ResourceCommand = new(); + public readonly AspireHostCommandDefinition HostCommand = new(); + + public AspireRootCommand() + { + Directives.Add(new EnvironmentVariablesDirective()); + + Subcommands.Add(ServerCommand); + Subcommands.Add(ResourceCommand); + Subcommands.Add(HostCommand); + } +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Commands/AspireServerCommandDefinition.cs b/src/Dotnet.Watch/Watch.Aspire/Commands/AspireServerCommandDefinition.cs new file mode 100644 index 000000000000..dfb64002f2ad --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Commands/AspireServerCommandDefinition.cs @@ -0,0 +1,41 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.CommandLine; + +namespace Microsoft.DotNet.Watch; + +internal sealed class AspireServerCommandDefinition : AspireCommandDefinition +{ + /// + /// Server pipe name. + /// + public readonly Option ServerOption = new("--server") { Arity = ArgumentArity.ExactlyOne, Required = true, AllowMultipleArgumentsPerToken = false }; + + public readonly Option SdkOption = new("--sdk") { Arity = ArgumentArity.ExactlyOne, Required = true, AllowMultipleArgumentsPerToken = false }; + + /// + /// Paths to resource projects or entry-point files. + /// + public readonly Option ResourceOption = new("--resource") { Arity = ArgumentArity.OneOrMore, AllowMultipleArgumentsPerToken = true }; + + /// + /// Status pipe name for sending watch status events back to the AppHost. + /// + public readonly Option StatusPipeOption = new("--status-pipe") { Arity = ArgumentArity.ExactlyOne, AllowMultipleArgumentsPerToken = false }; + + /// + /// Control pipe name for receiving commands from the AppHost. + /// + public readonly Option ControlPipeOption = new("--control-pipe") { Arity = ArgumentArity.ExactlyOne, AllowMultipleArgumentsPerToken = false }; + + public AspireServerCommandDefinition() + : base("server", "Starts the dotnet watch server.") + { + Options.Add(ServerOption); + Options.Add(SdkOption); + Options.Add(ResourceOption); + Options.Add(StatusPipeOption); + Options.Add(ControlPipeOption); + } +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Commands/OptionExtensions.cs b/src/Dotnet.Watch/Watch.Aspire/Commands/OptionExtensions.cs new file mode 100644 index 000000000000..2ec5b9f2007d --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Commands/OptionExtensions.cs @@ -0,0 +1,13 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.CommandLine; +using System.CommandLine.Parsing; + +namespace Microsoft.DotNet.Watch; + +internal static class OptionExtensions +{ + public static bool HasOption(this SymbolResult symbolResult, Option option) + => symbolResult.GetResult(option) is OptionResult or && !or.Implicit; +} diff --git a/src/Dotnet.Watch/Watch.Aspire/DotNetWatchLauncher.cs b/src/Dotnet.Watch/Watch.Aspire/DotNetWatchLauncher.cs deleted file mode 100644 index dd56ed47d0c3..000000000000 --- a/src/Dotnet.Watch/Watch.Aspire/DotNetWatchLauncher.cs +++ /dev/null @@ -1,86 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using Microsoft.Extensions.Logging; - -namespace Microsoft.DotNet.Watch; - -internal static class DotNetWatchLauncher -{ - public static async Task RunAsync(string workingDirectory, DotNetWatchOptions options) - { - var globalOptions = new GlobalOptions() - { - LogLevel = options.LogLevel, - NoHotReload = false, - NonInteractive = true, - }; - - var commandArguments = new List(); - if (options.NoLaunchProfile) - { - commandArguments.Add("--no-launch-profile"); - } - - commandArguments.AddRange(options.ApplicationArguments); - - var mainProjectOptions = new ProjectOptions() - { - IsMainProject = true, - Representation = options.Project, - WorkingDirectory = workingDirectory, - LaunchProfileName = options.NoLaunchProfile ? default : null, - Command = "run", - CommandArguments = [.. commandArguments], - LaunchEnvironmentVariables = [], - }; - - var muxerPath = Path.GetFullPath(Path.Combine(options.SdkDirectory, "..", "..", "dotnet" + PathUtilities.ExecutableExtension)); - - // msbuild tasks depend on host path variable: - Environment.SetEnvironmentVariable(EnvironmentVariables.Names.DotnetHostPath, muxerPath); - - var console = new PhysicalConsole(TestFlags.None); - var reporter = new ConsoleReporter(console, suppressEmojis: false); - var environmentOptions = EnvironmentOptions.FromEnvironment(muxerPath); - var processRunner = new ProcessRunner(environmentOptions.GetProcessCleanupTimeout()); - var loggerFactory = new LoggerFactory(reporter, globalOptions.LogLevel); - var logger = loggerFactory.CreateLogger(DotNetWatchContext.DefaultLogComponentName); - - using var context = new DotNetWatchContext() - { - ProcessOutputReporter = reporter, - LoggerFactory = loggerFactory, - Logger = logger, - BuildLogger = loggerFactory.CreateLogger(DotNetWatchContext.BuildLogComponentName), - ProcessRunner = processRunner, - Options = globalOptions, - EnvironmentOptions = environmentOptions, - MainProjectOptions = mainProjectOptions, - RootProjects = [mainProjectOptions.Representation], - BuildArguments = [], - TargetFramework = null, - BrowserRefreshServerFactory = new BrowserRefreshServerFactory(), - BrowserLauncher = new BrowserLauncher(logger, reporter, environmentOptions), - }; - - using var shutdownHandler = new ShutdownHandler(console, logger); - - try - { - var watcher = new HotReloadDotNetWatcher(context, console, runtimeProcessLauncherFactory: null); - await watcher.WatchAsync(shutdownHandler.CancellationToken); - } - catch (OperationCanceledException) when (shutdownHandler.CancellationToken.IsCancellationRequested) - { - // Ctrl+C forced an exit - } - catch (Exception e) - { - logger.LogError("An unexpected error occurred: {Exception}", e.ToString()); - return false; - } - - return true; - } -} diff --git a/src/Dotnet.Watch/Watch.Aspire/DotNetWatchOptions.cs b/src/Dotnet.Watch/Watch.Aspire/DotNetWatchOptions.cs deleted file mode 100644 index 4558d5ba2273..000000000000 --- a/src/Dotnet.Watch/Watch.Aspire/DotNetWatchOptions.cs +++ /dev/null @@ -1,96 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Collections.Immutable; -using System.CommandLine; -using System.CommandLine.Parsing; -using System.Diagnostics.CodeAnalysis; -using Microsoft.Extensions.Logging; - -namespace Microsoft.DotNet.Watch; - -internal sealed class DotNetWatchOptions -{ - /// - /// The .NET SDK directory to load msbuild from (e.g. C:\Program Files\dotnet\sdk\10.0.100). - /// Also used to locate `dotnet` executable. - /// - public required string SdkDirectory { get; init; } - - public required ProjectRepresentation Project { get; init; } - public required ImmutableArray ApplicationArguments { get; init; } - public LogLevel LogLevel { get; init; } - public bool NoLaunchProfile { get; init; } - - public static bool TryParse(string[] args, [NotNullWhen(true)] out DotNetWatchOptions? options) - { - var sdkOption = new Option("--sdk") { Arity = ArgumentArity.ExactlyOne, Required = true, AllowMultipleArgumentsPerToken = false }; - var projectOption = new Option("--project") { Arity = ArgumentArity.ZeroOrOne, AllowMultipleArgumentsPerToken = false }; - var fileOption = new Option("--file") { Arity = ArgumentArity.ZeroOrOne, AllowMultipleArgumentsPerToken = false }; - var quietOption = new Option("--quiet") { Arity = ArgumentArity.Zero }; - var verboseOption = new Option("--verbose") { Arity = ArgumentArity.Zero }; - var noLaunchProfileOption = new Option("--no-launch-profile") { Arity = ArgumentArity.Zero }; - var applicationArguments = new Argument("arguments") { Arity = ArgumentArity.ZeroOrMore }; - - var rootCommand = new RootCommand() - { - Directives = { new EnvironmentVariablesDirective() }, - Options = - { - sdkOption, - projectOption, - fileOption, - quietOption, - verboseOption, - noLaunchProfileOption - }, - Arguments = - { - applicationArguments - } - }; - - rootCommand.Validators.Add(v => - { - if (HasOption(v, quietOption) && HasOption(v, verboseOption)) - { - v.AddError("Cannot specify both '--quiet' and '--verbose' options."); - } - - if (HasOption(v, projectOption) && HasOption(v, fileOption)) - { - v.AddError("Cannot specify both '--file' and '--project' options."); - } - else if (!HasOption(v, projectOption) && !HasOption(v, fileOption)) - { - v.AddError("Must specify either '--file' or '--project' option."); - } - }); - - var parseResult = rootCommand.Parse(args); - if (parseResult.Errors.Count > 0) - { - foreach (var error in parseResult.Errors) - { - Console.Error.WriteLine(error); - } - - options = null; - return false; - } - - options = new DotNetWatchOptions() - { - SdkDirectory = parseResult.GetRequiredValue(sdkOption), - Project = new ProjectRepresentation(projectPath: parseResult.GetValue(projectOption), entryPointFilePath: parseResult.GetValue(fileOption)), - LogLevel = parseResult.GetValue(quietOption) ? LogLevel.Warning : parseResult.GetValue(verboseOption) ? LogLevel.Debug : LogLevel.Information, - ApplicationArguments = [.. parseResult.GetValue(applicationArguments) ?? []], - NoLaunchProfile = parseResult.GetValue(noLaunchProfileOption), - }; - - return true; - } - - private static bool HasOption(SymbolResult symbolResult, Option option) - => symbolResult.GetResult(option) is OptionResult or && !or.Implicit; -} diff --git a/src/Dotnet.Watch/Watch.Aspire/Host/AspireHostLauncher.cs b/src/Dotnet.Watch/Watch.Aspire/Host/AspireHostLauncher.cs new file mode 100644 index 000000000000..bb3c9a92f11f --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Host/AspireHostLauncher.cs @@ -0,0 +1,87 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Immutable; +using System.CommandLine; +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch; + +internal sealed class AspireHostLauncher( + GlobalOptions globalOptions, + EnvironmentOptions environmentOptions, + ProjectRepresentation entryPoint, + ImmutableArray applicationArguments, + Optional launchProfileName) + : AspireWatcherLauncher(globalOptions, environmentOptions) +{ + internal const string LogMessagePrefix = "aspire watch host"; + + public ProjectRepresentation EntryPoint => entryPoint; + public ImmutableArray ApplicationArguments => applicationArguments; + public Optional LaunchProfileName => launchProfileName; + + internal static AspireHostLauncher? TryCreate(ParseResult parseResult, AspireHostCommandDefinition command) + { + var sdkDirectory = parseResult.GetValue(command.SdkOption)!; + var entryPointPath = parseResult.GetValue(command.EntryPointOption)!; + var applicationArguments = parseResult.GetValue(command.ApplicationArguments) ?? []; + var launchProfile = parseResult.GetValue(command.LaunchProfileOption); + var noLaunchProfile = parseResult.GetValue(command.NoLaunchProfileOption); + + var globalOptions = new GlobalOptions() + { + LogLevel = command.GetLogLevel(parseResult), + NoHotReload = false, + NonInteractive = true, + }; + + return new AspireHostLauncher( + globalOptions, + EnvironmentOptions.FromEnvironment(sdkDirectory, LogMessagePrefix), + entryPoint: ProjectRepresentation.FromProjectOrEntryPointFilePath(entryPointPath), + applicationArguments: [.. applicationArguments], + launchProfileName: noLaunchProfile ? Optional.NoValue : launchProfile); + } + + internal ProjectOptions GetProjectOptions() + { + var commandArguments = new List() + { + EntryPoint.IsProjectFile ? "--project" : "--file", + EntryPoint.ProjectOrEntryPointFilePath, + }; + + if (LaunchProfileName.Value != null) + { + commandArguments.Add("--launch-profile"); + commandArguments.Add(LaunchProfileName.Value); + } + else if (!LaunchProfileName.HasValue) + { + commandArguments.Add("--no-launch-profile"); + } + + commandArguments.AddRange(ApplicationArguments); + + return new ProjectOptions() + { + IsMainProject = true, + Representation = EntryPoint, + WorkingDirectory = EnvironmentOptions.WorkingDirectory, + LaunchProfileName = LaunchProfileName, + Command = "run", + CommandArguments = [.. commandArguments], + LaunchEnvironmentVariables = [], + }; + } + + public override async Task LaunchAsync(CancellationToken cancellationToken) + { + return await LaunchWatcherAsync( + rootProjects: [EntryPoint], + LoggerFactory, + processLauncherFactory: null, + cancellationToken); + } +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Microsoft.DotNet.HotReload.Watch.Aspire.csproj b/src/Dotnet.Watch/Watch.Aspire/Microsoft.DotNet.HotReload.Watch.Aspire.csproj index fb08c258b800..3e7fef4bc7c5 100644 --- a/src/Dotnet.Watch/Watch.Aspire/Microsoft.DotNet.HotReload.Watch.Aspire.csproj +++ b/src/Dotnet.Watch/Watch.Aspire/Microsoft.DotNet.HotReload.Watch.Aspire.csproj @@ -22,8 +22,10 @@ + + - + diff --git a/src/Dotnet.Watch/Watch.Aspire/Program.cs b/src/Dotnet.Watch/Watch.Aspire/Program.cs index 37de5ceca579..bb758c667b15 100644 --- a/src/Dotnet.Watch/Watch.Aspire/Program.cs +++ b/src/Dotnet.Watch/Watch.Aspire/Program.cs @@ -1,12 +1,26 @@ -using Microsoft.Build.Locator; +using System.Diagnostics; +using Microsoft.Build.Locator; using Microsoft.DotNet.Watch; -if (!DotNetWatchOptions.TryParse(args, out var options)) +try { - return -1; -} + if (AspireLauncher.TryCreate(args) is not { } launcher) + { + return -1; + } -MSBuildLocator.RegisterMSBuildPath(options.SdkDirectory); + if (launcher.EnvironmentOptions.SdkDirectory != null) + { + MSBuildLocator.RegisterMSBuildPath(launcher.EnvironmentOptions.SdkDirectory); -var workingDirectory = Directory.GetCurrentDirectory(); -return await DotNetWatchLauncher.RunAsync(workingDirectory, options) ? 0 : 1; + // msbuild tasks depend on host path variable: + Environment.SetEnvironmentVariable(EnvironmentVariables.Names.DotnetHostPath, launcher.EnvironmentOptions.GetMuxerPath()); + } + + return await launcher.LaunchAsync(CancellationToken.None); +} +catch (Exception e) +{ + Console.Error.WriteLine($"Unexpected exception: {e}"); + return -1; +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Resource/AspireResourceLauncher.cs b/src/Dotnet.Watch/Watch.Aspire/Resource/AspireResourceLauncher.cs new file mode 100644 index 000000000000..c38f561f1382 --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Resource/AspireResourceLauncher.cs @@ -0,0 +1,158 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Immutable; +using System.CommandLine; +using System.IO.Pipes; +using System.Text.Json; +using Microsoft.DotNet.HotReload; +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch; + +internal sealed class AspireResourceLauncher( + GlobalOptions globalOptions, + EnvironmentOptions environmentOptions, + string serverPipeName, + string entryPoint, + ImmutableArray applicationArguments, + IReadOnlyDictionary environmentVariables, + Optional launchProfileName, + TimeSpan pipeConnectionTimeout) + : AspireLauncher(globalOptions, environmentOptions) +{ + internal const string LogMessagePrefix = "aspire watch resource"; + + public const byte Version = 1; + + // Output message type bytes + public const byte OutputTypeStdout = 1; + public const byte OutputTypeStderr = 2; + + public string ServerPipeName => serverPipeName; + public string EntryPoint => entryPoint; + public ImmutableArray ApplicationArguments => applicationArguments; + public IReadOnlyDictionary EnvironmentVariables => environmentVariables; + public Optional LaunchProfileName => launchProfileName; + + public static AspireResourceLauncher? TryCreate(ParseResult parseResult, AspireResourceCommandDefinition command) + { + var serverPipeName = parseResult.GetValue(command.ServerOption)!; + var entryPointPath = parseResult.GetValue(command.EntryPointOption)!; + var applicationArguments = parseResult.GetValue(command.ApplicationArguments) ?? []; + var environmentVariables = parseResult.GetValue(command.EnvironmentOption) ?? ImmutableDictionary.Empty; + var noLaunchProfile = parseResult.GetValue(command.NoLaunchProfileOption); + var launchProfile = parseResult.GetValue(command.LaunchProfileOption); + + var globalOptions = new GlobalOptions() + { + LogLevel = command.GetLogLevel(parseResult), + NoHotReload = false, + NonInteractive = true, + }; + + return new AspireResourceLauncher( + globalOptions, + // SDK directory is not needed for the resource launcher since it doesn't interact with MSBuild: + EnvironmentOptions.FromEnvironment(sdkDirectory: null, LogMessagePrefix), + serverPipeName: serverPipeName, + entryPoint: entryPointPath, + applicationArguments: [.. applicationArguments], + environmentVariables: environmentVariables, + launchProfileName: noLaunchProfile ? Optional.NoValue : launchProfile, + pipeConnectionTimeout: AspireEnvironmentVariables.PipeConnectionTimeout); + } + + /// + /// Connects to the server via named pipe, sends resource options as JSON, waits for ACK, + /// then stays alive proxying stdout/stderr from the server back to the console. + /// + public override async Task LaunchAsync(CancellationToken cancellationToken) + { + try + { + Logger.LogDebug("Connecting to {ServerPipeName}...", ServerPipeName); + + using var pipeClient = new NamedPipeClientStream( + serverName: ".", + ServerPipeName, + PipeDirection.InOut, + PipeOptions.CurrentUserOnly | PipeOptions.Asynchronous); + + // Timeout ensures we don't hang indefinitely if the server isn't ready or the pipe name is wrong. + using var connectionCancellationSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken); + connectionCancellationSource.CancelAfter(pipeConnectionTimeout); + await pipeClient.ConnectAsync(connectionCancellationSource.Token); + + var request = new LaunchResourceRequest() + { + EntryPoint = EntryPoint, + ApplicationArguments = ApplicationArguments, + EnvironmentVariables = EnvironmentVariables, + LaunchProfileName = LaunchProfileName, + }; + + await pipeClient.WriteAsync(Version, cancellationToken); + + var json = Encoding.UTF8.GetString(JsonSerializer.SerializeToUtf8Bytes(request)); + await pipeClient.WriteAsync(json, cancellationToken); + + // Wait for ACK byte + var status = await pipeClient.ReadByteAsync(cancellationToken); + if (status == 0) + { + Logger.LogDebug("Server closed connection without sending ACK."); + return 1; + } + + Logger.LogDebug("Request sent. Waiting for output..."); + + // Stay alive and proxy output from the server + return await ProxyOutputAsync(pipeClient, cancellationToken); + } + catch (OperationCanceledException) + { + return 0; + } + catch (EndOfStreamException) + { + // Pipe disconnected - server shut down + return 0; + } + catch (Exception ex) + { + Logger.LogDebug("Failed to communicate with server: {Message}", ex.Message); + return 1; + } + } + + private async Task ProxyOutputAsync(NamedPipeClientStream pipe, CancellationToken cancellationToken) + { + while (!cancellationToken.IsCancellationRequested) + { + byte typeByte; + try + { + typeByte = await pipe.ReadByteAsync(cancellationToken); + } + catch (EndOfStreamException) + { + // Pipe closed, server shut down + return 0; + } + + var content = await pipe.ReadStringAsync(cancellationToken); + + var output = typeByte switch + { + OutputTypeStdout => Console.Out, + OutputTypeStderr => Console.Error, + _ => throw new InvalidOperationException($"Unexpected output type: '{typeByte:X2}'") + }; + + output.WriteLine(content); + } + + return 0; + } +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Resource/LaunchResourceRequest.cs b/src/Dotnet.Watch/Watch.Aspire/Resource/LaunchResourceRequest.cs new file mode 100644 index 000000000000..209edaf42f42 --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Resource/LaunchResourceRequest.cs @@ -0,0 +1,14 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Immutable; + +namespace Microsoft.DotNet.Watch; + +internal sealed class LaunchResourceRequest +{ + public required string EntryPoint { get; init; } + public required ImmutableArray ApplicationArguments { get; init; } + public required IReadOnlyDictionary EnvironmentVariables { get; init; } + public required Optional LaunchProfileName { get; init; } +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Server/AspireServerLauncher.cs b/src/Dotnet.Watch/Watch.Aspire/Server/AspireServerLauncher.cs new file mode 100644 index 000000000000..00d40cfecd85 --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Server/AspireServerLauncher.cs @@ -0,0 +1,67 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Immutable; +using System.CommandLine; +using System.Threading.Channels; +using Microsoft.CodeAnalysis.Elfie.Diagnostics; +using Microsoft.DotNet.HotReload; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; +using static System.Runtime.InteropServices.JavaScript.JSType; + +namespace Microsoft.DotNet.Watch; + +internal sealed class AspireServerLauncher( + GlobalOptions globalOptions, + EnvironmentOptions environmentOptions, + string serverPipeName, + ImmutableArray resourcePaths, + string? statusPipeName, + string? controlPipeName) + : AspireWatcherLauncher(globalOptions, environmentOptions) +{ + private const string LogMessagePrefix = "aspire watch server"; + + public string ServerPipeName => serverPipeName; + public ImmutableArray ResourcePaths => resourcePaths; + public string? StatusPipeName => statusPipeName; + public string? ControlPipeName => controlPipeName; + + public static AspireServerLauncher? TryCreate(ParseResult parseResult, AspireServerCommandDefinition command) + { + var serverPipeName = parseResult.GetValue(command.ServerOption)!; + var sdkDirectory = parseResult.GetValue(command.SdkOption)!; + var resourcePaths = parseResult.GetValue(command.ResourceOption) ?? []; + var statusPipeName = parseResult.GetValue(command.StatusPipeOption); + var controlPipeName = parseResult.GetValue(command.ControlPipeOption); + + var globalOptions = new GlobalOptions() + { + LogLevel = command.GetLogLevel(parseResult), + NoHotReload = false, + NonInteractive = true, + }; + + return new AspireServerLauncher( + globalOptions, + EnvironmentOptions.FromEnvironment(sdkDirectory, LogMessagePrefix), + serverPipeName: serverPipeName, + resourcePaths: [.. resourcePaths], + statusPipeName: statusPipeName, + controlPipeName: controlPipeName); + } + + public override async Task LaunchAsync(CancellationToken cancellationToken) + { + await using var statusWriter = StatusPipeName != null ? new WatchStatusWriter(StatusPipeName, Logger) : null; + + var processLauncherFactory = new ProcessLauncherFactory(ServerPipeName, ControlPipeName, statusWriter, launchProfile: null, cancellationToken); + + return await LaunchWatcherAsync( + rootProjects: [.. ResourcePaths.Select(ProjectRepresentation.FromProjectOrEntryPointFilePath)], + statusWriter != null ? new StatusReportingLoggerFactory(statusWriter, LoggerFactory) : LoggerFactory, + processLauncherFactory, + cancellationToken); + } +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Server/AspireWatcherLauncher.cs b/src/Dotnet.Watch/Watch.Aspire/Server/AspireWatcherLauncher.cs new file mode 100644 index 000000000000..0ccc26894288 --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Server/AspireWatcherLauncher.cs @@ -0,0 +1,55 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Immutable; +using Microsoft.CodeAnalysis.Elfie.Diagnostics; +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch; + +internal abstract class AspireWatcherLauncher(GlobalOptions globalOptions, EnvironmentOptions environmentOptions) + : AspireLauncher(globalOptions, environmentOptions) +{ + protected async Task LaunchWatcherAsync( + ImmutableArray rootProjects, + ILoggerFactory loggerFactory, + IRuntimeProcessLauncherFactory? processLauncherFactory, + CancellationToken cancellationToken) + { + var logger = loggerFactory != LoggerFactory + ? loggerFactory.CreateLogger(DotNetWatchContext.DefaultLogComponentName) + : Logger; + + using var context = new DotNetWatchContext() + { + ProcessOutputReporter = Reporter, + LoggerFactory = loggerFactory, + Logger = logger, + BuildLogger = loggerFactory.CreateLogger(DotNetWatchContext.BuildLogComponentName), + ProcessRunner = new ProcessRunner(EnvironmentOptions.GetProcessCleanupTimeout()), + Options = GlobalOptions, + EnvironmentOptions = EnvironmentOptions, + MainProjectOptions = null, + BuildArguments = [], + TargetFramework = null, + RootProjects = rootProjects, + BrowserRefreshServerFactory = new BrowserRefreshServerFactory(), + BrowserLauncher = new BrowserLauncher(logger, Reporter, EnvironmentOptions), + }; + + using var shutdownHandler = new ShutdownHandler(Console, context.Logger); + using var cancellationSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, shutdownHandler.CancellationToken); + + try + { + var watcher = new HotReloadDotNetWatcher(context, Console, processLauncherFactory); + await watcher.WatchAsync(cancellationSource.Token); + } + catch (OperationCanceledException) when (shutdownHandler.CancellationToken.IsCancellationRequested) + { + // Ctrl+C forced an exit + } + + return 0; + } +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Server/ProcessLauncherFactory.cs b/src/Dotnet.Watch/Watch.Aspire/Server/ProcessLauncherFactory.cs new file mode 100644 index 000000000000..8bb1e7548f30 --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Server/ProcessLauncherFactory.cs @@ -0,0 +1,358 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Immutable; +using System.Diagnostics; +using System.IO.Pipes; +using System.Runtime.CompilerServices; +using System.Text.Json; +using System.Threading.Channels; +using Aspire.Tools.Service; +using Microsoft.CodeAnalysis; +using Microsoft.DotNet.HotReload; +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch; + +internal sealed class ProcessLauncherFactory( + string serverPipeName, + string? controlPipeName, + WatchStatusWriter? statusWriter, + Optional launchProfile, + CancellationToken shutdownCancellationToken) : IRuntimeProcessLauncherFactory +{ + public IRuntimeProcessLauncher Create(ProjectLauncher projectLauncher) + { + // Connect to control pipe if provided + var controlReader = controlPipeName != null + ? new WatchControlReader(controlPipeName, projectLauncher.CompilationHandler, projectLauncher.Logger) + : null; + + return new Launcher(serverPipeName, controlReader, projectLauncher, statusWriter, launchProfile, shutdownCancellationToken); + } + + private sealed class Launcher : IRuntimeProcessLauncher + { + private const byte Version = 1; + + private readonly Optional _launchProfileName; + private readonly Task _listenerTask; + private readonly WatchStatusWriter? _statusWriter; + private readonly WatchControlReader? _controlReader; + + private CancellationTokenSource? _disposalCancellationSource; + private ImmutableHashSet _pendingRequestCompletions = []; + private volatile ProjectLauncher _projectLauncher; + + public Launcher( + string serverPipeName, + WatchControlReader? controlReader, + ProjectLauncher projectLauncher, + WatchStatusWriter? statusWriter, + Optional launchProfile, + CancellationToken shutdownCancellationToken) + { + _projectLauncher = projectLauncher; + _statusWriter = statusWriter; + _launchProfileName = launchProfile; + _controlReader = controlReader; + _disposalCancellationSource = CancellationTokenSource.CreateLinkedTokenSource(shutdownCancellationToken); + _listenerTask = StartListeningAsync(serverPipeName, _disposalCancellationSource.Token); + } + + public bool IsDisposed + => _disposalCancellationSource == null; + + private ILogger Logger + => _projectLauncher.Logger; + + public async ValueTask DisposeAsync() + { + var disposalCancellationSource = Interlocked.Exchange(ref _disposalCancellationSource, null); + ObjectDisposedException.ThrowIf(disposalCancellationSource == null, this); + + Logger.LogDebug("Disposing process launcher."); + await disposalCancellationSource.CancelAsync(); + + if (_controlReader != null) + { + await _controlReader.DisposeAsync(); + } + + await _listenerTask; + await Task.WhenAll(_pendingRequestCompletions); + + disposalCancellationSource.Dispose(); + } + + private async Task StartListeningAsync(string pipeName, CancellationToken cancellationToken) + { + try + { + while (!cancellationToken.IsCancellationRequested) + { + NamedPipeServerStream? pipe = null; + try + { + pipe = new NamedPipeServerStream( + pipeName, + PipeDirection.InOut, + NamedPipeServerStream.MaxAllowedServerInstances, + PipeTransmissionMode.Byte, + PipeOptions.Asynchronous | PipeOptions.CurrentUserOnly); + + await pipe.WaitForConnectionAsync(cancellationToken); + + Logger.LogDebug("Connected to '{PipeName}'", pipeName); + + var version = await pipe.ReadByteAsync(cancellationToken); + if (version != Version) + { + Logger.LogDebug("Unsupported protocol version '{Version}'", version); + await pipe.WriteAsync((byte)0, cancellationToken); + continue; + } + + var json = await pipe.ReadStringAsync(cancellationToken); + + var request = JsonSerializer.Deserialize(json) ?? throw new JsonException("Unexpected null"); + + Logger.LogDebug("Request received."); + await pipe.WriteAsync((byte)1, cancellationToken); + + _ = HandleRequestAsync(request, pipe, cancellationToken); + + // Don't dispose the pipe - it's now owned by HandleRequestAsync + // which will keep it alive for output proxying + pipe = null; + } + finally + { + if (pipe != null) + { + await pipe.DisposeAsync(); + } + } + } + } + catch (OperationCanceledException) + { + // nop + } + catch (Exception e) + { + Logger.LogError("Failed to launch resource: {Exception}", e.Message); + } + } + + private async Task HandleRequestAsync(LaunchResourceRequest request, NamedPipeServerStream pipe, CancellationToken cancellationToken) + { + var completionSource = new TaskCompletionSource(); + ImmutableInterlocked.Update(ref _pendingRequestCompletions, set => set.Add(completionSource.Task)); + + // Shared box to track the latest RunningProject across restarts. + // restartOperation creates new RunningProjects — we always need the latest one. + var currentProject = new StrongBox(null); + + // Create a per-connection token that cancels when the pipe disconnects OR on shutdown. + // DCP Stop kills the resource command, which closes the pipe from the other end. + // We detect that by reading from the pipe — when it breaks, we cancel. + using var pipeDisconnectedSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken); + var connectionToken = pipeDisconnectedSource.Token; + + try + { + var projectOptions = GetProjectOptions(request); + + await StartProjectAsync(projectOptions, pipe, currentProject, isRestart: currentProject.Value is not null, connectionToken); + Debug.Assert(currentProject.Value != null); + + var projectLogger = currentProject.Value.ClientLogger; + projectLogger.LogDebug("Waiting for resource to disconnect or relaunch."); + + await WaitForPipeDisconnectAsync(pipe, connectionToken); + + projectLogger.LogDebug("Resource pipe disconnected."); + } + catch (OperationCanceledException) + { + // Shutdown or DCP killed the resource command + } + catch (Exception e) + { + Logger.LogError("Failed to start '{Path}': {Exception}", request.EntryPoint, e.Message); + } + finally + { + // Cancel the connection token so any in-flight restartOperation / drain tasks stop. + await pipeDisconnectedSource.CancelAsync(); + + // Terminate the project process when the resource command disconnects. + // This handles DCP Stop — the resource command is killed, pipe breaks, + // and we clean up the project process the watch server launched. + if (currentProject.Value is { } project) + { + Logger.LogDebug("Pipe disconnected for '{Path}', terminating project process.", request.EntryPoint); + await project.Process.TerminateAsync(); + } + + await pipe.DisposeAsync(); + Logger.LogDebug("HandleRequest completed for '{Path}'.", request.EntryPoint); + } + + ImmutableInterlocked.Update(ref _pendingRequestCompletions, set => set.Remove(completionSource.Task)); + completionSource.SetResult(); + } + + private static async Task WaitForPipeDisconnectAsync(NamedPipeServerStream pipe, CancellationToken cancellationToken) + { + try + { + var buffer = new byte[1]; + while (pipe.IsConnected && !cancellationToken.IsCancellationRequested) + { + var bytesRead = await pipe.ReadAsync(buffer, cancellationToken); + if (bytesRead == 0) + { + break; + } + } + } + catch (IOException) + { + // Pipe disconnected + } + } + + private async ValueTask StartProjectAsync(ProjectOptions projectOptions, NamedPipeServerStream pipe, StrongBox currentProject, bool isRestart, CancellationToken cancellationToken) + { + // Buffer output through a channel to avoid blocking the synchronous onOutput callback. + // The channel is drained asynchronously by DrainOutputChannelAsync which writes to the pipe. + var outputChannel = Channel.CreateUnbounded(new UnboundedChannelOptions + { + SingleReader = true, + SingleWriter = false, + }); + + var outputChannelDrainTask = WriteProcessOutputToPipeAsync(); + + currentProject.Value = await _projectLauncher.TryLaunchProcessAsync( + projectOptions, + onOutput: line => outputChannel.Writer.TryWrite(line), + onExit: async (processId, exitCode) => + { + var isRestarting = currentProject.Value?.IsRestarting == true; + if (exitCode is not null and not 0 && !cancellationToken.IsCancellationRequested && !isRestarting) + { + // Emit a status event for non-zero exit codes so the dashboard shows the crash. + // Skip if cancellation is requested (DCP Stop/shutdown) or if the project + // is being deliberately restarted (rude edit restart). + _statusWriter?.WriteEvent(new WatchStatusEvent + { + Type = WatchStatusEvent.Types.ProcessExited, + Projects = [projectOptions.Representation.ProjectOrEntryPointFilePath], + ExitCode = exitCode, + }); + } + + // DON'T complete the output channel. + // dotnet-watch will auto-retry on crash and reuse the same onOutput callback, + // so new output from the retried process flows through the same channel/pipe. + // Completing the channel would starve the pipe and cause DCP to kill the + // resource command, triggering a disconnect → terminate → reconnect storm. + }, + restartOperation: async cancellationToken => + { + // Complete the old channel so the old drain task finishes before + // StartProjectAsync creates a new channel + drain on the same pipe. + outputChannel.Writer.TryComplete(); + await outputChannelDrainTask; + + await StartProjectAsync(projectOptions, pipe, currentProject, isRestart: true, cancellationToken); + }, + cancellationToken) + ?? throw new InvalidOperationException(); + + // Emit ProcessStarted so the dashboard knows the process is actually running. + _statusWriter?.WriteEvent(new WatchStatusEvent + { + Type = WatchStatusEvent.Types.ProcessStarted, + Projects = [projectOptions.Representation.ProjectOrEntryPointFilePath], + }); + + async Task WriteProcessOutputToPipeAsync() + { + try + { + await foreach (var line in outputChannel.Reader.ReadAllAsync(cancellationToken)) + { + await pipe.WriteAsync(line.IsError ? AspireResourceLauncher.OutputTypeStderr : AspireResourceLauncher.OutputTypeStdout, cancellationToken); + await pipe.WriteAsync(line.Content, cancellationToken); + } + } + catch (Exception ex) when (ex is IOException or ObjectDisposedException or OperationCanceledException) + { + // Pipe disconnected or cancelled + } + } + } + + private ProjectOptions GetProjectOptions(LaunchResourceRequest request) + { + var project = ProjectRepresentation.FromProjectOrEntryPointFilePath(request.EntryPoint); + + return new() + { + IsMainProject = false, + Representation = project, + WorkingDirectory = Path.GetDirectoryName(request.EntryPoint) ?? throw new InvalidOperationException(), + Command = "run", + CommandArguments = GetRunCommandArguments(request, _launchProfileName.Value), + LaunchEnvironmentVariables = request.EnvironmentVariables?.Select(e => (e.Key, e.Value))?.ToArray() ?? [], + LaunchProfileName = request.LaunchProfileName, + }; + } + + // internal for testing + internal static IReadOnlyList GetRunCommandArguments(LaunchResourceRequest request, string? hostLaunchProfile) + { + var arguments = new List(); + + if (!request.LaunchProfileName.HasValue) + { + arguments.Add("--no-launch-profile"); + } + else if (!string.IsNullOrEmpty(request.LaunchProfileName.Value)) + { + arguments.Add("--launch-profile"); + arguments.Add(request.LaunchProfileName.Value); + } + else if (hostLaunchProfile != null) + { + arguments.Add("--launch-profile"); + arguments.Add(hostLaunchProfile); + } + + if (request.ApplicationArguments != null) + { + if (request.ApplicationArguments.Any()) + { + arguments.AddRange(request.ApplicationArguments); + } + else + { + // indicate that no arguments should be used even if launch profile specifies some: + arguments.Add("--no-launch-profile-arguments"); + } + } + + return arguments; + } + + public IEnumerable<(string name, string value)> GetEnvironmentVariables() + => []; + + public ValueTask TerminateLaunchedProcessesAsync(CancellationToken cancellationToken) + => ValueTask.CompletedTask; + } +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Server/StatusReportingLoggerFactory.cs b/src/Dotnet.Watch/Watch.Aspire/Server/StatusReportingLoggerFactory.cs new file mode 100644 index 000000000000..e676a2ff0b7f --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Server/StatusReportingLoggerFactory.cs @@ -0,0 +1,85 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch; + +/// +/// Intercepts select log messages reported by watch and forwards them to to be sent to an external listener. +/// +internal sealed class StatusReportingLoggerFactory(WatchStatusWriter writer, LoggerFactory underlyingFactory) : ILoggerFactory +{ + public void Dispose() + { + } + + public ILogger CreateLogger(string categoryName) + => new Logger(writer, underlyingFactory.CreateLogger(categoryName)); + + public void AddProvider(ILoggerProvider provider) + => underlyingFactory.AddProvider(provider); + + private sealed class Logger(WatchStatusWriter writer, ILogger underlyingLogger) : ILogger + { + public IDisposable? BeginScope(TState state) where TState : notnull + => underlyingLogger.BeginScope(state); + + public bool IsEnabled(LogLevel logLevel) + => logLevel == LogLevel.None || underlyingLogger.IsEnabled(logLevel); + + public void Log(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func formatter) + { + underlyingLogger.Log(logLevel, eventId, state, exception, formatter); + + WatchStatusEvent? status = null; + + if (eventId == MessageDescriptor.BuildStartedNotification.Id) + { + var logState = (LogState>)(object)state!; + + status = new WatchStatusEvent + { + Type = WatchStatusEvent.Types.Building, + Projects = logState.Arguments.Select(r => r.ProjectOrEntryPointFilePath), + }; + } + else if (eventId == MessageDescriptor.BuildCompletedNotification.Id) + { + var logState = (LogState<(IEnumerable projects, bool success)>)(object)state!; + + status = new WatchStatusEvent + { + Type = WatchStatusEvent.Types.BuildComplete, + Projects = logState.Arguments.projects.Select(r => r.ProjectOrEntryPointFilePath), + Success = logState.Arguments.success, + }; + } + else if (eventId == MessageDescriptor.ChangesAppliedToProjectsNotification.Id) + { + var logState = (LogState>)(object)state!; + + status = new WatchStatusEvent + { + Type = WatchStatusEvent.Types.HotReloadApplied, + Projects = logState.Arguments.Select(r => r.ProjectOrEntryPointFilePath), + }; + } + else if (eventId == MessageDescriptor.RestartingProjectsNotification.Id) + { + var logState = (LogState>)(object)state!; + + status = new WatchStatusEvent + { + Type = WatchStatusEvent.Types.Restarting, + Projects = logState.Arguments.Select(r => r.ProjectOrEntryPointFilePath) + }; + } + + if (status != null) + { + writer.WriteEvent(status); + } + } + } +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Server/WatchControlCommand.cs b/src/Dotnet.Watch/Watch.Aspire/Server/WatchControlCommand.cs new file mode 100644 index 000000000000..7b8f554c9a17 --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Server/WatchControlCommand.cs @@ -0,0 +1,24 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Immutable; +using System.Text.Json.Serialization; + +namespace Microsoft.DotNet.Watch; + +internal sealed class WatchControlCommand +{ + [JsonPropertyName("type")] + public required string Type { get; init; } + + /// + /// Paths of projects to restart. + /// + [JsonPropertyName("projects")] + public ImmutableArray Projects { get; init; } + + public static class Types + { + public const string Rebuild = "rebuild"; + } +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Server/WatchControlReader.cs b/src/Dotnet.Watch/Watch.Aspire/Server/WatchControlReader.cs new file mode 100644 index 000000000000..858ec4f8a9b5 --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Server/WatchControlReader.cs @@ -0,0 +1,109 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; +using System.IO.Pipes; +using System.Text.Json; +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch; + +internal sealed class WatchControlReader : IAsyncDisposable +{ + private readonly CompilationHandler _compilationHandler; + private readonly string _pipeName; + private readonly NamedPipeClientStream _pipe; + private readonly ILogger _logger; + private readonly CancellationTokenSource _disposalCancellationSource = new(); + private readonly Task _listener; + + public WatchControlReader(string pipeName, CompilationHandler compilationHandler, ILogger logger) + { + _pipe = new NamedPipeClientStream( + serverName: ".", + pipeName, + PipeDirection.In, + PipeOptions.Asynchronous | PipeOptions.CurrentUserOnly); + + _pipeName = pipeName; + _compilationHandler = compilationHandler; + _logger = logger; + _listener = ListenAsync(_disposalCancellationSource.Token); + } + + public async ValueTask DisposeAsync() + { + _logger.LogDebug("Disposing control pipe."); + + _disposalCancellationSource.Cancel(); + await _listener; + + try + { + await _pipe.DisposeAsync(); + } + catch (IOException) + { + // Pipe may already be broken if the server disconnected + } + } + + private async Task ListenAsync(CancellationToken cancellationToken) + { + try + { + _logger.LogDebug("Connecting to control pipe '{PipeName}'.", _pipeName); + await _pipe.ConnectAsync(cancellationToken); + + using var reader = new StreamReader(_pipe); + + while (!cancellationToken.IsCancellationRequested) + { + var line = await reader.ReadLineAsync(cancellationToken); + if (line is null) + { + return; + } + + var command = JsonSerializer.Deserialize(line); + if (command is null) + { + break; + } + + if (command.Type == WatchControlCommand.Types.Rebuild) + { + _logger.LogDebug("Received request to restart projects"); + await RestartProjectsAsync(command.Projects.Select(ProjectRepresentation.FromProjectOrEntryPointFilePath), cancellationToken); + } + else + { + _logger.LogError("Unknown control command: '{Type}'", command.Type); + } + } + } + catch (Exception e) when (e is OperationCanceledException or ObjectDisposedException or IOException) + { + // expected when disposing or if the server disconnects + } + catch (Exception e) + { + _logger.LogDebug("Control pipe listener failed: {Message}", e.Message); + } + } + + private async ValueTask RestartProjectsAsync(IEnumerable projects, CancellationToken cancellationToken) + { + var projectsToRestart = await _compilationHandler.TerminatePeripheralProcessesAsync(projects.Select(p => p.ProjectGraphPath), cancellationToken); + + foreach (var project in projects) + { + if (!projectsToRestart.Any(p => p.Options.Representation == project)) + { + _compilationHandler.Logger.LogDebug("Restart of '{Project}' requested but the project is not running.", project); + } + } + + await _compilationHandler.RestartPeripheralProjectsAsync(projectsToRestart, cancellationToken); + } +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Server/WatchStatusEvent.cs b/src/Dotnet.Watch/Watch.Aspire/Server/WatchStatusEvent.cs new file mode 100644 index 000000000000..5e96168e1fd9 --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Server/WatchStatusEvent.cs @@ -0,0 +1,38 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Immutable; +using System.Text.Json.Serialization; + +namespace Microsoft.DotNet.Watch; + +internal sealed class WatchStatusEvent +{ + [JsonPropertyName("type")] + public required string Type { get; init; } + + [JsonPropertyName("projects")] + public required IEnumerable Projects { get; init; } + + [JsonPropertyName("success")] + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + public bool? Success { get; init; } + + [JsonPropertyName("error")] + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + public string? Error { get; init; } + + [JsonPropertyName("exitCode")] + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + public int? ExitCode { get; init; } + + public static class Types + { + public const string Building = "building"; + public const string BuildComplete = "build_complete"; + public const string HotReloadApplied = "hot_reload_applied"; + public const string Restarting = "restarting"; + public const string ProcessExited = "process_exited"; + public const string ProcessStarted = "process_started"; + } +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Server/WatchStatusWriter.cs b/src/Dotnet.Watch/Watch.Aspire/Server/WatchStatusWriter.cs new file mode 100644 index 000000000000..a208be7836d5 --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Server/WatchStatusWriter.cs @@ -0,0 +1,88 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; +using System.IO.Pipes; +using System.Reflection.Metadata; +using System.Text.Json; +using System.Threading.Channels; +using Microsoft.CodeAnalysis.Elfie.Diagnostics; +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch; + +internal sealed class WatchStatusWriter : IAsyncDisposable +{ + private readonly Channel _eventChannel = Channel.CreateUnbounded(new() + { + SingleReader = true, + SingleWriter = false + }); + + private readonly string? _pipeName; + private readonly NamedPipeClientStream _pipe; + private readonly ILogger _logger; + private readonly Task _channelReader; + private readonly CancellationTokenSource _disposalCancellationSource = new(); + + public WatchStatusWriter(string pipeName, ILogger logger) + { + _pipe = new NamedPipeClientStream( + serverName: ".", + pipeName, + PipeDirection.Out, + PipeOptions.Asynchronous | PipeOptions.CurrentUserOnly); + + _pipeName = pipeName; + _logger = logger; + _channelReader = StartChannelReaderAsync(_disposalCancellationSource.Token); + } + + public async ValueTask DisposeAsync() + { + _logger.LogDebug("Disposing status pipe."); + + _disposalCancellationSource.Cancel(); + await _channelReader; + + try + { + await _pipe.DisposeAsync(); + } + catch (IOException) + { + // Pipe may already be broken if the server disconnected + } + + _disposalCancellationSource.Dispose(); + } + + private async Task StartChannelReaderAsync(CancellationToken cancellationToken) + { + try + { + _logger.LogDebug("Connecting to status pipe '{PipeName}'...", _pipeName); + + await _pipe.ConnectAsync(cancellationToken); + + using var streamWriter = new StreamWriter(_pipe) { AutoFlush = true }; + + await foreach (var statusEvent in _eventChannel.Reader.ReadAllAsync(cancellationToken)) + { + var json = JsonSerializer.Serialize(statusEvent); + await streamWriter.WriteLineAsync(json.AsMemory(), cancellationToken); + } + } + catch (Exception e) when (e is OperationCanceledException or ObjectDisposedException or IOException) + { + // expected when disposing or if the server disconnects + } + catch (Exception e) + { + _logger.LogError("Unexpected error reading status event: {Exception}", e); + } + } + + public void WriteEvent(WatchStatusEvent statusEvent) + => _eventChannel.Writer.TryWrite(statusEvent); +} diff --git a/src/Dotnet.Watch/Watch.Aspire/Utilities/AspireEnvironmentVariables.cs b/src/Dotnet.Watch/Watch.Aspire/Utilities/AspireEnvironmentVariables.cs new file mode 100644 index 000000000000..ffdd4f424a4b --- /dev/null +++ b/src/Dotnet.Watch/Watch.Aspire/Utilities/AspireEnvironmentVariables.cs @@ -0,0 +1,14 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; +using System.Text; + +namespace Microsoft.DotNet.Watch; + +internal static class AspireEnvironmentVariables +{ + public static TimeSpan PipeConnectionTimeout + => EnvironmentVariables.ReadTimeSpanSeconds("ASPIRE_WATCH_PIPE_CONNECTION_TIMEOUT_SECONDS") ?? TimeSpan.FromSeconds(30); +} diff --git a/src/Dotnet.Watch/Watch/AppModels/WebApplicationAppModel.cs b/src/Dotnet.Watch/Watch/AppModels/WebApplicationAppModel.cs index 6258919dbdd0..b4b72f3b7a64 100644 --- a/src/Dotnet.Watch/Watch/AppModels/WebApplicationAppModel.cs +++ b/src/Dotnet.Watch/Watch/AppModels/WebApplicationAppModel.cs @@ -57,7 +57,7 @@ private static string GetMiddlewareAssemblyPath() logger, context.LoggerFactory, middlewareAssemblyPath: GetMiddlewareAssemblyPath(), - dotnetPath: context.EnvironmentOptions.MuxerPath, + dotnetPath: context.EnvironmentOptions.GetMuxerPath(), webSocketConfig: context.EnvironmentOptions.BrowserWebSocketConfig, suppressTimeouts: context.EnvironmentOptions.TestFlags != TestFlags.None); } diff --git a/src/Dotnet.Watch/Watch/Aspire/AspireServiceFactory.cs b/src/Dotnet.Watch/Watch/Aspire/AspireServiceFactory.cs index 99539e56433d..10d46c189096 100644 --- a/src/Dotnet.Watch/Watch/Aspire/AspireServiceFactory.cs +++ b/src/Dotnet.Watch/Watch/Aspire/AspireServiceFactory.cs @@ -110,7 +110,7 @@ async ValueTask IAspireServerEvents.StartProjectAsync(string dcpId, Proj return sessionId; } - public async ValueTask StartProjectAsync(string dcpId, string sessionId, ProjectOptions projectOptions, bool isRestart, CancellationToken cancellationToken) + public async ValueTask StartProjectAsync(string dcpId, string sessionId, ProjectOptions projectOptions, bool isRestart, CancellationToken cancellationToken) { // Neither request from DCP nor restart should happen once the disposal has started. ObjectDisposedException.ThrowIf(_isDisposed, this); @@ -179,7 +179,6 @@ public async ValueTask StartProjectAsync(string dcpId, string se } _logger.LogDebug("[#{SessionId}] Session started", sessionId); - return runningProject; async Task StartChannelReader(CancellationToken cancellationToken) { diff --git a/src/Dotnet.Watch/Watch/Build/ProjectBuildManager.cs b/src/Dotnet.Watch/Watch/Build/ProjectBuildManager.cs index d7d8ccd9777d..25e12e6a4aa8 100644 --- a/src/Dotnet.Watch/Watch/Build/ProjectBuildManager.cs +++ b/src/Dotnet.Watch/Watch/Build/ProjectBuildManager.cs @@ -20,6 +20,12 @@ internal sealed class ProjectBuildManager(ProjectCollection collection, BuildRep public readonly ProjectCollection Collection = collection; public readonly BuildReporter BuildReporter = reporter; + /// + /// Used by tests to ensure no more than one build is running at a time, which is required by MSBuild. + /// + internal static SemaphoreSlim Test_BuildSemaphore + => s_buildSemaphore; + /// /// Executes the specified build requests. /// diff --git a/src/Dotnet.Watch/Watch/Build/ProjectRepresentation.cs b/src/Dotnet.Watch/Watch/Build/ProjectRepresentation.cs index 76526a8a0cb6..1aa8aedfb682 100644 --- a/src/Dotnet.Watch/Watch/Build/ProjectRepresentation.cs +++ b/src/Dotnet.Watch/Watch/Build/ProjectRepresentation.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Diagnostics.CodeAnalysis; using Microsoft.DotNet.ProjectTools; namespace Microsoft.DotNet.Watch; @@ -8,30 +9,23 @@ namespace Microsoft.DotNet.Watch; /// /// Project can be reprented by project file or by entry point file (for single-file apps). /// -internal readonly struct ProjectRepresentation(string projectGraphPath, string? projectPath, string? entryPointFilePath) +/// Path used in Project Graph (may be virtual). +/// Path to an physical (non-virtual) project, if available. +/// Path to an entry point file, if available. +internal readonly record struct ProjectRepresentation(string ProjectGraphPath, string? PhysicalPath, string? EntryPointFilePath) { - /// - /// Path used in Project Graph (may be virtual). - /// - public readonly string ProjectGraphPath = projectGraphPath; - - /// - /// Path to an physical (non-virtual) project, if available. - /// - public readonly string? PhysicalPath = projectPath; - - /// - /// Path to an entry point file, if available. - /// - public readonly string? EntryPointFilePath = entryPointFilePath; - public ProjectRepresentation(string? projectPath, string? entryPointFilePath) : this(projectPath ?? VirtualProjectBuilder.GetVirtualProjectPath(entryPointFilePath!), projectPath, entryPointFilePath) { } + [MemberNotNullWhen(true, nameof(PhysicalPath))] + [MemberNotNullWhen(false, nameof(EntryPointFilePath))] + public bool IsProjectFile + => PhysicalPath != null; + public string ProjectOrEntryPointFilePath - => PhysicalPath ?? EntryPointFilePath!; + => IsProjectFile ? PhysicalPath : EntryPointFilePath; public string GetContainingDirectory() => Path.GetDirectoryName(ProjectOrEntryPointFilePath)!; @@ -43,4 +37,10 @@ public static ProjectRepresentation FromProjectOrEntryPointFilePath(string proje public ProjectRepresentation WithProjectGraphPath(string projectGraphPath) => new(projectGraphPath, PhysicalPath, EntryPointFilePath); + + public bool Equals(ProjectRepresentation other) + => PathUtilities.OSSpecificPathComparer.Equals(ProjectGraphPath, other.ProjectGraphPath); + + public override int GetHashCode() + => PathUtilities.OSSpecificPathComparer.GetHashCode(ProjectGraphPath); } diff --git a/src/Dotnet.Watch/Watch/Context/EnvironmentOptions.cs b/src/Dotnet.Watch/Watch/Context/EnvironmentOptions.cs index 7a69972fac19..2953e4760c57 100644 --- a/src/Dotnet.Watch/Watch/Context/EnvironmentOptions.cs +++ b/src/Dotnet.Watch/Watch/Context/EnvironmentOptions.cs @@ -28,8 +28,9 @@ internal enum TestFlags internal sealed record EnvironmentOptions( string WorkingDirectory, - string MuxerPath, - TimeSpan? ProcessCleanupTimeout, + string? SdkDirectory, + string LogMessagePrefix, + TimeSpan? ProcessCleanupTimeout = null, bool IsPollingEnabled = false, bool SuppressHandlingStaticWebAssets = false, bool SuppressMSBuildIncrementalism = false, @@ -44,10 +45,11 @@ internal sealed record EnvironmentOptions( TestFlags TestFlags = TestFlags.None, string TestOutput = "") { - public static EnvironmentOptions FromEnvironment(string muxerPath) => new + public static EnvironmentOptions FromEnvironment(string? sdkDirectory, string logMessagePrefix) => new ( WorkingDirectory: Directory.GetCurrentDirectory(), - MuxerPath: ValidateMuxerPath(muxerPath), + SdkDirectory: sdkDirectory, + LogMessagePrefix: logMessagePrefix, ProcessCleanupTimeout: EnvironmentVariables.ProcessCleanupTimeout, IsPollingEnabled: EnvironmentVariables.IsPollingEnabled, SuppressHandlingStaticWebAssets: EnvironmentVariables.SuppressHandlingStaticWebAssets, @@ -68,16 +70,17 @@ public TimeSpan GetProcessCleanupTimeout() // Allow sufficient time for the process to exit gracefully and release resources (e.g., network ports). => ProcessCleanupTimeout ?? TimeSpan.FromSeconds(5); + private readonly string? _muxerPath = SdkDirectory != null + ? Path.GetFullPath(Path.Combine(SdkDirectory, "..", "..", "dotnet" + PathUtilities.ExecutableExtension)) + : null; + + public string GetMuxerPath() + => _muxerPath ?? throw new InvalidOperationException("SDK directory is required to determine muxer path."); + private int _uniqueLogId; public bool RunningAsTest { get => (TestFlags & TestFlags.RunningAsTest) != TestFlags.None; } - private static string ValidateMuxerPath(string path) - { - Debug.Assert(Path.GetFileNameWithoutExtension(path) == "dotnet"); - return path; - } - public string? GetBinLogPath(string projectPath, string operationName, GlobalOptions options) => options.BinaryLogPath != null ? $"{Path.Combine(WorkingDirectory, options.BinaryLogPath)[..^".binlog".Length]}-dotnet-watch.{operationName}.{Path.GetFileName(projectPath)}.{Interlocked.Increment(ref _uniqueLogId)}.binlog" diff --git a/src/Dotnet.Watch/Watch/Context/EnvironmentVariables.cs b/src/Dotnet.Watch/Watch/Context/EnvironmentVariables.cs index ac4dfa5db843..ad9d499e1bb5 100644 --- a/src/Dotnet.Watch/Watch/Context/EnvironmentVariables.cs +++ b/src/Dotnet.Watch/Watch/Context/EnvironmentVariables.cs @@ -42,7 +42,7 @@ public static LogLevel? CliLogLevel public static bool IsPollingEnabled => ReadBool("DOTNET_USE_POLLING_FILE_WATCHER"); public static bool SuppressEmojis => ReadBool("DOTNET_WATCH_SUPPRESS_EMOJIS"); public static bool RestartOnRudeEdit => ReadBool("DOTNET_WATCH_RESTART_ON_RUDE_EDIT"); - public static TimeSpan? ProcessCleanupTimeout => ReadTimeSpan("DOTNET_WATCH_PROCESS_CLEANUP_TIMEOUT_MS"); + public static TimeSpan? ProcessCleanupTimeout => ReadTimeSpanMilliseconds("DOTNET_WATCH_PROCESS_CLEANUP_TIMEOUT_MS"); public static string SdkRootDirectory => #if DEBUG @@ -89,9 +89,12 @@ public static LogLevel? CliLogLevel private static bool ReadBool(string variableName) => ParseBool(Environment.GetEnvironmentVariable(variableName)); - private static TimeSpan? ReadTimeSpan(string variableName) + internal static TimeSpan? ReadTimeSpanMilliseconds(string variableName) => Environment.GetEnvironmentVariable(variableName) is var value && long.TryParse(value, out var intValue) && intValue >= 0 ? TimeSpan.FromMilliseconds(intValue) : null; + internal static TimeSpan? ReadTimeSpanSeconds(string variableName) + => Environment.GetEnvironmentVariable(variableName) is var value && long.TryParse(value, out var intValue) && intValue >= 0 ? TimeSpan.FromSeconds(intValue) : null; + private static int? ReadInt(string variableName) => Environment.GetEnvironmentVariable(variableName) is var value && int.TryParse(value, out var intValue) ? intValue : null; diff --git a/src/Dotnet.Watch/Watch/HotReload/CompilationHandler.cs b/src/Dotnet.Watch/Watch/HotReload/CompilationHandler.cs index 2f44472013f0..91d14e2bc234 100644 --- a/src/Dotnet.Watch/Watch/HotReload/CompilationHandler.cs +++ b/src/Dotnet.Watch/Watch/HotReload/CompilationHandler.cs @@ -28,8 +28,10 @@ internal sealed class CompilationHandler : IDisposable /// /// Projects that have been launched and to which we apply changes. + /// Maps to the list of running instances of that project. /// - private ImmutableDictionary> _runningProjects = ImmutableDictionary>.Empty; + private ImmutableDictionary> _runningProjects + = ImmutableDictionary>.Empty.WithComparers(PathUtilities.OSSpecificPathComparer); /// /// All updates that were attempted. Includes updates whose application failed. @@ -43,7 +45,8 @@ internal sealed class CompilationHandler : IDisposable /// Current set of project instances indexed by . /// Updated whenever the project graph changes. /// - private ImmutableDictionary> _projectInstances = []; + private ImmutableDictionary> _projectInstances + = ImmutableDictionary>.Empty.WithComparers(PathUtilities.OSSpecificPathComparer); public CompilationHandler(DotNetWatchContext context) { @@ -58,7 +61,7 @@ public void Dispose() Workspace?.Dispose(); } - private ILogger Logger + public ILogger Logger => _context.Logger; public async ValueTask TerminatePeripheralProcessesAndDispose(CancellationToken cancellationToken) @@ -81,9 +84,10 @@ private void DiscardPreviousUpdates(ImmutableArray projectsToBeRebuil _previousUpdates = _previousUpdates.RemoveAll(update => projectsToBeRebuilt.Contains(update.ProjectId)); } } + public async ValueTask StartSessionAsync(CancellationToken cancellationToken) { - Logger.Log(MessageDescriptor.HotReloadSessionStarting); + Logger.Log(MessageDescriptor.HotReloadSessionStartingNotification); var solution = Workspace.CurrentSolution; @@ -286,7 +290,7 @@ private async Task HandleRuntimeRudeEditAsync(RunningProject runningProject, str await runningProject.Process.TerminateAsync(); // Creates a new running project and launches it: - await runningProject.RestartOperation(cancellationToken); + await runningProject.RestartAsync(cancellationToken); } catch (Exception e) { @@ -393,10 +397,10 @@ public async ValueTask ApplyManagedCodeAndStaticAssetUpdatesAsync( CancellationToken cancellationToken) { var applyTasks = new List(); + ImmutableDictionary> projectsToUpdate = []; if (managedCodeUpdates is not []) { - ImmutableDictionary> projectsToUpdate; lock (_runningProjectsAndUpdatesGuard) { // Adding the updates makes sure that all new processes receive them before they are added to running processes. @@ -442,34 +446,38 @@ public async ValueTask ApplyManagedCodeAndStaticAssetUpdatesAsync( applyTasks.AddRange(await Task.WhenAll(staticAssetApplyTaskProducers)); // fire and forget: - _ = CompleteApplyOperationAsync(applyTasks, stopwatch, managedCodeUpdates.Count > 0, staticAssetUpdates.Count > 0); - } + _ = CompleteApplyOperationAsync(); - private async Task CompleteApplyOperationAsync(IEnumerable applyTasks, Stopwatch stopwatch, bool hasManagedCodeUpdates, bool hasStaticAssetUpdates) - { - try + async Task CompleteApplyOperationAsync() { - await Task.WhenAll(applyTasks); + try + { + await Task.WhenAll(applyTasks); - var elapsedMilliseconds = stopwatch.ElapsedMilliseconds; + var elapsedMilliseconds = stopwatch.ElapsedMilliseconds; - if (hasManagedCodeUpdates) - { - _context.Logger.Log(MessageDescriptor.ManagedCodeChangesApplied, elapsedMilliseconds); - } + if (managedCodeUpdates.Count > 0) + { + _context.Logger.Log(MessageDescriptor.ManagedCodeChangesApplied, elapsedMilliseconds); + } - if (hasStaticAssetUpdates) - { - _context.Logger.Log(MessageDescriptor.StaticAssetsChangesApplied, elapsedMilliseconds); - } - } - catch (Exception e) - { - // Handle all exceptions since this is a fire-and-forget task. + if (staticAssetUpdates.Count > 0) + { + _context.Logger.Log(MessageDescriptor.StaticAssetsChangesApplied, elapsedMilliseconds); + } - if (e is not OperationCanceledException) + _context.Logger.Log(MessageDescriptor.ChangesAppliedToProjectsNotification, + projectsToUpdate.Select(e => e.Value.First().Options.Representation).Concat( + staticAssetUpdates.Select(e => e.Key.Options.Representation))); + } + catch (Exception e) { - _context.Logger.LogError("Failed to apply managedCodeUpdates: {Exception}", e.ToString()); + // Handle all exceptions since this is a fire-and-forget task. + + if (e is not OperationCanceledException) + { + _context.Logger.LogError("Failed to apply managedCodeUpdates: {Exception}", e.ToString()); + } } } } @@ -838,6 +846,25 @@ internal async ValueTask> TerminatePeripheralProc return projectsToRestart; } + /// + /// Restarts given projects after their process have been terminated via . + /// + internal async Task RestartPeripheralProjectsAsync(IReadOnlyList projectsToRestart, CancellationToken cancellationToken) + { + if (projectsToRestart.Any(p => p.Options.IsMainProject)) + { + throw new InvalidOperationException("Main project can't be restarted."); + } + + _context.Logger.Log(MessageDescriptor.RestartingProjectsNotification, projectsToRestart.Select(p => p.Options.Representation)); + + await Task.WhenAll( + projectsToRestart.Select(async runningProject => runningProject.RestartAsync(cancellationToken))) + .WaitAsync(cancellationToken); + + _context.Logger.Log(MessageDescriptor.ProjectsRestarted, projectsToRestart.Count); + } + private bool RemoveRunningProject(RunningProject project) { var projectPath = project.ProjectNode.ProjectInstance.FullPath; @@ -894,15 +921,10 @@ private static ImmutableDictionary> Crea public async Task UpdateProjectGraphAsync(ProjectGraph projectGraph, CancellationToken cancellationToken) { - Logger.LogInformation("Loading projects ..."); - var stopwatch = Stopwatch.StartNew(); - _projectInstances = CreateProjectInstanceMap(projectGraph); var solution = await Workspace.UpdateProjectGraphAsync([.. projectGraph.EntryPointNodes.Select(n => n.ProjectInstance.FullPath)], cancellationToken); await SolutionUpdatedAsync(solution, "project update", cancellationToken); - - Logger.LogInformation("Projects loaded in {Time}s.", stopwatch.Elapsed.TotalSeconds.ToString("0.0")); } public async Task UpdateFileContentAsync(IReadOnlyList changedFiles, CancellationToken cancellationToken) diff --git a/src/Dotnet.Watch/Watch/HotReload/HotReloadDotNetWatcher.cs b/src/Dotnet.Watch/Watch/HotReload/HotReloadDotNetWatcher.cs index 05c363660763..8f82392d5872 100644 --- a/src/Dotnet.Watch/Watch/HotReload/HotReloadDotNetWatcher.cs +++ b/src/Dotnet.Watch/Watch/HotReload/HotReloadDotNetWatcher.cs @@ -287,11 +287,7 @@ await compilationHandler.GetManagedCodeUpdatesAsync( if (updates.ProjectsToRestart is not []) { - await Task.WhenAll( - updates.ProjectsToRestart.Select(async runningProject => runningProject.RestartOperation(shutdownCancellationToken))) - .WaitAsync(shutdownCancellationToken); - - _context.Logger.Log(MessageDescriptor.ProjectsRestarted, updates.ProjectsToRestart.Count); + await compilationHandler.RestartPeripheralProjectsAsync(updates.ProjectsToRestart, shutdownCancellationToken); } async Task> CaptureChangedFilesSnapshot(IReadOnlyList rebuiltProjects) @@ -881,15 +877,14 @@ private async ValueTask EvaluateProjectGraphAsync(bool restore { cancellationToken.ThrowIfCancellationRequested(); - _context.Logger.LogInformation("Loading projects ..."); + _context.Logger.Log(MessageDescriptor.LoadingProjects); var stopwatch = Stopwatch.StartNew(); var result = await EvaluationResult.TryCreateAsync(_designTimeBuildGraphFactory, _context.Options, _context.EnvironmentOptions, restore, cancellationToken); - var timeDisplay = stopwatch.Elapsed.TotalSeconds.ToString("0.0"); if (result != null) { - _context.Logger.LogInformation("Loaded {ProjectCount} project(s) in {Time}s.", result.ProjectGraph.Graph.ProjectNodes.Count, timeDisplay); + _context.Logger.Log(MessageDescriptor.LoadedProjects, result.ProjectGraph.Graph.ProjectNodes.Count, stopwatch.Elapsed.TotalSeconds); return result; } @@ -907,57 +902,74 @@ internal async Task BuildProjectsAsync(ImmutableArray p.PhysicalPath != null).Select(p => p.PhysicalPath!).ToArray(); + return success; - if (projectPaths is [var singleProjectPath]) + async Task BuildAsync() { - success |= await BuildFileOrProjectOrSolutionAsync(singleProjectPath, cancellationToken); - } - else if (projectPaths is not []) - { - var solutionFile = Path.Combine(Path.GetTempFileName() + ".slnx"); - var solutionElement = new XElement("Solution"); - - foreach (var projectPath in projectPaths) + if (projects is [var singleProject]) { - solutionElement.Add(new XElement("Project", new XAttribute("Path", projectPath))); + return await BuildFileOrProjectOrSolutionAsync(singleProject.ProjectOrEntryPointFilePath, cancellationToken); } - var doc = new XDocument(solutionElement); - doc.Save(solutionFile); + // TODO: workaround for https://github.com/dotnet/sdk/issues/51311 - try + var projectPaths = projects.Where(p => p.PhysicalPath != null).Select(p => p.PhysicalPath!).ToArray(); + + if (projectPaths is [var singleProjectPath]) { - success |= await BuildFileOrProjectOrSolutionAsync(solutionFile, cancellationToken); + if (!await BuildFileOrProjectOrSolutionAsync(singleProjectPath, cancellationToken)) + { + return false; + } } - finally + else if (projectPaths is not []) { + var solutionFile = Path.Combine(Path.GetTempFileName() + ".slnx"); + var solutionElement = new XElement("Solution"); + + foreach (var projectPath in projectPaths) + { + solutionElement.Add(new XElement("Project", new XAttribute("Path", projectPath))); + } + + var doc = new XDocument(solutionElement); + doc.Save(solutionFile); + try { - File.Delete(solutionFile); + if (!await BuildFileOrProjectOrSolutionAsync(solutionFile, cancellationToken)) + { + return false; + } } - catch + finally { - // ignore + try + { + File.Delete(solutionFile); + } + catch + { + // ignore + } } } - } - // To maximize parallelism of building dependencies, build file-based projects after all physical projects: - foreach (var file in projects.Where(p => p.EntryPointFilePath != null).Select(p => p.EntryPointFilePath!)) - { - success |= await BuildFileOrProjectOrSolutionAsync(file, cancellationToken); - } + // To maximize parallelism of building dependencies, build file-based projects after all physical projects: + foreach (var file in projects.Where(p => p.EntryPointFilePath != null).Select(p => p.EntryPointFilePath!)) + { + if (!await BuildFileOrProjectOrSolutionAsync(file, cancellationToken)) + { + return false; + } + } - return success; + return true; + } } private async Task BuildFileOrProjectOrSolutionAsync(string path, CancellationToken cancellationToken) @@ -965,7 +977,7 @@ private async Task BuildFileOrProjectOrSolutionAsync(string path, Cancella List? capturedOutput = _context.EnvironmentOptions.TestFlags != TestFlags.None ? [] : null; var processSpec = new ProcessSpec { - Executable = _context.EnvironmentOptions.MuxerPath, + Executable = _context.EnvironmentOptions.GetMuxerPath(), WorkingDirectory = Path.GetDirectoryName(path), IsUserApplication = false, diff --git a/src/Dotnet.Watch/Watch/Microsoft.DotNet.HotReload.Watch.csproj b/src/Dotnet.Watch/Watch/Microsoft.DotNet.HotReload.Watch.csproj index c43f9e6fac55..5b46ae0b06e7 100644 --- a/src/Dotnet.Watch/Watch/Microsoft.DotNet.HotReload.Watch.csproj +++ b/src/Dotnet.Watch/Watch/Microsoft.DotNet.HotReload.Watch.csproj @@ -31,10 +31,11 @@ + - +
diff --git a/src/Dotnet.Watch/Watch/Process/ProjectLauncher.cs b/src/Dotnet.Watch/Watch/Process/ProjectLauncher.cs index f0357fd1e03e..4e31e8cced3a 100644 --- a/src/Dotnet.Watch/Watch/Process/ProjectLauncher.cs +++ b/src/Dotnet.Watch/Watch/Process/ProjectLauncher.cs @@ -27,6 +27,9 @@ public ILoggerFactory LoggerFactory public EnvironmentOptions EnvironmentOptions => context.EnvironmentOptions; + public CompilationHandler CompilationHandler + => compilationHandler; + public async ValueTask TryLaunchProcessAsync( ProjectOptions projectOptions, Action? onOutput, @@ -51,7 +54,7 @@ public EnvironmentOptions EnvironmentOptions var processSpec = new ProcessSpec { - Executable = EnvironmentOptions.MuxerPath, + Executable = EnvironmentOptions.GetMuxerPath(), IsUserApplication = true, WorkingDirectory = projectOptions.WorkingDirectory, OnOutput = onOutput, @@ -82,7 +85,7 @@ public EnvironmentOptions EnvironmentOptions if (clients.IsManagedAgentSupported && Logger.IsEnabled(LogLevel.Trace)) { environmentBuilder[EnvironmentVariables.Names.HotReloadDeltaClientLogMessages] = - (EnvironmentOptions.SuppressEmojis ? Emoji.Default : Emoji.Agent).GetLogMessagePrefix() + $"[{projectDisplayName}]"; + (EnvironmentOptions.SuppressEmojis ? Emoji.Default : Emoji.Agent).GetLogMessagePrefix(EnvironmentOptions.LogMessagePrefix) + $"[{projectDisplayName}]"; } clients.ConfigureLaunchEnvironment(environmentBuilder); diff --git a/src/Dotnet.Watch/Watch/Process/RunningProject.cs b/src/Dotnet.Watch/Watch/Process/RunningProject.cs index c12294aba562..ca1498aecbc5 100644 --- a/src/Dotnet.Watch/Watch/Process/RunningProject.cs +++ b/src/Dotnet.Watch/Watch/Process/RunningProject.cs @@ -8,7 +8,7 @@ namespace Microsoft.DotNet.Watch { - internal delegate ValueTask RestartOperation(CancellationToken cancellationToken); + internal delegate ValueTask RestartOperation(CancellationToken cancellationToken); internal sealed class RunningProject( ProjectGraphNode projectNode, @@ -27,7 +27,6 @@ internal sealed class RunningProject( public ILogger ClientLogger => clientLogger; public ImmutableArray ManagedCodeUpdateCapabilities => managedCodeUpdateCapabilities; public RunningProcess Process => process; - public RestartOperation RestartOperation => restartOperation; /// /// Set to true when the process termination is being requested so that it can be auto-restarted. @@ -85,5 +84,15 @@ public async Task CompleteApplyOperationAsync(Task applyTask) ClientLogger.LogError("Failed to apply updates to process {Process}: {Exception}", process.Id, e.ToString()); } } + + /// + /// Triggers restart operation. + /// + public async ValueTask RestartAsync(CancellationToken cancellationToken) + { + ClientLogger.Log(MessageDescriptor.ProjectRestarting); + await restartOperation(cancellationToken); + ClientLogger.Log(MessageDescriptor.ProjectRestarted); + } } } diff --git a/src/Dotnet.Watch/Watch/UI/ConsoleReporter.cs b/src/Dotnet.Watch/Watch/UI/ConsoleReporter.cs index 60b156142b08..baa0807958d0 100644 --- a/src/Dotnet.Watch/Watch/UI/ConsoleReporter.cs +++ b/src/Dotnet.Watch/Watch/UI/ConsoleReporter.cs @@ -9,10 +9,8 @@ namespace Microsoft.DotNet.Watch /// This API supports infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// - internal sealed class ConsoleReporter(IConsole console, bool suppressEmojis) : IReporter, IProcessOutputReporter + internal sealed class ConsoleReporter(IConsole console, string logMessagePrefix, bool suppressEmojis) : IReporter, IProcessOutputReporter { - public bool SuppressEmojis { get; } = suppressEmojis; - private readonly Lock _writeLock = new(); bool IProcessOutputReporter.PrefixProcessOutput @@ -31,7 +29,7 @@ private void WriteLine(TextWriter writer, string message, ConsoleColor? color, E lock (_writeLock) { console.ForegroundColor = ConsoleColor.DarkGray; - writer.Write((SuppressEmojis ? Emoji.Default : emoji).GetLogMessagePrefix()); + writer.Write((suppressEmojis ? Emoji.Default : emoji).GetLogMessagePrefix(logMessagePrefix)); console.ResetColor(); if (color.HasValue) diff --git a/src/Dotnet.Watch/Watch/UI/IReporter.cs b/src/Dotnet.Watch/Watch/UI/IReporter.cs index d47cc2910cfc..4e2c7a0f9359 100644 --- a/src/Dotnet.Watch/Watch/UI/IReporter.cs +++ b/src/Dotnet.Watch/Watch/UI/IReporter.cs @@ -3,6 +3,7 @@ using System.Collections.Immutable; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; using Microsoft.DotNet.HotReload; using Microsoft.Extensions.Logging; @@ -52,8 +53,8 @@ public static string ToDisplay(this Emoji emoji) _ => throw new InvalidOperationException() }; - public static string GetLogMessagePrefix(this Emoji emoji) - => $"dotnet watch {emoji.ToDisplay()} "; + public static string GetLogMessagePrefix(this Emoji emoji, string logMessagePrefix) + => $"{logMessagePrefix} {emoji.ToDisplay()} "; public static void Log(this ILogger logger, MessageDescriptor descriptor) => Log(logger, descriptor, default); @@ -96,7 +97,7 @@ public bool IsEnabled(LogLevel logLevel) public void Log(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func formatter) { - if (!IsEnabled(logLevel)) + if (logLevel == LogLevel.None || !IsEnabled(logLevel)) { return; } @@ -133,12 +134,12 @@ public void AddProvider(ILoggerProvider provider) => throw new NotImplementedException(); } - internal abstract class MessageDescriptor(string format, Emoji emoji, LogLevel level, EventId id) + internal abstract class MessageDescriptor(string? format, Emoji emoji, LogLevel level, EventId id) { private static int s_id; private static ImmutableDictionary s_descriptors = []; - public string Format { get; } = format; + public string? Format { get; } = format; public Emoji Emoji { get; } = emoji; public LogLevel Level { get; } = level; public EventId Id { get; } = id; @@ -153,7 +154,14 @@ private static MessageDescriptor Create(string format, Emoji emoji private static MessageDescriptor Create(LogEvent logEvent, Emoji emoji) => Create(logEvent.Id, logEvent.Message, emoji, logEvent.Level); - private static MessageDescriptor Create(EventId id, string format, Emoji emoji, LogLevel level) + /// + /// Creates a descriptor that's only used for notifications not displayed to the user. + /// These can be used for testing or for custom loggers (e.g. Aspire status reporting). + /// + private static MessageDescriptor CreateNotification() + => Create(new EventId(++s_id), format: null, Emoji.Default, LogLevel.None); + + private static MessageDescriptor Create(EventId id, string? format, Emoji emoji, LogLevel level) { var descriptor = new MessageDescriptor(format, emoji, level, id); s_descriptors = s_descriptors.Add(id, descriptor); @@ -176,16 +184,20 @@ public static MessageDescriptor GetDescriptor(EventId id) // predefined messages used for testing: public static readonly MessageDescriptor CommandDoesNotSupportHotReload = Create("Command '{0}' does not support Hot Reload.", Emoji.HotReload, LogLevel.Debug); public static readonly MessageDescriptor HotReloadDisabledByCommandLineSwitch = Create("Hot Reload disabled by command line switch.", Emoji.HotReload, LogLevel.Debug); - public static readonly MessageDescriptor HotReloadSessionStarting = Create("Hot reload session starting.", Emoji.HotReload, LogLevel.None); + public static readonly MessageDescriptor HotReloadSessionStartingNotification = CreateNotification(); public static readonly MessageDescriptor HotReloadSessionStarted = Create("Hot reload session started.", Emoji.HotReload, LogLevel.Debug); public static readonly MessageDescriptor ProjectsRebuilt = Create("Projects rebuilt ({0})", Emoji.HotReload, LogLevel.Debug); public static readonly MessageDescriptor ProjectsRestarted = Create("Projects restarted ({0})", Emoji.HotReload, LogLevel.Debug); + public static readonly MessageDescriptor> RestartingProjectsNotification = CreateNotification>(); + public static readonly MessageDescriptor ProjectRestarting = Create("Restarting ...", Emoji.Watch, LogLevel.Debug); + public static readonly MessageDescriptor ProjectRestarted = Create("Restarted", Emoji.Watch, LogLevel.Debug); public static readonly MessageDescriptor ProjectDependenciesDeployed = Create("Project dependencies deployed ({0})", Emoji.HotReload, LogLevel.Debug); public static readonly MessageDescriptor FixBuildError = Create("Fix the error to continue or press Ctrl+C to exit.", Emoji.Watch, LogLevel.Warning); public static readonly MessageDescriptor WaitingForChanges = Create("Waiting for changes", Emoji.Watch, LogLevel.Information); public static readonly MessageDescriptor<(string, string, int)> LaunchedProcess = Create<(string, string, int)>("Launched '{0}' with arguments '{1}': process id {2}", Emoji.Launch, LogLevel.Debug); public static readonly MessageDescriptor ManagedCodeChangesApplied = Create("C# and Razor changes applied in {0}ms.", Emoji.HotReload, LogLevel.Information); public static readonly MessageDescriptor StaticAssetsChangesApplied = Create("Static asset changes applied in {0}ms.", Emoji.HotReload, LogLevel.Information); + public static readonly MessageDescriptor> ChangesAppliedToProjectsNotification = CreateNotification>(); public static readonly MessageDescriptor SendingUpdateBatch = Create(LogEvents.SendingUpdateBatch, Emoji.HotReload); public static readonly MessageDescriptor UpdateBatchCompleted = Create(LogEvents.UpdateBatchCompleted, Emoji.HotReload); public static readonly MessageDescriptor UpdateBatchFailed = Create(LogEvents.UpdateBatchFailed, Emoji.HotReload); @@ -255,29 +267,40 @@ public static MessageDescriptor GetDescriptor(EventId id) public static readonly MessageDescriptor ApplicationKind_WebSockets = Create("Application kind: WebSockets.", Emoji.Default, LogLevel.Debug); public static readonly MessageDescriptor WatchingFilesForChanges = Create("Watching {0} file(s) for changes", Emoji.Watch, LogLevel.Debug); public static readonly MessageDescriptor WatchingFilesForChanges_FilePath = Create("> {0}", Emoji.Watch, LogLevel.Trace); - public static readonly MessageDescriptor Building = Create("Building {0} ...", Emoji.Default, LogLevel.Information); - public static readonly MessageDescriptor BuildSucceeded = Create("Build succeeded: {0}", Emoji.Default, LogLevel.Information); - public static readonly MessageDescriptor BuildFailed = Create("Build failed: {0}", Emoji.Default, LogLevel.Information); + public static readonly MessageDescriptor LoadingProjects = Create("Loading projects ...", Emoji.Watch, LogLevel.Information); + public static readonly MessageDescriptor<(int, double)> LoadedProjects = Create<(int, double)>("Loaded {0} project(s) in {1:0.0}s.", Emoji.Watch, LogLevel.Information); + public static readonly MessageDescriptor Building = Create("Building {0} ...", Emoji.Default, LogLevel.Debug); + public static readonly MessageDescriptor BuildFailed = Create("Build failed: {0}", Emoji.Default, LogLevel.Debug); + public static readonly MessageDescriptor BuildSucceeded = Create("Build succeeded: {0}", Emoji.Default, LogLevel.Debug); + public static readonly MessageDescriptor> BuildStartedNotification = CreateNotification>(); + public static readonly MessageDescriptor<(IEnumerable projects, bool success)> BuildCompletedNotification = CreateNotification<(IEnumerable projects, bool success)>(); } - internal sealed class MessageDescriptor(string format, Emoji emoji, LogLevel level, EventId id) - : MessageDescriptor(VerifyFormat(format), emoji, level, id) + internal sealed class MessageDescriptor(string? format, Emoji emoji, LogLevel level, EventId id) + : MessageDescriptor(VerifyFormat(format, level), emoji, level, id) { - private static string VerifyFormat(string format) + private static string? VerifyFormat(string? format, LogLevel level) { + Debug.Assert(format is null == level is LogLevel.None); #if DEBUG - var actualArity = format.Count(c => c == '{'); - var expectedArity = typeof(TArgs) == typeof(None) ? 0 - : typeof(TArgs).IsAssignableTo(typeof(ITuple)) ? typeof(TArgs).GenericTypeArguments.Length - : 1; + if (format != null) + { + var actualArity = format.Count(c => c == '{'); + var expectedArity = typeof(TArgs) == typeof(None) ? 0 + : typeof(TArgs).IsAssignableTo(typeof(ITuple)) ? typeof(TArgs).GenericTypeArguments.Length + : 1; - Debug.Assert(actualArity == expectedArity, $"Arguments of format string '{format}' do not match the specified type: {typeof(TArgs)} (actual arity: {actualArity}, expected arity: {expectedArity})"); + Debug.Assert(actualArity == expectedArity, $"Arguments of format string '{format}' do not match the specified type: {typeof(TArgs)} (actual arity: {actualArity}, expected arity: {expectedArity})"); + } #endif return format; } public string GetMessage(TArgs args) - => Id.Id == 0 ? Format : string.Format(Format, LogEvents.GetArgumentValues(args)); + { + Debug.Assert(Format != null); + return Id.Id == 0 ? Format : string.Format(Format, LogEvents.GetArgumentValues(args)); + } } internal interface IProcessOutputReporter diff --git a/src/Dotnet.Watch/dotnet-watch/Program.cs b/src/Dotnet.Watch/dotnet-watch/Program.cs index 32eed20213ff..0e6678dca900 100644 --- a/src/Dotnet.Watch/dotnet-watch/Program.cs +++ b/src/Dotnet.Watch/dotnet-watch/Program.cs @@ -21,6 +21,7 @@ internal sealed class Program( EnvironmentOptions environmentOptions) { public const string LogComponentName = nameof(Program); + private const string LogMessagePrefix = "dotnet watch"; public static async Task Main(string[] args) { @@ -39,16 +40,12 @@ public static async Task Main(string[] args) MSBuildLocator.RegisterMSBuildPath(sdkRootDirectory); + var environmentOptions = EnvironmentOptions.FromEnvironment(sdkRootDirectory, LogMessagePrefix); + // Register listeners that load Roslyn-related assemblies from the `Roslyn/bincore` directory. RegisterAssemblyResolutionEvents(sdkRootDirectory); - - var processPath = Environment.ProcessPath; - Debug.Assert(processPath != null); - - var environmentOptions = EnvironmentOptions.FromEnvironment(processPath); - // msbuild tasks depend on host path variable: - Environment.SetEnvironmentVariable(EnvironmentVariables.Names.DotnetHostPath, environmentOptions.MuxerPath); + Environment.SetEnvironmentVariable(EnvironmentVariables.Names.DotnetHostPath, environmentOptions.GetMuxerPath()); var program = TryCreate( args, @@ -73,7 +70,8 @@ public static async Task Main(string[] args) private static Program? TryCreate(IReadOnlyList args, IConsole console, EnvironmentOptions environmentOptions, out int errorCode) { - var parsingLoggerFactory = new LoggerFactory(new ConsoleReporter(console, environmentOptions.SuppressEmojis), environmentOptions.CliLogLevel ?? LogLevel.Information); + var reporter = new ConsoleReporter(console, environmentOptions.LogMessagePrefix, environmentOptions.SuppressEmojis); + var parsingLoggerFactory = new LoggerFactory(reporter, environmentOptions.CliLogLevel ?? LogLevel.Information); var options = CommandLineOptions.Parse(args, parsingLoggerFactory.CreateLogger(DotNetWatchContext.DefaultLogComponentName), console.Out, out errorCode); if (options == null) { @@ -81,14 +79,12 @@ public static async Task Main(string[] args) return null; } - var logLevel = environmentOptions.CliLogLevel ?? options.GlobalOptions.LogLevel; - var reporter = new ConsoleReporter(console, environmentOptions.SuppressEmojis); - var loggerFactory = new LoggerFactory(reporter, logLevel); + var loggerFactory = new LoggerFactory(reporter, environmentOptions.CliLogLevel ?? options.GlobalOptions.LogLevel); return TryCreate(options, console, environmentOptions, loggerFactory, reporter, out errorCode); } // internal for testing - internal static Program? TryCreate(CommandLineOptions options, IConsole console, EnvironmentOptions environmentOptions, LoggerFactory loggerFactory, IProcessOutputReporter processOutputReporter, out int errorCode) + internal static Program? TryCreate(CommandLineOptions options, IConsole console, EnvironmentOptions environmentOptions, ILoggerFactory loggerFactory, IProcessOutputReporter processOutputReporter, out int errorCode) { var logger = loggerFactory.CreateLogger(DotNetWatchContext.DefaultLogComponentName); diff --git a/src/Dotnet.Watch/dotnet-watch/Watch/DotNetWatcher.cs b/src/Dotnet.Watch/dotnet-watch/Watch/DotNetWatcher.cs index 62c6f6e894fe..650aa1b16ff3 100644 --- a/src/Dotnet.Watch/dotnet-watch/Watch/DotNetWatcher.cs +++ b/src/Dotnet.Watch/dotnet-watch/Watch/DotNetWatcher.cs @@ -50,7 +50,7 @@ public static async Task WatchAsync(DotNetWatchContext context, CancellationToke var processSpec = new ProcessSpec { - Executable = context.EnvironmentOptions.MuxerPath, + Executable = context.EnvironmentOptions.GetMuxerPath(), WorkingDirectory = context.EnvironmentOptions.WorkingDirectory, IsUserApplication = true, Arguments = buildEvaluator.GetProcessArguments(iteration), diff --git a/src/Dotnet.Watch/dotnet-watch/Watch/MsBuildFileSetFactory.cs b/src/Dotnet.Watch/dotnet-watch/Watch/MsBuildFileSetFactory.cs index 5a023d529d73..7217ffcf5366 100644 --- a/src/Dotnet.Watch/dotnet-watch/Watch/MsBuildFileSetFactory.cs +++ b/src/Dotnet.Watch/dotnet-watch/Watch/MsBuildFileSetFactory.cs @@ -55,7 +55,7 @@ internal sealed class EvaluationResult(IReadOnlyDictionary fil var processSpec = new ProcessSpec { - Executable = environmentOptions.MuxerPath, + Executable = environmentOptions.GetMuxerPath(), WorkingDirectory = projectDir, IsUserApplication = false, Arguments = arguments, diff --git a/test/Microsoft.DotNet.HotReload.Test.Utilities/AwaitableProcess.cs b/test/Microsoft.DotNet.HotReload.Test.Utilities/AwaitableProcess.cs index 4ecca0d7bef7..9f38f3af4545 100644 --- a/test/Microsoft.DotNet.HotReload.Test.Utilities/AwaitableProcess.cs +++ b/test/Microsoft.DotNet.HotReload.Test.Utilities/AwaitableProcess.cs @@ -1,38 +1,39 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -#nullable disable - using System.Diagnostics; -using System.Threading.Tasks.Dataflow; +using System.Threading.Channels; using Microsoft.NET.TestFramework.Utilities; -using Xunit.Abstractions; +using Xunit; namespace Microsoft.DotNet.Watch.UnitTests { - internal class AwaitableProcess(ITestOutputHelper logger) : IDisposable + internal sealed class AwaitableProcess : IAsyncDisposable { // cancel just before we hit timeout used on CI (XUnitWorkItemTimeout value in sdk\test\UnitTests.proj) private static readonly TimeSpan s_timeout = Environment.GetEnvironmentVariable("HELIX_WORK_ITEM_TIMEOUT") is { } value - ? TimeSpan.Parse(value).Subtract(TimeSpan.FromSeconds(10)) : TimeSpan.FromMinutes(1); - - private readonly object _testOutputLock = new(); + ? TimeSpan.Parse(value).Subtract(TimeSpan.FromSeconds(10)) : TimeSpan.FromMinutes(10); private readonly List _lines = []; - private readonly BufferBlock _source = new(); - private Process _process; - private bool _disposed; - public IEnumerable Output => _lines; - public int Id => _process.Id; - public Process Process => _process; + private CancellationTokenSource? _disposalCompletionSource = new(); + private readonly CancellationTokenSource _outputCompletionSource = new(); - public void Start(ProcessStartInfo processStartInfo) + private readonly Channel _outputChannel = Channel.CreateUnbounded(new() { - if (_process != null) - { - throw new InvalidOperationException("Already started"); - } + SingleReader = true, + SingleWriter = false + }); + + public int Id { get; } + public Process Process { get; } + public DebugTestOutputLogger Logger { get; } + + private readonly Task _processExitAwaiter; + + public AwaitableProcess(ProcessStartInfo processStartInfo, DebugTestOutputLogger logger) + { + Logger = logger; if (!processStartInfo.UseShellExecute && !RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { @@ -49,141 +50,169 @@ public void Start(ProcessStartInfo processStartInfo) processStartInfo.StandardOutputEncoding = Encoding.UTF8; processStartInfo.StandardErrorEncoding = Encoding.UTF8; - _process = new Process + Process = new Process { EnableRaisingEvents = true, StartInfo = processStartInfo, }; - _process.OutputDataReceived += OnData; - _process.ErrorDataReceived += OnData; - _process.Exited += OnExit; + Process.OutputDataReceived += OnData; + Process.ErrorDataReceived += OnData; + + Process.Start(); - WriteTestOutput($"{DateTime.Now}: starting process: '{_process.StartInfo.FileName} {_process.StartInfo.Arguments}'"); - _process.Start(); - _process.BeginErrorReadLine(); - _process.BeginOutputReadLine(); - WriteTestOutput($"{DateTime.Now}: process started: '{_process.StartInfo.FileName} {_process.StartInfo.Arguments}'"); + Process.BeginErrorReadLine(); + Process.BeginOutputReadLine(); + + try + { + Id = Process.Id; + } + catch + { + } + + _processExitAwaiter = WaitForProcessExitAsync(); } + public IEnumerable Output + => _lines; + public void ClearOutput() => _lines.Clear(); - public async Task GetOutputLineAsync(Predicate success, Predicate failure) + public async Task WaitForProcessExitAsync() { - using var cancellationOnFailure = new CancellationTokenSource(); - - if (!Debugger.IsAttached) - { - cancellationOnFailure.CancelAfter(s_timeout); - } - - var failedLineCount = 0; - while (!_source.Completion.IsCompleted && failedLineCount == 0) + while (true) { try { - while (await _source.OutputAvailableAsync(cancellationOnFailure.Token)) + if (Process.HasExited) { - var line = await _source.ReceiveAsync(cancellationOnFailure.Token); - _lines.Add(line); - if (success(line)) - { - return line; - } - - if (failure(line)) - { - if (failedLineCount == 0) - { - // Limit the time to collect remaining output after a failure to avoid hangs: - cancellationOnFailure.CancelAfter(TimeSpan.FromSeconds(1)); - } - - if (failedLineCount > 100) - { - break; - } - - failedLineCount++; - } + break; } } - catch (OperationCanceledException) when (failedLineCount > 0) + catch { break; } - } - return null; - } + using var iterationCancellationSource = new CancellationTokenSource(); + iterationCancellationSource.CancelAfter(TimeSpan.FromSeconds(1)); - public async Task> GetAllOutputLinesAsync(CancellationToken cancellationToken) - { - var lines = new List(); - while (!_source.Completion.IsCompleted) - { - while (await _source.OutputAvailableAsync(cancellationToken)) + try + { + await Process.WaitForExitAsync(iterationCancellationSource.Token); + break; + } + catch { - lines.Add(await _source.ReceiveAsync(cancellationToken)); } } - return lines; + + Logger.Log($"Process {Id} exited"); + _outputCompletionSource.Cancel(); } - private void OnData(object sender, DataReceivedEventArgs args) + public async Task GetRequiredOutputLineAsync(Predicate selector) { - var line = args.Data ?? string.Empty; - if (line.StartsWith("\x1b]")) - { - // strip terminal logger progress indicators from line - line = line.StripTerminalLoggerProgressIndicators(); - } + var line = await GetOutputLineAsync(selector); - WriteTestOutput(line); - _source.Post(line); + // process terminated without producing required output + Assert.NotNull(line); + + return line; } - private void WriteTestOutput(string text) + public async Task GetOutputLineAsync(Predicate selector) { - lock (_testOutputLock) + var disposalCompletionSource = _disposalCompletionSource; + ObjectDisposedException.ThrowIf(disposalCompletionSource == null, this); + + using var timeoutCancellation = new CancellationTokenSource(); + if (!Debugger.IsAttached) + { + timeoutCancellation.CancelAfter(s_timeout); + } + + using var outputReadCancellation = CancellationTokenSource.CreateLinkedTokenSource( + _outputCompletionSource.Token, + disposalCompletionSource.Token, + timeoutCancellation.Token); + + if (!Debugger.IsAttached) { - if (!_disposed) + outputReadCancellation.CancelAfter(s_timeout); + } + + try + { + while (!outputReadCancellation.IsCancellationRequested) { - logger.WriteLine(text); + var line = await _outputChannel.Reader.ReadAsync(outputReadCancellation.Token); + _lines.Add(line); + if (selector(line)) + { + return line; + } } } - } + catch (OperationCanceledException) + { + if (timeoutCancellation.Token.IsCancellationRequested) + { + Assert.Fail($"Output not found within {s_timeout}"); + } - private void OnExit(object sender, EventArgs args) - { - // Wait to ensure the process has exited and all output consumed - _process.WaitForExit(); + if (disposalCompletionSource.Token.IsCancellationRequested) + { + Assert.Fail($"Test disposed while waiting for output"); + } + } - // Signal test methods waiting on all process output to be completed: - _source.Complete(); + // Read the remaining output that may have been written to + // the channel but not read yet when the process exited. + while (_outputChannel.Reader.TryRead(out var line)) + { + _lines.Add(line); + if (selector(line)) + { + return line; + } + } + + return null; } - public void Dispose() - { - _source.Complete(); + public Task WaitUntilOutputCompleted() + => GetOutputLineAsync(_ => false); - lock (_testOutputLock) + private void OnData(object sender, DataReceivedEventArgs args) + { + var line = args.Data ?? string.Empty; + if (line.StartsWith("\x1b]")) { - _disposed = true; + // strip terminal logger progress indicators from line + line = line.StripTerminalLoggerProgressIndicators(); } - if (_process == null) - { - return; - } + Logger.WriteLine(line); + + Assert.True(_outputChannel.Writer.TryWrite(line)); + } + + public async ValueTask DisposeAsync() + { + var disposalCompletionSource = Interlocked.Exchange(ref _disposalCompletionSource, null); + ObjectDisposedException.ThrowIf(disposalCompletionSource == null, this); + disposalCompletionSource.Cancel(); - _process.ErrorDataReceived -= OnData; - _process.OutputDataReceived -= OnData; + Process.ErrorDataReceived -= OnData; + Process.OutputDataReceived -= OnData; try { - _process.CancelErrorRead(); + Process.CancelErrorRead(); } catch { @@ -191,7 +220,7 @@ public void Dispose() try { - _process.CancelOutputRead(); + Process.CancelOutputRead(); } catch { @@ -199,14 +228,18 @@ public void Dispose() try { - _process.Kill(entireProcessTree: false); + Process.Kill(entireProcessTree: true); } catch { } - _process.Dispose(); - _process = null; + // ensure process has exited + await _processExitAwaiter; + + Process.Dispose(); + + _outputCompletionSource.Dispose(); } } } diff --git a/test/Microsoft.DotNet.HotReload.Test.Utilities/DebugTestOutputLogger.cs b/test/Microsoft.DotNet.HotReload.Test.Utilities/DebugTestOutputLogger.cs index a6f51843881f..411cbb360967 100644 --- a/test/Microsoft.DotNet.HotReload.Test.Utilities/DebugTestOutputLogger.cs +++ b/test/Microsoft.DotNet.HotReload.Test.Utilities/DebugTestOutputLogger.cs @@ -17,10 +17,19 @@ public void Log(string message, [CallerFilePath] string? testPath = null, [Calle public void WriteLine(string message) { Debug.WriteLine(message); - logger.WriteLine(message); + + try + { + logger.WriteLine(message); + } + catch (InvalidOperationException) + { + // test output might have been disposed + } + OnMessage?.Invoke(message); } public void WriteLine(string format, params object[] args) - => WriteLine(string.Format(format, args)); + => WriteLine(string.Format(format, args)); } diff --git a/test/Microsoft.DotNet.HotReload.Test.Utilities/TestLogger.cs b/test/Microsoft.DotNet.HotReload.Test.Utilities/TestLogger.cs index e388919a4672..be7b5f747c80 100644 --- a/test/Microsoft.DotNet.HotReload.Test.Utilities/TestLogger.cs +++ b/test/Microsoft.DotNet.HotReload.Test.Utilities/TestLogger.cs @@ -19,6 +19,11 @@ internal class TestLogger(ITestOutputHelper? output = null) : ILogger public void Log(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func formatter) { + if (logLevel == LogLevel.None) + { + return; + } + var message = $"[{logLevel}] {formatter(state, exception)}"; lock (Guard) diff --git a/test/Microsoft.DotNet.HotReload.Test.Utilities/WatchSdkTest.cs b/test/Microsoft.DotNet.HotReload.Test.Utilities/WatchSdkTest.cs new file mode 100644 index 000000000000..9ec72d8412cb --- /dev/null +++ b/test/Microsoft.DotNet.HotReload.Test.Utilities/WatchSdkTest.cs @@ -0,0 +1,50 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.CompilerServices; +using Microsoft.NET.TestFramework; +using Xunit.Abstractions; + +namespace Microsoft.DotNet.Watch.UnitTests; + +public abstract class WatchSdkTest(ITestOutputHelper logger) + : SdkTest(new DebugTestOutputLogger(logger)) +{ + public TestAssetsManager TestAssets + => _testAssetsManager; + + public DebugTestOutputLogger Logger + => (DebugTestOutputLogger)base.Log; + + public new void Log(string message, [CallerFilePath] string? testPath = null, [CallerLineNumber] int testLine = 0) + => Logger.Log(message, testPath, testLine); + + public void UpdateSourceFile(string path, string text, [CallerFilePath] string? testPath = null, [CallerLineNumber] int testLine = 0) + { + var existed = File.Exists(path); + WriteAllText(path, text); + Log($"File '{path}' " + (existed ? "updated" : "added"), testPath, testLine); + } + + public void UpdateSourceFile(string path, Func contentTransform, [CallerFilePath] string? testPath = null, [CallerLineNumber] int testLine = 0) + => UpdateSourceFile(path, contentTransform(File.ReadAllText(path, Encoding.UTF8)), testPath, testLine); + + /// + /// Replacement for , which fails to write to hidden file + /// + public static void WriteAllText(string path, string text) + { + using var stream = File.Open(path, FileMode.OpenOrCreate); + + using (var writer = new StreamWriter(stream, Encoding.UTF8, leaveOpen: true)) + { + writer.Write(text); + } + + // truncate the rest of the file content: + stream.SetLength(stream.Position); + } + + public void UpdateSourceFile(string path) + => UpdateSourceFile(path, content => content); +} diff --git a/test/dotnet-watch.Tests/TestUtilities/WatchableApp.cs b/test/Microsoft.DotNet.HotReload.Test.Utilities/WatchableApp.cs similarity index 50% rename from test/dotnet-watch.Tests/TestUtilities/WatchableApp.cs rename to test/Microsoft.DotNet.HotReload.Test.Utilities/WatchableApp.cs index 5aca2df2b4c7..f858d5026a27 100644 --- a/test/dotnet-watch.Tests/TestUtilities/WatchableApp.cs +++ b/test/Microsoft.DotNet.HotReload.Test.Utilities/WatchableApp.cs @@ -1,38 +1,45 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -#nullable disable - +using System.Diagnostics; using System.Runtime.CompilerServices; using System.Text.RegularExpressions; +using Microsoft.DotNet.Cli.Utils; +using Microsoft.NET.TestFramework; +using Xunit; +using Xunit.Abstractions; namespace Microsoft.DotNet.Watch.UnitTests { - internal sealed class WatchableApp(DebugTestOutputLogger logger) : IDisposable + internal sealed class WatchableApp( + ITestOutputHelper logger, + string executablePath, + string commandName, + IEnumerable commandArguments) + : IAsyncDisposable { - // Test apps should output this message as soon as they start running: - private const string StartedMessage = "Started"; - - // Test apps should output this message as soon as they exit: - private const string ExitingMessage = "Exiting"; + public static WatchableApp CreateDotnetWatchApp(ITestOutputHelper logger) + => new(logger, TestContext.Current.ToolsetUnderTest.DotNetHostPath, "watch", ["-bl"]); - private const string WatchErrorOutputEmoji = "❌"; - private const string WatchFileChanged = "dotnet watch ⌚ File changed:"; + public DebugTestOutputLogger Logger { get; } = new DebugTestOutputLogger(logger); public TestFlags TestFlags { get; private set; } - public DebugTestOutputLogger Logger => logger; + private AwaitableProcess? _process; - public AwaitableProcess Process { get; private set; } + public AwaitableProcess Process + { + get => _process ?? throw new InvalidOperationException("Process has not been started yet."); + } - public List DotnetWatchArgs { get; } = ["--verbose", "-bl"]; + public List WatchArgs { get; } = [.. commandArguments]; public Dictionary EnvironmentVariables { get; } = []; public void SuppressVerboseLogging() { - // remove default --verbose and -bl args - DotnetWatchArgs.Clear(); + // remove default -bl args + WatchArgs.Clear(); // override the default used for testing ("trace"): EnvironmentVariables.Add("DOTNET_CLI_CONTEXT_VERBOSE", ""); @@ -44,7 +51,7 @@ public void AssertOutputContains(string message) public void AssertOutputContains(Regex pattern) => AssertEx.ContainsPattern(pattern, Process.Output); - public void AssertOutputContains(MessageDescriptor descriptor, string projectDisplay = null) + public void AssertOutputContains(MessageDescriptor descriptor, string? projectDisplay = null) => AssertOutputContains(GetPattern(descriptor, projectDisplay, out _)); public void AssertOutputDoesNotContain(string message) @@ -53,10 +60,10 @@ public void AssertOutputDoesNotContain(string message) public void AssertOutputDoesNotContain(Regex pattern) => AssertEx.DoesNotContainPattern(pattern, Process.Output); - public void AssertOutputDoesNotContain(MessageDescriptor descriptor, string projectDisplay = null) + public void AssertOutputDoesNotContain(MessageDescriptor descriptor, string? projectDisplay = null) => AssertOutputDoesNotContain(GetPattern(descriptor, projectDisplay, out _)); - private static Regex GetPattern(MessageDescriptor descriptor, string projectDisplay, out string patternDisplay) + private static Regex GetPattern(MessageDescriptor descriptor, string? projectDisplay, out string patternDisplay) { var prefix = projectDisplay != null ? $"[{projectDisplay}] " : ""; var pattern = new Regex(Regex.Replace(Regex.Escape(prefix + descriptor.Format), @"\\\{[0-9]+\}", ".*")); @@ -64,100 +71,99 @@ private static Regex GetPattern(MessageDescriptor descriptor, string projectDisp return pattern; } - private void LogFoundOutput(string pattern, string testPath, int testLine) + private void LogFoundOutput(string pattern, string? testPath, int testLine) => Logger.Log($"Found output matching: '{pattern}'", testPath, testLine); - private void LogWaitingForOutput(string pattern, string testPath, int testLine) + private void LogWaitingForOutput(string pattern, string? testPath, int testLine) => Logger.Log($"Waiting for output matching: '{pattern}'", testPath, testLine); - public async ValueTask WaitUntilOutputContains(string text, [CallerFilePath] string testPath = null, [CallerLineNumber] int testLine = 0) + public async ValueTask WaitUntilOutputContains(string text, [CallerFilePath] string? testPath = null, [CallerLineNumber] int testLine = 0) { - if (!Process.Output.Any(line => line.Contains(text))) + var matchingLine = Process.Output.FirstOrDefault(line => line.Contains(text)); + if (matchingLine == null) { LogWaitingForOutput(text, testPath, testLine); - _ = await WaitForOutputLineMatching(line => line.Contains(text)); + matchingLine = await Process.GetRequiredOutputLineAsync(line => line.Contains(text)); } LogFoundOutput(text, testPath, testLine); + return matchingLine; } - public async ValueTask WaitUntilOutputContains(Regex pattern, [CallerFilePath] string testPath = null, [CallerLineNumber] int testLine = 0) + public async ValueTask WaitUntilOutputContains(Regex pattern, [CallerFilePath] string? testPath = null, [CallerLineNumber] int testLine = 0) { var patternDisplay = pattern.ToString(); - if (!Process.Output.Any(line => pattern.IsMatch(line))) + var matchingLine = Process.Output.FirstOrDefault(pattern.IsMatch); + if (matchingLine == null) { LogWaitingForOutput(patternDisplay, testPath, testLine); - _ = await WaitForOutputLineMatching(line => pattern.IsMatch(line)); + matchingLine = await Process.GetRequiredOutputLineAsync(pattern.IsMatch); } LogFoundOutput(patternDisplay, testPath, testLine); + return matchingLine; } - public async ValueTask WaitUntilOutputContains(MessageDescriptor descriptor, string projectDisplay = null, [CallerLineNumber] int testLine = 0, [CallerFilePath] string testPath = null) + public async ValueTask WaitUntilOutputContains(MessageDescriptor descriptor, string? projectDisplay = null, [CallerLineNumber] int testLine = 0, [CallerFilePath] string? testPath = null) { var pattern = GetPattern(descriptor, projectDisplay, out var patternDisplay); + var matchingLine = Process.Output.FirstOrDefault(pattern.IsMatch); - if (!Process.Output.Any(line => pattern.IsMatch(line))) + if (matchingLine == null) { LogWaitingForOutput(patternDisplay, testPath, testLine); - _ = await WaitForOutputLineMatching(line => pattern.IsMatch(line)); + matchingLine = await Process.GetRequiredOutputLineAsync(line => pattern.IsMatch(line)); } LogFoundOutput(patternDisplay, testPath, testLine); + return matchingLine; } - public Task WaitForOutputLineContaining(string text, [CallerFilePath] string testPath = null, [CallerLineNumber] int testLine = 0) + public Task WaitForOutputLineContaining(string text, [CallerFilePath] string? testPath = null, [CallerLineNumber] int testLine = 0) { LogWaitingForOutput(text, testPath, testLine); - var line = Process.GetOutputLineAsync(success: line => line.Contains(text), failure: _ => false); + var line = Process.GetRequiredOutputLineAsync(line => line.Contains(text)); LogFoundOutput(text, testPath, testLine); return line; } - public Task WaitForOutputLineContaining(MessageDescriptor descriptor, string projectDisplay = null, [CallerLineNumber] int testLine = 0, [CallerFilePath] string testPath = null) + public Task WaitForOutputLineContaining(MessageDescriptor descriptor, string? projectDisplay = null, [CallerLineNumber] int testLine = 0, [CallerFilePath] string? testPath = null) { var pattern = GetPattern(descriptor, projectDisplay, out var patternDisplay); LogWaitingForOutput(patternDisplay, testPath, testLine); - var line = Process.GetOutputLineAsync(success: line => pattern.IsMatch(line), failure: _ => false); + var line = Process.GetRequiredOutputLineAsync(line => pattern.IsMatch(line)); LogFoundOutput(patternDisplay, testPath, testLine); return line; } - public Task WaitForOutputLineContaining(Regex pattern, [CallerFilePath] string testPath = null, [CallerLineNumber] int testLine = 0) + public Task WaitForOutputLineContaining(Regex pattern, [CallerFilePath] string? testPath = null, [CallerLineNumber] int testLine = 0) { var patternDisplay = pattern.ToString(); LogWaitingForOutput(patternDisplay, testPath, testLine); - var line = Process.GetOutputLineAsync(success: line => pattern.IsMatch(line), failure: _ => false); + var line = Process.GetRequiredOutputLineAsync(line => pattern.IsMatch(line)); LogFoundOutput(patternDisplay, testPath, testLine); return line; } - private Task WaitForOutputLineMatching(Predicate predicate) - => Process.GetOutputLineAsync(success: predicate, failure: _ => false); - /// /// Asserts that the watched process outputs a line starting with and returns the remainder of that line. /// - public async Task AssertOutputLineStartsWith(string expectedPrefix, Predicate failure = null, [CallerFilePath] string testPath = null, [CallerLineNumber] int testLine = 0) + public async Task AssertOutputLineStartsWith(string expectedPrefix, [CallerFilePath] string? testPath = null, [CallerLineNumber] int testLine = 0) { var display = $"^{expectedPrefix}.*"; LogWaitingForOutput(display, testPath, testLine); - var line = await Process.GetOutputLineAsync( - success: line => line.StartsWith(expectedPrefix, StringComparison.Ordinal), - failure: failure ?? new Predicate(line => line.Contains(WatchErrorOutputEmoji, StringComparison.Ordinal))); + var line = await Process.GetOutputLineAsync(line => line.StartsWith(expectedPrefix, StringComparison.Ordinal)); if (line == null) { - Assert.Fail(failure != null - ? "Encountered failure condition" - : $"Failed to find expected prefix: '{expectedPrefix}'"); + Assert.Fail($"Failed to find expected prefix: '{expectedPrefix}'"); } else { @@ -172,16 +178,58 @@ public async Task AssertOutputLineStartsWith(string expectedPrefix, Pred public async Task AssertOutputLineEquals(string expectedLine) => Assert.Equal("", await AssertOutputLineStartsWith(expectedLine)); - public Task AssertStarted() - => AssertOutputLineEquals(StartedMessage); + public ProcessStartInfo GetProcessStartInfo(string workingDirectory, string testOutputPath, IEnumerable arguments, TestFlags testFlags) + { + var args = new List() + { + commandName + }; + + args.AddRange(WatchArgs); + args.AddRange(arguments); + + var info = new ProcessStartInfo + { + FileName = executablePath, + WorkingDirectory = workingDirectory, + Arguments = ArgumentEscaper.EscapeAndConcatenateArgArrayForProcessStart(args), + UseShellExecute = false, + RedirectStandardInput = false, + }; + + // FileSystemWatcher is unreliable. Use polling for testing to avoid flakiness. + info.Environment.Add("DOTNET_USE_POLLING_FILE_WATCHER", "true"); + info.Environment.Add("__DOTNET_WATCH_TEST_FLAGS", testFlags.ToString()); + info.Environment.Add("__DOTNET_WATCH_TEST_OUTPUT_DIR", testOutputPath); + info.Environment.Add("Microsoft_CodeAnalysis_EditAndContinue_LogDir", testOutputPath); + info.Environment.Add("DOTNET_CLI_CONTEXT_VERBOSE", "trace"); + + // suppress all timeouts: + info.Environment.Add("DCP_IDE_REQUEST_TIMEOUT_SECONDS", "100000"); + info.Environment.Add("DCP_IDE_NOTIFICATION_TIMEOUT_SECONDS", "100000"); + info.Environment.Add("DCP_IDE_NOTIFICATION_KEEPALIVE_SECONDS", "100000"); + info.Environment.Add("ASPIRE_ALLOW_UNSECURED_TRANSPORT", "1"); + info.Environment.Add("ASPIRE_WATCH_PIPE_CONNECTION_TIMEOUT_SECONDS", "100000"); + + // override defaults: + foreach (var (name, value) in EnvironmentVariables) + { + info.Environment[name] = value; + } - public Task AssertFileChanged() - => AssertOutputLineStartsWith(WatchFileChanged); + TestContext.Current.AddTestEnvironmentVariables(info.Environment); - public Task AssertExiting() - => AssertOutputLineStartsWith(ExitingMessage); + return info; + } - public void Start(TestAsset asset, IEnumerable arguments, string relativeProjectDirectory = null, string workingDirectory = null, TestFlags testFlags = TestFlags.RunningAsTest) + public void Start( + TestAsset asset, + IEnumerable arguments, + string? relativeProjectDirectory = null, + string? workingDirectory = null, + TestFlags testFlags = TestFlags.RunningAsTest, + [CallerFilePath] string? testPath = null, + [CallerLineNumber] int testLine = 0) { if (testFlags != TestFlags.None) { @@ -190,43 +238,25 @@ public void Start(TestAsset asset, IEnumerable arguments, string relativ var projectDirectory = (relativeProjectDirectory != null) ? Path.Combine(asset.Path, relativeProjectDirectory) : asset.Path; - var commandSpec = new DotnetCommand(Logger, ["watch", .. DotnetWatchArgs, .. arguments]) - { - WorkingDirectory = workingDirectory ?? projectDirectory, - }; - var testOutputPath = asset.GetWatchTestOutputPath(); Directory.CreateDirectory(testOutputPath); - // FileSystemWatcher is unreliable. Use polling for testing to avoid flakiness. - commandSpec.WithEnvironmentVariable("DOTNET_USE_POLLING_FILE_WATCHER", "true"); + var processStartInfo = GetProcessStartInfo(workingDirectory ?? projectDirectory, testOutputPath, arguments, testFlags); - commandSpec.WithEnvironmentVariable("__DOTNET_WATCH_TEST_FLAGS", testFlags.ToString()); - commandSpec.WithEnvironmentVariable("__DOTNET_WATCH_TEST_OUTPUT_DIR", testOutputPath); - commandSpec.WithEnvironmentVariable("Microsoft_CodeAnalysis_EditAndContinue_LogDir", testOutputPath); - commandSpec.WithEnvironmentVariable("DOTNET_CLI_CONTEXT_VERBOSE", "trace"); + _process = new AwaitableProcess(processStartInfo, Logger); - // suppress all timeouts: - commandSpec.WithEnvironmentVariable("DCP_IDE_REQUEST_TIMEOUT_SECONDS", "100000"); - commandSpec.WithEnvironmentVariable("DCP_IDE_NOTIFICATION_TIMEOUT_SECONDS", "100000"); - commandSpec.WithEnvironmentVariable("DCP_IDE_NOTIFICATION_KEEPALIVE_SECONDS", "100000"); - commandSpec.WithEnvironmentVariable("ASPIRE_ALLOW_UNSECURED_TRANSPORT", "1"); - - foreach (var env in EnvironmentVariables) - { - commandSpec.WithEnvironmentVariable(env.Key, env.Value); - } - - var processStartInfo = commandSpec.GetProcessStartInfo(); - Process = new AwaitableProcess(Logger); - Process.Start(processStartInfo); + Logger.Log($"Process {Process.Id} started: '{processStartInfo.FileName} {processStartInfo.Arguments}'", testPath, testLine); TestFlags = testFlags; } - public void Dispose() + public async ValueTask DisposeAsync() { - Process?.Dispose(); + var process = _process; + if (process != null) + { + await process.DisposeAsync(); + } } public void SendControlC() diff --git a/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireHostLauncherCliTests.cs b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireHostLauncherCliTests.cs new file mode 100644 index 000000000000..b7d9c7f69059 --- /dev/null +++ b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireHostLauncherCliTests.cs @@ -0,0 +1,145 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch.UnitTests; + +public class AspireHostLauncherCliTests +{ + [Fact] + public void RequiredSdkOption() + { + // --sdk option is missing + var args = new[] { "host", "--entrypoint", "proj", "a", "b" }; + var launcher = AspireLauncher.TryCreate(args); + Assert.Null(launcher); + } + + [Fact] + public void RequiredEntryPointOption() + { + // --entrypoint option is missing + var args = new[] { "host", "--sdk", "sdk", "--verbose" }; + var launcher = AspireLauncher.TryCreate(args); + Assert.Null(launcher); + } + + [Fact] + public void ProjectAndSdkPaths() + { + var args = new[] { "host", "--sdk", "sdk", "--entrypoint", "myproject.csproj" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + Assert.Equal("sdk", launcher.EnvironmentOptions.SdkDirectory); + Assert.True(launcher.EntryPoint.IsProjectFile); + Assert.Equal("myproject.csproj", launcher.EntryPoint.PhysicalPath); + Assert.Empty(launcher.ApplicationArguments); + Assert.Equal(LogLevel.Information, launcher.GlobalOptions.LogLevel); + } + + [Fact] + public void FilePath() + { + var args = new[] { "host", "--sdk", "sdk", "--entrypoint", "file.cs" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + Assert.Equal("sdk", launcher.EnvironmentOptions.SdkDirectory); + Assert.False(launcher.EntryPoint.IsProjectFile); + Assert.Equal("file.cs", launcher.EntryPoint.EntryPointFilePath); + Assert.Empty(launcher.ApplicationArguments); + Assert.Equal(LogLevel.Information, launcher.GlobalOptions.LogLevel); + } + + [Fact] + public void ApplicationArguments() + { + var args = new[] { "host", "--sdk", "sdk", "--entrypoint", "proj", "--verbose", "a", "b" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + AssertEx.SequenceEqual(["a", "b"], launcher.ApplicationArguments); + Assert.Equal(LogLevel.Debug, launcher.GlobalOptions.LogLevel); + } + + [Fact] + public void VerboseOption() + { + // With verbose flag + var argsVerbose = new[] { "host", "--sdk", "sdk", "--entrypoint", "proj", "--verbose" }; + var launcherVerbose = Assert.IsType(AspireLauncher.TryCreate(argsVerbose)); + Assert.Equal(LogLevel.Debug, launcherVerbose.GlobalOptions.LogLevel); + + // Without verbose flag + var argsNotVerbose = new[] { "host", "--sdk", "sdk", "--entrypoint", "proj" }; + var launcherNotVerbose = Assert.IsType(AspireLauncher.TryCreate(argsNotVerbose)); + Assert.Equal(LogLevel.Information, launcherNotVerbose.GlobalOptions.LogLevel); + } + + [Fact] + public void QuietOption() + { + // With quiet flag + var argsQuiet = new[] { "host", "--sdk", "sdk", "--entrypoint", "proj", "--quiet" }; + var launcherQuiet = Assert.IsType(AspireLauncher.TryCreate(argsQuiet)); + Assert.Equal(LogLevel.Warning, launcherQuiet.GlobalOptions.LogLevel); + + // Without quiet flag + var argsNotQuiet = new[] { "host", "--sdk", "sdk", "--entrypoint", "proj" }; + var launcherNotQuiet = Assert.IsType(AspireLauncher.TryCreate(argsNotQuiet)); + Assert.Equal(LogLevel.Information, launcherNotQuiet.GlobalOptions.LogLevel); + } + + [Fact] + public void NoLaunchProfileOption() + { + // With no-launch-profile flag + var argsNoProfile = new[] { "host", "--sdk", "sdk", "--entrypoint", "proj", "--no-launch-profile" }; + var launcherNoProfile = Assert.IsType(AspireLauncher.TryCreate(argsNoProfile)); + Assert.False(launcherNoProfile.LaunchProfileName.HasValue); + + // Without no-launch-profile flag + var argsDefault = new[] { "host", "--sdk", "sdk", "--entrypoint", "proj" }; + var launcherDefault = Assert.IsType(AspireLauncher.TryCreate(argsDefault)); + Assert.True(launcherDefault.LaunchProfileName.HasValue); + Assert.Null(launcherDefault.LaunchProfileName.Value); + } + + [Fact] + public void LaunchProfileOption() + { + var args = new[] { "host", "--sdk", "sdk", "--entrypoint", "proj", "--launch-profile", "MyProfile" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + Assert.True(launcher.LaunchProfileName.HasValue); + Assert.Equal("MyProfile", launcher.LaunchProfileName.Value); + } + + [Fact] + public void ConflictingOptions() + { + // Cannot specify both --quiet and --verbose + var args = new[] { "host", "--sdk", "sdk", "--entrypoint", "proj", "--quiet", "--verbose" }; + var launcher = AspireLauncher.TryCreate(args); + Assert.Null(launcher); + } + + [Fact] + public void EntryPoint_MultipleValues() + { + // EntryPoint option should only accept one value; extra values become application arguments + var args = new[] { "host", "--sdk", "sdk", "--entrypoint", "proj1", "proj2" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + Assert.Equal("proj1", launcher.EntryPoint.ProjectOrEntryPointFilePath); + AssertEx.SequenceEqual(["proj2"], launcher.ApplicationArguments); + } + + [Fact] + public void AllOptionsSet() + { + var args = new[] { "host", "--sdk", "sdk", "--entrypoint", "myapp.csproj", "--verbose", "--no-launch-profile", "arg1", "arg2", "arg3" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + + Assert.True(launcher.EntryPoint.IsProjectFile); + Assert.Equal("myapp.csproj", launcher.EntryPoint.PhysicalPath); + Assert.Equal("sdk", launcher.EnvironmentOptions.SdkDirectory); + Assert.Equal(LogLevel.Debug, launcher.GlobalOptions.LogLevel); + Assert.False(launcher.LaunchProfileName.HasValue); + AssertEx.SequenceEqual(["arg1", "arg2", "arg3"], launcher.ApplicationArguments); + } +} diff --git a/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireHostLauncherTests.cs b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireHostLauncherTests.cs new file mode 100644 index 000000000000..52ac55d6cbdf --- /dev/null +++ b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireHostLauncherTests.cs @@ -0,0 +1,156 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Immutable; +using System.CommandLine; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.DotNet.Cli.Utils; +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch.UnitTests; + +public class AspireHostLauncherTests +{ + private static AspireHostLauncher CreateLauncher( + string entryPointPath, + Optional launchProfileName = default, + ImmutableArray applicationArguments = default, + string? workingDirectory = null, + string? sdkDirectory = null) + { + return new AspireHostLauncher( + globalOptions: new GlobalOptions() + { + LogLevel = LogLevel.Information, + NoHotReload = false, + NonInteractive = true, + }, + environmentOptions: new EnvironmentOptions( + WorkingDirectory: workingDirectory ?? "/work", + SdkDirectory: sdkDirectory ?? "/sdk", + LogMessagePrefix: AspireHostLauncher.LogMessagePrefix), + entryPoint: ProjectRepresentation.FromProjectOrEntryPointFilePath(entryPointPath), + applicationArguments: applicationArguments.IsDefault ? [] : applicationArguments, + launchProfileName: launchProfileName); + } + + private static void AssertCommonProperties(ProjectOptions options, AspireHostLauncher launcher) + { + Assert.True(options.IsMainProject); + Assert.Equal("run", options.Command); + Assert.Equal(launcher.EntryPoint, options.Representation); + Assert.Empty(options.LaunchEnvironmentVariables); + } + + [Fact] + public void GetProjectOptions_ProjectFile_UsesProjectFlag() + { + var launcher = CreateLauncher("myapp.csproj"); + + var options = launcher.GetProjectOptions(); + + AssertCommonProperties(options, launcher); + Assert.False(options.LaunchProfileName.HasValue); + AssertEx.SequenceEqual(["--project", "myapp.csproj", "--no-launch-profile"], options.CommandArguments); + } + + [Fact] + public void GetProjectOptions_EntryPointFile_UsesFileFlag() + { + var launcher = CreateLauncher("Program.cs"); + + var options = launcher.GetProjectOptions(); + + AssertCommonProperties(options, launcher); + Assert.False(options.LaunchProfileName.HasValue); + AssertEx.SequenceEqual(["--file", "Program.cs", "--no-launch-profile"], options.CommandArguments); + } + + [Fact] + public void GetProjectOptions_WithLaunchProfile_AddsLaunchProfileArguments() + { + var launcher = CreateLauncher("myapp.csproj", launchProfileName: "MyProfile"); + + var options = launcher.GetProjectOptions(); + + AssertCommonProperties(options, launcher); + Assert.True(options.LaunchProfileName.HasValue); + Assert.Equal("MyProfile", options.LaunchProfileName.Value); + AssertEx.SequenceEqual(["--project", "myapp.csproj", "--launch-profile", "MyProfile"], options.CommandArguments); + } + + [Fact] + public void GetProjectOptions_NoLaunchProfile_AddsNoLaunchProfileFlag() + { + var launcher = CreateLauncher("myapp.csproj", launchProfileName: Optional.NoValue); + + var options = launcher.GetProjectOptions(); + + AssertCommonProperties(options, launcher); + Assert.False(options.LaunchProfileName.HasValue); + AssertEx.SequenceEqual(["--project", "myapp.csproj", "--no-launch-profile"], options.CommandArguments); + } + + [Fact] + public void GetProjectOptions_NullLaunchProfile_UsesDefault() + { + // null value (HasValue=true) means use default launch profile - no --launch-profile or --no-launch-profile flag + var launcher = CreateLauncher("myapp.csproj", launchProfileName: (string?)null); + + var options = launcher.GetProjectOptions(); + + AssertCommonProperties(options, launcher); + Assert.True(options.LaunchProfileName.HasValue); + Assert.Null(options.LaunchProfileName.Value); + AssertEx.SequenceEqual(["--project", "myapp.csproj"], options.CommandArguments); + } + + [Fact] + public void GetProjectOptions_WithApplicationArguments_AppendsArguments() + { + var launcher = CreateLauncher("myapp.csproj", launchProfileName: "Profile", applicationArguments: ["arg1", "arg2"]); + + var options = launcher.GetProjectOptions(); + + AssertCommonProperties(options, launcher); + Assert.True(options.LaunchProfileName.HasValue); + Assert.Equal("Profile", options.LaunchProfileName.Value); + AssertEx.SequenceEqual(["--project", "myapp.csproj", "--launch-profile", "Profile", "arg1", "arg2"], options.CommandArguments); + } + + [Fact] + public void GetProjectOptions_SetsCustomWorkingDirectory() + { + var launcher = CreateLauncher("myapp.csproj", workingDirectory: "/custom/path"); + + var options = launcher.GetProjectOptions(); + + AssertCommonProperties(options, launcher); + Assert.Equal("/custom/path", options.WorkingDirectory); + } + + [Fact] + public void GetProjectOptions_EntryPointFile_WithLaunchProfileAndArguments() + { + var launcher = CreateLauncher("Program.cs", launchProfileName: "Dev", applicationArguments: ["--port", "8080"]); + + var options = launcher.GetProjectOptions(); + + AssertCommonProperties(options, launcher); + Assert.True(options.LaunchProfileName.HasValue); + Assert.Equal("Dev", options.LaunchProfileName.Value); + AssertEx.SequenceEqual(["--file", "Program.cs", "--launch-profile", "Dev", "--port", "8080"], options.CommandArguments); + } + + [Fact] + public void GetProjectOptions_NoLaunchProfile_WithApplicationArguments() + { + var launcher = CreateLauncher("myapp.csproj", launchProfileName: Optional.NoValue, applicationArguments: ["--urls", "http://localhost:5000"]); + + var options = launcher.GetProjectOptions(); + + AssertCommonProperties(options, launcher); + Assert.False(options.LaunchProfileName.HasValue); + AssertEx.SequenceEqual(["--project", "myapp.csproj", "--no-launch-profile", "--urls", "http://localhost:5000"], options.CommandArguments); + } +} diff --git a/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireLauncherTests.cs b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireLauncherTests.cs new file mode 100644 index 000000000000..6a02ec6ab4c8 --- /dev/null +++ b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireLauncherTests.cs @@ -0,0 +1,145 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; +using System.IO.Pipes; +using System.Reflection.Metadata; +using System.Text.Json; +using Elfie.Serialization; +using Xunit.Runners; + +namespace Microsoft.DotNet.Watch.UnitTests; + +public class AspireLauncherTests(ITestOutputHelper logger) : WatchSdkTest(logger) +{ + private WatchableApp CreateHostApp() + => new( + Logger, + executablePath: Path.ChangeExtension(typeof(AspireLauncher).Assembly.Location, PathUtilities.ExecutableExtension).TrimEnd('.'), + commandName: "host", + commandArguments: ["--sdk", TestContext.Current.ToolsetUnderTest.SdkFolderUnderTest]); + + private WatchableApp CreateServerApp(string serverPipe) + => new( + Logger, + executablePath: Path.ChangeExtension(typeof(AspireLauncher).Assembly.Location, PathUtilities.ExecutableExtension).TrimEnd('.'), + commandName: "server", + commandArguments: ["--sdk", TestContext.Current.ToolsetUnderTest.SdkFolderUnderTest, "--server", serverPipe]); + + private WatchableApp CreateResourceApp(string serverPipe) + => new( + Logger, + executablePath: Path.ChangeExtension(typeof(AspireLauncher).Assembly.Location, PathUtilities.ExecutableExtension).TrimEnd('.'), + commandName: "resource", + commandArguments: ["--server", serverPipe]); + + [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.Linux)] // https://github.com/dotnet/sdk/issues/53061 + public async Task Host() + { + var testAsset = _testAssetsManager.CopyTestAsset("WatchAppWithProjectDeps") + .WithSource(); + + var projectDir = Path.Combine(testAsset.Path, "AppWithDeps"); + var projectPath = Path.Combine(projectDir, "App.WithDeps.csproj"); + + await using var host = CreateHostApp(); + host.Start(testAsset, ["--entrypoint", projectPath]); + + await host.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + } + + [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.Linux)] // https://github.com/dotnet/sdk/issues/53061 + public async Task ServerAndResources() + { + var testAsset = _testAssetsManager.CopyTestAsset("WatchAppMultiProc") + .WithSource(); + + var tfm = ToolsetInfo.CurrentTargetFramework; + var serviceDirA = Path.Combine(testAsset.Path, "ServiceA"); + var serviceProjectA = Path.Combine(serviceDirA, "A.csproj"); + var serviceDirB = Path.Combine(testAsset.Path, "ServiceB"); + var serviceProjectB = Path.Combine(serviceDirB, "B.csproj"); + var libDir = Path.Combine(testAsset.Path, "Lib"); + var libSource = Path.Combine(libDir, "Lib.cs"); + + var pipeId = Guid.NewGuid(); + var serverPipe = $"SERVER_{pipeId:N}"; + var statusPipeName = $"STATUS_{pipeId:N}"; + var controlPipeName = $"CONTROL_{pipeId:N}"; + + await using var server = CreateServerApp(serverPipe); + await using var serviceA = CreateResourceApp(serverPipe); + await using var serviceB = CreateResourceApp(serverPipe); + + // resource can be started before the server, they will wait for the server to start: + serviceA.Start(testAsset, ["--entrypoint", serviceProjectA]); + serviceB.Start(testAsset, ["--entrypoint", serviceProjectB]); + + using var statusCancellationSource = new CancellationTokenSource(); + var statusReaderTask = PipeUtilities.ReadStatusEventsAsync(statusPipeName, statusCancellationSource.Token); + + server.Start(testAsset, + [ + "--status-pipe", statusPipeName, + "--control-pipe", controlPipeName, + "--resource", serviceProjectA, + "--resource", serviceProjectB, + ]); + + await server.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + + // valid code change: + UpdateSourceFile(libSource, """ + using System; + + public class Lib + { + public static void Common() + { + Console.WriteLine(""); + } + } + """); + + await server.WaitUntilOutputContains(MessageDescriptor.ManagedCodeChangesApplied); + await serviceA.WaitUntilOutputContains(""); + await serviceB.WaitUntilOutputContains(""); + + server.Process.ClearOutput(); + serviceA.Process.ClearOutput(); + serviceB.Process.ClearOutput(); + + using var controlPipe = new NamedPipeServerStream(controlPipeName, PipeDirection.Out, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous | PipeOptions.CurrentUserOnly); + await controlPipe.WaitForConnectionAsync(); + using var controlPipeWriter = new StreamWriter(controlPipe) { AutoFlush = true }; + + // restart resource process: + await controlPipeWriter.WriteLineAsync(JsonSerializer.Serialize(new WatchControlCommand() + { + Type = WatchControlCommand.Types.Rebuild, + Projects = [serviceProjectA], + })); + + await server.WaitUntilOutputContains("Received request to restart projects"); + await server.WaitUntilOutputContains(MessageDescriptor.ProjectRestarting, $"A ({tfm})"); + await server.WaitUntilOutputContains(MessageDescriptor.ProjectRestarted, $"A ({tfm})"); + + // initial updates are applied when the process restarts: + await server.WaitUntilOutputContains(MessageDescriptor.SendingUpdateBatch.GetMessage(0), $"A ({tfm})"); + + statusCancellationSource.Cancel(); + var statusEvents = await statusReaderTask; + + // validate that we received the expected status events from the server, ignoring the order: + AssertEx.SequenceEqual( + [ + $"type=build_complete, projects=[{serviceProjectA};{serviceProjectB}]", + $"type=building, projects=[{serviceProjectA};{serviceProjectB}]", + $"type=hot_reload_applied, projects=[{serviceProjectA};{serviceProjectB}]", + $"type=process_started, projects=[{serviceProjectA}]", + $"type=process_started, projects=[{serviceProjectA}]", + $"type=process_started, projects=[{serviceProjectB}]", + $"type=restarting, projects=[{serviceProjectA}]", + ], statusEvents.Select(e => $"type={e.Type}, projects=[{string.Join(";", e.Projects.Order())}]").Order()); + } +} diff --git a/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireResourceLauncherCliTests.cs b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireResourceLauncherCliTests.cs new file mode 100644 index 000000000000..d0151c2102fb --- /dev/null +++ b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireResourceLauncherCliTests.cs @@ -0,0 +1,274 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.CommandLine; +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch.UnitTests; + +public class AspireResourceLauncherCliTests +{ + [Fact] + public void RequiredServerOption() + { + // --server option is missing + var args = new[] { "resource", "--entrypoint", "proj" }; + var launcher = AspireLauncher.TryCreate(args); + Assert.Null(launcher); + } + + [Fact] + public void RequiredEntryPointOption() + { + // --entrypoint option is missing + var args = new[] { "resource", "--server", "pipe1" }; + var launcher = AspireLauncher.TryCreate(args); + Assert.Null(launcher); + } + + [Fact] + public void MinimalRequiredOptions() + { + var args = new[] { "resource", "--server", "pipe1", "--entrypoint", "proj.csproj" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + Assert.Equal("pipe1", launcher.ServerPipeName); + Assert.Equal("proj.csproj", launcher.EntryPoint); + Assert.Empty(launcher.ApplicationArguments); + Assert.Empty(launcher.EnvironmentVariables); + Assert.True(launcher.LaunchProfileName.HasValue); + Assert.Null(launcher.LaunchProfileName.Value); + Assert.Equal(LogLevel.Information, launcher.GlobalOptions.LogLevel); + } + + [Fact] + public void ApplicationArguments() + { + var args = new[] { "resource", "--server", "pipe1", "--entrypoint", "proj", "a", "b" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + AssertEx.SequenceEqual(["a", "b"], launcher.ApplicationArguments); + } + + [Fact] + public void EnvironmentOption_SingleVariable() + { + var args = new[] { "resource", "--server", "pipe1", "--entrypoint", "proj", "-e", "KEY=value" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + Assert.Single(launcher.EnvironmentVariables); + Assert.Equal("value", launcher.EnvironmentVariables["KEY"]); + } + + [Fact] + public void EnvironmentOption_MultipleVariables() + { + var args = new[] { "resource", "--server", "pipe1", "--entrypoint", "proj", "-e", "KEY1=val1", "-e", "KEY2=val2" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + Assert.Equal(2, launcher.EnvironmentVariables.Count); + Assert.Equal("val1", launcher.EnvironmentVariables["KEY1"]); + Assert.Equal("val2", launcher.EnvironmentVariables["KEY2"]); + } + + [Fact] + public void EnvironmentOption_ValueWithEquals() + { + var args = new[] { "resource", "--server", "pipe1", "--entrypoint", "proj", "-e", "CONN=Server=localhost;Port=5432" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + Assert.Equal("Server=localhost;Port=5432", launcher.EnvironmentVariables["CONN"]); + } + + [Fact] + public void EnvironmentOption_EmptyValue() + { + var args = new[] { "resource", "--server", "pipe1", "--entrypoint", "proj", "-e", "KEY=" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + Assert.Equal("", launcher.EnvironmentVariables["KEY"]); + } + + [Fact] + public void EnvironmentOption_NoEquals() + { + var args = new[] { "resource", "--server", "pipe1", "--entrypoint", "proj", "-e", "KEY" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + Assert.Equal("", launcher.EnvironmentVariables["KEY"]); + } + + [Fact] + public void NoLaunchProfileOption() + { + // With no-launch-profile flag + var argsNoProfile = new[] { "resource", "--server", "pipe1", "--entrypoint", "proj", "--no-launch-profile" }; + var launcherNoProfile = Assert.IsType(AspireLauncher.TryCreate(argsNoProfile)); + Assert.False(launcherNoProfile.LaunchProfileName.HasValue); + + // Without no-launch-profile flag + var argsDefault = new[] { "resource", "--server", "pipe1", "--entrypoint", "proj" }; + var launcherDefault = Assert.IsType(AspireLauncher.TryCreate(argsDefault)); + Assert.True(launcherDefault.LaunchProfileName.HasValue); + Assert.Null(launcherDefault.LaunchProfileName.Value); + } + + [Fact] + public void LaunchProfileOption() + { + var args = new[] { "resource", "--server", "pipe1", "--entrypoint", "proj", "--launch-profile", "MyProfile" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + Assert.True(launcher.LaunchProfileName.HasValue); + Assert.Equal("MyProfile", launcher.LaunchProfileName.Value); + } + + [Fact] + public void LaunchProfileOption_ShortForm() + { + var args = new[] { "resource", "--server", "pipe1", "--entrypoint", "proj", "-lp", "MyProfile" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + Assert.True(launcher.LaunchProfileName.HasValue); + Assert.Equal("MyProfile", launcher.LaunchProfileName.Value); + } + + [Fact] + public void VerboseOption() + { + var argsVerbose = new[] { "resource", "--server", "pipe1", "--entrypoint", "proj", "--verbose" }; + var launcherVerbose = Assert.IsType(AspireLauncher.TryCreate(argsVerbose)); + Assert.Equal(LogLevel.Debug, launcherVerbose.GlobalOptions.LogLevel); + + var argsNotVerbose = new[] { "resource", "--server", "pipe1", "--entrypoint", "proj" }; + var launcherNotVerbose = Assert.IsType(AspireLauncher.TryCreate(argsNotVerbose)); + Assert.Equal(LogLevel.Information, launcherNotVerbose.GlobalOptions.LogLevel); + } + + [Fact] + public void QuietOption() + { + var argsQuiet = new[] { "resource", "--server", "pipe1", "--entrypoint", "proj", "--quiet" }; + var launcherQuiet = Assert.IsType(AspireLauncher.TryCreate(argsQuiet)); + Assert.Equal(LogLevel.Warning, launcherQuiet.GlobalOptions.LogLevel); + + var argsNotQuiet = new[] { "resource", "--server", "pipe1", "--entrypoint", "proj" }; + var launcherNotQuiet = Assert.IsType(AspireLauncher.TryCreate(argsNotQuiet)); + Assert.Equal(LogLevel.Information, launcherNotQuiet.GlobalOptions.LogLevel); + } + + [Fact] + public void ConflictingOptions() + { + // Cannot specify both --quiet and --verbose + var args = new[] { "resource", "--server", "pipe1", "--entrypoint", "proj", "--quiet", "--verbose" }; + var launcher = AspireLauncher.TryCreate(args); + Assert.Null(launcher); + } + + [Fact] + public void AllOptionsSet() + { + var args = new[] { "resource", "--server", "pipe1", "--entrypoint", "myapp.csproj", "-e", "K1=V1", "-e", "K2=V2", "--launch-profile", "Dev", "--verbose", "arg1", "arg2" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + + Assert.Equal("pipe1", launcher.ServerPipeName); + Assert.Equal("myapp.csproj", launcher.EntryPoint); + Assert.Equal(LogLevel.Debug, launcher.GlobalOptions.LogLevel); + Assert.True(launcher.LaunchProfileName.HasValue); + Assert.Equal("Dev", launcher.LaunchProfileName.Value); + AssertEx.SequenceEqual(["arg1", "arg2"], launcher.ApplicationArguments); + Assert.Equal(2, launcher.EnvironmentVariables.Count); + Assert.Equal("V1", launcher.EnvironmentVariables["K1"]); + Assert.Equal("V2", launcher.EnvironmentVariables["K2"]); + } + + [Fact] + public void EnvironmentOption_Duplicates() + { + var command = new AspireResourceCommandDefinition(); + var result = command.Parse(["--server", "S", "--entrypoint", "E", "-e", "A=1", "-e", "A=2"]); + + result.GetValue(command.EnvironmentOption) + .Should() + .BeEquivalentTo(new Dictionary { ["A"] = "2" }); + + result.Errors.Should().BeEmpty(); + } + + [Fact] + public void EnvironmentOption_Duplicates_CasingDifference() + { + var command = new AspireResourceCommandDefinition(); + var result = command.Parse(["--server", "S", "--entrypoint", "E", "-e", "A=1", "-e", "a=2"]); + + var expected = new Dictionary(); + + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + expected.Add("A", "2"); + } + else + { + expected.Add("A", "1"); + expected.Add("a", "2"); + } + + result.GetValue(command.EnvironmentOption) + .Should() + .BeEquivalentTo(expected); + + result.Errors.Should().BeEmpty(); + } + + [Fact] + public void EnvironmentOption_MultiplePerToken() + { + var command = new AspireResourceCommandDefinition(); + var result = command.Parse(["--server", "S", "--entrypoint", "E", "-e", "A=1;B=2,C=3 D=4", "-e", "B==Y=", "-e", "C;=;"]); + + result.GetValue(command.EnvironmentOption) + .Should() + .BeEquivalentTo(new Dictionary + { + ["A"] = "1;B=2,C=3 D=4", + ["B"] = "=Y=", + ["C;"] = ";" + }); + + result.Errors.Should().BeEmpty(); + } + + [Fact] + public void EnvironmentOption_NoValue() + { + var command = new AspireResourceCommandDefinition(); + var result = command.Parse(["--server", "S", "--entrypoint", "E", "-e", "A"]); + + result.GetValue(command.EnvironmentOption) + .Should() + .BeEquivalentTo(new Dictionary { ["A"] = "" }); + + result.Errors.Should().BeEmpty(); + } + + [Fact] + public void EnvironmentOption_WhitespaceTrimming() + { + var command = new AspireResourceCommandDefinition(); + var result = command.Parse(["--server", "S", "--entrypoint", "E", "-e", " A \t\n\r\u2002 = X Y \t\n\r\u2002"]); + + result.GetValue(command.EnvironmentOption) + .Should() + .BeEquivalentTo(new Dictionary { ["A"] = " X Y \t\n\r\u2002" }); + + result.Errors.Should().BeEmpty(); + } + + [Theory] + [InlineData("")] + [InlineData("=")] + [InlineData("= X")] + [InlineData(" \u2002 = X")] + public void EnvironmentOption_Errors(string token) + { + var command = new AspireResourceCommandDefinition(); + var result = command.Parse(["--server", "S", "--entrypoint", "E", "-e", token]); + + AssertEx.SequenceEqual( + [ + $"Incorrectly formatted environment variables '{token}'" + ], result.Errors.Select(e => e.Message)); + } +} diff --git a/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireServerLauncherCliTests.cs b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireServerLauncherCliTests.cs new file mode 100644 index 000000000000..39ba1fdff22b --- /dev/null +++ b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/AspireServerLauncherCliTests.cs @@ -0,0 +1,129 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch.UnitTests; + +public class AspireServerLauncherCliTests +{ + [Fact] + public void RequiredServerOption() + { + // --server option is missing + var args = new[] { "server", "--sdk", "sdk" }; + var launcher = AspireLauncher.TryCreate(args); + Assert.Null(launcher); + } + + [Fact] + public void RequiredSdkOption() + { + // --sdk option is missing + var args = new[] { "server", "--server", "pipe1" }; + var launcher = AspireLauncher.TryCreate(args); + Assert.Null(launcher); + } + + [Fact] + public void MinimalRequiredOptions() + { + var args = new[] { "server", "--server", "pipe1", "--sdk", "sdk" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + Assert.Equal("pipe1", launcher.ServerPipeName); + Assert.Equal(LogLevel.Information, launcher.GlobalOptions.LogLevel); + Assert.Empty(launcher.ResourcePaths); + Assert.Null(launcher.StatusPipeName); + Assert.Null(launcher.ControlPipeName); + } + + [Fact] + public void ResourceOption_SingleValue() + { + var args = new[] { "server", "--server", "pipe1", "--sdk", "sdk", "--resource", "proj1.csproj" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + AssertEx.SequenceEqual(["proj1.csproj"], launcher.ResourcePaths); + } + + [Fact] + public void ResourceOption_MultipleValues() + { + var args = new[] { "server", "--server", "pipe1", "--sdk", "sdk", "--resource", "proj1.csproj", "proj2.csproj", "file.cs" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + AssertEx.SequenceEqual(["proj1.csproj", "proj2.csproj", "file.cs"], launcher.ResourcePaths); + } + + [Fact] + public void ResourceOption_MultipleFlags() + { + var args = new[] { "server", "--server", "pipe1", "--sdk", "sdk", "--resource", "proj1.csproj", "--resource", "proj2.csproj" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + AssertEx.SequenceEqual(["proj1.csproj", "proj2.csproj"], launcher.ResourcePaths); + } + + [Fact] + public void StatusPipeOption() + { + var args = new[] { "server", "--server", "pipe1", "--sdk", "sdk", "--status-pipe", "status1" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + Assert.Equal("status1", launcher.StatusPipeName); + } + + [Fact] + public void ControlPipeOption() + { + var args = new[] { "server", "--server", "pipe1", "--sdk", "sdk", "--control-pipe", "control1" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + Assert.Equal("control1", launcher.ControlPipeName); + } + + [Fact] + public void VerboseOption() + { + // With verbose flag + var argsVerbose = new[] { "server", "--server", "pipe1", "--sdk", "sdk", "--verbose" }; + var launcherVerbose = Assert.IsType(AspireLauncher.TryCreate(argsVerbose)); + Assert.Equal(LogLevel.Debug, launcherVerbose.GlobalOptions.LogLevel); + + // Without verbose flag + var argsNotVerbose = new[] { "server", "--server", "pipe1", "--sdk", "sdk" }; + var launcherNotVerbose = Assert.IsType(AspireLauncher.TryCreate(argsNotVerbose)); + Assert.Equal(LogLevel.Information, launcherNotVerbose.GlobalOptions.LogLevel); + } + + [Fact] + public void QuietOption() + { + // With quiet flag + var argsQuiet = new[] { "server", "--server", "pipe1", "--sdk", "sdk", "--quiet" }; + var launcherQuiet = Assert.IsType(AspireLauncher.TryCreate(argsQuiet)); + Assert.Equal(LogLevel.Warning, launcherQuiet.GlobalOptions.LogLevel); + + // Without quiet flag + var argsNotQuiet = new[] { "server", "--server", "pipe1", "--sdk", "sdk" }; + var launcherNotQuiet = Assert.IsType(AspireLauncher.TryCreate(argsNotQuiet)); + Assert.Equal(LogLevel.Information, launcherNotQuiet.GlobalOptions.LogLevel); + } + + [Fact] + public void ConflictingOptions() + { + // Cannot specify both --quiet and --verbose + var args = new[] { "server", "--server", "pipe1", "--sdk", "sdk", "--quiet", "--verbose" }; + var launcher = AspireLauncher.TryCreate(args); + Assert.Null(launcher); + } + + [Fact] + public void AllOptionsSet() + { + var args = new[] { "server", "--server", "pipe1", "--sdk", "sdk", "--resource", "proj1.csproj", "proj2.csproj", "--status-pipe", "status1", "--control-pipe", "control1", "--verbose" }; + var launcher = Assert.IsType(AspireLauncher.TryCreate(args)); + + Assert.Equal("pipe1", launcher.ServerPipeName); + Assert.Equal(LogLevel.Debug, launcher.GlobalOptions.LogLevel); + AssertEx.SequenceEqual(["proj1.csproj", "proj2.csproj"], launcher.ResourcePaths); + Assert.Equal("status1", launcher.StatusPipeName); + Assert.Equal("control1", launcher.ControlPipeName); + } +} diff --git a/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/DotNetWatchLauncherTests.cs b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/DotNetWatchLauncherTests.cs deleted file mode 100644 index 26e009bb1bae..000000000000 --- a/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/DotNetWatchLauncherTests.cs +++ /dev/null @@ -1,37 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Diagnostics; - -namespace Microsoft.DotNet.Watch.UnitTests; - -public class DotNetWatchLauncherTests(ITestOutputHelper logger) -{ - private TestAssetsManager TestAssets { get; } = new(logger); - - [Fact] - public async Task AspireWatchLaunch() - { - var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps") - .WithSource(); - - var path = Path.ChangeExtension(typeof(DotNetWatchLauncher).Assembly.Location, PathUtilities.ExecutableExtension).TrimEnd('.'); - var sdkRootDirectory = TestContext.Current.ToolsetUnderTest.SdkFolderUnderTest; - var projectDir = Path.Combine(testAsset.Path, "AppWithDeps"); - var projectPath = Path.Combine(projectDir, "App.WithDeps.csproj"); - - var startInfo = new ProcessStartInfo - { - FileName = path, - Arguments = $@"--sdk ""{sdkRootDirectory}"" --project ""{projectPath}"" --verbose", - UseShellExecute = false, - RedirectStandardInput = true, - WorkingDirectory = projectDir, - }; - - using var process = new AwaitableProcess(logger); - process.Start(startInfo); - - await process.GetOutputLineAsync(success: line => line.Contains("dotnet watch ⌚ Waiting for changes"), failure: _ => false); - } -} diff --git a/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/DotNetWatchOptionsTests.cs b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/DotNetWatchOptionsTests.cs deleted file mode 100644 index 0c6775ea30ef..000000000000 --- a/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/DotNetWatchOptionsTests.cs +++ /dev/null @@ -1,146 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using Microsoft.Extensions.Logging; - -namespace Microsoft.DotNet.Watch.UnitTests; - -public class DotNetWatchOptionsTests -{ - [Fact] - public void TryParse_RequiredSdkOption() - { - // --sdk option is missing - var args = new[] { "--project", "proj", "a", "b" }; - Assert.False(DotNetWatchOptions.TryParse(args, out var options)); - Assert.Null(options); - } - - [Fact] - public void TryParse_RequiredProjectOrFileOption() - { - // --project and --file options are missing - var args = new[] { "--verbose", "a", "b" }; - Assert.False(DotNetWatchOptions.TryParse(args, out var options)); - Assert.Null(options); - } - - [Fact] - public void TryParse_ProjectAndSdkPaths() - { - var args = new[] { "--sdk", "sdk", "--project", "myproject.csproj" }; - Assert.True(DotNetWatchOptions.TryParse(args, out var options)); - Assert.Equal("sdk", options.SdkDirectory); - Assert.Equal("myproject.csproj", options.Project.PhysicalPath); - Assert.Empty(options.ApplicationArguments); - } - - [Fact] - public void TryParse_FilePath() - { - var args = new[] { "--sdk", "sdk", "--file", "file.cs" }; - Assert.True(DotNetWatchOptions.TryParse(args, out var options)); - Assert.Equal("sdk", options.SdkDirectory); - Assert.Equal("file.cs", options.Project.EntryPointFilePath); - Assert.Empty(options.ApplicationArguments); - } - - [Fact] - public void TryParse_ProjectAndFilePaths() - { - var args = new[] { "--sdk", "sdk", "--project", "myproject.csproj", "--file", "file.cs" }; - Assert.False(DotNetWatchOptions.TryParse(args, out var options)); - Assert.Null(options); - } - - [Fact] - public void TryParse_ApplicationArguments() - { - var args = new[] { "--sdk", "sdk", "--project", "proj", "--verbose", "a", "b" }; - Assert.True(DotNetWatchOptions.TryParse(args, out var options)); - AssertEx.SequenceEqual(["a", "b"], options.ApplicationArguments); - } - - [Fact] - public void TryParse_VerboseOption() - { - // With verbose flag - var argsVerbose = new[] { "--sdk", "sdk", "--project", "proj", "--verbose" }; - Assert.True(DotNetWatchOptions.TryParse(argsVerbose, out var optionsVerbose)); - Assert.Equal(LogLevel.Debug, optionsVerbose.LogLevel); - - // Without verbose flag - var argsNotVerbose = new[] { "--sdk", "sdk", "--project", "proj" }; - Assert.True(DotNetWatchOptions.TryParse(argsNotVerbose, out var optionsNotVerbose)); - Assert.Equal(LogLevel.Information, optionsNotVerbose.LogLevel); - } - - [Fact] - public void TryParse_QuietOption() - { - // With quiet flag - var argsQuiet = new[] { "--sdk", "sdk", "--project", "proj", "--quiet" }; - Assert.True(DotNetWatchOptions.TryParse(argsQuiet, out var optionsQuiet)); - Assert.Equal(LogLevel.Warning, optionsQuiet.LogLevel); - - // Without quiet flag - var argsNotQuiet = new[] { "--sdk", "sdk", "--project", "proj" }; - Assert.True(DotNetWatchOptions.TryParse(argsNotQuiet, out var optionsNotQuiet)); - Assert.Equal(LogLevel.Information, optionsNotQuiet.LogLevel); - } - - [Fact] - public void TryParse_NoLaunchProfileOption() - { - // With no-launch-profile flag - var argsNoProfile = new[] { "--sdk", "sdk", "--project", "proj", "--no-launch-profile" }; - Assert.True(DotNetWatchOptions.TryParse(argsNoProfile, out var optionsNoProfile)); - Assert.True(optionsNoProfile.NoLaunchProfile); - - // Without no-launch-profile flag - var argsWithProfile = new[] { "--sdk", "sdk", "--project", "proj" }; - Assert.True(DotNetWatchOptions.TryParse(argsWithProfile, out var optionsWithProfile)); - Assert.False(optionsWithProfile.NoLaunchProfile); - } - - [Fact] - public void TryParse_ConflictingOptions() - { - // Cannot specify both --quiet and --verbose - var args = new[] { "--sdk", "sdk", "--project", "proj", "--quiet", "--verbose" }; - Assert.False(DotNetWatchOptions.TryParse(args, out var options)); - Assert.Null(options); - } - - [Fact] - public void TryParse_Project_MultipleValues() - { - // Project option should only accept one value - var args = new[] { "--sdk", "sdk", "--project", "proj1", "proj2" }; - Assert.True(DotNetWatchOptions.TryParse(args, out var options)); - Assert.Equal("proj1", options.Project.PhysicalPath); - AssertEx.SequenceEqual(["proj2"], options.ApplicationArguments); - } - - [Fact] - public void TryParse_File_MultipleValues() - { - // Project option should only accept one value - var args = new[] { "--sdk", "sdk", "--file", "file1.cs", "file2.cs" }; - Assert.True(DotNetWatchOptions.TryParse(args, out var options)); - Assert.Equal("file1.cs", options.Project.EntryPointFilePath); - AssertEx.SequenceEqual(["file2.cs"], options.ApplicationArguments); - } - - [Fact] - public void TryParse_AllOptionsSet() - { - var args = new[] { "--sdk", "sdk", "--project", "myapp.csproj", "--verbose", "--no-launch-profile", "arg1", "arg2", "arg3" }; - Assert.True(DotNetWatchOptions.TryParse(args, out var options)); - - Assert.Equal("myapp.csproj", options.Project.PhysicalPath); - Assert.Equal(LogLevel.Debug, options.LogLevel); - Assert.True(options.NoLaunchProfile); - AssertEx.SequenceEqual(["arg1", "arg2", "arg3"], options.ApplicationArguments); - } -} diff --git a/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/Microsoft.DotNet.HotReload.Watch.Aspire.Tests.csproj b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/Microsoft.DotNet.HotReload.Watch.Aspire.Tests.csproj index 728c13a54f9b..e65ce1a88a56 100644 --- a/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/Microsoft.DotNet.HotReload.Watch.Aspire.Tests.csproj +++ b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/Microsoft.DotNet.HotReload.Watch.Aspire.Tests.csproj @@ -6,6 +6,10 @@ Microsoft.DotNet.Watch.Aspire.UnitTests MicrosoftAspNetCore + + + + diff --git a/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/Utilities/PipeUtilities.cs b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/Utilities/PipeUtilities.cs new file mode 100644 index 000000000000..3bc100bc1255 --- /dev/null +++ b/test/Microsoft.DotNet.HotReload.Watch.Aspire.Tests/Utilities/PipeUtilities.cs @@ -0,0 +1,44 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.ComponentModel.DataAnnotations; +using System.IO.Pipes; +using System.Text.Json; + +namespace Microsoft.DotNet.Watch.UnitTests; + +internal static class PipeUtilities +{ + public static async Task> ReadStatusEventsAsync(string pipeName, CancellationToken cancellationToken) + { + var lines = new List(); + + using var pipe = new NamedPipeServerStream(pipeName, PipeDirection.In, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous | PipeOptions.CurrentUserOnly); + + await pipe.WaitForConnectionAsync(cancellationToken); + + using var reader = new StreamReader(pipe, Encoding.UTF8); + + try + { + while (!cancellationToken.IsCancellationRequested) + { + var line = await reader.ReadLineAsync(cancellationToken); + if (line == null) + { + break; + } + + var value = JsonSerializer.Deserialize(line); + Assert.NotNull(value); + + lines.Add(value); + } + } + catch (Exception e) when (e is IOException or OperationCanceledException) + { + } + + return lines; + } +} diff --git a/test/Microsoft.NET.TestFramework/Commands/SdkCommandSpec.cs b/test/Microsoft.NET.TestFramework/Commands/SdkCommandSpec.cs index 863fd738d0e8..4b13f122d4ac 100644 --- a/test/Microsoft.NET.TestFramework/Commands/SdkCommandSpec.cs +++ b/test/Microsoft.NET.TestFramework/Commands/SdkCommandSpec.cs @@ -11,7 +11,7 @@ public class SdkCommandSpec public string? FileName { get; set; } public List Arguments { get; set; } = new List(); - public Dictionary Environment { get; set; } = new Dictionary(); + public Dictionary Environment { get; set; } = new(); public List EnvironmentToRemove { get; } = new List(); diff --git a/test/Microsoft.NET.TestFramework/TestContext.cs b/test/Microsoft.NET.TestFramework/TestContext.cs index f75e170b195a..136808001333 100644 --- a/test/Microsoft.NET.TestFramework/TestContext.cs +++ b/test/Microsoft.NET.TestFramework/TestContext.cs @@ -110,7 +110,7 @@ public static string GetRuntimeGraphFilePath() return lastWrittenSdk.GetFiles("RuntimeIdentifierGraph.json").Single().FullName; } - public void AddTestEnvironmentVariables(IDictionary environment) + public void AddTestEnvironmentVariables(IDictionary environment) { environment["DOTNET_MULTILEVEL_LOOKUP"] = "0"; diff --git a/test/Microsoft.NET.TestFramework/ToolsetInfo.cs b/test/Microsoft.NET.TestFramework/ToolsetInfo.cs index d68ebe03e1ee..3ff247a086e0 100644 --- a/test/Microsoft.NET.TestFramework/ToolsetInfo.cs +++ b/test/Microsoft.NET.TestFramework/ToolsetInfo.cs @@ -154,7 +154,7 @@ private void InitMSBuildVersion() } } - public void AddTestEnvironmentVariables(IDictionary environment) + public void AddTestEnvironmentVariables(IDictionary environment) { if (ShouldUseFullFrameworkMSBuild) { diff --git a/test/dotnet-new.IntegrationTests/CommonTemplatesTests.cs b/test/dotnet-new.IntegrationTests/CommonTemplatesTests.cs index af33ea66d105..3bb70de4aacf 100644 --- a/test/dotnet-new.IntegrationTests/CommonTemplatesTests.cs +++ b/test/dotnet-new.IntegrationTests/CommonTemplatesTests.cs @@ -59,7 +59,7 @@ public CommonTemplatesTests(SharedHomeDirectory fixture, ITestOutputHelper log) [InlineData("MSBuild Directory.Build.targets file", "buildtargets", new[] { "--inherit" })] public async Task AllCommonItemsCreate(string expectedTemplateName, string templateShortName, string[]? args) { - Dictionary environmentUnderTest = new() { ["DOTNET_NOLOGO"] = false.ToString() }; + Dictionary environmentUnderTest = new() { ["DOTNET_NOLOGO"] = false.ToString() }; TestContext.Current.AddTestEnvironmentVariables(environmentUnderTest); string itemName = expectedTemplateName.Replace(' ', '-').Replace('.', '-'); @@ -76,7 +76,7 @@ public async Task AllCommonItemsCreate(string expectedTemplateName, string templ DoNotPrependTemplateNameToScenarioName = true, UniqueFor = expectedTemplateName.Equals("NuGet Config") ? UniqueForOption.OsPlatform : null, } - .WithCustomEnvironment(environmentUnderTest) + .WithCustomEnvironment(environmentUnderTest!) .WithCustomScrubbers( ScrubbersDefinition.Empty .AddScrubber(sb => sb.UnixifyNewlines(), "out") @@ -203,7 +203,7 @@ public async Task AotVariants(string name, string language) string projectDir = Path.Combine(workingDir, outputDir); string finalProjectName = Path.Combine(projectDir, $"{projName}.{extension}"); - Dictionary environmentUnderTest = new() { ["DOTNET_NOLOGO"] = false.ToString() }; + Dictionary environmentUnderTest = new() { ["DOTNET_NOLOGO"] = false.ToString() }; TestContext.Current.AddTestEnvironmentVariables(environmentUnderTest); TemplateVerifierOptions options = new TemplateVerifierOptions(templateName: name) @@ -219,7 +219,7 @@ public async Task AotVariants(string name, string language) VerificationExcludePatterns = new[] { "*/stderr.txt", "*\\stderr.txt" }, DotnetExecutablePath = TestContext.Current.ToolsetUnderTest?.DotNetHostPath, } - .WithCustomEnvironment(environmentUnderTest) + .WithCustomEnvironment(environmentUnderTest!) .WithCustomScrubbers( ScrubbersDefinition.Empty .AddScrubber(sb => sb.Replace($"{currentDefaultFramework}", "%FRAMEWORK%")) @@ -397,7 +397,7 @@ public async Task FeaturesSupport( string projectDir = Path.Combine(workingDir, outputDir); string finalProjectName = Path.Combine(projectDir, $"{projName}.{extension}"); - Dictionary environmentUnderTest = new() { ["DOTNET_NOLOGO"] = false.ToString() }; + Dictionary environmentUnderTest = new() { ["DOTNET_NOLOGO"] = false.ToString() }; environmentUnderTest["CheckEolTargetFramework"] = false.ToString(); TestContext.Current.AddTestEnvironmentVariables(environmentUnderTest); @@ -418,7 +418,7 @@ public async Task FeaturesSupport( VerificationExcludePatterns = new[] { "*/stderr.txt", "*\\stderr.txt" }, DotnetExecutablePath = TestContext.Current.ToolsetUnderTest?.DotNetHostPath, } - .WithCustomEnvironment(environmentUnderTest) + .WithCustomEnvironment(environmentUnderTest!) .WithCustomScrubbers( ScrubbersDefinition.Empty .AddScrubber(sb => sb.Replace($"{langVersion}", "%LANG%")) diff --git a/test/dotnet-new.IntegrationTests/DotnetClassTemplateTests.cs b/test/dotnet-new.IntegrationTests/DotnetClassTemplateTests.cs index 9b2d505d0eb9..b2df521ebd2f 100644 --- a/test/dotnet-new.IntegrationTests/DotnetClassTemplateTests.cs +++ b/test/dotnet-new.IntegrationTests/DotnetClassTemplateTests.cs @@ -46,7 +46,7 @@ public async Task DotnetCSharpClassTemplatesTest( string targetFramework = "") { // prevents logging a welcome message from sdk installation - Dictionary environmentUnderTest = new() { ["DOTNET_NOLOGO"] = false.ToString() }; + Dictionary environmentUnderTest = new() { ["DOTNET_NOLOGO"] = false.ToString() }; TestContext.Current.AddTestEnvironmentVariables(environmentUnderTest); string folderName = GetFolderName(templateShortName, langVersion, targetFramework); @@ -74,7 +74,7 @@ public async Task DotnetCSharpClassTemplatesTest( OutputDirectory = workingDir, EnsureEmptyOutputDirectory = false } - .WithCustomEnvironment(environmentUnderTest) + .WithCustomEnvironment(environmentUnderTest!) .WithCustomScrubbers( ScrubbersDefinition.Empty .AddScrubber((path, content) => @@ -126,7 +126,7 @@ public async Task DotnetVisualBasicClassTemplatesTest( string fileName = "") { // prevents logging a welcome message from sdk installation - Dictionary environmentUnderTest = new() { ["DOTNET_NOLOGO"] = false.ToString() }; + Dictionary environmentUnderTest = new() { ["DOTNET_NOLOGO"] = false.ToString() }; TestContext.Current.AddTestEnvironmentVariables(environmentUnderTest); string folderName = GetFolderName(templateShortName, langVersion, targetFramework); @@ -154,7 +154,7 @@ public async Task DotnetVisualBasicClassTemplatesTest( OutputDirectory = workingDir, EnsureEmptyOutputDirectory = false } - .WithCustomEnvironment(environmentUnderTest) + .WithCustomEnvironment(environmentUnderTest!) .WithCustomScrubbers( ScrubbersDefinition.Empty .AddScrubber((path, content) => diff --git a/test/dotnet-new.IntegrationTests/TemplateEngineSamplesTest.cs b/test/dotnet-new.IntegrationTests/TemplateEngineSamplesTest.cs index 2783789100df..525a3e7ff848 100644 --- a/test/dotnet-new.IntegrationTests/TemplateEngineSamplesTest.cs +++ b/test/dotnet-new.IntegrationTests/TemplateEngineSamplesTest.cs @@ -45,7 +45,7 @@ public async Task TemplateEngineSamplesProjectTest( string caseDescription) { _log.LogInformation($"Template with {caseDescription}"); - Dictionary environmentUnderTest = new() { ["DOTNET_NOLOGO"] = false.ToString() }; + Dictionary environmentUnderTest = new() { ["DOTNET_NOLOGO"] = false.ToString() }; TestContext.Current.AddTestEnvironmentVariables(environmentUnderTest); FileExtensions.AddTextExtension(".cshtml"); @@ -60,7 +60,7 @@ public async Task TemplateEngineSamplesProjectTest( DoNotPrependCallerMethodNameToScenarioName = true, ScenarioName = $"{folderName.Substring(folderName.IndexOf("-") + 1)}{GetScenarioName(arguments)}" } - .WithCustomEnvironment(environmentUnderTest) + .WithCustomEnvironment(environmentUnderTest!) .WithCustomScrubbers( ScrubbersDefinition.Empty .AddScrubber(sb => sb.Replace(DateTime.Now.ToString("MM/dd/yyyy"), "**/**/****"))); diff --git a/test/dotnet-watch.Tests/Build/EvaluationTests.cs b/test/dotnet-watch.Tests/Build/EvaluationTests.cs index 50ce37dca37e..f3c3b8e77787 100644 --- a/test/dotnet-watch.Tests/Build/EvaluationTests.cs +++ b/test/dotnet-watch.Tests/Build/EvaluationTests.cs @@ -10,9 +10,6 @@ public class EvaluationTests(ITestOutputHelper output) private readonly TestLogger _logger = new(output); private readonly TestAssetsManager _testAssets = new(output); - private static string MuxerPath - => TestContext.Current.ToolsetUnderTest.DotNetHostPath; - private static string InspectPath(string path, string rootDir) => path.Substring(rootDir.Length + 1).Replace("\\", "/"); @@ -141,7 +138,7 @@ public async Task StaticAssets(bool isWeb, [CombinatorialValues(true, false, nul }, }; - var testAsset = _testAssets.CreateTestProject(project, identifier: enableStaticWebAssets.ToString()); + var testAsset = _testAssets.CreateTestProject(project, identifier: $"{isWeb}_{enableStaticWebAssets}"); await VerifyEvaluation(testAsset, isWeb && enableStaticWebAssets != false ? @@ -442,7 +439,7 @@ public async Task ProjectReferences_Graph() .Path; var projectA = Path.Combine(testDirectory, "A", "A.csproj"); - var options = TestOptions.GetEnvironmentOptions(workingDirectory: testDirectory, muxerPath: MuxerPath); + var options = TestOptions.GetEnvironmentOptions(workingDirectory: testDirectory); var processRunner = new ProcessRunner(processCleanupTimeout: TimeSpan.Zero); var filesetFactory = new MSBuildFileSetFactory(projectA, targetFramework: null, buildArguments: ["/p:_DotNetWatchTraceOutput=true"], processRunner, _logger, options); @@ -506,7 +503,7 @@ public async Task MsbuildOutput() var testAsset = _testAssets.CreateTestProject(project1); var project1Path = GetTestProjectPath(testAsset); - var options = TestOptions.GetEnvironmentOptions(workingDirectory: Path.GetDirectoryName(project1Path)!, muxerPath: MuxerPath); + var options = TestOptions.GetEnvironmentOptions(workingDirectory: Path.GetDirectoryName(project1Path)!); var processRunner = new ProcessRunner(processCleanupTimeout: TimeSpan.Zero); var factory = new MSBuildFileSetFactory(project1Path, targetFramework: null, buildArguments: [], processRunner, _logger, options); @@ -543,7 +540,7 @@ private async Task VerifyEvaluation(TestAsset testAsset, string? targetFramework async Task VerifyTargetsEvaluation() { - var options = TestOptions.GetEnvironmentOptions(workingDirectory: testDir, muxerPath: MuxerPath) with { TestOutput = testDir }; + var options = TestOptions.GetEnvironmentOptions(workingDirectory: testDir) with { TestOutput = testDir }; var processRunner = new ProcessRunner(processCleanupTimeout: TimeSpan.Zero); var buildArguments = targetFramework != null ? new[] { "/p:TargetFramework=" + targetFramework } : []; var factory = new MSBuildFileSetFactory(rootProjectPath, targetFramework: null, buildArguments, processRunner, _logger, options); @@ -559,7 +556,7 @@ async Task VerifyProjectGraphEvaluation() { // Needs to be executed in dotnet-watch process in order for msbuild to load from the correct location. - using var watchableApp = new WatchableApp(new DebugTestOutputLogger(output)); + await using var watchableApp = WatchableApp.CreateDotnetWatchApp(output); var arguments = targetFramework != null ? new[] { "-f", targetFramework } : []; if (suppressStaticWebAssets) diff --git a/test/dotnet-watch.Tests/CommandLine/BinaryLoggerTests.cs b/test/dotnet-watch.Tests/CommandLine/BinaryLoggerTests.cs index 7e4ac0be86c9..8d799b136e77 100644 --- a/test/dotnet-watch.Tests/CommandLine/BinaryLoggerTests.cs +++ b/test/dotnet-watch.Tests/CommandLine/BinaryLoggerTests.cs @@ -7,7 +7,6 @@ namespace Microsoft.DotNet.Watch.UnitTests; -[Collection(nameof(InProcBuildTestCollection))] public class BinaryLoggerTests { [Theory] @@ -27,29 +26,37 @@ public class BinaryLoggerTests [InlineData("\"\"\"path{}\"", "path{}.binlog", false)] // wildcard {} not supported public void ParseBinaryLogFilePath(string? value, string? expected, bool matchesMSBuildImpl = true) { - Assert.Equal(expected, CommandLineOptions.ParseBinaryLogFilePath(value)); - - if (!matchesMSBuildImpl) + ProjectBuildManager.Test_BuildSemaphore.Wait(); + try { - return; - } + Assert.Equal(expected, CommandLineOptions.ParseBinaryLogFilePath(value)); + + if (!matchesMSBuildImpl) + { + return; + } - Assert.NotNull(value); - Assert.NotNull(expected); + Assert.NotNull(value); + Assert.NotNull(expected); - var dir = TestContext.Current.TestExecutionDirectory; - Directory.SetCurrentDirectory(dir); + var dir = TestContext.Current.TestExecutionDirectory; + Directory.SetCurrentDirectory(dir); - var bl = new BinaryLogger() { Parameters = value }; - bl.Initialize(new EventSource()); + var bl = new BinaryLogger() { Parameters = value }; + bl.Initialize(new EventSource()); - var actualPath = bl.GetType().GetProperty("FilePath", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance)?.GetValue(bl); - if (actualPath != null) + var actualPath = bl.GetType().GetProperty("FilePath", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance)?.GetValue(bl); + if (actualPath != null) + { + Assert.Equal(Path.Combine(dir, expected), actualPath); + } + + bl.Shutdown(); + } + finally { - Assert.Equal(Path.Combine(dir, expected), actualPath); + ProjectBuildManager.Test_BuildSemaphore.Release(); } - - bl.Shutdown(); } private class EventSource : IEventSource diff --git a/test/dotnet-watch.Tests/CommandLine/LaunchSettingsTests.cs b/test/dotnet-watch.Tests/CommandLine/LaunchSettingsTests.cs index 6fabe683fdf2..7fc6f9f504a7 100644 --- a/test/dotnet-watch.Tests/CommandLine/LaunchSettingsTests.cs +++ b/test/dotnet-watch.Tests/CommandLine/LaunchSettingsTests.cs @@ -39,7 +39,7 @@ public async Task RunsWithDotnetLaunchProfileEnvVariableWhenNotExplicitlySpecifi if (!hotReload) { - App.DotnetWatchArgs.Add("--no-hot-reload"); + App.WatchArgs.Add("--no-hot-reload"); } App.Start(testAsset, []); @@ -57,11 +57,11 @@ public async Task RunsWithDotnetLaunchProfileEnvVariableWhenExplicitlySpecified( if (!hotReload) { - App.DotnetWatchArgs.Add("--no-hot-reload"); + App.WatchArgs.Add("--no-hot-reload"); } - App.DotnetWatchArgs.Add("--launch-profile"); - App.DotnetWatchArgs.Add("Second"); + App.WatchArgs.Add("--launch-profile"); + App.WatchArgs.Add("Second"); App.Start(testAsset, []); Assert.Equal("<<>>", await App.AssertOutputLineStartsWith("DOTNET_LAUNCH_PROFILE = ")); } @@ -77,7 +77,7 @@ public async Task RunsWithDotnetLaunchProfileEnvVariableWhenExplicitlySpecifiedB if (!hotReload) { - App.DotnetWatchArgs.Add("--no-hot-reload"); + App.WatchArgs.Add("--no-hot-reload"); } App.Start(testAsset, ["--", "--launch-profile", "Third"]); @@ -160,7 +160,7 @@ public async Task Run_WithHotReloadEnabled_DoesNotReadConsoleIn_InNonInteractive App.EnvironmentVariables.Add("READ_INPUT", "true"); App.Start(testAsset, ["--non-interactive"]); - await App.AssertStarted(); + await App.WaitForOutputLineContaining("Started"); var standardInput = App.Process.Process.StandardInput; var inputString = "This is a test input"; diff --git a/test/dotnet-watch.Tests/CommandLine/ProgramTests.Arguments.cs b/test/dotnet-watch.Tests/CommandLine/ProgramTests.Arguments.cs new file mode 100644 index 000000000000..15c558b0237d --- /dev/null +++ b/test/dotnet-watch.Tests/CommandLine/ProgramTests.Arguments.cs @@ -0,0 +1,137 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable disable + +namespace Microsoft.DotNet.Watch.UnitTests +{ + public class ProgramTests_Arguments(ITestOutputHelper output) : DotNetWatchTestBase(output) + { + [Theory] + [InlineData(new[] { "--no-hot-reload", "run" }, "")] + [InlineData(new[] { "--no-hot-reload", "run", "args" }, "args")] + [InlineData(new[] { "--no-hot-reload", "--", "run", "args" }, "run,args")] + [InlineData(new[] { "--no-hot-reload" }, "")] + [InlineData(new string[] { }, "")] + [InlineData(new[] { "run" }, "")] + [InlineData(new[] { "run", "args" }, "args")] + [InlineData(new[] { "--", "run", "args" }, "run,args")] + [InlineData(new[] { "--", "test", "args" }, "test,args")] + [InlineData(new[] { "--", "build", "args" }, "build,args")] + [InlineData(new[] { "abc" }, "abc")] + public async Task Arguments(string[] arguments, string expectedApplicationArgs) + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: string.Join(",", arguments)) + .WithSource(); + + App.SuppressVerboseLogging(); + App.Start(testAsset, arguments); + + await App.WaitUntilOutputContains($"Arguments = {expectedApplicationArgs}"); + } + + [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.Linux)] // https://github.com/dotnet/sdk/issues/53061 + public async Task RunArguments_NoHotReload() + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadAppMultiTfm") + .WithSource(); + + App.SuppressVerboseLogging(); + App.Start(testAsset, arguments: + [ + "--no-hot-reload", + "run", + "-f", + "net6.0", + "--property:AssemblyVersion=1.2.3.4", + "--property", + "AssemblyTitle= | A=B'\tC | ", + "-v", + "minimal", + "--", // the following args are application args + "-v", + ]); + + await App.WaitUntilOutputContains("Arguments = -v"); + await App.WaitUntilOutputContains("AssemblyName = WatchHotReloadAppMultiTfm, Version=1.2.3.4, Culture=neutral, PublicKeyToken=null"); + await App.WaitUntilOutputContains("AssemblyTitle = ' | A=B'\tC | '"); + await App.WaitUntilOutputContains("TFM = .NETCoreApp,Version=v6.0"); + + // expected output from build (-v minimal): + await App.WaitUntilOutputContains("Determining projects to restore..."); + + // not expected to find verbose output of dotnet watch + Assert.DoesNotContain(App.Process.Output, l => l.Contains("Working directory:")); + } + + [PlatformSpecificFact(TestPlatforms.Windows | TestPlatforms.Linux)] // https://github.com/dotnet/sdk/issues/53061 + public async Task RunArguments_HotReload() + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadAppMultiTfm") + .WithSource(); + + App.SuppressVerboseLogging(); + App.Start(testAsset, arguments: + [ + "run", + "-f", // dotnet watch does not recognize this arg -> dotnet run arg + "net6.0", + "--property", + "AssemblyVersion=1.2.3.4", + "--property", + "AssemblyTitle= | A=B'\tC | ", + "--", // the following args are not dotnet run args + "-v", // dotnet build argument + "minimal" + ]); + + await App.WaitUntilOutputContains("AssemblyName = WatchHotReloadAppMultiTfm, Version=1.2.3.4, Culture=neutral, PublicKeyToken=null"); + await App.WaitUntilOutputContains("AssemblyTitle = ' | A=B'\tC | '"); + await App.WaitUntilOutputContains("TFM = .NETCoreApp,Version=v6.0"); + await App.WaitUntilOutputContains("Hot reload enabled."); + + // not expected to find verbose output of dotnet watch + Assert.DoesNotContain(App.Process.Output, l => l.Contains("Working directory:")); + } + + [Theory] + [InlineData("P1", "argP1")] + [InlineData("P and Q and \"R\"", "argPQR")] + public async Task ArgumentsFromLaunchSettings_Watch(string profileName, string expectedArgs) + { + var testAsset = TestAssets.CopyTestAsset("WatchAppWithLaunchSettings", identifier: profileName) + .WithSource(); + + App.Start(testAsset, arguments: new[] + { + "--verbose", + "--no-hot-reload", + "-lp", + profileName + }); + + await App.WaitUntilOutputContains($"Arguments: {expectedArgs}"); + await App.WaitUntilOutputContains($"Found named launch profile '{profileName}'."); + await App.WaitUntilOutputContains("Hot Reload disabled by command line switch."); + } + + [Theory] + [InlineData("P1", "argP1")] + [InlineData("P and Q and \"R\"", "argPQR")] + public async Task ArgumentsFromLaunchSettings_HotReload(string profileName, string expectedArgs) + { + var testAsset = TestAssets.CopyTestAsset("WatchAppWithLaunchSettings", identifier: profileName) + .WithSource(); + + App.Start(testAsset, arguments: new[] + { + "--verbose", + "-lp", + profileName + }); + + await App.WaitUntilOutputContains($"Arguments: {expectedArgs}"); + await App.WaitUntilOutputContains($"Found named launch profile '{profileName}'."); + } + } +} diff --git a/test/dotnet-watch.Tests/CommandLine/ProgramTests.HostArguments.cs b/test/dotnet-watch.Tests/CommandLine/ProgramTests.HostArguments.cs new file mode 100644 index 000000000000..20888c0d0449 --- /dev/null +++ b/test/dotnet-watch.Tests/CommandLine/ProgramTests.HostArguments.cs @@ -0,0 +1,27 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable disable + +namespace Microsoft.DotNet.Watch.UnitTests +{ + public class ProgramTests_HostArguments(ITestOutputHelper output) : DotNetWatchTestBase(output) + { + [Theory] + [InlineData(new[] { "--no-hot-reload", "--", "run", "args" }, "Argument Specified in Props,run,args")] + [InlineData(new[] { "--", "run", "args" }, "Argument Specified in Props,run,args")] + // if arguments specified on command line the ones from launch profile are ignored + [InlineData(new[] { "-lp", "P1", "--", "run", "args" },"Argument Specified in Props,run,args")] + // arguments specified in build file override arguments in launch profile + [InlineData(new[] { "-lp", "P1" }, "Argument Specified in Props")] + public async Task Arguments_HostArguments(string[] arguments, string expectedApplicationArgs) + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadAppCustomHost", identifier: string.Join(",", arguments)) + .WithSource(); + + App.Start(testAsset, arguments); + + AssertEx.Equal(expectedApplicationArgs, await App.AssertOutputLineStartsWith("Arguments = ")); + } + } +} diff --git a/test/dotnet-watch.Tests/CommandLine/ProgramTests.cs b/test/dotnet-watch.Tests/CommandLine/ProgramTests.cs index c3c8c2b3ffc8..208853ba40f5 100644 --- a/test/dotnet-watch.Tests/CommandLine/ProgramTests.cs +++ b/test/dotnet-watch.Tests/CommandLine/ProgramTests.cs @@ -17,16 +17,18 @@ public async Task ConsoleCancelKey() var console = new TestConsole(Logger); var reporter = new TestReporter(Logger); + var eventObserver = new TestEventObserver(); var loggerFactory = new LoggerFactory(reporter, LogLevel.Debug); + var observableLoggerFactory = new TestObservableLoggerFactory(eventObserver, loggerFactory); - var watching = reporter.RegisterSemaphore(MessageDescriptor.WatchingWithHotReload); - var shutdownRequested = reporter.RegisterSemaphore(MessageDescriptor.ShutdownRequested); + var watching = eventObserver.RegisterSemaphore(MessageDescriptor.WatchingWithHotReload); + var shutdownRequested = eventObserver.RegisterSemaphore(MessageDescriptor.ShutdownRequested); var program = Program.TryCreate( TestOptions.GetCommandLineOptions(["--verbose"]), console, - TestOptions.GetEnvironmentOptions(workingDirectory: testAsset.Path, TestContext.Current.ToolsetUnderTest.DotNetHostPath, testAsset), - loggerFactory, + TestOptions.GetEnvironmentOptions(workingDirectory: testAsset.Path, testAsset), + observableLoggerFactory, reporter, out var errorCode); @@ -45,278 +47,6 @@ public async Task ConsoleCancelKey() await shutdownRequested.WaitAsync(); } - [Theory] - [InlineData(new[] { "--no-hot-reload", "run" }, "")] - [InlineData(new[] { "--no-hot-reload", "run", "args" }, "args")] - [InlineData(new[] { "--no-hot-reload", "--", "run", "args" }, "run,args")] - [InlineData(new[] { "--no-hot-reload" }, "")] - [InlineData(new string[] { }, "")] - [InlineData(new[] { "run" }, "")] - [InlineData(new[] { "run", "args" }, "args")] - [InlineData(new[] { "--", "run", "args" }, "run,args")] - [InlineData(new[] { "--", "test", "args" }, "test,args")] - [InlineData(new[] { "--", "build", "args" }, "build,args")] - [InlineData(new[] { "abc" }, "abc")] - public async Task Arguments(string[] arguments, string expectedApplicationArgs) - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: string.Join(",", arguments)) - .WithSource(); - - App.SuppressVerboseLogging(); - App.Start(testAsset, arguments); - - Assert.Equal(expectedApplicationArgs, await App.AssertOutputLineStartsWith("Arguments = ")); - } - - [Theory] - [InlineData(new[] { "--no-hot-reload", "--", "run", "args" }, "Argument Specified in Props,run,args")] - [InlineData(new[] { "--", "run", "args" }, "Argument Specified in Props,run,args")] - // if arguments specified on command line the ones from launch profile are ignored - [InlineData(new[] { "-lp", "P1", "--", "run", "args" },"Argument Specified in Props,run,args")] - // arguments specified in build file override arguments in launch profile - [InlineData(new[] { "-lp", "P1" }, "Argument Specified in Props")] - public async Task Arguments_HostArguments(string[] arguments, string expectedApplicationArgs) - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadAppCustomHost", identifier: string.Join(",", arguments)) - .WithSource(); - - App.Start(testAsset, arguments); - - AssertEx.Equal(expectedApplicationArgs, await App.AssertOutputLineStartsWith("Arguments = ")); - } - - // https://github.com/dotnet/sdk/issues/49665 - [PlatformSpecificFact(TestPlatforms.Any & ~TestPlatforms.OSX)] - public async Task RunArguments_NoHotReload() - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadAppMultiTfm") - .WithSource(); - - App.SuppressVerboseLogging(); - App.Start(testAsset, arguments: - [ - "--no-hot-reload", - "run", - "-f", - "net6.0", - "--property:AssemblyVersion=1.2.3.4", - "--property", - "AssemblyTitle= | A=B'\tC | ", - "-v", - "minimal", - "--", // the following args are application args - "-v", - ]); - - Assert.Equal("-v", await App.AssertOutputLineStartsWith("Arguments = ")); - Assert.Equal("WatchHotReloadAppMultiTfm, Version=1.2.3.4, Culture=neutral, PublicKeyToken=null", await App.AssertOutputLineStartsWith("AssemblyName = ")); - Assert.Equal("' | A=B'\tC | '", await App.AssertOutputLineStartsWith("AssemblyTitle = ")); - Assert.Equal(".NETCoreApp,Version=v6.0", await App.AssertOutputLineStartsWith("TFM = ")); - - // expected output from build (-v minimal): - Assert.Contains(App.Process.Output, l => l.Contains("Determining projects to restore...")); - - // not expected to find verbose output of dotnet watch - Assert.DoesNotContain(App.Process.Output, l => l.Contains("Working directory:")); - } - - // https://github.com/dotnet/sdk/issues/49665 - [PlatformSpecificFact(TestPlatforms.Any & ~TestPlatforms.OSX)] - public async Task RunArguments_HotReload() - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadAppMultiTfm") - .WithSource(); - - App.SuppressVerboseLogging(); - App.Start(testAsset, arguments: - [ - "run", - "-f", // dotnet watch does not recognize this arg -> dotnet run arg - "net6.0", - "--property", - "AssemblyVersion=1.2.3.4", - "--property", - "AssemblyTitle= | A=B'\tC | ", - "--", // the following args are not dotnet run args - "-v", // dotnet build argument - "minimal" - ]); - - Assert.Equal("WatchHotReloadAppMultiTfm, Version=1.2.3.4, Culture=neutral, PublicKeyToken=null", await App.AssertOutputLineStartsWith("AssemblyName = ")); - Assert.Equal("' | A=B'\tC | '", await App.AssertOutputLineStartsWith("AssemblyTitle = ")); - Assert.Equal(".NETCoreApp,Version=v6.0", await App.AssertOutputLineStartsWith("TFM = ")); - - // not expected to find verbose output of dotnet watch - Assert.DoesNotContain(App.Process.Output, l => l.Contains("Working directory:")); - - Assert.Contains(App.Process.Output, l => l.Contains("Hot reload enabled.")); - } - - [Theory] - [InlineData("P1", "argP1")] - [InlineData("P and Q and \"R\"", "argPQR")] - public async Task ArgumentsFromLaunchSettings_Watch(string profileName, string expectedArgs) - { - var testAsset = TestAssets.CopyTestAsset("WatchAppWithLaunchSettings", identifier: profileName) - .WithSource(); - - App.Start(testAsset, arguments: new[] - { - "--verbose", - "--no-hot-reload", - "-lp", - profileName - }); - - Assert.Equal(expectedArgs, await App.AssertOutputLineStartsWith("Arguments: ")); - - Assert.Contains(App.Process.Output, l => l.Contains($"Found named launch profile '{profileName}'.")); - Assert.Contains(App.Process.Output, l => l.Contains("Hot Reload disabled by command line switch.")); - } - - [Theory] - [InlineData("P1", "argP1")] - [InlineData("P and Q and \"R\"", "argPQR")] - public async Task ArgumentsFromLaunchSettings_HotReload(string profileName, string expectedArgs) - { - var testAsset = TestAssets.CopyTestAsset("WatchAppWithLaunchSettings", identifier: profileName) - .WithSource(); - - App.Start(testAsset, arguments: new[] - { - "--verbose", - "-lp", - profileName - }); - - Assert.Equal(expectedArgs, await App.AssertOutputLineStartsWith("Arguments: ")); - - Assert.Contains(App.Process.Output, l => l.Contains($"Found named launch profile '{profileName}'.")); - } - - [Fact] - public async Task TestCommand() - { - var testAsset = TestAssets.CopyTestAsset("XunitCore") - .WithSource(); - - App.Start(testAsset, ["--verbose", "test", "--list-tests", "/p:VSTestUseMSBuildOutput=false"]); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); - - await App.WaitUntilOutputContains("The following Tests are available:"); - await App.WaitUntilOutputContains(" TestNamespace.VSTestXunitTests.VSTestXunitPassTest"); - App.Process.ClearOutput(); - - // update file: - var testFile = Path.Combine(testAsset.Path, "UnitTest1.cs"); - var content = File.ReadAllText(testFile, Encoding.UTF8); - File.WriteAllText(testFile, content.Replace("VSTestXunitPassTest", "VSTestXunitPassTest2"), Encoding.UTF8); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); - - await App.WaitUntilOutputContains("The following Tests are available:"); - await App.WaitUntilOutputContains(" TestNamespace.VSTestXunitTests.VSTestXunitPassTest2"); - } - - [Fact] - public async Task TestCommand_MultiTargeting() - { - var testAsset = TestAssets.CopyTestAsset("XunitMulti") - .WithSource(); - - App.Start(testAsset, ["--verbose", "test", "--framework", ToolsetInfo.CurrentTargetFramework, "--list-tests", "/p:VSTestUseMSBuildOutput=false"]); - - await App.AssertOutputLineEquals("The following Tests are available:"); - await App.AssertOutputLineEquals(" TestNamespace.VSTestXunitTests.VSTestXunitFailTestNetCoreApp"); - } - - [Fact] - public async Task BuildCommand() - { - var testAsset = TestAssets.CopyTestAsset("WatchNoDepsApp") - .WithSource(); - - App.Start(testAsset, ["--verbose", "--property", "TestProperty=123", "build", "/t:TestTarget"]); - - await App.WaitUntilOutputContains(MessageDescriptor.CommandDoesNotSupportHotReload.GetMessage("build")); - await App.WaitUntilOutputContains("warning : The value of property is '123'"); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); - - // evaluation affected by -c option: - Assert.Contains("TestProperty", App.Process.Output.Single(line => line.Contains("/t:GenerateWatchList"))); - } - - [Fact] - public async Task MSBuildCommand() - { - var testAsset = TestAssets.CopyTestAsset("WatchNoDepsApp") - .WithSource(); - - App.Start(testAsset, ["--verbose", "/p:TestProperty=123", "msbuild", "/t:TestTarget"]); - - await App.WaitUntilOutputContains(MessageDescriptor.CommandDoesNotSupportHotReload.GetMessage("msbuild")); - await App.WaitUntilOutputContains("warning : The value of property is '123'"); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); - - // TestProperty is not passed to evaluation since msbuild command doesn't include it in forward options: - Assert.DoesNotContain("TestProperty", App.Process.Output.Single(line => line.Contains("/t:GenerateWatchList"))); - } - - [Fact] - public async Task PackCommand() - { - var testAsset = TestAssets.CopyTestAsset("WatchNoDepsApp") - .WithSource(); - - App.Start(testAsset, ["--verbose", "pack", "-c", "Release"]); - - var packagePath = Path.Combine(testAsset.Path, "bin", "Release", "WatchNoDepsApp.1.0.0.nupkg"); - - await App.WaitUntilOutputContains(MessageDescriptor.CommandDoesNotSupportHotReload.GetMessage("pack")); - await App.WaitUntilOutputContains($"Successfully created package '{packagePath}'"); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); - - // evaluation affected by -c option: - Assert.Contains("-property:Configuration=Release", App.Process.Output.Single(line => line.Contains("/t:GenerateWatchList"))); - } - - [Fact] - public async Task PublishCommand() - { - var testAsset = TestAssets.CopyTestAsset("WatchNoDepsApp") - .WithSource(); - - App.Start(testAsset, ["--verbose", "publish", "-c", "Release"]); - - await App.WaitUntilOutputContains(MessageDescriptor.CommandDoesNotSupportHotReload.GetMessage("publish")); - await App.WaitUntilOutputContains(Path.Combine("Release", ToolsetInfo.CurrentTargetFramework, "publish")); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); - - // evaluation affected by -c option: - Assert.Contains("-property:Configuration=Release", App.Process.Output.Single(line => line.Contains("/t:GenerateWatchList"))); - } - - [Fact] - public async Task FormatCommand() - { - var testAsset = TestAssets.CopyTestAsset("WatchNoDepsApp") - .WithSource(); - - App.SuppressVerboseLogging(); - App.Start(testAsset, ["--verbose", "format", "--verbosity", "detailed"]); - - await App.WaitUntilOutputContains(MessageDescriptor.CommandDoesNotSupportHotReload.GetMessage("format")); - await App.WaitUntilOutputContains("format --verbosity detailed"); - await App.WaitUntilOutputContains("Format complete in"); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); - } - [Fact] public async Task ProjectGraphLoadFailure() { @@ -342,7 +72,7 @@ public async Task ProjectGraphLoadFailure() await App.WaitUntilOutputContains("dotnet watch ⌚ Fix the error to continue or press Ctrl+C to exit."); } - [PlatformSpecificFact(TestPlatforms.Windows)] // "https://github.com/dotnet/sdk/issues/49307") + [Fact] public async Task ListsFiles() { var testAsset = TestAssets.CopyTestAsset("WatchGlobbingApp") @@ -350,8 +80,9 @@ public async Task ListsFiles() App.SuppressVerboseLogging(); App.Start(testAsset, ["--list"]); - var lines = await App.Process.GetAllOutputLinesAsync(CancellationToken.None); - var files = lines.Where(l => !l.StartsWith("dotnet watch ⌚") && l.Trim() != ""); + await App.Process.WaitUntilOutputCompleted(); + + var files = App.Process.Output.Where(l => !l.StartsWith("dotnet watch ⌚") && l.Trim() != ""); AssertEx.EqualFileList( testAsset.Path, diff --git a/test/dotnet-watch.Tests/CommandLine/SubcommandTests.cs b/test/dotnet-watch.Tests/CommandLine/SubcommandTests.cs new file mode 100644 index 000000000000..2b4dfdcdff8f --- /dev/null +++ b/test/dotnet-watch.Tests/CommandLine/SubcommandTests.cs @@ -0,0 +1,133 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable disable + +namespace Microsoft.DotNet.Watch.UnitTests +{ + public class SubcommandTests(ITestOutputHelper output) : DotNetWatchTestBase(output) + { + [Fact] + public async Task TestCommand() + { + var testAsset = TestAssets.CopyTestAsset("XunitCore") + .WithSource(); + + App.Start(testAsset, ["--verbose", "test", "--list-tests", "/p:VSTestUseMSBuildOutput=false"]); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + + await App.WaitUntilOutputContains("The following Tests are available:"); + await App.WaitUntilOutputContains(" TestNamespace.VSTestXunitTests.VSTestXunitPassTest"); + App.Process.ClearOutput(); + + // update file: + var testFile = Path.Combine(testAsset.Path, "UnitTest1.cs"); + var content = File.ReadAllText(testFile, Encoding.UTF8); + File.WriteAllText(testFile, content.Replace("VSTestXunitPassTest", "VSTestXunitPassTest2"), Encoding.UTF8); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + + await App.WaitUntilOutputContains("The following Tests are available:"); + await App.WaitUntilOutputContains(" TestNamespace.VSTestXunitTests.VSTestXunitPassTest2"); + } + + [Fact] + public async Task TestCommand_MultiTargeting() + { + var testAsset = TestAssets.CopyTestAsset("XunitMulti") + .WithSource(); + + App.Start(testAsset, ["--verbose", "test", "--framework", ToolsetInfo.CurrentTargetFramework, "--list-tests", "/p:VSTestUseMSBuildOutput=false"]); + + await App.AssertOutputLineEquals("The following Tests are available:"); + await App.AssertOutputLineEquals(" TestNamespace.VSTestXunitTests.VSTestXunitFailTestNetCoreApp"); + } + + [Fact] + public async Task BuildCommand() + { + var testAsset = TestAssets.CopyTestAsset("WatchNoDepsApp") + .WithSource(); + + App.Start(testAsset, ["--verbose", "--property", "TestProperty=123", "build", "/t:TestTarget"]); + + await App.WaitUntilOutputContains(MessageDescriptor.CommandDoesNotSupportHotReload.GetMessage("build")); + await App.WaitUntilOutputContains("warning : The value of property is '123'"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + + // evaluation affected by -c option: + Assert.Contains("TestProperty", App.Process.Output.Single(line => line.Contains("/t:GenerateWatchList"))); + } + + [Fact] + public async Task MSBuildCommand() + { + var testAsset = TestAssets.CopyTestAsset("WatchNoDepsApp") + .WithSource(); + + App.Start(testAsset, ["--verbose", "/p:TestProperty=123", "msbuild", "/t:TestTarget"]); + + await App.WaitUntilOutputContains(MessageDescriptor.CommandDoesNotSupportHotReload.GetMessage("msbuild")); + await App.WaitUntilOutputContains("warning : The value of property is '123'"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + + // TestProperty is not passed to evaluation since msbuild command doesn't include it in forward options: + Assert.DoesNotContain("TestProperty", App.Process.Output.Single(line => line.Contains("/t:GenerateWatchList"))); + } + + [Fact] + public async Task PackCommand() + { + var testAsset = TestAssets.CopyTestAsset("WatchNoDepsApp") + .WithSource(); + + App.Start(testAsset, ["--verbose", "pack", "-c", "Release"]); + + var packagePath = Path.Combine(testAsset.Path, "bin", "Release", "WatchNoDepsApp.1.0.0.nupkg"); + + await App.WaitUntilOutputContains(MessageDescriptor.CommandDoesNotSupportHotReload.GetMessage("pack")); + await App.WaitUntilOutputContains($"Successfully created package '{packagePath}'"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + + // evaluation affected by -c option: + Assert.Contains("-property:Configuration=Release", App.Process.Output.Single(line => line.Contains("/t:GenerateWatchList"))); + } + + [Fact] + public async Task PublishCommand() + { + var testAsset = TestAssets.CopyTestAsset("WatchNoDepsApp") + .WithSource(); + + App.Start(testAsset, ["--verbose", "publish", "-c", "Release"]); + + await App.WaitUntilOutputContains(MessageDescriptor.CommandDoesNotSupportHotReload.GetMessage("publish")); + await App.WaitUntilOutputContains(Path.Combine("Release", ToolsetInfo.CurrentTargetFramework, "publish")); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + + // evaluation affected by -c option: + Assert.Contains("-property:Configuration=Release", App.Process.Output.Single(line => line.Contains("/t:GenerateWatchList"))); + } + + [Fact] + public async Task FormatCommand() + { + var testAsset = TestAssets.CopyTestAsset("WatchNoDepsApp") + .WithSource(); + + App.SuppressVerboseLogging(); + App.Start(testAsset, ["--verbose", "format", "--verbosity", "detailed"]); + + await App.WaitUntilOutputContains(MessageDescriptor.CommandDoesNotSupportHotReload.GetMessage("format")); + await App.WaitUntilOutputContains("format --verbosity detailed"); + await App.WaitUntilOutputContains("Format complete in"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + } + } +} diff --git a/test/dotnet-watch.Tests/ConsoleReporterTests.cs b/test/dotnet-watch.Tests/ConsoleReporterTests.cs index 748badd9f4d2..21bda6d44d4e 100644 --- a/test/dotnet-watch.Tests/ConsoleReporterTests.cs +++ b/test/dotnet-watch.Tests/ConsoleReporterTests.cs @@ -17,30 +17,30 @@ public class ConsoleReporterTests public void WritesToStandardStreams(bool suppressEmojis) { var testConsole = new TestConsole(); - var reporter = new ConsoleReporter(testConsole, suppressEmojis: suppressEmojis); + var reporter = new ConsoleReporter(testConsole, "test prefix", suppressEmojis: suppressEmojis); reporter.Report(id: default, Emoji.Watch, LogLevel.Trace, "trace {0}"); - Assert.Equal($"dotnet watch {(suppressEmojis ? ":" : "⌚")} trace {{0}}" + EOL, testConsole.GetError()); + Assert.Equal($"test prefix {(suppressEmojis ? ":" : "⌚")} trace {{0}}" + EOL, testConsole.GetError()); testConsole.Clear(); reporter.Report(id: default, Emoji.Watch, LogLevel.Debug, "verbose"); - Assert.Equal($"dotnet watch {(suppressEmojis ? ":" : "⌚")} verbose" + EOL, testConsole.GetError()); + Assert.Equal($"test prefix {(suppressEmojis ? ":" : "⌚")} verbose" + EOL, testConsole.GetError()); testConsole.Clear(); reporter.Report(id: default, Emoji.Watch, LogLevel.Information, "out"); - Assert.Equal($"dotnet watch {(suppressEmojis ? ":" : "⌚")} out" + EOL, testConsole.GetError()); + Assert.Equal($"test prefix {(suppressEmojis ? ":" : "⌚")} out" + EOL, testConsole.GetError()); testConsole.Clear(); reporter.Report(id: default, Emoji.Warning, LogLevel.Warning, "warn"); - Assert.Equal($"dotnet watch {(suppressEmojis ? ":" : "⚠")} warn" + EOL, testConsole.GetError()); + Assert.Equal($"test prefix {(suppressEmojis ? ":" : "⚠")} warn" + EOL, testConsole.GetError()); testConsole.Clear(); reporter.Report(id: default, Emoji.Error, LogLevel.Error, "error"); - Assert.Equal($"dotnet watch {(suppressEmojis ? ":" : "❌")} error" + EOL, testConsole.GetError()); + Assert.Equal($"test prefix {(suppressEmojis ? ":" : "❌")} error" + EOL, testConsole.GetError()); testConsole.Clear(); reporter.Report(id: default, Emoji.Error, LogLevel.Critical, "critical"); - Assert.Equal($"dotnet watch {(suppressEmojis ? ":" : "❌")} critical" + EOL, testConsole.GetError()); + Assert.Equal($"test prefix {(suppressEmojis ? ":" : "❌")} critical" + EOL, testConsole.GetError()); testConsole.Clear(); } diff --git a/test/dotnet-watch.Tests/HotReload/AspireHotReloadTests.cs b/test/dotnet-watch.Tests/HotReload/AspireHotReloadTests.cs index fa3de559d3e8..715c93552330 100644 --- a/test/dotnet-watch.Tests/HotReload/AspireHotReloadTests.cs +++ b/test/dotnet-watch.Tests/HotReload/AspireHotReloadTests.cs @@ -76,7 +76,7 @@ public async Task Aspire_BuildError_ManualRestart() await App.WaitUntilOutputContains($"[WatchAspire.ApiService ({tfm})] Exited"); - await App.WaitUntilOutputContains(MessageDescriptor.Building.GetMessage(serviceProjectPath)); + await App.WaitUntilOutputContains(MessageDescriptor.Building); await App.WaitUntilOutputContains("error CS0246: The type or namespace name 'WeatherForecast' could not be found"); App.Process.ClearOutput(); @@ -87,7 +87,7 @@ public async Task Aspire_BuildError_ManualRestart() await App.WaitUntilOutputContains(MessageDescriptor.ProjectsRestarted.GetMessage(1)); - await App.WaitUntilOutputContains(MessageDescriptor.BuildSucceeded.GetMessage(serviceProjectPath)); + await App.WaitUntilOutputContains(MessageDescriptor.BuildSucceeded); await App.WaitUntilOutputContains(MessageDescriptor.ProjectsRebuilt); await App.WaitUntilOutputContains($"Starting: '{serviceProjectPath}'"); @@ -112,8 +112,9 @@ public async Task Aspire_BuildError_ManualRestart() await App.WaitUntilOutputContains("dotnet watch ⭐ [#1] Stop session"); await App.WaitUntilOutputContains("dotnet watch ⭐ [#2] Stop session"); await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Stop session"); - await App.WaitUntilOutputContains("dotnet watch ⭐ [#2] Sending 'sessionTerminated'"); - await App.WaitUntilOutputContains("dotnet watch ⭐ [#3] Sending 'sessionTerminated'"); + + // Note: do not check that 'sessionTerminated' notification is received. + // It might get cancelled and not delivered on shutdown. } [PlatformSpecificFact(TestPlatforms.Windows)] // https://github.com/dotnet/sdk/issues/53058, https://github.com/dotnet/sdk/issues/53061, https://github.com/dotnet/sdk/issues/53114 diff --git a/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs b/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs index 42a531303ceb..59788507d466 100644 --- a/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs +++ b/test/dotnet-watch.Tests/HotReload/CompilationHandlerTests.cs @@ -20,7 +20,7 @@ public async Task ReferenceOutputAssembly_False() var cmdOptions = TestOptions.GetCommandLineOptions(["--project", hostProject]); var projectOptions = TestOptions.GetProjectOptions(cmdOptions); - var environmentOptions = TestOptions.GetEnvironmentOptions(Environment.CurrentDirectory, "dotnet"); + var environmentOptions = TestOptions.GetEnvironmentOptions(Environment.CurrentDirectory); var factory = new ProjectGraphFactory([hostProjectRepr], targetFramework: null, buildProperties: [], NullLogger.Instance); var projectGraph = factory.TryLoadProjectGraph(projectGraphRequired: false, CancellationToken.None); diff --git a/test/dotnet-watch.Tests/HotReload/CtrlRTests.cs b/test/dotnet-watch.Tests/HotReload/CtrlRTests.cs new file mode 100644 index 000000000000..f859369c9e5b --- /dev/null +++ b/test/dotnet-watch.Tests/HotReload/CtrlRTests.cs @@ -0,0 +1,89 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Microsoft.DotNet.Watch.UnitTests; + +public class CtrlRTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) +{ + [Fact] + public async Task RestartsBuild() + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") + .WithSource(); + + await using var w = CreateInProcWatcher(testAsset, []); + + var buildCounter = 0; + + w.Observer.RegisterAction(MessageDescriptor.Building, () => + { + if (Interlocked.Increment(ref buildCounter) == 1) + { + w.Console.PressKey(new ConsoleKeyInfo('R', ConsoleKey.R, shift: false, alt: false, control: true)); + } + }); + + var restarting = w.Observer.RegisterSemaphore(MessageDescriptor.Restarting); + + // Iteration #1 build should be canceled, iteration #2 should build and launch the app. + var hasExpectedOutput = w.CreateCompletionSource(); + w.Reporter.OnProcessOutput += line => + { + Assert.DoesNotContain("DOTNET_WATCH_ITERATION = 1", line.Content); + + if (line.Content.Contains("DOTNET_WATCH_ITERATION = 2")) + { + hasExpectedOutput.TrySetResult(); + } + }; + + w.Start(); + + // 🔄 Restarting + await restarting.WaitAsync(w.ShutdownSource.Token); + + // DOTNET_WATCH_ITERATION = 2 + await hasExpectedOutput.Task; + + Assert.Equal(2, buildCounter); + } + + [Fact] + public async Task CancelsWaitForFileChange() + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") + .WithSource(); + + var programFilePath = Path.Combine(testAsset.Path, "Program.cs"); + + File.WriteAllText(programFilePath, """ + System.Console.WriteLine(""); + """); + + await using var w = CreateInProcWatcher(testAsset, []); + + w.Observer.RegisterAction(MessageDescriptor.WaitingForFileChangeBeforeRestarting, () => + { + w.Console.PressKey(new ConsoleKeyInfo('R', ConsoleKey.R, shift: false, alt: false, control: true)); + }); + + var buildCounter = 0; + w.Observer.RegisterAction(MessageDescriptor.Building, () => Interlocked.Increment(ref buildCounter)); + + var counter = 0; + var hasExpectedOutput = w.CreateCompletionSource(); + w.Reporter.OnProcessOutput += line => + { + if (line.Content.Contains("") && Interlocked.Increment(ref counter) == 2) + { + hasExpectedOutput.TrySetResult(); + } + }; + + w.Start(); + + await hasExpectedOutput.Task; + + Assert.Equal(2, buildCounter); + } +} diff --git a/test/dotnet-watch.Tests/HotReload/FileExclusionTests.cs b/test/dotnet-watch.Tests/HotReload/FileExclusionTests.cs new file mode 100644 index 000000000000..a5b9af94b711 --- /dev/null +++ b/test/dotnet-watch.Tests/HotReload/FileExclusionTests.cs @@ -0,0 +1,115 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Microsoft.DotNet.Watch.UnitTests; + +public class FileExclusionTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) +{ + public enum DirectoryKind + { + Ordinary, + Hidden, + Bin, + Obj, + } + + [Theory] + [CombinatorialData] + public async Task IgnoredChange(bool isExisting, bool isIncluded, DirectoryKind directoryKind) + { + var testAsset = CopyTestAsset("WatchNoDepsApp", [isExisting, isIncluded, directoryKind]); + + var workingDirectory = testAsset.Path; + string dir; + + switch (directoryKind) + { + case DirectoryKind.Bin: + dir = Path.Combine(workingDirectory, "bin", "Debug", ToolsetInfo.CurrentTargetFramework); + break; + + case DirectoryKind.Obj: + dir = Path.Combine(workingDirectory, "obj", "Debug", ToolsetInfo.CurrentTargetFramework); + break; + + case DirectoryKind.Hidden: + dir = Path.Combine(workingDirectory, ".dir"); + break; + + default: + dir = workingDirectory; + break; + } + + var extension = isIncluded ? ".cs" : ".txt"; + + Directory.CreateDirectory(dir); + + var path = Path.Combine(dir, "File" + extension); + + if (isExisting) + { + File.WriteAllText(path, "class C { int F() => 1; }"); + + if (isIncluded && directoryKind is DirectoryKind.Bin or DirectoryKind.Obj or DirectoryKind.Hidden) + { + var project = Path.Combine(workingDirectory, "WatchNoDepsApp.csproj"); + File.WriteAllText(project, File.ReadAllText(project).Replace( + "", + $""" + + """)); + } + } + + await using var w = CreateInProcWatcher(testAsset, ["--no-exit"], workingDirectory); + + var waitingForChanges = w.Observer.RegisterSemaphore(MessageDescriptor.WaitingForChanges); + var changeHandled = w.Observer.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); + var ignoringChangeInHiddenDirectory = w.Observer.RegisterSemaphore(MessageDescriptor.IgnoringChangeInHiddenDirectory); + var ignoringChangeInExcludedFile = w.Observer.RegisterSemaphore(MessageDescriptor.IgnoringChangeInExcludedFile); + var fileAdditionTriggeredReEvaluation = w.Observer.RegisterSemaphore(MessageDescriptor.FileAdditionTriggeredReEvaluation); + var reEvaluationCompleted = w.Observer.RegisterSemaphore(MessageDescriptor.ReEvaluationCompleted); + var noHotReloadChangesToApply = w.Observer.RegisterSemaphore(MessageDescriptor.NoManagedCodeChangesToApply); + + w.Start(); + + Log("Waiting for changes..."); + await waitingForChanges.WaitAsync(w.ShutdownSource.Token); + + UpdateSourceFile(path, "class C { int F() => 2; }"); + + switch ((isExisting, isIncluded, directoryKind)) + { + case (isExisting: true, isIncluded: true, directoryKind: _): + Log("Waiting for changed handled ..."); + await changeHandled.WaitAsync(w.ShutdownSource.Token); + break; + + case (isExisting: true, isIncluded: false, directoryKind: DirectoryKind.Ordinary): + Log("Waiting for no hot reload changes to apply ..."); + await noHotReloadChangesToApply.WaitAsync(w.ShutdownSource.Token); + break; + + case (isExisting: false, isIncluded: _, directoryKind: DirectoryKind.Ordinary): + Log("Waiting for file addition re-evalutation ..."); + await fileAdditionTriggeredReEvaluation.WaitAsync(w.ShutdownSource.Token); + Log("Waiting for re-evalutation to complete ..."); + await reEvaluationCompleted.WaitAsync(w.ShutdownSource.Token); + break; + + case (isExisting: _, isIncluded: _, directoryKind: DirectoryKind.Hidden): + Log("Waiting for ignored change in hidden dir ..."); + await ignoringChangeInHiddenDirectory.WaitAsync(w.ShutdownSource.Token); + break; + + case (isExisting: _, isIncluded: _, directoryKind: DirectoryKind.Bin or DirectoryKind.Obj): + Log("Waiting for ignored change in output dir ..."); + await ignoringChangeInExcludedFile.WaitAsync(w.ShutdownSource.Token); + break; + + default: + throw new InvalidOperationException(); + } + } +} diff --git a/test/dotnet-watch.Tests/HotReload/ProjectUpdateInProcTests.cs b/test/dotnet-watch.Tests/HotReload/ProjectUpdateInProcTests.cs new file mode 100644 index 000000000000..f39310095b2b --- /dev/null +++ b/test/dotnet-watch.Tests/HotReload/ProjectUpdateInProcTests.cs @@ -0,0 +1,182 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Microsoft.DotNet.Watch.UnitTests; + +public class ProjectUpdateInProcTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) +{ + [Fact] + public async Task ProjectAndSourceFileChange() + { + var testAsset = CopyTestAsset("WatchHotReloadApp"); + + var workingDirectory = testAsset.Path; + var projectPath = Path.Combine(testAsset.Path, "WatchHotReloadApp.csproj"); + var programPath = Path.Combine(testAsset.Path, "Program.cs"); + + await using var w = CreateInProcWatcher(testAsset, [], workingDirectory); + + var fileChangesCompleted = w.CreateCompletionSource(); + w.Watcher.Test_FileChangesCompletedTask = fileChangesCompleted.Task; + + var waitingForChanges = w.Observer.RegisterSemaphore(MessageDescriptor.WaitingForChanges); + + var changeHandled = w.Observer.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); + + var hasUpdatedOutput = w.CreateCompletionSource(); + w.Reporter.OnProcessOutput += line => + { + if (line.Content.Contains("System.Xml.Linq.XDocument")) + { + hasUpdatedOutput.TrySetResult(); + } + }; + + w.Start(); + + Log("Waiting for changes..."); + await waitingForChanges.WaitAsync(w.ShutdownSource.Token); + + // change the project and source files at the same time: + + UpdateSourceFile(programPath, src => src.Replace("""Console.WriteLine(".");""", """Console.WriteLine(typeof(XDocument));""")); + UpdateSourceFile(projectPath, src => src.Replace("", """""")); + + // done updating files: + fileChangesCompleted.TrySetResult(); + + Log("Waiting for change handled ..."); + await changeHandled.WaitAsync(w.ShutdownSource.Token); + + Log("Waiting for output 'System.Xml.Linq.XDocument'..."); + await hasUpdatedOutput.Task; + } + + [Fact] + public async Task ProjectAndSourceFileChange_AddProjectReference() + { + var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps") + .WithSource() + .WithProjectChanges(project => + { + foreach (var r in project.Root!.Descendants().Where(e => e.Name.LocalName == "ProjectReference").ToArray()) + { + r.Remove(); + } + }); + + var appProjDir = Path.Combine(testAsset.Path, "AppWithDeps"); + var appProjFile = Path.Combine(appProjDir, "App.WithDeps.csproj"); + var appFile = Path.Combine(appProjDir, "Program.cs"); + + UpdateSourceFile(appFile, code => code.Replace("Lib.Print();", "// Lib.Print();")); + + await using var w = CreateInProcWatcher(testAsset, [], appProjDir); + + var fileChangesCompleted = w.CreateCompletionSource(); + w.Watcher.Test_FileChangesCompletedTask = fileChangesCompleted.Task; + + var waitingForChanges = w.Observer.RegisterSemaphore(MessageDescriptor.WaitingForChanges); + var projectChangeTriggeredReEvaluation = w.Observer.RegisterSemaphore(MessageDescriptor.ProjectChangeTriggeredReEvaluation); + var projectsRebuilt = w.Observer.RegisterSemaphore(MessageDescriptor.ProjectsRebuilt); + var projectDependenciesDeployed = w.Observer.RegisterSemaphore(MessageDescriptor.ProjectDependenciesDeployed); + var managedCodeChangesApplied = w.Observer.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); + + var hasUpdatedOutput = w.CreateCompletionSource(); + w.Reporter.OnProcessOutput += line => + { + if (line.Content.Contains("")) + { + hasUpdatedOutput.TrySetResult(); + } + }; + + w.Start(); + + Log("Waiting for changes..."); + await waitingForChanges.WaitAsync(w.ShutdownSource.Token); + + // change the project and source files at the same time: + + UpdateSourceFile(appProjFile, src => src.Replace(""" + + """, """ + + + + """)); + + UpdateSourceFile(appFile, code => code.Replace("// Lib.Print();", "Lib.Print();")); + + // done updating files: + fileChangesCompleted.TrySetResult(); + + Log("Waiting for output ''..."); + await hasUpdatedOutput.Task; + + AssertEx.ContainsSubstring("Resolving 'Dependency, Version=1.0.0.0'", w.Reporter.ProcessOutput); + + Assert.Equal(1, projectChangeTriggeredReEvaluation.CurrentCount); + Assert.Equal(1, projectsRebuilt.CurrentCount); + Assert.Equal(1, projectDependenciesDeployed.CurrentCount); + Assert.Equal(1, managedCodeChangesApplied.CurrentCount); + } + + [Fact] + public async Task ProjectAndSourceFileChange_AddPackageReference() + { + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") + .WithSource(); + + var projFilePath = Path.Combine(testAsset.Path, "WatchHotReloadApp.csproj"); + var programFilePath = Path.Combine(testAsset.Path, "Program.cs"); + + await using var w = CreateInProcWatcher(testAsset, []); + + var fileChangesCompleted = w.CreateCompletionSource(); + w.Watcher.Test_FileChangesCompletedTask = fileChangesCompleted.Task; + + var waitingForChanges = w.Observer.RegisterSemaphore(MessageDescriptor.WaitingForChanges); + var projectChangeTriggeredReEvaluation = w.Observer.RegisterSemaphore(MessageDescriptor.ProjectChangeTriggeredReEvaluation); + var projectsRebuilt = w.Observer.RegisterSemaphore(MessageDescriptor.ProjectsRebuilt); + var projectDependenciesDeployed = w.Observer.RegisterSemaphore(MessageDescriptor.ProjectDependenciesDeployed); + var managedCodeChangesApplied = w.Observer.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); + + var hasUpdatedOutput = w.CreateCompletionSource(); + w.Reporter.OnProcessOutput += line => + { + if (line.Content.Contains("Newtonsoft.Json.Linq.JToken")) + { + hasUpdatedOutput.TrySetResult(); + } + }; + + w.Start(); + + Log("Waiting for changes..."); + await waitingForChanges.WaitAsync(w.ShutdownSource.Token); + + // change the project and source files at the same time: + + UpdateSourceFile(projFilePath, source => source.Replace(""" + + """, """ + + """)); + + UpdateSourceFile(programFilePath, source => source.Replace("Console.WriteLine(\".\");", "Console.WriteLine(typeof(Newtonsoft.Json.Linq.JToken));")); + + // done updating files: + fileChangesCompleted.TrySetResult(); + + Log("Waiting for output 'Newtonsoft.Json.Linq.JToken'..."); + await hasUpdatedOutput.Task; + + AssertEx.ContainsSubstring("Resolving 'Newtonsoft.Json, Version=13.0.0.0'", w.Reporter.ProcessOutput); + + Assert.Equal(1, projectChangeTriggeredReEvaluation.CurrentCount); + Assert.Equal(0, projectsRebuilt.CurrentCount); + Assert.Equal(1, projectDependenciesDeployed.CurrentCount); + Assert.Equal(1, managedCodeChangesApplied.CurrentCount); + } +} diff --git a/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs b/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs index 0c73767e5a47..f5ea15cb1218 100644 --- a/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs +++ b/test/dotnet-watch.Tests/HotReload/RuntimeProcessLauncherTests.cs @@ -1,12 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.Runtime.CompilerServices; -using Microsoft.Extensions.Logging; - namespace Microsoft.DotNet.Watch.UnitTests; -[Collection(nameof(InProcBuildTestCollection))] public class RuntimeProcessLauncherTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) { public enum TriggerEvent @@ -16,143 +12,11 @@ public enum TriggerEvent WaitingForChanges, } - private record class TestWatcher( - RuntimeProcessLauncherTests Test, - HotReloadDotNetWatcher Watcher, - DotNetWatchContext Context, - TestReporter Reporter, - TestConsole Console, - StrongBox ServiceHolder, - CancellationTokenSource ShutdownSource) : IAsyncDisposable - { - public TestRuntimeProcessLauncher? Service => ServiceHolder.Value; - private Task? _lazyTask; - - public void Start() - { - Assert.Null(_lazyTask); - - _lazyTask = Task.Run(async () => - { - Test.Log("Starting watch"); - - try - { - await Watcher.WatchAsync(ShutdownSource.Token); - } - catch (Exception e) when (e is not OperationCanceledException) - { - ShutdownSource.Cancel(); - Test.Logger.WriteLine($"Unexpected exception {e}"); - throw; - } - finally - { - Context.Dispose(); - } - }, ShutdownSource.Token); - } - - public async ValueTask DisposeAsync() - { - Assert.NotNull(_lazyTask); - - if (!ShutdownSource.IsCancellationRequested) - { - Test.Log("Shutting down"); - ShutdownSource.Cancel(); - } - - try - { - await _lazyTask; - } - catch (OperationCanceledException) - { - } - } - - public TaskCompletionSource CreateCompletionSource() - { - var source = new TaskCompletionSource(); - ShutdownSource.Token.Register(() => source.TrySetCanceled(ShutdownSource.Token)); - return source; - } - } - - private TestAsset CopyTestAsset(string assetName, params object[] testParameters) - => TestAssets.CopyTestAsset(assetName, identifier: string.Join(";", testParameters)).WithSource(); - - private static async Task Launch(string projectPath, TestRuntimeProcessLauncher service, string workingDirectory, CancellationToken cancellationToken) - { - var projectOptions = new ProjectOptions() - { - IsMainProject = false, - Representation = new ProjectRepresentation(projectPath, entryPointFilePath: null), - WorkingDirectory = workingDirectory, - Command = "run", - CommandArguments = ["--project", projectPath], - LaunchEnvironmentVariables = [], - LaunchProfileName = default, - }; - - RestartOperation? startOp = null; - startOp = new RestartOperation(async cancellationToken => - { - var result = await service.ProjectLauncher.TryLaunchProcessAsync( - projectOptions, - onOutput: null, - onExit: null, - restartOperation: startOp!, - cancellationToken); - - Assert.NotNull(result); - - await result.Clients.WaitForConnectionEstablishedAsync(cancellationToken); - - return result; - }); - - return await startOp(cancellationToken); - } - - private TestWatcher CreateWatcher(TestAsset testAsset, string[] args, string? workingDirectory = null) - { - var console = new TestConsole(Logger); - var reporter = new TestReporter(Logger); - var loggerFactory = new LoggerFactory(reporter, LogLevel.Trace); - var environmentOptions = TestOptions.GetEnvironmentOptions(workingDirectory ?? testAsset.Path, TestContext.Current.ToolsetUnderTest.DotNetHostPath, testAsset); - var processRunner = new ProcessRunner(environmentOptions.GetProcessCleanupTimeout()); - - var program = Program.TryCreate( - TestOptions.GetCommandLineOptions(["--verbose", ..args]), - console, - environmentOptions, - loggerFactory, - reporter, - out var errorCode); - - Assert.Equal(0, errorCode); - Assert.NotNull(program); - - var serviceHolder = new StrongBox(); - var factory = new TestRuntimeProcessLauncher.Factory(s => - { - serviceHolder.Value = s; - }); - - var context = program.CreateContext(processRunner); - var watcher = new HotReloadDotNetWatcher(context, console, runtimeProcessLauncherFactory: factory); - var shutdownSource = new CancellationTokenSource(); - - return new TestWatcher(this, watcher, context, reporter, console, serviceHolder, shutdownSource); - } - [Theory] [CombinatorialData] public async Task UpdateAndRudeEdit(TriggerEvent trigger) { - var testAsset = CopyTestAsset("WatchAppMultiProc", trigger); + var testAsset = CopyTestAsset("WatchAppMultiProc", [trigger]); var tfm = ToolsetInfo.CurrentTargetFramework; @@ -169,14 +33,14 @@ public async Task UpdateAndRudeEdit(TriggerEvent trigger) var libProject = Path.Combine(libDir, "Lib.csproj"); var libSource = Path.Combine(libDir, "Lib.cs"); - await using var w = CreateWatcher(testAsset, ["--non-interactive", "--project", hostProject], workingDirectory); + await using var w = CreateInProcWatcher(testAsset, ["--non-interactive", "--project", hostProject], workingDirectory); var launchCompletionA = w.CreateCompletionSource(); var launchCompletionB = w.CreateCompletionSource(); - w.Reporter.RegisterAction(trigger switch + w.Observer.RegisterAction(trigger switch { - TriggerEvent.HotReloadSessionStarting => MessageDescriptor.HotReloadSessionStarting, + TriggerEvent.HotReloadSessionStarting => MessageDescriptor.HotReloadSessionStartingNotification, TriggerEvent.HotReloadSessionStarted => MessageDescriptor.HotReloadSessionStarted, TriggerEvent.WaitingForChanges => MessageDescriptor.WaitingForChanges, _ => throw new InvalidOperationException(), @@ -191,19 +55,19 @@ public async Task UpdateAndRudeEdit(TriggerEvent trigger) // service should have been created before Hot Reload session started: Assert.NotNull(w.Service); - Launch(serviceProjectA, w.Service, workingDirectory, w.ShutdownSource.Token).Wait(); + w.Service.Launch(serviceProjectA, workingDirectory, w.ShutdownSource.Token).Wait(); launchCompletionA.TrySetResult(); - Launch(serviceProjectB, w.Service, workingDirectory, w.ShutdownSource.Token).Wait(); + w.Service.Launch(serviceProjectB, workingDirectory, w.ShutdownSource.Token).Wait(); launchCompletionB.TrySetResult(); }); - var waitingForChanges = w.Reporter.RegisterSemaphore(MessageDescriptor.WaitingForChanges); + var waitingForChanges = w.Observer.RegisterSemaphore(MessageDescriptor.WaitingForChanges); - var changeHandled = w.Reporter.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); - var projectsRestarted = w.Reporter.RegisterSemaphore(MessageDescriptor.ProjectsRestarted); - var sessionStarted = w.Reporter.RegisterSemaphore(MessageDescriptor.HotReloadSessionStarted); - var projectBaselinesUpdated = w.Reporter.RegisterSemaphore(MessageDescriptor.ProjectsRebuilt); + var changeHandled = w.Observer.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); + var projectsRestarted = w.Observer.RegisterSemaphore(MessageDescriptor.ProjectsRestarted); + var sessionStarted = w.Observer.RegisterSemaphore(MessageDescriptor.HotReloadSessionStarted); + var projectBaselinesUpdated = w.Observer.RegisterSemaphore(MessageDescriptor.ProjectsRebuilt); w.Start(); @@ -313,7 +177,7 @@ async Task MakeRudeEditChange() [CombinatorialData] public async Task UpdateAppliedToNewProcesses(bool sharedOutput) { - var testAsset = CopyTestAsset("WatchAppMultiProc", sharedOutput); + var testAsset = CopyTestAsset("WatchAppMultiProc", [sharedOutput]); var tfm = ToolsetInfo.CurrentTargetFramework; if (sharedOutput) @@ -332,11 +196,11 @@ public async Task UpdateAppliedToNewProcesses(bool sharedOutput) var libProject = Path.Combine(libDir, "Lib.csproj"); var libSource = Path.Combine(libDir, "Lib.cs"); - await using var w = CreateWatcher(testAsset, ["--non-interactive", "--project", hostProject], workingDirectory); + await using var w = CreateInProcWatcher(testAsset, ["--non-interactive", "--project", hostProject], workingDirectory); - var waitingForChanges = w.Reporter.RegisterSemaphore(MessageDescriptor.WaitingForChanges); - var changeHandled = w.Reporter.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); - var updatesApplied = w.Reporter.RegisterSemaphore(MessageDescriptor.UpdateBatchCompleted); + var waitingForChanges = w.Observer.RegisterSemaphore(MessageDescriptor.WaitingForChanges); + var changeHandled = w.Observer.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); + var updatesApplied = w.Observer.RegisterSemaphore(MessageDescriptor.UpdateBatchCompleted); var hasUpdateA = new SemaphoreSlim(initialCount: 0); var hasUpdateB = new SemaphoreSlim(initialCount: 0); @@ -368,7 +232,7 @@ public async Task UpdateAppliedToNewProcesses(bool sharedOutput) // service should have been created before Hot Reload session started: Assert.NotNull(w.Service); - await Launch(serviceProjectA, w.Service, workingDirectory, w.ShutdownSource.Token); + await w.Service.Launch(serviceProjectA, workingDirectory, w.ShutdownSource.Token); UpdateSourceFile(libSource, """ @@ -393,7 +257,7 @@ public static void Common() Log("Waiting for updates applied 2/2 ..."); await updatesApplied.WaitAsync(w.ShutdownSource.Token); - await Launch(serviceProjectB, w.Service, workingDirectory, w.ShutdownSource.Token); + await w.Service.Launch(serviceProjectB, workingDirectory, w.ShutdownSource.Token); // ServiceB received updates: Log("Waiting for updates applied ..."); @@ -414,7 +278,7 @@ public enum UpdateLocation [CombinatorialData] public async Task HostRestart(UpdateLocation updateLocation) { - var testAsset = CopyTestAsset("WatchAppMultiProc", updateLocation); + var testAsset = CopyTestAsset("WatchAppMultiProc", [updateLocation]); var tfm = ToolsetInfo.CurrentTargetFramework; var workingDirectory = testAsset.Path; @@ -424,12 +288,12 @@ public async Task HostRestart(UpdateLocation updateLocation) var libProject = Path.Combine(testAsset.Path, "Lib2", "Lib2.csproj"); var lib = Path.Combine(testAsset.Path, "Lib2", "Lib2.cs"); - await using var w = CreateWatcher(testAsset, args: ["--project", hostProject], workingDirectory); + await using var w = CreateInProcWatcher(testAsset, args: ["--project", hostProject], workingDirectory); - var waitingForChanges = w.Reporter.RegisterSemaphore(MessageDescriptor.WaitingForChanges); - var changeHandled = w.Reporter.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); - var restartNeeded = w.Reporter.RegisterSemaphore(MessageDescriptor.ApplyUpdate_ChangingEntryPoint); - var restartRequested = w.Reporter.RegisterSemaphore(MessageDescriptor.RestartRequested); + var waitingForChanges = w.Observer.RegisterSemaphore(MessageDescriptor.WaitingForChanges); + var changeHandled = w.Observer.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); + var restartNeeded = w.Observer.RegisterSemaphore(MessageDescriptor.ApplyUpdate_ChangingEntryPoint); + var restartRequested = w.Observer.RegisterSemaphore(MessageDescriptor.RestartRequested); var hasUpdate = new SemaphoreSlim(initialCount: 0); w.Reporter.OnProcessOutput += line => @@ -512,13 +376,13 @@ public async Task RudeEditInProjectWithoutRunningProcess() var serviceSourceA2 = Path.Combine(serviceDirA, "A2.cs"); var serviceProjectA = Path.Combine(serviceDirA, "A.csproj"); - await using var w = CreateWatcher(testAsset, ["--non-interactive", "--project", hostProject], workingDirectory); + await using var w = CreateInProcWatcher(testAsset, ["--non-interactive", "--project", hostProject], workingDirectory); - var waitingForChanges = w.Reporter.RegisterSemaphore(MessageDescriptor.WaitingForChanges); + var waitingForChanges = w.Observer.RegisterSemaphore(MessageDescriptor.WaitingForChanges); - var projectsRebuilt = w.Reporter.RegisterSemaphore(MessageDescriptor.ProjectsRebuilt); - var sessionStarted = w.Reporter.RegisterSemaphore(MessageDescriptor.HotReloadSessionStarted); - var applyUpdateVerbose = w.Reporter.RegisterSemaphore(MessageDescriptor.ApplyUpdate_AutoVerbose); + var projectsRebuilt = w.Observer.RegisterSemaphore(MessageDescriptor.ProjectsRebuilt); + var sessionStarted = w.Observer.RegisterSemaphore(MessageDescriptor.HotReloadSessionStarted); + var applyUpdateVerbose = w.Observer.RegisterSemaphore(MessageDescriptor.ApplyUpdate_AutoVerbose); w.Start(); @@ -529,7 +393,7 @@ public async Task RudeEditInProjectWithoutRunningProcess() // service should have been created before Hot Reload session started: Assert.NotNull(w.Service); - var runningProject = await Launch(serviceProjectA, w.Service, workingDirectory, w.ShutdownSource.Token); + var runningProject = await w.Service.Launch(serviceProjectA, workingDirectory, w.ShutdownSource.Token); Log("Waiting for session started ..."); await sessionStarted.WaitAsync(w.ShutdownSource.Token); @@ -548,369 +412,4 @@ public async Task RudeEditInProjectWithoutRunningProcess() Log("Waiting for verbose rude edit reported ..."); await applyUpdateVerbose.WaitAsync(w.ShutdownSource.Token); } - - public enum DirectoryKind - { - Ordinary, - Hidden, - Bin, - Obj, - } - - [Theory] - [CombinatorialData] - public async Task IgnoredChange(bool isExisting, bool isIncluded, DirectoryKind directoryKind) - { - var testAsset = CopyTestAsset("WatchNoDepsApp", [isExisting, isIncluded, directoryKind]); - - var workingDirectory = testAsset.Path; - string dir; - - switch (directoryKind) - { - case DirectoryKind.Bin: - dir = Path.Combine(workingDirectory, "bin", "Debug", ToolsetInfo.CurrentTargetFramework); - break; - - case DirectoryKind.Obj: - dir = Path.Combine(workingDirectory, "obj", "Debug", ToolsetInfo.CurrentTargetFramework); - break; - - case DirectoryKind.Hidden: - dir = Path.Combine(workingDirectory, ".dir"); - break; - - default: - dir = workingDirectory; - break; - } - - var extension = isIncluded ? ".cs" : ".txt"; - - Directory.CreateDirectory(dir); - - var path = Path.Combine(dir, "File" + extension); - - if (isExisting) - { - File.WriteAllText(path, "class C { int F() => 1; }"); - - if (isIncluded && directoryKind is DirectoryKind.Bin or DirectoryKind.Obj or DirectoryKind.Hidden) - { - var project = Path.Combine(workingDirectory, "WatchNoDepsApp.csproj"); - File.WriteAllText(project, File.ReadAllText(project).Replace( - "", - $""" - - """)); - } - } - - await using var w = CreateWatcher(testAsset, ["--no-exit"], workingDirectory); - - var waitingForChanges = w.Reporter.RegisterSemaphore(MessageDescriptor.WaitingForChanges); - var changeHandled = w.Reporter.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); - var ignoringChangeInHiddenDirectory = w.Reporter.RegisterSemaphore(MessageDescriptor.IgnoringChangeInHiddenDirectory); - var ignoringChangeInExcludedFile = w.Reporter.RegisterSemaphore(MessageDescriptor.IgnoringChangeInExcludedFile); - var fileAdditionTriggeredReEvaluation = w.Reporter.RegisterSemaphore(MessageDescriptor.FileAdditionTriggeredReEvaluation); - var reEvaluationCompleted = w.Reporter.RegisterSemaphore(MessageDescriptor.ReEvaluationCompleted); - var noHotReloadChangesToApply = w.Reporter.RegisterSemaphore(MessageDescriptor.NoManagedCodeChangesToApply); - - w.Start(); - - Log("Waiting for changes..."); - await waitingForChanges.WaitAsync(w.ShutdownSource.Token); - - UpdateSourceFile(path, "class C { int F() => 2; }"); - - switch ((isExisting, isIncluded, directoryKind)) - { - case (isExisting: true, isIncluded: true, directoryKind: _): - Log("Waiting for changed handled ..."); - await changeHandled.WaitAsync(w.ShutdownSource.Token); - break; - - case (isExisting: true, isIncluded: false, directoryKind: DirectoryKind.Ordinary): - Log("Waiting for no hot reload changes to apply ..."); - await noHotReloadChangesToApply.WaitAsync(w.ShutdownSource.Token); - break; - - case (isExisting: false, isIncluded: _, directoryKind: DirectoryKind.Ordinary): - Log("Waiting for file addition re-evalutation ..."); - await fileAdditionTriggeredReEvaluation.WaitAsync(w.ShutdownSource.Token); - Log("Waiting for re-evalutation to complete ..."); - await reEvaluationCompleted.WaitAsync(w.ShutdownSource.Token); - break; - - case (isExisting: _, isIncluded: _, directoryKind: DirectoryKind.Hidden): - Log("Waiting for ignored change in hidden dir ..."); - await ignoringChangeInHiddenDirectory.WaitAsync(w.ShutdownSource.Token); - break; - - case (isExisting: _, isIncluded: _, directoryKind: DirectoryKind.Bin or DirectoryKind.Obj): - Log("Waiting for ignored change in output dir ..."); - await ignoringChangeInExcludedFile.WaitAsync(w.ShutdownSource.Token); - break; - - default: - throw new InvalidOperationException(); - } - } - - [Fact] - public async Task CtrlR_RestartsBuild() - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") - .WithSource(); - - await using var w = CreateWatcher(testAsset, []); - - var buildCounter = 0; - - w.Reporter.RegisterAction(MessageDescriptor.Building, () => - { - if (Interlocked.Increment(ref buildCounter) == 1) - { - w.Console.PressKey(new ConsoleKeyInfo('R', ConsoleKey.R, shift: false, alt: false, control: true)); - } - }); - - var restarting = w.Reporter.RegisterSemaphore(MessageDescriptor.Restarting); - - // Iteration #1 build should be canceled, iteration #2 should build and launch the app. - var hasExpectedOutput = w.CreateCompletionSource(); - w.Reporter.OnProcessOutput += line => - { - Assert.DoesNotContain("DOTNET_WATCH_ITERATION = 1", line.Content); - - if (line.Content.Contains("DOTNET_WATCH_ITERATION = 2")) - { - hasExpectedOutput.TrySetResult(); - } - }; - - w.Start(); - - // 🔄 Restarting - await restarting.WaitAsync(w.ShutdownSource.Token); - - // DOTNET_WATCH_ITERATION = 2 - await hasExpectedOutput.Task; - - Assert.Equal(2, buildCounter); - } - - [Fact] - public async Task CtrlR_CancelsWaitForFileChange() - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") - .WithSource(); - - var programFilePath = Path.Combine(testAsset.Path, "Program.cs"); - - File.WriteAllText(programFilePath, """ - System.Console.WriteLine(""); - """); - - await using var w = CreateWatcher(testAsset, []); - - w.Reporter.RegisterAction(MessageDescriptor.WaitingForFileChangeBeforeRestarting, () => - { - w.Console.PressKey(new ConsoleKeyInfo('R', ConsoleKey.R, shift: false, alt: false, control: true)); - }); - - var buildCounter = 0; - w.Reporter.RegisterAction(MessageDescriptor.Building, () => Interlocked.Increment(ref buildCounter)); - - var counter = 0; - var hasExpectedOutput = w.CreateCompletionSource(); - w.Reporter.OnProcessOutput += line => - { - if (line.Content.Contains("") && Interlocked.Increment(ref counter) == 2) - { - hasExpectedOutput.TrySetResult(); - } - }; - - w.Start(); - - await hasExpectedOutput.Task; - - Assert.Equal(2, buildCounter); - } - - [Fact] - public async Task ProjectAndSourceFileChange() - { - var testAsset = CopyTestAsset("WatchHotReloadApp"); - - var workingDirectory = testAsset.Path; - var projectPath = Path.Combine(testAsset.Path, "WatchHotReloadApp.csproj"); - var programPath = Path.Combine(testAsset.Path, "Program.cs"); - - await using var w = CreateWatcher(testAsset, [], workingDirectory); - - var fileChangesCompleted = w.CreateCompletionSource(); - w.Watcher.Test_FileChangesCompletedTask = fileChangesCompleted.Task; - - var waitingForChanges = w.Reporter.RegisterSemaphore(MessageDescriptor.WaitingForChanges); - - var changeHandled = w.Reporter.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); - - var hasUpdatedOutput = w.CreateCompletionSource(); - w.Reporter.OnProcessOutput += line => - { - if (line.Content.Contains("System.Xml.Linq.XDocument")) - { - hasUpdatedOutput.TrySetResult(); - } - }; - - w.Start(); - - Log("Waiting for changes..."); - await waitingForChanges.WaitAsync(w.ShutdownSource.Token); - - // change the project and source files at the same time: - - UpdateSourceFile(programPath, src => src.Replace("""Console.WriteLine(".");""", """Console.WriteLine(typeof(XDocument));""")); - UpdateSourceFile(projectPath, src => src.Replace("", """""")); - - // done updating files: - fileChangesCompleted.TrySetResult(); - - Log("Waiting for change handled ..."); - await changeHandled.WaitAsync(w.ShutdownSource.Token); - - Log("Waiting for output 'System.Xml.Linq.XDocument'..."); - await hasUpdatedOutput.Task; - } - - [Fact] - public async Task ProjectAndSourceFileChange_AddProjectReference() - { - var testAsset = TestAssets.CopyTestAsset("WatchAppWithProjectDeps") - .WithSource() - .WithProjectChanges(project => - { - foreach (var r in project.Root!.Descendants().Where(e => e.Name.LocalName == "ProjectReference").ToArray()) - { - r.Remove(); - } - }); - - var appProjDir = Path.Combine(testAsset.Path, "AppWithDeps"); - var appProjFile = Path.Combine(appProjDir, "App.WithDeps.csproj"); - var appFile = Path.Combine(appProjDir, "Program.cs"); - - UpdateSourceFile(appFile, code => code.Replace("Lib.Print();", "// Lib.Print();")); - - await using var w = CreateWatcher(testAsset, [], appProjDir); - - var fileChangesCompleted = w.CreateCompletionSource(); - w.Watcher.Test_FileChangesCompletedTask = fileChangesCompleted.Task; - - var waitingForChanges = w.Reporter.RegisterSemaphore(MessageDescriptor.WaitingForChanges); - var projectChangeTriggeredReEvaluation = w.Reporter.RegisterSemaphore(MessageDescriptor.ProjectChangeTriggeredReEvaluation); - var projectsRebuilt = w.Reporter.RegisterSemaphore(MessageDescriptor.ProjectsRebuilt); - var projectDependenciesDeployed = w.Reporter.RegisterSemaphore(MessageDescriptor.ProjectDependenciesDeployed); - var managedCodeChangesApplied = w.Reporter.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); - - var hasUpdatedOutput = w.CreateCompletionSource(); - w.Reporter.OnProcessOutput += line => - { - if (line.Content.Contains("")) - { - hasUpdatedOutput.TrySetResult(); - } - }; - - w.Start(); - - Log("Waiting for changes..."); - await waitingForChanges.WaitAsync(w.ShutdownSource.Token); - - // change the project and source files at the same time: - - UpdateSourceFile(appProjFile, src => src.Replace(""" - - """, """ - - - - """)); - - UpdateSourceFile(appFile, code => code.Replace("// Lib.Print();", "Lib.Print();")); - - // done updating files: - fileChangesCompleted.TrySetResult(); - - Log("Waiting for output ''..."); - await hasUpdatedOutput.Task; - - AssertEx.ContainsSubstring("Resolving 'Dependency, Version=1.0.0.0'", w.Reporter.ProcessOutput); - - Assert.Equal(1, projectChangeTriggeredReEvaluation.CurrentCount); - Assert.Equal(1, projectsRebuilt.CurrentCount); - Assert.Equal(1, projectDependenciesDeployed.CurrentCount); - Assert.Equal(1, managedCodeChangesApplied.CurrentCount); - } - - [Fact] - public async Task ProjectAndSourceFileChange_AddPackageReference() - { - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp") - .WithSource(); - - var projFilePath = Path.Combine(testAsset.Path, "WatchHotReloadApp.csproj"); - var programFilePath = Path.Combine(testAsset.Path, "Program.cs"); - - await using var w = CreateWatcher(testAsset, []); - - var fileChangesCompleted = w.CreateCompletionSource(); - w.Watcher.Test_FileChangesCompletedTask = fileChangesCompleted.Task; - - var waitingForChanges = w.Reporter.RegisterSemaphore(MessageDescriptor.WaitingForChanges); - var projectChangeTriggeredReEvaluation = w.Reporter.RegisterSemaphore(MessageDescriptor.ProjectChangeTriggeredReEvaluation); - var projectsRebuilt = w.Reporter.RegisterSemaphore(MessageDescriptor.ProjectsRebuilt); - var projectDependenciesDeployed = w.Reporter.RegisterSemaphore(MessageDescriptor.ProjectDependenciesDeployed); - var managedCodeChangesApplied = w.Reporter.RegisterSemaphore(MessageDescriptor.ManagedCodeChangesApplied); - - var hasUpdatedOutput = w.CreateCompletionSource(); - w.Reporter.OnProcessOutput += line => - { - if (line.Content.Contains("Newtonsoft.Json.Linq.JToken")) - { - hasUpdatedOutput.TrySetResult(); - } - }; - - w.Start(); - - Log("Waiting for changes..."); - await waitingForChanges.WaitAsync(w.ShutdownSource.Token); - - // change the project and source files at the same time: - - UpdateSourceFile(projFilePath, source => source.Replace(""" - - """, """ - - """)); - - UpdateSourceFile(programFilePath, source => source.Replace("Console.WriteLine(\".\");", "Console.WriteLine(typeof(Newtonsoft.Json.Linq.JToken));")); - - // done updating files: - fileChangesCompleted.TrySetResult(); - - Log("Waiting for output 'Newtonsoft.Json.Linq.JToken'..."); - await hasUpdatedOutput.Task; - - AssertEx.ContainsSubstring("Resolving 'Newtonsoft.Json, Version=13.0.0.0'", w.Reporter.ProcessOutput); - - Assert.Equal(1, projectChangeTriggeredReEvaluation.CurrentCount); - Assert.Equal(0, projectsRebuilt.CurrentCount); - Assert.Equal(1, projectDependenciesDeployed.CurrentCount); - Assert.Equal(1, managedCodeChangesApplied.CurrentCount); - } } diff --git a/test/dotnet-watch.Tests/HotReload/SourceFileUpdateTests.HotReloadNotSupported.cs b/test/dotnet-watch.Tests/HotReload/SourceFileUpdateTests.HotReloadNotSupported.cs new file mode 100644 index 000000000000..a414559d9c12 --- /dev/null +++ b/test/dotnet-watch.Tests/HotReload/SourceFileUpdateTests.HotReloadNotSupported.cs @@ -0,0 +1,96 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable disable + +namespace Microsoft.DotNet.Watch.UnitTests +{ + public class SourceFileUpdateTests_HotReloadNotSupported(ITestOutputHelper logger) : DotNetWatchTestBase(logger) + { + [Theory] + [InlineData("PublishAot", "True")] + [InlineData("PublishTrimmed", "True")] + [InlineData("StartupHookSupport", "False")] + public async Task ChangeFileInAotProject(string propertyName, string propertyValue) + { + var tfm = ToolsetInfo.CurrentTargetFramework; + + var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: $"{propertyName};{propertyValue}") + .WithSource() + .WithProjectChanges(project => + { + project.Root.Descendants() + .First(e => e.Name.LocalName == "PropertyGroup") + .Add(XElement.Parse($"<{propertyName}>{propertyValue}")); + }); + + var programPath = Path.Combine(testAsset.Path, "Program.cs"); + + App.Start(testAsset, ["--non-interactive"]); + + await App.WaitForOutputLineContaining($"[WatchHotReloadApp ({tfm})] " + MessageDescriptor.ProjectDoesNotSupportHotReload.GetMessage($"'{propertyName}' property is '{propertyValue}'")); + await App.WaitForOutputLineContaining(MessageDescriptor.WaitingForChanges); + App.Process.ClearOutput(); + + UpdateSourceFile(programPath, content => content.Replace("Console.WriteLine(\".\");", "Console.WriteLine(\"\");")); + + await App.WaitForOutputLineContaining($"[auto-restart] {programPath}(1,1): error ENC0097"); // Applying source changes while the application is running is not supported by the runtime. + await App.WaitForOutputLineContaining(""); + } + + [Fact] + public async Task ChangeFileInFSharpProject() + { + var testAsset = TestAssets.CopyTestAsset("FSharpTestAppSimple") + .WithSource(); + + App.Start(testAsset, []); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + + UpdateSourceFile(Path.Combine(testAsset.Path, "Program.fs"), content => content.Replace("Hello World!", "")); + + await App.WaitUntilOutputContains(""); + } + + [Fact] + public async Task ChangeFileInFSharpProjectWithLoop() + { + var testAsset = TestAssets.CopyTestAsset("FSharpTestAppSimple") + .WithSource(); + + var source = """ + module ConsoleApplication.Program + + open System + open System.Threading + + [] + let main argv = + printfn "Waiting" + Thread.Sleep(Timeout.Infinite) + 0 + """; + + var sourcePath = Path.Combine(testAsset.Path, "Program.fs"); + + File.WriteAllText(sourcePath, source); + + App.Start(testAsset, ["--non-interactive"]); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + App.Process.ClearOutput(); + + UpdateSourceFile(sourcePath, content => content.Replace("Waiting", "")); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + await App.WaitUntilOutputContains(""); + App.Process.ClearOutput(); + + UpdateSourceFile(sourcePath, content => content.Replace("", "")); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + await App.WaitUntilOutputContains(""); + } + } +} diff --git a/test/dotnet-watch.Tests/HotReload/SourceFileUpdateTests.cs b/test/dotnet-watch.Tests/HotReload/SourceFileUpdateTests.cs index 097fae8b52cd..4c53e7478d63 100644 --- a/test/dotnet-watch.Tests/HotReload/SourceFileUpdateTests.cs +++ b/test/dotnet-watch.Tests/HotReload/SourceFileUpdateTests.cs @@ -97,92 +97,6 @@ public async Task BaselineCompilationError() await App.WaitUntilOutputContains(""); } - [Theory] - [InlineData("PublishAot", "True")] - [InlineData("PublishTrimmed", "True")] - [InlineData("StartupHookSupport", "False")] - public async Task ChangeFileInAotProject(string propertyName, string propertyValue) - { - var tfm = ToolsetInfo.CurrentTargetFramework; - - var testAsset = TestAssets.CopyTestAsset("WatchHotReloadApp", identifier: $"{propertyName};{propertyValue}") - .WithSource() - .WithProjectChanges(project => - { - project.Root.Descendants() - .First(e => e.Name.LocalName == "PropertyGroup") - .Add(XElement.Parse($"<{propertyName}>{propertyValue}")); - }); - - var programPath = Path.Combine(testAsset.Path, "Program.cs"); - - App.Start(testAsset, ["--non-interactive"]); - - await App.WaitForOutputLineContaining($"[WatchHotReloadApp ({tfm})] " + MessageDescriptor.ProjectDoesNotSupportHotReload.GetMessage($"'{propertyName}' property is '{propertyValue}'")); - await App.WaitForOutputLineContaining(MessageDescriptor.WaitingForChanges); - App.Process.ClearOutput(); - - UpdateSourceFile(programPath, content => content.Replace("Console.WriteLine(\".\");", "Console.WriteLine(\"\");")); - - await App.WaitForOutputLineContaining($"[auto-restart] {programPath}(1,1): error ENC0097"); // Applying source changes while the application is running is not supported by the runtime. - await App.WaitForOutputLineContaining(""); - } - - [Fact] - public async Task ChangeFileInFSharpProject() - { - var testAsset = TestAssets.CopyTestAsset("FSharpTestAppSimple") - .WithSource(); - - App.Start(testAsset, []); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); - - UpdateSourceFile(Path.Combine(testAsset.Path, "Program.fs"), content => content.Replace("Hello World!", "")); - - await App.WaitUntilOutputContains(""); - } - - [Fact] - public async Task ChangeFileInFSharpProjectWithLoop() - { - var testAsset = TestAssets.CopyTestAsset("FSharpTestAppSimple") - .WithSource(); - - var source = """ - module ConsoleApplication.Program - - open System - open System.Threading - - [] - let main argv = - printfn "Waiting" - Thread.Sleep(Timeout.Infinite) - 0 - """; - - var sourcePath = Path.Combine(testAsset.Path, "Program.fs"); - - File.WriteAllText(sourcePath, source); - - App.Start(testAsset, ["--non-interactive"]); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - App.Process.ClearOutput(); - - UpdateSourceFile(sourcePath, content => content.Replace("Waiting", "")); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - await App.WaitUntilOutputContains(""); - App.Process.ClearOutput(); - - UpdateSourceFile(sourcePath, content => content.Replace("", "")); - - await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); - await App.WaitUntilOutputContains(""); - } - // Test is timing out on .NET Framework: https://github.com/dotnet/sdk/issues/41669 [CoreMSBuildOnlyFact] public async Task HandleTypeLoadFailure() diff --git a/test/dotnet-watch.Tests/TestUtilities/DotNetWatchTestBase.cs b/test/dotnet-watch.Tests/TestUtilities/DotNetWatchTestBase.cs index 970ffb515545..8789283be5f1 100644 --- a/test/dotnet-watch.Tests/TestUtilities/DotNetWatchTestBase.cs +++ b/test/dotnet-watch.Tests/TestUtilities/DotNetWatchTestBase.cs @@ -2,28 +2,42 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Runtime.CompilerServices; +using Microsoft.Extensions.Logging; namespace Microsoft.DotNet.Watch.UnitTests; /// /// Base class for all tests that create dotnet watch process. /// -public abstract class DotNetWatchTestBase : IDisposable +public abstract partial class DotNetWatchTestBase : IAsyncLifetime { internal TestAssetsManager TestAssets { get; } internal WatchableApp App { get; } public DotNetWatchTestBase(ITestOutputHelper logger) { - var debugLogger = new DebugTestOutputLogger(logger); - App = new WatchableApp(debugLogger); - TestAssets = new TestAssetsManager(debugLogger); + App = WatchableApp.CreateDotnetWatchApp(logger); + TestAssets = new TestAssetsManager(App.Logger); + } + + public Task InitializeAsync() + => Task.CompletedTask; - // disposes the test class if the test execution is cancelled: - AppDomain.CurrentDomain.ProcessExit += (_, _) => Dispose(); + public async Task DisposeAsync() + { + Log("Disposing test"); + await App.DisposeAsync(); } - public DebugTestOutputLogger Logger => App.Logger; + public DebugTestOutputLogger Logger + => App.Logger; + + internal TestAsset CopyTestAsset( + string assetName, + object[]? testParameters = null, + [CallerMemberName] string callingMethod = "", + [CallerFilePath] string? callerFilePath = null) + => TestAssets.CopyTestAsset(assetName, callingMethod, callerFilePath, identifier: string.Join(";", testParameters ?? [])).WithSource(); public void Log(string message, [CallerFilePath] string? testPath = null, [CallerLineNumber] int testLine = 0) => App.Logger.Log(message, testPath, testLine); @@ -57,8 +71,37 @@ public static void WriteAllText(string path, string text) public void UpdateSourceFile(string path) => UpdateSourceFile(path, content => content); - public void Dispose() + internal InProcTestWatcher CreateInProcWatcher(TestAsset testAsset, string[] args, string? workingDirectory = null) { - App.Dispose(); + var console = new TestConsole(Logger); + var reporter = new TestReporter(Logger); + var loggerFactory = new TestLoggerFactory(Logger); + var eventObserver = new TestEventObserver(); + var observableLoggerFactory = new TestObservableLoggerFactory(eventObserver, loggerFactory); + var environmentOptions = TestOptions.GetEnvironmentOptions(workingDirectory ?? testAsset.Path, testAsset); + var processRunner = new ProcessRunner(environmentOptions.GetProcessCleanupTimeout()); + + var program = Program.TryCreate( + TestOptions.GetCommandLineOptions(["--verbose", .. args]), + console, + environmentOptions, + observableLoggerFactory, + reporter, + out var errorCode); + + Assert.Equal(0, errorCode); + Assert.NotNull(program); + + var serviceHolder = new StrongBox(); + var factory = new TestRuntimeProcessLauncher.Factory(s => + { + serviceHolder.Value = s; + }); + + var context = program.CreateContext(processRunner); + var watcher = new HotReloadDotNetWatcher(context, console, runtimeProcessLauncherFactory: factory); + var shutdownSource = new CancellationTokenSource(); + + return new InProcTestWatcher(Logger, watcher, context, eventObserver, reporter, console, serviceHolder, shutdownSource); } } diff --git a/test/dotnet-watch.Tests/TestUtilities/InProcBuildTestCollection.cs b/test/dotnet-watch.Tests/TestUtilities/InProcBuildTestCollection.cs deleted file mode 100644 index f0054a2e5945..000000000000 --- a/test/dotnet-watch.Tests/TestUtilities/InProcBuildTestCollection.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace Microsoft.DotNet.Watch.UnitTests; - -/// -/// All tests that validate msbuild build in-proc must be included in this collection -/// as mutliple builds can't run in parallel in the same process. -/// -[CollectionDefinition(nameof(InProcBuildTestCollection), DisableParallelization = true)] -public sealed class InProcBuildTestCollection -{ -} diff --git a/test/dotnet-watch.Tests/TestUtilities/InProcTestWatcher.cs b/test/dotnet-watch.Tests/TestUtilities/InProcTestWatcher.cs new file mode 100644 index 000000000000..efe29f6f44da --- /dev/null +++ b/test/dotnet-watch.Tests/TestUtilities/InProcTestWatcher.cs @@ -0,0 +1,72 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.CompilerServices; + +namespace Microsoft.DotNet.Watch.UnitTests; + +internal record class InProcTestWatcher( + DebugTestOutputLogger TestOutput, + HotReloadDotNetWatcher Watcher, + DotNetWatchContext Context, + TestEventObserver Observer, + TestReporter Reporter, + TestConsole Console, + StrongBox ServiceHolder, + CancellationTokenSource ShutdownSource) : IAsyncDisposable +{ + public TestRuntimeProcessLauncher? Service => ServiceHolder.Value; + private Task? _lazyTask; + + public void Start([CallerFilePath] string? testPath = null, [CallerLineNumber] int testLine = 0) + { + Assert.Null(_lazyTask); + Observer.Freeze(); + + _lazyTask = Task.Run(async () => + { + TestOutput.Log("Starting watch", testPath, testLine); + + try + { + await Watcher.WatchAsync(ShutdownSource.Token); + } + catch (Exception e) when (e is not OperationCanceledException) + { + ShutdownSource.Cancel(); + TestOutput.WriteLine($"Unexpected exception {e}"); + throw; + } + finally + { + Context.Dispose(); + } + }, ShutdownSource.Token); + } + + public async ValueTask DisposeAsync() + { + Assert.NotNull(_lazyTask); + + if (!ShutdownSource.IsCancellationRequested) + { + TestOutput.Log("Shutting down"); + ShutdownSource.Cancel(); + } + + try + { + await _lazyTask; + } + catch (OperationCanceledException) + { + } + } + + public TaskCompletionSource CreateCompletionSource() + { + var source = new TaskCompletionSource(); + ShutdownSource.Token.Register(() => source.TrySetCanceled(ShutdownSource.Token)); + return source; + } +} diff --git a/test/dotnet-watch.Tests/TestUtilities/MockFileSetFactory.cs b/test/dotnet-watch.Tests/TestUtilities/MockFileSetFactory.cs index f567640dfc9b..f5065d47dfb6 100644 --- a/test/dotnet-watch.Tests/TestUtilities/MockFileSetFactory.cs +++ b/test/dotnet-watch.Tests/TestUtilities/MockFileSetFactory.cs @@ -11,7 +11,7 @@ internal class MockFileSetFactory() : MSBuildFileSetFactory( buildArguments: [], new ProcessRunner(processCleanupTimeout: TimeSpan.Zero), NullLogger.Instance, - TestOptions.GetEnvironmentOptions(Environment.CurrentDirectory, "dotnet") is var options ? options : options) + TestOptions.GetEnvironmentOptions(Environment.CurrentDirectory) is var options ? options : options) { public Func? TryCreateImpl; diff --git a/test/dotnet-watch.Tests/TestUtilities/TestEventObserver.cs b/test/dotnet-watch.Tests/TestUtilities/TestEventObserver.cs new file mode 100644 index 000000000000..7a9b72aa0acb --- /dev/null +++ b/test/dotnet-watch.Tests/TestUtilities/TestEventObserver.cs @@ -0,0 +1,64 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch.UnitTests; + +/// +/// Used to observe events logged by the watcher. +/// +/// Usage pattern: register all actions and semaphores first, then start the watcher. +/// +internal class TestEventObserver +{ + private readonly Dictionary _actions = []; + private bool _frozen; + + public void Freeze() + => _frozen = true; + + private void RequireNotFrozen() + { + if (_frozen) + { + throw new InvalidOperationException("Cannot register actions after the observer is frozen."); + } + } + + public SemaphoreSlim RegisterSemaphore(MessageDescriptor descriptor) + { + RequireNotFrozen(); + + var semaphore = new SemaphoreSlim(initialCount: 0); + RegisterAction(descriptor, () => semaphore.Release()); + return semaphore; + } + + public void RegisterAction(MessageDescriptor eventId, Action action) + => RegisterAction(eventId.Id, action); + + public void RegisterAction(EventId eventId, Action action) + { + RequireNotFrozen(); + + if (_actions.TryGetValue(eventId, out var existing)) + { + existing += action; + } + else + { + existing = action; + } + + _actions[eventId] = existing; + } + + public void Observe(EventId eventId) + { + if (_actions.TryGetValue(eventId, out var action)) + { + action(); + } + } +} diff --git a/test/dotnet-watch.Tests/TestUtilities/TestObservableLoggerFactory.cs b/test/dotnet-watch.Tests/TestUtilities/TestObservableLoggerFactory.cs new file mode 100644 index 000000000000..88caf5e2a9c4 --- /dev/null +++ b/test/dotnet-watch.Tests/TestUtilities/TestObservableLoggerFactory.cs @@ -0,0 +1,33 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.Watch.UnitTests; + +internal class TestObservableLoggerFactory(TestEventObserver observer, ILoggerFactory underlyingFactory) : ILoggerFactory +{ + private class Logger(TestEventObserver observer, ILogger underlyingLogger) : ILogger + { + public void Log(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func formatter) + { + observer.Observe(eventId); + underlyingLogger.Log(logLevel, eventId, state, exception, formatter); + } + + public IDisposable? BeginScope(TState state) where TState : notnull + => underlyingLogger.BeginScope(state); + + public bool IsEnabled(LogLevel logLevel) + => underlyingLogger.IsEnabled(logLevel); + } + + public ILogger CreateLogger(string categoryName) + => new Logger(observer, underlyingFactory.CreateLogger(categoryName)); + + public void AddProvider(ILoggerProvider provider) + => underlyingFactory.AddProvider(provider); + + public void Dispose() + => underlyingFactory.Dispose(); +} diff --git a/test/dotnet-watch.Tests/TestUtilities/TestOptions.cs b/test/dotnet-watch.Tests/TestUtilities/TestOptions.cs index 7c74d6978523..e1f9549f2a50 100644 --- a/test/dotnet-watch.Tests/TestUtilities/TestOptions.cs +++ b/test/dotnet-watch.Tests/TestUtilities/TestOptions.cs @@ -14,8 +14,15 @@ public static int GetTestPort() public static readonly ProjectOptions ProjectOptions = GetProjectOptions(GetCommandLineOptions([])); - public static EnvironmentOptions GetEnvironmentOptions(string workingDirectory = "", string muxerPath = "", TestAsset? asset = null) - => new(workingDirectory, muxerPath, ProcessCleanupTimeout: null, IsPollingEnabled: true, TestFlags: TestFlags.RunningAsTest, TestOutput: asset != null ? asset.GetWatchTestOutputPath() : ""); + public static EnvironmentOptions GetEnvironmentOptions(string workingDirectory = "", TestAsset? asset = null) + => new( + WorkingDirectory: workingDirectory, + SdkDirectory: TestContext.Current.ToolsetUnderTest.SdkFolderUnderTest, + LogMessagePrefix: "dotnet watch", + ProcessCleanupTimeout: null, + IsPollingEnabled: true, + TestFlags: TestFlags.RunningAsTest, + TestOutput: asset != null ? asset.GetWatchTestOutputPath() : ""); public static CommandLineOptions GetCommandLineOptions(string[] args) => CommandLineOptions.Parse(args, NullLogger.Instance, TextWriter.Null, out _) ?? throw new InvalidOperationException(); diff --git a/test/dotnet-watch.Tests/TestUtilities/TestReporter.cs b/test/dotnet-watch.Tests/TestUtilities/TestReporter.cs index 9637de705eed..eda3f6090159 100644 --- a/test/dotnet-watch.Tests/TestUtilities/TestReporter.cs +++ b/test/dotnet-watch.Tests/TestUtilities/TestReporter.cs @@ -7,7 +7,6 @@ namespace Microsoft.DotNet.Watch.UnitTests { internal class TestReporter(ITestOutputHelper output) : IReporter, IProcessOutputReporter { - private readonly Dictionary _actions = []; public readonly List ProcessOutput = []; public readonly List<(LogLevel level, string text)> Messages = []; @@ -24,42 +23,10 @@ void IProcessOutputReporter.ReportOutput(OutputLine line) OnProcessOutput?.Invoke(line); } - public SemaphoreSlim RegisterSemaphore(MessageDescriptor descriptor) - { - var semaphore = new SemaphoreSlim(initialCount: 0); - RegisterAction(descriptor, () => semaphore.Release()); - return semaphore; - } - - public void RegisterAction(MessageDescriptor eventId, Action action) - => RegisterAction(eventId.Id, action); - - public void RegisterAction(EventId eventId, Action action) - { - if (_actions.TryGetValue(eventId, out var existing)) - { - existing += action; - } - else - { - existing = action; - } - - _actions[eventId] = existing; - } - public void Report(EventId id, Emoji emoji, LogLevel level, string message) { - if (level != LogLevel.None) - { - Messages.Add((level, message)); - WriteTestOutput($"{ToString(level)} {emoji.ToDisplay()} {message}"); - } - - if (_actions.TryGetValue(id, out var action)) - { - action(); - } + Messages.Add((level, message)); + WriteTestOutput($"{ToString(level)} {emoji.ToDisplay()} {message}"); } private void WriteTestOutput(string line) diff --git a/test/dotnet-watch.Tests/TestUtilities/TestRuntimeProcessLauncher.cs b/test/dotnet-watch.Tests/TestUtilities/TestRuntimeProcessLauncher.cs index f78dee02e930..b4d7ef9160c6 100644 --- a/test/dotnet-watch.Tests/TestUtilities/TestRuntimeProcessLauncher.cs +++ b/test/dotnet-watch.Tests/TestUtilities/TestRuntimeProcessLauncher.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using Microsoft.Build.Graph; - namespace Microsoft.DotNet.Watch.UnitTests; internal class TestRuntimeProcessLauncher(ProjectLauncher projectLauncher) : IRuntimeProcessLauncher @@ -33,4 +31,41 @@ public ValueTask TerminateLaunchedProcessesAsync(CancellationToken cancellationT TerminateLaunchedProcessesImpl?.Invoke(); return ValueTask.CompletedTask; } + + public async Task Launch(string projectPath, string workingDirectory, CancellationToken cancellationToken) + { + var projectOptions = new ProjectOptions() + { + IsMainProject = false, + Representation = new ProjectRepresentation(projectPath, entryPointFilePath: null), + WorkingDirectory = workingDirectory, + Command = "run", + CommandArguments = ["--project", projectPath], + LaunchEnvironmentVariables = [], + LaunchProfileName = default, + }; + + RunningProject? runningProject = null; + RestartOperation? startOp = null; + startOp = new RestartOperation(async cancellationToken => + { + Assert.NotNull(startOp); + + runningProject = await ProjectLauncher.TryLaunchProcessAsync( + projectOptions, + onOutput: null, + onExit: null, + restartOperation: startOp, + cancellationToken); + + Assert.NotNull(runningProject); + + await runningProject.Clients.WaitForConnectionEstablishedAsync(cancellationToken); + }); + + await startOp(cancellationToken); + + Assert.NotNull(runningProject); + return runningProject; + } } diff --git a/test/dotnet-watch.Tests/Watch/FileUpdateTests.cs b/test/dotnet-watch.Tests/Watch/FileUpdateTests.cs new file mode 100644 index 000000000000..2e4dddca6ada --- /dev/null +++ b/test/dotnet-watch.Tests/Watch/FileUpdateTests.cs @@ -0,0 +1,52 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Microsoft.DotNet.Watch.UnitTests +{ + public class FileUpdateTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) + { + [Fact] + public async Task RestartProcessOnFileChange() + { + var testAsset = TestAssets.CopyTestAsset("WatchNoDepsApp") + .WithSource(); + + App.Start(testAsset, ["--no-hot-reload", "--no-exit"]); + var processIdentifier = await App.WaitUntilOutputContains("Process identifier ="); + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + App.Process.ClearOutput(); + + UpdateSourceFile(Path.Combine(testAsset.Path, "Program.cs")); + + await App.WaitUntilOutputContains("Started"); + + var processIdentifier2 = await App.WaitUntilOutputContains("Process identifier ="); + Assert.NotEqual(processIdentifier, processIdentifier2); + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForChanges); + } + + [Fact] + public async Task RestartProcessThatTerminatesAfterFileChange() + { + var testAsset = TestAssets.CopyTestAsset("WatchNoDepsApp") + .WithSource(); + + App.Start(testAsset, []); + + var processIdentifier = await App.WaitUntilOutputContains("Process identifier ="); + + // process should exit after run + await App.WaitUntilOutputContains("Exiting"); + + await App.WaitUntilOutputContains(MessageDescriptor.WaitingForFileChangeBeforeRestarting); + App.Process.ClearOutput(); + + UpdateSourceFile(Path.Combine(testAsset.Path, "Program.cs")); + await App.WaitUntilOutputContains("Started"); + + var processIdentifier2 = await App.WaitUntilOutputContains("Process identifier ="); + Assert.NotEqual(processIdentifier, processIdentifier2); + await App.WaitUntilOutputContains("Exiting"); // process should exit after run + } + } +} diff --git a/test/dotnet-watch.Tests/Watch/GlobbingAppTests.cs b/test/dotnet-watch.Tests/Watch/GlobbingAppTests.cs index 5a2005532e0f..c3af966604f0 100644 --- a/test/dotnet-watch.Tests/Watch/GlobbingAppTests.cs +++ b/test/dotnet-watch.Tests/Watch/GlobbingAppTests.cs @@ -90,7 +90,7 @@ public async Task ChangeExcludedFile() File.WriteAllText(changedFile, ""); // no file change within timeout: - var fileChanged = App.AssertFileChanged(); + var fileChanged = App.AssertOutputLineStartsWith("dotnet watch ⌚ File changed:"); var finished = await Task.WhenAny(Task.Delay(TimeSpan.FromSeconds(5)), fileChanged); Assert.NotSame(fileChanged, finished); } @@ -103,8 +103,8 @@ public async Task ListsFiles() App.SuppressVerboseLogging(); App.Start(testAsset, ["--list"]); - var lines = await App.Process.GetAllOutputLinesAsync(CancellationToken.None); - var files = lines.Where(l => !l.StartsWith("dotnet watch ⌚") && l.Trim() != ""); + await App.Process.WaitUntilOutputCompleted(); + var files = App.Process.Output.Where(l => !l.StartsWith("dotnet watch ⌚") && l.Trim() != ""); AssertEx.EqualFileList( testAsset.Path, diff --git a/test/dotnet-watch.Tests/Watch/NoDepsAppTests.cs b/test/dotnet-watch.Tests/Watch/NoDepsAppTests.cs deleted file mode 100644 index fe93ef940c90..000000000000 --- a/test/dotnet-watch.Tests/Watch/NoDepsAppTests.cs +++ /dev/null @@ -1,52 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace Microsoft.DotNet.Watch.UnitTests -{ - public class NoDepsAppTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) - { - private const string AppName = "WatchNoDepsApp"; - - [Fact(Skip = "https://github.com/dotnet/sdk/issues/42921")] - public async Task RestartProcessOnFileChange() - { - var testAsset = TestAssets.CopyTestAsset(AppName) - .WithSource(); - - App.Start(testAsset, ["--no-hot-reload", "--no-exit"]); - var processIdentifier = await App.AssertOutputLineStartsWith("Process identifier ="); - - UpdateSourceFile(Path.Combine(testAsset.Path, "Program.cs")); - - await App.AssertStarted(); - Assert.DoesNotContain(App.Process.Output, l => l.StartsWith("Exited with error code")); - - var processIdentifier2 = await App.AssertOutputLineStartsWith("Process identifier ="); - Assert.NotEqual(processIdentifier, processIdentifier2); - } - - [Fact(Skip = "https://github.com/dotnet/sdk/issues/42921")] - public async Task RestartProcessThatTerminatesAfterFileChange() - { - var testAsset = TestAssets.CopyTestAsset(AppName) - .WithSource(); - - App.Start(testAsset, []); - - var processIdentifier = await App.AssertOutputLineStartsWith("Process identifier ="); - - // process should exit after run - await App.AssertExiting(); - - await App.WaitForOutputLineContaining(MessageDescriptor.WaitingForFileChangeBeforeRestarting); - await App.WaitForOutputLineContaining(MessageDescriptor.WaitingForChanges); - - UpdateSourceFile(Path.Combine(testAsset.Path, "Program.cs")); - await App.AssertStarted(); - - var processIdentifier2 = await App.AssertOutputLineStartsWith("Process identifier ="); - Assert.NotEqual(processIdentifier, processIdentifier2); - await App.AssertExiting(); // process should exit after run - } - } -} From 08f46fee8aa960f3a5e7808cda9982c5e79f9290 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 5 Mar 2026 21:34:38 +0000 Subject: [PATCH 176/179] Reset files to main Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/* --- NuGet.config | 2 + eng/Version.Details.props | 377 +++++----- eng/Version.Details.xml | 696 +++++++++--------- eng/common/SetupNugetSources.ps1 | 17 +- eng/common/SetupNugetSources.sh | 17 +- eng/common/build.sh | 2 +- eng/common/core-templates/job/job.yml | 8 + .../job/publish-build-assets.yml | 16 +- .../core-templates/post-build/post-build.yml | 461 ++++++------ .../core-templates/steps/generate-sbom.yml | 2 +- .../steps/install-microbuild-impl.yml | 34 + .../steps/install-microbuild.yml | 64 +- .../core-templates/steps/source-build.yml | 2 +- .../steps/source-index-stage1-publish.yml | 8 +- eng/common/cross/build-rootfs.sh | 8 +- eng/common/darc-init.sh | 2 +- eng/common/dotnet-install.sh | 2 +- eng/common/dotnet.sh | 2 +- eng/common/generate-sbom-prep.sh | 0 eng/common/internal-feed-operations.sh | 2 +- eng/common/native/install-dependencies.sh | 11 +- eng/common/post-build/redact-logs.ps1 | 3 +- eng/common/templates/steps/vmr-sync.yml | 21 - eng/common/templates/vmr-build-pr.yml | 1 + eng/common/tools.ps1 | 14 +- eng/common/tools.sh | 12 +- eng/common/vmr-sync.ps1 | 38 +- eng/common/vmr-sync.sh | 30 +- global.json | 6 +- 29 files changed, 960 insertions(+), 898 deletions(-) create mode 100644 eng/common/core-templates/steps/install-microbuild-impl.yml mode change 100755 => 100644 eng/common/generate-sbom-prep.sh diff --git a/NuGet.config b/NuGet.config index f3f728c95515..4e8eb7f42e2c 100644 --- a/NuGet.config +++ b/NuGet.config @@ -23,6 +23,8 @@ + + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index ba78063ca632..304cd05ad70e 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,152 +6,176 @@ This file should be imported by eng/Versions.props - 10.0.0-preview.26118.105 - 18.3.0-preview-26118-105 - 18.3.0-preview-26118-105 - 7.5.0-rc.11905 - 10.0.300-alpha.26118.105 - 5.5.0-2.26118.105 - 5.5.0-2.26118.105 - 5.5.0-2.26118.105 - 5.5.0-2.26118.105 - 5.5.0-2.26118.105 - 5.5.0-2.26118.105 - 5.5.0-2.26118.105 - 5.5.0-2.26118.105 - 10.0.0-preview.26118.105 - 5.5.0-2.26118.105 - 5.5.0-2.26118.105 - 5.5.0-2.26118.105 - 10.0.0-beta.26118.105 - 10.0.0-beta.26118.105 - 10.0.0-beta.26118.105 - 10.0.0-beta.26118.105 - 10.0.0-beta.26118.105 - 10.0.0-beta.26118.105 - 10.0.0-beta.26118.105 - 10.0.0-beta.26118.105 - 15.2.300-servicing.26118.105 - 5.5.0-2.26118.105 - 5.5.0-2.26118.105 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 10.0.0-preview.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 18.6.0-preview-26152-106 + 18.6.0-preview-26152-106 + 7.5.0-rc.15306 + 11.0.100-preview.3.26152.106 + 5.6.0-2.26152.106 + 5.6.0-2.26152.106 + 5.6.0-2.26152.106 + 5.6.0-2.26152.106 + 5.6.0-2.26152.106 + 5.6.0-2.26152.106 + 5.6.0-2.26152.106 + 5.6.0-2.26152.106 + 10.0.0-preview.26152.106 + 5.6.0-2.26152.106 + 5.6.0-2.26152.106 + 2.0.0-preview.1.26152.106 + 3.0.0-preview.3.26152.106 + 11.0.0-beta.26152.106 + 11.0.0-beta.26152.106 + 11.0.0-beta.26152.106 + 11.0.0-beta.26152.106 + 11.0.0-beta.26152.106 + 11.0.0-beta.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-beta.26152.106 + 11.0.0-beta.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 15.2.100-preview3.26152.106 + 11.0.0-preview.3.26152.106 + 5.6.0-2.26152.106 + 5.6.0-2.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 10.0.0-preview.7.25377.103 - 10.0.0-preview.26118.105 - 18.3.0-release-26118-105 - 10.0.300-alpha.26118.105 - 10.0.300-alpha.26118.105 - 10.0.300-alpha.26118.105 - 10.0.300-alpha.26118.105 - 10.0.300-alpha.26118.105 - 10.0.300-preview.26118.105 - 10.0.300-preview.26118.105 - 10.0.300-preview.26118.105 - 10.0.300-preview.26118.105 - 10.0.300-preview.26118.105 - 10.0.300-preview.26118.105 - 10.0.300-preview.26118.105 - 10.0.300-preview.26118.105 - 10.0.300-preview.26118.105 - 18.3.0-release-26118-105 - 18.3.0-release-26118-105 - 7.5.0-rc.11905 - 7.5.0-rc.11905 - 7.5.0-rc.11905 - 7.5.0-rc.11905 - 7.5.0-rc.11905 - 7.5.0-rc.11905 - 7.5.0-rc.11905 - 7.5.0-rc.11905 - 7.5.0-rc.11905 - 7.5.0-rc.11905 - 7.5.0-rc.11905 - 7.5.0-rc.11905 - 7.5.0-rc.11905 - 7.5.0-rc.11905 - 7.5.0-rc.11905 - 7.5.0-rc.11905 - - 10.0.2-servicing.25612.105 - 10.0.2-servicing.25612.105 - 10.0.2-servicing.25612.105 - 10.0.2-servicing.25612.105 - 10.0.2 - 10.0.2-servicing.25612.105 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2-servicing.25612.105 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2-servicing.25612.105 - 10.0.2 - 10.0.2-servicing.25612.105 - 10.0.2-servicing.25612.105 - 10.0.2 - 10.0.2 - 2.0.0-preview.1.25612.105 - 2.2.2 - 10.0.2 - 10.0.2 - 10.0.2-servicing.25612.105 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2-servicing.25612.105 - 10.0.2 - 10.0.2 - 10.0.2-servicing.25612.105 - 10.0.2 - 10.0.2-servicing.25612.105 - 3.2.2 - 10.0.2 - 10.0.2-servicing.25612.105 - 10.0.2 - 10.0.2 - 2.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 + 10.0.0-preview.26152.106 + 11.0.0-preview.3.26152.106 + 18.5.0-preview-26152-106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.100-preview.3.26152.106 + 11.0.100-preview.3.26152.106 + 11.0.100-preview.3.26152.106 + 11.0.100-preview.3.26152.106 + 11.0.100-preview.3.26152.106 + 11.0.100-preview.3.26152.106 + 11.0.100-preview.3.26152.106 + 11.0.100-preview.3.26152.106 + 11.0.100-preview.3.26152.106 + 11.0.100-preview.3.26152.106 + 11.0.100-preview.3.26152.106 + 11.0.100-preview.3.26152.106 + 11.0.100-preview.3.26152.106 + 11.0.100-preview.3.26152.106 + 18.5.0-preview-26152-106 + 18.5.0-preview-26152-106 + 3.3.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 7.5.0-rc.15306 + 7.5.0-rc.15306 + 7.5.0-rc.15306 + 7.5.0-rc.15306 + 7.5.0-rc.15306 + 7.5.0-rc.15306 + 7.5.0-rc.15306 + 7.5.0-rc.15306 + 7.5.0-rc.15306 + 7.5.0-rc.15306 + 7.5.0-rc.15306 + 7.5.0-rc.15306 + 7.5.0-rc.15306 + 7.5.0-rc.15306 + 7.5.0-rc.15306 + 7.5.0-rc.15306 + 11.0.0-preview.3.26152.106 + 3.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 + 11.0.0-preview.3.26152.106 2.1.0 + + 11.0.0-preview.3.26152.106 - 2.1.0-preview.25571.1 - 4.1.0-preview.25571.1 + 2.2.0-preview.26154.1 + 4.2.0-preview.26154.1 + $(dotnetdevcertsPackageVersion) + $(dotnetuserjwtsPackageVersion) + $(dotnetusersecretsPackageVersion) + $(MicrosoftAspNetCoreAnalyzersPackageVersion) + $(MicrosoftAspNetCoreAppRefPackageVersion) + $(MicrosoftAspNetCoreAppRefInternalPackageVersion) + $(MicrosoftAspNetCoreAuthenticationFacebookPackageVersion) + $(MicrosoftAspNetCoreAuthenticationGooglePackageVersion) + $(MicrosoftAspNetCoreAuthenticationMicrosoftAccountPackageVersion) + $(MicrosoftAspNetCoreAuthorizationPackageVersion) + $(MicrosoftAspNetCoreComponentsPackageVersion) + $(MicrosoftAspNetCoreComponentsAnalyzersPackageVersion) + $(MicrosoftAspNetCoreComponentsFormsPackageVersion) + $(MicrosoftAspNetCoreComponentsSdkAnalyzersPackageVersion) + $(MicrosoftAspNetCoreComponentsWebPackageVersion) + $(MicrosoftAspNetCoreComponentsWebAssemblyPackageVersion) + $(MicrosoftAspNetCoreComponentsWebAssemblyServerPackageVersion) + $(MicrosoftAspNetCoreComponentsWebViewPackageVersion) + $(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion) + $(MicrosoftAspNetCoreMetadataPackageVersion) + $(MicrosoftAspNetCoreMvcAnalyzersPackageVersion) + $(MicrosoftAspNetCoreMvcApiAnalyzersPackageVersion) $(MicrosoftAspNetCoreMvcRazorExtensionsToolingInternalPackageVersion) + $(MicrosoftAspNetCoreTestHostPackageVersion) + $(MicrosoftBclAsyncInterfacesPackageVersion) $(MicrosoftBuildPackageVersion) $(MicrosoftBuildLocalizationPackageVersion) $(MicrosoftBuildNuGetSdkResolverPackageVersion) @@ -167,20 +191,42 @@ This file should be imported by eng/Versions.props $(MicrosoftCodeAnalysisRazorToolingInternalPackageVersion) $(MicrosoftCodeAnalysisWorkspacesCommonPackageVersion) $(MicrosoftCodeAnalysisWorkspacesMSBuildPackageVersion) + $(MicrosoftDeploymentDotNetReleasesPackageVersion) + $(MicrosoftDiaSymReaderPackageVersion) $(MicrosoftDotNetArcadeSdkPackageVersion) $(MicrosoftDotNetBuildTasksInstallersPackageVersion) $(MicrosoftDotNetBuildTasksTemplatingPackageVersion) $(MicrosoftDotNetBuildTasksWorkloadsPackageVersion) $(MicrosoftDotNetHelixSdkPackageVersion) $(MicrosoftDotNetSignToolPackageVersion) + $(MicrosoftDotNetWebItemTemplates110PackageVersion) + $(MicrosoftDotNetWebProjectTemplates110PackageVersion) + $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) + $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) $(MicrosoftDotNetXliffTasksPackageVersion) $(MicrosoftDotNetXUnitExtensionsPackageVersion) + $(MicrosoftExtensionsConfigurationIniPackageVersion) + $(MicrosoftExtensionsDependencyModelPackageVersion) + $(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion) + $(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion) + $(MicrosoftExtensionsFileSystemGlobbingPackageVersion) + $(MicrosoftExtensionsLoggingPackageVersion) + $(MicrosoftExtensionsLoggingAbstractionsPackageVersion) + $(MicrosoftExtensionsLoggingConsolePackageVersion) + $(MicrosoftExtensionsObjectPoolPackageVersion) $(MicrosoftFSharpCompilerPackageVersion) + $(MicrosoftJSInteropPackageVersion) $(MicrosoftNetCompilersToolsetPackageVersion) $(MicrosoftNetCompilersToolsetFrameworkPackageVersion) + $(MicrosoftNETHostModelPackageVersion) + $(MicrosoftNETILLinkTasksPackageVersion) + $(MicrosoftNETRuntimeEmscripten3156Cachewinx64PackageVersion) $(MicrosoftNETRuntimeEmscriptenSdkInternalPackageVersion) $(MicrosoftNETSdkRazorSourceGeneratorsTransportPackageVersion) + $(MicrosoftNETSdkWindowsDesktopPackageVersion) $(MicrosoftNETTestSdkPackageVersion) + $(MicrosoftNETCoreAppRefPackageVersion) + $(MicrosoftNETCorePlatformsPackageVersion) $(MicrosoftSourceLinkAzureReposGitPackageVersion) $(MicrosoftSourceLinkBitbucketGitPackageVersion) $(MicrosoftSourceLinkCommonPackageVersion) @@ -197,6 +243,10 @@ This file should be imported by eng/Versions.props $(MicrosoftTemplateSearchTemplateDiscoveryPackageVersion) $(MicrosoftTestPlatformBuildPackageVersion) $(MicrosoftTestPlatformCLIPackageVersion) + $(MicrosoftWebXdtPackageVersion) + $(MicrosoftWin32SystemEventsPackageVersion) + $(MicrosoftWindowsDesktopAppInternalPackageVersion) + $(MicrosoftWindowsDesktopAppRefPackageVersion) $(NuGetBuildTasksPackageVersion) $(NuGetBuildTasksConsolePackageVersion) $(NuGetBuildTasksPackPackageVersion) @@ -213,57 +263,6 @@ This file should be imported by eng/Versions.props $(NuGetProjectModelPackageVersion) $(NuGetProtocolPackageVersion) $(NuGetVersioningPackageVersion) - - $(dotnetdevcertsPackageVersion) - $(dotnetuserjwtsPackageVersion) - $(dotnetusersecretsPackageVersion) - $(MicrosoftAspNetCoreAnalyzersPackageVersion) - $(MicrosoftAspNetCoreAppRefPackageVersion) - $(MicrosoftAspNetCoreAppRefInternalPackageVersion) - $(MicrosoftAspNetCoreAuthenticationFacebookPackageVersion) - $(MicrosoftAspNetCoreAuthenticationGooglePackageVersion) - $(MicrosoftAspNetCoreAuthenticationMicrosoftAccountPackageVersion) - $(MicrosoftAspNetCoreAuthorizationPackageVersion) - $(MicrosoftAspNetCoreComponentsPackageVersion) - $(MicrosoftAspNetCoreComponentsAnalyzersPackageVersion) - $(MicrosoftAspNetCoreComponentsFormsPackageVersion) - $(MicrosoftAspNetCoreComponentsSdkAnalyzersPackageVersion) - $(MicrosoftAspNetCoreComponentsWebPackageVersion) - $(MicrosoftAspNetCoreComponentsWebAssemblyPackageVersion) - $(MicrosoftAspNetCoreComponentsWebAssemblyServerPackageVersion) - $(MicrosoftAspNetCoreComponentsWebViewPackageVersion) - $(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion) - $(MicrosoftAspNetCoreMetadataPackageVersion) - $(MicrosoftAspNetCoreMvcAnalyzersPackageVersion) - $(MicrosoftAspNetCoreMvcApiAnalyzersPackageVersion) - $(MicrosoftAspNetCoreTestHostPackageVersion) - $(MicrosoftBclAsyncInterfacesPackageVersion) - $(MicrosoftDeploymentDotNetReleasesPackageVersion) - $(MicrosoftDiaSymReaderPackageVersion) - $(MicrosoftDotNetWebItemTemplates100PackageVersion) - $(MicrosoftDotNetWebProjectTemplates100PackageVersion) - $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) - $(MicrosoftExtensionsConfigurationIniPackageVersion) - $(MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion) - $(MicrosoftExtensionsDependencyModelPackageVersion) - $(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion) - $(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion) - $(MicrosoftExtensionsFileSystemGlobbingPackageVersion) - $(MicrosoftExtensionsLoggingPackageVersion) - $(MicrosoftExtensionsLoggingAbstractionsPackageVersion) - $(MicrosoftExtensionsLoggingConsolePackageVersion) - $(MicrosoftExtensionsObjectPoolPackageVersion) - $(MicrosoftJSInteropPackageVersion) - $(MicrosoftNETHostModelPackageVersion) - $(MicrosoftNETILLinkTasksPackageVersion) - $(MicrosoftNETRuntimeEmscripten3156Cachewinx64PackageVersion) - $(MicrosoftNETSdkWindowsDesktopPackageVersion) - $(MicrosoftNETCoreAppRefPackageVersion) - $(MicrosoftNETCorePlatformsPackageVersion) - $(MicrosoftWebXdtPackageVersion) - $(MicrosoftWin32SystemEventsPackageVersion) - $(MicrosoftWindowsDesktopAppInternalPackageVersion) - $(MicrosoftWindowsDesktopAppRefPackageVersion) $(SystemCodeDomPackageVersion) $(SystemCommandLinePackageVersion) $(SystemComponentModelCompositionPackageVersion) @@ -288,6 +287,8 @@ This file should be imported by eng/Versions.props $(SystemWindowsExtensionsPackageVersion) $(NETStandardLibraryRefPackageVersion) + + $(MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion) $(MicrosoftTestingPlatformPackageVersion) $(MSTestPackageVersion) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 91b93b8c46e6..2af70bc94bdb 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda @@ -68,174 +68,174 @@ https://github.com/dotnet/dotnet 6a953e76162f3f079405f80e28664fa51b136740 - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://github.com/dotnet/roslyn - 46a48b8c1dfce7c35da115308bedd6a5954fd78a + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b - - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b - - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - fad253f51b461736dfd3cd9c15977bb7493becef + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda + + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda + + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + 4c0aa722933ea491006247bbc0a484fa3c28cd14 - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/dotnet/dotnet - d346a57fc93fb42eb26f9da2aa66bfdeaa3372a5 + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda - + https://github.com/microsoft/testfx - 43e592148ac1c7916908477bdffcf2a345affa6d + 6aadada5d6e7c30e7db8cba4339455f74936731b - + https://github.com/microsoft/testfx - 43e592148ac1c7916908477bdffcf2a345affa6d + 6aadada5d6e7c30e7db8cba4339455f74936731b - - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - 44525024595742ebe09023abe709df51de65009b + + https://github.com/dotnet/dotnet + 5507d7a2f05bb6c073a055ead6ce1c4bbe396cda diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1 index 65ed3a8adef0..fc8d618014e0 100644 --- a/eng/common/SetupNugetSources.ps1 +++ b/eng/common/SetupNugetSources.ps1 @@ -1,7 +1,6 @@ # This script adds internal feeds required to build commits that depend on internal package sources. For instance, -# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. Similarly, -# dotnet-eng-internal and dotnet-tools-internal are added if dotnet-eng and dotnet-tools are present. -# In addition, this script also enables disabled internal Maestro (darc-int*) feeds. +# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. In addition also enables +# disabled internal Maestro (darc-int*) feeds. # # Optionally, this script also adds a credential entry for each of the internal feeds if supplied. # @@ -174,16 +173,4 @@ foreach ($dotnetVersion in $dotnetVersions) { } } -# Check for dotnet-eng and add dotnet-eng-internal if present -$dotnetEngSource = $sources.SelectSingleNode("add[@key='dotnet-eng']") -if ($dotnetEngSource -ne $null) { - AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "dotnet-eng-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-eng-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password -} - -# Check for dotnet-tools and add dotnet-tools-internal if present -$dotnetToolsSource = $sources.SelectSingleNode("add[@key='dotnet-tools']") -if ($dotnetToolsSource -ne $null) { - AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "dotnet-tools-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-tools-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password -} - $doc.Save($filename) diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh index b2163abbe71b..b97cc536379d 100755 --- a/eng/common/SetupNugetSources.sh +++ b/eng/common/SetupNugetSources.sh @@ -1,9 +1,8 @@ #!/usr/bin/env bash # This script adds internal feeds required to build commits that depend on internal package sources. For instance, -# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. Similarly, -# dotnet-eng-internal and dotnet-tools-internal are added if dotnet-eng and dotnet-tools are present. -# In addition, this script also enables disabled internal Maestro (darc-int*) feeds. +# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. In addition also enables +# disabled internal Maestro (darc-int*) feeds. # # Optionally, this script also adds a credential entry for each of the internal feeds if supplied. # @@ -174,18 +173,6 @@ for DotNetVersion in ${DotNetVersions[@]} ; do fi done -# Check for dotnet-eng and add dotnet-eng-internal if present -grep -i " /dev/null -if [ "$?" == "0" ]; then - AddOrEnablePackageSource "dotnet-eng-internal" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-eng-internal/nuget/$FeedSuffix" -fi - -# Check for dotnet-tools and add dotnet-tools-internal if present -grep -i " /dev/null -if [ "$?" == "0" ]; then - AddOrEnablePackageSource "dotnet-tools-internal" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-tools-internal/nuget/$FeedSuffix" -fi - # I want things split line by line PrevIFS=$IFS IFS=$'\n' diff --git a/eng/common/build.sh b/eng/common/build.sh index 9767bb411a4f..ec3e80d189ea 100755 --- a/eng/common/build.sh +++ b/eng/common/build.sh @@ -92,7 +92,7 @@ runtime_source_feed='' runtime_source_feed_key='' properties=() -while [[ $# > 0 ]]; do +while [[ $# -gt 0 ]]; do opt="$(echo "${1/#--/-}" | tr "[:upper:]" "[:lower:]")" case "$opt" in -help|-h) diff --git a/eng/common/core-templates/job/job.yml b/eng/common/core-templates/job/job.yml index 5ce518406198..748c4f07a64d 100644 --- a/eng/common/core-templates/job/job.yml +++ b/eng/common/core-templates/job/job.yml @@ -19,6 +19,8 @@ parameters: # publishing defaults artifacts: '' enableMicrobuild: false + enablePreviewMicrobuild: false + microbuildPluginVersion: 'latest' enableMicrobuildForMacAndLinux: false microbuildUseESRP: true enablePublishBuildArtifacts: false @@ -71,6 +73,8 @@ jobs: templateContext: ${{ parameters.templateContext }} variables: + - name: AllowPtrToDetectTestRunRetryFiles + value: true - ${{ if ne(parameters.enableTelemetry, 'false') }}: - name: DOTNET_CLI_TELEMETRY_PROFILE value: '$(Build.Repository.Uri)' @@ -128,6 +132,8 @@ jobs: - template: /eng/common/core-templates/steps/install-microbuild.yml parameters: enableMicrobuild: ${{ parameters.enableMicrobuild }} + enablePreviewMicrobuild: ${{ parameters.enablePreviewMicrobuild }} + microbuildPluginVersion: ${{ parameters.microbuildPluginVersion }} enableMicrobuildForMacAndLinux: ${{ parameters.enableMicrobuildForMacAndLinux }} microbuildUseESRP: ${{ parameters.microbuildUseESRP }} continueOnError: ${{ parameters.continueOnError }} @@ -153,6 +159,8 @@ jobs: - template: /eng/common/core-templates/steps/cleanup-microbuild.yml parameters: enableMicrobuild: ${{ parameters.enableMicrobuild }} + enablePreviewMicrobuild: ${{ parameters.enablePreviewMicrobuild }} + microbuildPluginVersion: ${{ parameters.microbuildPluginVersion }} enableMicrobuildForMacAndLinux: ${{ parameters.enableMicrobuildForMacAndLinux }} continueOnError: ${{ parameters.continueOnError }} diff --git a/eng/common/core-templates/job/publish-build-assets.yml b/eng/common/core-templates/job/publish-build-assets.yml index b955fac6e13f..c9ee8ffd8f1d 100644 --- a/eng/common/core-templates/job/publish-build-assets.yml +++ b/eng/common/core-templates/job/publish-build-assets.yml @@ -91,8 +91,8 @@ jobs: fetchDepth: 3 clean: true - - ${{ if eq(parameters.isAssetlessBuild, 'false') }}: - - ${{ if eq(parameters.publishingVersion, 3) }}: + - ${{ if eq(parameters.isAssetlessBuild, 'false') }}: + - ${{ if eq(parameters.publishingVersion, 3) }}: - task: DownloadPipelineArtifact@2 displayName: Download Asset Manifests inputs: @@ -117,7 +117,7 @@ jobs: flattenFolders: true condition: ${{ parameters.condition }} continueOnError: ${{ parameters.continueOnError }} - + - task: NuGetAuthenticate@1 # Populate internal runtime variables. @@ -125,7 +125,7 @@ jobs: ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: parameters: legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) - + - template: /eng/common/templates/steps/enable-internal-runtimes.yml - task: AzureCLI@2 @@ -145,7 +145,7 @@ jobs: condition: ${{ parameters.condition }} continueOnError: ${{ parameters.continueOnError }} - + - task: powershell@2 displayName: Create ReleaseConfigs Artifact inputs: @@ -173,7 +173,7 @@ jobs: artifactName: AssetManifests displayName: 'Publish Merged Manifest' retryCountOnTaskFailure: 10 # for any logs being locked - sbomEnabled: false # we don't need SBOM for logs + sbomEnabled: false # we don't need SBOM for logs - template: /eng/common/core-templates/steps/publish-build-artifacts.yml parameters: @@ -190,7 +190,7 @@ jobs: BARBuildId: ${{ parameters.BARBuildId }} PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} is1ESPipeline: ${{ parameters.is1ESPipeline }} - + # Darc is targeting 8.0, so make sure it's installed - task: UseDotNet@2 inputs: @@ -218,4 +218,4 @@ jobs: - template: /eng/common/core-templates/steps/publish-logs.yml parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} - JobLabel: 'Publish_Artifacts_Logs' + JobLabel: 'Publish_Artifacts_Logs' diff --git a/eng/common/core-templates/post-build/post-build.yml b/eng/common/core-templates/post-build/post-build.yml index b942a79ef02d..3bed9cdb49d8 100644 --- a/eng/common/core-templates/post-build/post-build.yml +++ b/eng/common/core-templates/post-build/post-build.yml @@ -1,106 +1,106 @@ parameters: - # Which publishing infra should be used. THIS SHOULD MATCH THE VERSION ON THE BUILD MANIFEST. - # Publishing V1 is no longer supported - # Publishing V2 is no longer supported - # Publishing V3 is the default - - name: publishingInfraVersion - displayName: Which version of publishing should be used to promote the build definition? - type: number - default: 3 - values: - - 3 - - - name: BARBuildId - displayName: BAR Build Id - type: number - default: 0 - - - name: PromoteToChannelIds - displayName: Channel to promote BARBuildId to - type: string - default: '' - - - name: enableSourceLinkValidation - displayName: Enable SourceLink validation - type: boolean - default: false - - - name: enableSigningValidation - displayName: Enable signing validation - type: boolean - default: true - - - name: enableSymbolValidation - displayName: Enable symbol validation - type: boolean - default: false - - - name: enableNugetValidation - displayName: Enable NuGet validation - type: boolean - default: true - - - name: publishInstallersAndChecksums - displayName: Publish installers and checksums - type: boolean - default: true - - - name: requireDefaultChannels - displayName: Fail the build if there are no default channel(s) registrations for the current build - type: boolean - default: false - - - name: SDLValidationParameters - type: object - default: - enable: false - publishGdn: false - continueOnError: false - params: '' - artifactNames: '' - downloadArtifacts: true - - - name: isAssetlessBuild - type: boolean - displayName: Is Assetless Build - default: false - - # These parameters let the user customize the call to sdk-task.ps1 for publishing - # symbols & general artifacts as well as for signing validation - - name: symbolPublishingAdditionalParameters - displayName: Symbol publishing additional parameters - type: string - default: '' - - - name: artifactsPublishingAdditionalParameters - displayName: Artifact publishing additional parameters - type: string - default: '' - - - name: signingValidationAdditionalParameters - displayName: Signing validation additional parameters - type: string - default: '' - - # Which stages should finish execution before post-build stages start - - name: validateDependsOn - type: object - default: - - build - - - name: publishDependsOn - type: object - default: - - Validate - - # Optional: Call asset publishing rather than running in a separate stage - - name: publishAssetsImmediately - type: boolean - default: false - - - name: is1ESPipeline - type: boolean - default: false +# Which publishing infra should be used. THIS SHOULD MATCH THE VERSION ON THE BUILD MANIFEST. +# Publishing V1 is no longer supported +# Publishing V2 is no longer supported +# Publishing V3 is the default +- name: publishingInfraVersion + displayName: Which version of publishing should be used to promote the build definition? + type: number + default: 3 + values: + - 3 + +- name: BARBuildId + displayName: BAR Build Id + type: number + default: 0 + +- name: PromoteToChannelIds + displayName: Channel to promote BARBuildId to + type: string + default: '' + +- name: enableSourceLinkValidation + displayName: Enable SourceLink validation + type: boolean + default: false + +- name: enableSigningValidation + displayName: Enable signing validation + type: boolean + default: true + +- name: enableSymbolValidation + displayName: Enable symbol validation + type: boolean + default: false + +- name: enableNugetValidation + displayName: Enable NuGet validation + type: boolean + default: true + +- name: publishInstallersAndChecksums + displayName: Publish installers and checksums + type: boolean + default: true + +- name: requireDefaultChannels + displayName: Fail the build if there are no default channel(s) registrations for the current build + type: boolean + default: false + +- name: SDLValidationParameters + type: object + default: + enable: false + publishGdn: false + continueOnError: false + params: '' + artifactNames: '' + downloadArtifacts: true + +- name: isAssetlessBuild + type: boolean + displayName: Is Assetless Build + default: false + +# These parameters let the user customize the call to sdk-task.ps1 for publishing +# symbols & general artifacts as well as for signing validation +- name: symbolPublishingAdditionalParameters + displayName: Symbol publishing additional parameters + type: string + default: '' + +- name: artifactsPublishingAdditionalParameters + displayName: Artifact publishing additional parameters + type: string + default: '' + +- name: signingValidationAdditionalParameters + displayName: Signing validation additional parameters + type: string + default: '' + +# Which stages should finish execution before post-build stages start +- name: validateDependsOn + type: object + default: + - build + +- name: publishDependsOn + type: object + default: + - Validate + +# Optional: Call asset publishing rather than running in a separate stage +- name: publishAssetsImmediately + type: boolean + default: false + +- name: is1ESPipeline + type: boolean + default: false stages: - ${{ if or(eq( parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}: @@ -108,10 +108,10 @@ stages: dependsOn: ${{ parameters.validateDependsOn }} displayName: Validate Build Assets variables: - - template: /eng/common/core-templates/post-build/common-variables.yml - - template: /eng/common/core-templates/variables/pool-providers.yml - parameters: - is1ESPipeline: ${{ parameters.is1ESPipeline }} + - template: /eng/common/core-templates/post-build/common-variables.yml + - template: /eng/common/core-templates/variables/pool-providers.yml + parameters: + is1ESPipeline: ${{ parameters.is1ESPipeline }} jobs: - job: displayName: NuGet Validation @@ -134,28 +134,28 @@ stages: demands: ImageOverride -equals windows.vs2026preview.scout.amd64 steps: - - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml - parameters: - BARBuildId: ${{ parameters.BARBuildId }} - PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} - is1ESPipeline: ${{ parameters.is1ESPipeline }} - - - task: DownloadBuildArtifacts@0 - displayName: Download Package Artifacts - inputs: - buildType: specific - buildVersionToDownload: specific - project: $(AzDOProjectName) - pipeline: $(AzDOPipelineId) - buildId: $(AzDOBuildId) - artifactName: PackageArtifacts - checkDownloadedFiles: true - - - task: PowerShell@2 - displayName: Validate - inputs: - filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/nuget-validation.ps1 - arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ + - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + is1ESPipeline: ${{ parameters.is1ESPipeline }} + + - task: DownloadBuildArtifacts@0 + displayName: Download Package Artifacts + inputs: + buildType: specific + buildVersionToDownload: specific + project: $(AzDOProjectName) + pipeline: $(AzDOPipelineId) + buildId: $(AzDOBuildId) + artifactName: PackageArtifacts + checkDownloadedFiles: true + + - task: PowerShell@2 + displayName: Validate + inputs: + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/nuget-validation.ps1 + arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ - job: displayName: Signing Validation @@ -169,7 +169,7 @@ stages: os: windows # If it's not devdiv, it's dnceng ${{ else }}: - ${{ if eq(parameters.is1ESPipeline, true) }}: + ${{ if eq(parameters.is1ESPipeline, true) }}: name: $(DncEngInternalBuildPool) image: 1es-windows-2022 os: windows @@ -177,46 +177,46 @@ stages: name: $(DncEngInternalBuildPool) demands: ImageOverride -equals windows.vs2026preview.scout.amd64 steps: - - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml - parameters: - BARBuildId: ${{ parameters.BARBuildId }} - PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} - is1ESPipeline: ${{ parameters.is1ESPipeline }} - - - task: DownloadBuildArtifacts@0 - displayName: Download Package Artifacts - inputs: - buildType: specific - buildVersionToDownload: specific - project: $(AzDOProjectName) - pipeline: $(AzDOPipelineId) - buildId: $(AzDOBuildId) - artifactName: PackageArtifacts - checkDownloadedFiles: true - - # This is necessary whenever we want to publish/restore to an AzDO private feed - # Since sdk-task.ps1 tries to restore packages we need to do this authentication here - # otherwise it'll complain about accessing a private feed. - - task: NuGetAuthenticate@1 - displayName: 'Authenticate to AzDO Feeds' - - # Signing validation will optionally work with the buildmanifest file which is downloaded from - # Azure DevOps above. - - task: PowerShell@2 - displayName: Validate - inputs: - filePath: eng\common\sdk-task.ps1 - arguments: -task SigningValidation -restore -msbuildEngine vs - /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts' - /p:SignCheckExclusionsFile='$(System.DefaultWorkingDirectory)/eng/SignCheckExclusionsFile.txt' - ${{ parameters.signingValidationAdditionalParameters }} - - - template: /eng/common/core-templates/steps/publish-logs.yml - parameters: - is1ESPipeline: ${{ parameters.is1ESPipeline }} - StageLabel: 'Validation' - JobLabel: 'Signing' - BinlogToolVersion: $(BinlogToolVersion) + - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + is1ESPipeline: ${{ parameters.is1ESPipeline }} + + - task: DownloadBuildArtifacts@0 + displayName: Download Package Artifacts + inputs: + buildType: specific + buildVersionToDownload: specific + project: $(AzDOProjectName) + pipeline: $(AzDOPipelineId) + buildId: $(AzDOBuildId) + artifactName: PackageArtifacts + checkDownloadedFiles: true + + # This is necessary whenever we want to publish/restore to an AzDO private feed + # Since sdk-task.ps1 tries to restore packages we need to do this authentication here + # otherwise it'll complain about accessing a private feed. + - task: NuGetAuthenticate@1 + displayName: 'Authenticate to AzDO Feeds' + + # Signing validation will optionally work with the buildmanifest file which is downloaded from + # Azure DevOps above. + - task: PowerShell@2 + displayName: Validate + inputs: + filePath: eng\common\sdk-task.ps1 + arguments: -task SigningValidation -restore -msbuildEngine vs + /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts' + /p:SignCheckExclusionsFile='$(System.DefaultWorkingDirectory)/eng/SignCheckExclusionsFile.txt' + ${{ parameters.signingValidationAdditionalParameters }} + + - template: /eng/common/core-templates/steps/publish-logs.yml + parameters: + is1ESPipeline: ${{ parameters.is1ESPipeline }} + StageLabel: 'Validation' + JobLabel: 'Signing' + BinlogToolVersion: $(BinlogToolVersion) - job: displayName: SourceLink Validation @@ -230,7 +230,7 @@ stages: os: windows # If it's not devdiv, it's dnceng ${{ else }}: - ${{ if eq(parameters.is1ESPipeline, true) }}: + ${{ if eq(parameters.is1ESPipeline, true) }}: name: $(DncEngInternalBuildPool) image: 1es-windows-2022 os: windows @@ -238,33 +238,33 @@ stages: name: $(DncEngInternalBuildPool) demands: ImageOverride -equals windows.vs2026preview.scout.amd64 steps: - - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml - parameters: - BARBuildId: ${{ parameters.BARBuildId }} - PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} - is1ESPipeline: ${{ parameters.is1ESPipeline }} - - - task: DownloadBuildArtifacts@0 - displayName: Download Blob Artifacts - inputs: - buildType: specific - buildVersionToDownload: specific - project: $(AzDOProjectName) - pipeline: $(AzDOPipelineId) - buildId: $(AzDOBuildId) - artifactName: BlobArtifacts - checkDownloadedFiles: true - - - task: PowerShell@2 - displayName: Validate - inputs: - filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/sourcelink-validation.ps1 - arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/ - -ExtractPath $(Agent.BuildDirectory)/Extract/ - -GHRepoName $(Build.Repository.Name) - -GHCommit $(Build.SourceVersion) - -SourcelinkCliVersion $(SourceLinkCLIVersion) - continueOnError: true + - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + is1ESPipeline: ${{ parameters.is1ESPipeline }} + + - task: DownloadBuildArtifacts@0 + displayName: Download Blob Artifacts + inputs: + buildType: specific + buildVersionToDownload: specific + project: $(AzDOProjectName) + pipeline: $(AzDOPipelineId) + buildId: $(AzDOBuildId) + artifactName: BlobArtifacts + checkDownloadedFiles: true + + - task: PowerShell@2 + displayName: Validate + inputs: + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/sourcelink-validation.ps1 + arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/ + -ExtractPath $(Agent.BuildDirectory)/Extract/ + -GHRepoName $(Build.Repository.Name) + -GHCommit $(Build.SourceVersion) + -SourcelinkCliVersion $(SourceLinkCLIVersion) + continueOnError: true - ${{ if ne(parameters.publishAssetsImmediately, 'true') }}: - stage: publish_using_darc @@ -274,10 +274,10 @@ stages: dependsOn: ${{ parameters.validateDependsOn }} displayName: Publish using Darc variables: - - template: /eng/common/core-templates/post-build/common-variables.yml - - template: /eng/common/core-templates/variables/pool-providers.yml - parameters: - is1ESPipeline: ${{ parameters.is1ESPipeline }} + - template: /eng/common/core-templates/post-build/common-variables.yml + - template: /eng/common/core-templates/variables/pool-providers.yml + parameters: + is1ESPipeline: ${{ parameters.is1ESPipeline }} jobs: - job: displayName: Publish Using Darc @@ -291,42 +291,41 @@ stages: os: windows # If it's not devdiv, it's dnceng ${{ else }}: - ${{ if eq(parameters.is1ESPipeline, true) }}: + ${{ if eq(parameters.is1ESPipeline, true) }}: name: NetCore1ESPool-Publishing-Internal image: windows.vs2022.amd64 os: windows ${{ else }}: name: NetCore1ESPool-Publishing-Internal - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2022.amd64 steps: - - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml - parameters: - BARBuildId: ${{ parameters.BARBuildId }} - PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} - is1ESPipeline: ${{ parameters.is1ESPipeline }} - - - task: NuGetAuthenticate@1 - - # Populate internal runtime variables. - - template: /eng/common/templates/steps/enable-internal-sources.yml - parameters: - legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) - - - template: /eng/common/templates/steps/enable-internal-runtimes.yml - - # Darc is targeting 8.0, so make sure it's installed - - task: UseDotNet@2 - inputs: - version: 8.0.x - - - task: AzureCLI@2 - displayName: Publish Using Darc - inputs: - azureSubscription: "Darc: Maestro Production" - scriptType: ps - scriptLocation: scriptPath - scriptPath: $(System.DefaultWorkingDirectory)/eng/common/post-build/publish-using-darc.ps1 - arguments: > + - template: /eng/common/core-templates/post-build/setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + is1ESPipeline: ${{ parameters.is1ESPipeline }} + + - task: NuGetAuthenticate@1 + + # Populate internal runtime variables. + - template: /eng/common/templates/steps/enable-internal-sources.yml + parameters: + legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) + + - template: /eng/common/templates/steps/enable-internal-runtimes.yml + + - task: UseDotNet@2 + inputs: + version: 8.0.x + + - task: AzureCLI@2 + displayName: Publish Using Darc + inputs: + azureSubscription: "Darc: Maestro Production" + scriptType: ps + scriptLocation: scriptPath + scriptPath: $(System.DefaultWorkingDirectory)/eng/common/post-build/publish-using-darc.ps1 + arguments: > -BuildId $(BARBuildId) -PublishingInfraVersion ${{ parameters.publishingInfraVersion }} -AzdoToken '$(System.AccessToken)' diff --git a/eng/common/core-templates/steps/generate-sbom.yml b/eng/common/core-templates/steps/generate-sbom.yml index c05f65027979..003f7eae0fa5 100644 --- a/eng/common/core-templates/steps/generate-sbom.yml +++ b/eng/common/core-templates/steps/generate-sbom.yml @@ -5,7 +5,7 @@ # IgnoreDirectories - Directories to ignore for SBOM generation. This will be passed through to the CG component detector. parameters: - PackageVersion: 10.0.0 + PackageVersion: 11.0.0 BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts' PackageName: '.NET' ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom diff --git a/eng/common/core-templates/steps/install-microbuild-impl.yml b/eng/common/core-templates/steps/install-microbuild-impl.yml new file mode 100644 index 000000000000..da22beb3f60c --- /dev/null +++ b/eng/common/core-templates/steps/install-microbuild-impl.yml @@ -0,0 +1,34 @@ +parameters: + - name: microbuildTaskInputs + type: object + default: {} + + - name: microbuildEnv + type: object + default: {} + + - name: enablePreviewMicrobuild + type: boolean + default: false + + - name: condition + type: string + + - name: continueOnError + type: boolean + +steps: +- ${{ if eq(parameters.enablePreviewMicrobuild, true) }}: + - task: MicroBuildSigningPluginPreview@4 + displayName: Install Preview MicroBuild plugin + inputs: ${{ parameters.microbuildTaskInputs }} + env: ${{ parameters.microbuildEnv }} + continueOnError: ${{ parameters.continueOnError }} + condition: ${{ parameters.condition }} +- ${{ else }}: + - task: MicroBuildSigningPlugin@4 + displayName: Install MicroBuild plugin + inputs: ${{ parameters.microbuildTaskInputs }} + env: ${{ parameters.microbuildEnv }} + continueOnError: ${{ parameters.continueOnError }} + condition: ${{ parameters.condition }} diff --git a/eng/common/core-templates/steps/install-microbuild.yml b/eng/common/core-templates/steps/install-microbuild.yml index 553fce66b940..4f4b56ed2a6b 100644 --- a/eng/common/core-templates/steps/install-microbuild.yml +++ b/eng/common/core-templates/steps/install-microbuild.yml @@ -4,6 +4,8 @@ parameters: # Enable install tasks for MicroBuild on Mac and Linux # Will be ignored if 'enableMicrobuild' is false or 'Agent.Os' is 'Windows_NT' enableMicrobuildForMacAndLinux: false + # Enable preview version of MB signing plugin + enablePreviewMicrobuild: false # Determines whether the ESRP service connection information should be passed to the signing plugin. # This overlaps with _SignType to some degree. We only need the service connection for real signing. # It's important that the service connection not be passed to the MicroBuildSigningPlugin task in this place. @@ -13,6 +15,8 @@ parameters: microbuildUseESRP: true # Microbuild installation directory microBuildOutputFolder: $(Agent.TempDirectory)/MicroBuild + # Microbuild version + microbuildPluginVersion: 'latest' continueOnError: false @@ -69,42 +73,46 @@ steps: # YAML expansion, and Windows vs. Linux/Mac uses different service connections. However, # we can avoid including the MB install step if not enabled at all. This avoids a bunch of # extra pipeline authorizations, since most pipelines do not sign on non-Windows. - - task: MicroBuildSigningPlugin@4 - displayName: Install MicroBuild plugin (Windows) - inputs: - signType: $(_SignType) - zipSources: false - feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json - ${{ if eq(parameters.microbuildUseESRP, true) }}: - ConnectedServiceName: 'MicroBuild Signing Task (DevDiv)' - ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: - ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea - ${{ else }}: - ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca - env: - TeamName: $(_TeamName) - MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }} - SYSTEM_ACCESSTOKEN: $(System.AccessToken) - continueOnError: ${{ parameters.continueOnError }} - condition: and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT'), in(variables['_SignType'], 'real', 'test')) - - - ${{ if eq(parameters.enableMicrobuildForMacAndLinux, true) }}: - - task: MicroBuildSigningPlugin@4 - displayName: Install MicroBuild plugin (non-Windows) - inputs: + - template: /eng/common/core-templates/steps/install-microbuild-impl.yml@self + parameters: + enablePreviewMicrobuild: ${{ parameters.enablePreviewMicrobuild }} + microbuildTaskInputs: signType: $(_SignType) zipSources: false feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json - workingDirectory: ${{ parameters.microBuildOutputFolder }} + version: ${{ parameters.microbuildPluginVersion }} ${{ if eq(parameters.microbuildUseESRP, true) }}: ConnectedServiceName: 'MicroBuild Signing Task (DevDiv)' ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: - ConnectedPMEServiceName: beb8cb23-b303-4c95-ab26-9e44bc958d39 + ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea ${{ else }}: - ConnectedPMEServiceName: c24de2a5-cc7a-493d-95e4-8e5ff5cad2bc - env: + ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca + microbuildEnv: TeamName: $(_TeamName) MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }} SYSTEM_ACCESSTOKEN: $(System.AccessToken) continueOnError: ${{ parameters.continueOnError }} - condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'), eq(variables['_SignType'], 'real')) + condition: and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT'), in(variables['_SignType'], 'real', 'test')) + + - ${{ if eq(parameters.enableMicrobuildForMacAndLinux, true) }}: + - template: /eng/common/core-templates/steps/install-microbuild-impl.yml@self + parameters: + enablePreviewMicrobuild: ${{ parameters.enablePreviewMicrobuild }} + microbuildTaskInputs: + signType: $(_SignType) + zipSources: false + feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + version: ${{ parameters.microbuildPluginVersion }} + workingDirectory: ${{ parameters.microBuildOutputFolder }} + ${{ if eq(parameters.microbuildUseESRP, true) }}: + ConnectedServiceName: 'MicroBuild Signing Task (DevDiv)' + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedPMEServiceName: beb8cb23-b303-4c95-ab26-9e44bc958d39 + ${{ else }}: + ConnectedPMEServiceName: c24de2a5-cc7a-493d-95e4-8e5ff5cad2bc + microbuildEnv: + TeamName: $(_TeamName) + MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }} + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'), eq(variables['_SignType'], 'real')) diff --git a/eng/common/core-templates/steps/source-build.yml b/eng/common/core-templates/steps/source-build.yml index b9c86c18ae42..acf16ed34963 100644 --- a/eng/common/core-templates/steps/source-build.yml +++ b/eng/common/core-templates/steps/source-build.yml @@ -24,7 +24,7 @@ steps: # in the default public locations. internalRuntimeDownloadArgs= if [ '$(dotnetbuilds-internal-container-read-token-base64)' != '$''(dotnetbuilds-internal-container-read-token-base64)' ]; then - internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://ci.dot.net/internal --runtimesourcefeedkey '$(dotnetbuilds-internal-container-read-token-base64)'' + internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://ci.dot.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)' fi buildConfig=Release diff --git a/eng/common/core-templates/steps/source-index-stage1-publish.yml b/eng/common/core-templates/steps/source-index-stage1-publish.yml index e9a694afa58e..3ad83b8c3075 100644 --- a/eng/common/core-templates/steps/source-index-stage1-publish.yml +++ b/eng/common/core-templates/steps/source-index-stage1-publish.yml @@ -1,6 +1,6 @@ parameters: - sourceIndexUploadPackageVersion: 2.0.0-20250818.1 - sourceIndexProcessBinlogPackageVersion: 1.0.1-20250818.1 + sourceIndexUploadPackageVersion: 2.0.0-20250906.1 + sourceIndexProcessBinlogPackageVersion: 1.0.1-20250906.1 sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json binlogPath: artifacts/log/Debug/Build.binlog @@ -14,8 +14,8 @@ steps: workingDirectory: $(Agent.TempDirectory) - script: | - $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version ${{parameters.sourceIndexProcessBinlogPackageVersion}} --add-source ${{parameters.SourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools - $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version ${{parameters.sourceIndexUploadPackageVersion}} --add-source ${{parameters.SourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools + $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version ${{parameters.sourceIndexProcessBinlogPackageVersion}} --source ${{parameters.sourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools + $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version ${{parameters.sourceIndexUploadPackageVersion}} --source ${{parameters.sourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools displayName: "Source Index: Download netsourceindex Tools" # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk. workingDirectory: $(Agent.TempDirectory) diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh index 8abfb71f7275..ef97671fe6cb 100755 --- a/eng/common/cross/build-rootfs.sh +++ b/eng/common/cross/build-rootfs.sh @@ -72,7 +72,7 @@ __AlpinePackages+=" krb5-dev" __AlpinePackages+=" openssl-dev" __AlpinePackages+=" zlib-dev" -__FreeBSDBase="13.4-RELEASE" +__FreeBSDBase="13.5-RELEASE" __FreeBSDPkg="1.21.3" __FreeBSDABI="13" __FreeBSDPackages="libunwind" @@ -295,9 +295,7 @@ while :; do ;; noble) # Ubuntu 24.04 __CodeName=noble - if [[ -z "$__LLDB_Package" ]]; then - __LLDB_Package="liblldb-19-dev" - fi + __LLDB_Package="liblldb-19-dev" ;; stretch) # Debian 9 __CodeName=stretch @@ -383,7 +381,7 @@ while :; do ;; freebsd14) __CodeName=freebsd - __FreeBSDBase="14.2-RELEASE" + __FreeBSDBase="14.3-RELEASE" __FreeBSDABI="14" __SkipUnmount=1 ;; diff --git a/eng/common/darc-init.sh b/eng/common/darc-init.sh index e889f439b8dc..9f5ad6b763b5 100755 --- a/eng/common/darc-init.sh +++ b/eng/common/darc-init.sh @@ -5,7 +5,7 @@ darcVersion='' versionEndpoint='https://maestro.dot.net/api/assets/darc-version?api-version=2020-02-20' verbosity='minimal' -while [[ $# > 0 ]]; do +while [[ $# -gt 0 ]]; do opt="$(echo "$1" | tr "[:upper:]" "[:lower:]")" case "$opt" in --darcversion) diff --git a/eng/common/dotnet-install.sh b/eng/common/dotnet-install.sh index 7b9d97e3bd4d..61f302bb6775 100755 --- a/eng/common/dotnet-install.sh +++ b/eng/common/dotnet-install.sh @@ -18,7 +18,7 @@ architecture='' runtime='dotnet' runtimeSourceFeed='' runtimeSourceFeedKey='' -while [[ $# > 0 ]]; do +while [[ $# -gt 0 ]]; do opt="$(echo "$1" | tr "[:upper:]" "[:lower:]")" case "$opt" in -version|-v) diff --git a/eng/common/dotnet.sh b/eng/common/dotnet.sh index 2ef68235675f..f6d24871c1d4 100755 --- a/eng/common/dotnet.sh +++ b/eng/common/dotnet.sh @@ -19,7 +19,7 @@ source $scriptroot/tools.sh InitializeDotNetCli true # install # Invoke acquired SDK with args if they are provided -if [[ $# > 0 ]]; then +if [[ $# -gt 0 ]]; then __dotnetDir=${_InitializeDotNetCli} dotnetPath=${__dotnetDir}/dotnet ${dotnetPath} "$@" diff --git a/eng/common/generate-sbom-prep.sh b/eng/common/generate-sbom-prep.sh old mode 100755 new mode 100644 diff --git a/eng/common/internal-feed-operations.sh b/eng/common/internal-feed-operations.sh index 9378223ba095..6299e7effd4c 100755 --- a/eng/common/internal-feed-operations.sh +++ b/eng/common/internal-feed-operations.sh @@ -100,7 +100,7 @@ operation='' authToken='' repoName='' -while [[ $# > 0 ]]; do +while [[ $# -gt 0 ]]; do opt="$(echo "$1" | tr "[:upper:]" "[:lower:]")" case "$opt" in --operation) diff --git a/eng/common/native/install-dependencies.sh b/eng/common/native/install-dependencies.sh index 477a44f335be..4742177a7685 100755 --- a/eng/common/native/install-dependencies.sh +++ b/eng/common/native/install-dependencies.sh @@ -24,14 +24,16 @@ case "$os" in apt update apt install -y build-essential gettext locales cmake llvm clang lld lldb liblldb-dev libunwind8-dev libicu-dev liblttng-ust-dev \ - libssl-dev libkrb5-dev pigz cpio + libssl-dev libkrb5-dev pigz cpio ninja-build localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 - elif [ "$ID" = "fedora" ] || [ "$ID" = "rhel" ] || [ "$ID" = "azurelinux" ]; then + elif [ "$ID" = "fedora" ] || [ "$ID" = "rhel" ] || [ "$ID" = "azurelinux" ] || [ "$ID" = "centos" ]; then pkg_mgr="$(command -v tdnf 2>/dev/null || command -v dnf)" - $pkg_mgr install -y cmake llvm lld lldb clang python curl libicu-devel openssl-devel krb5-devel lttng-ust-devel pigz cpio + $pkg_mgr install -y cmake llvm lld lldb clang python curl libicu-devel openssl-devel krb5-devel lttng-ust-devel pigz cpio ninja-build + elif [ "$ID" = "amzn" ]; then + dnf install -y cmake llvm lld lldb clang python libicu-devel openssl-devel krb5-devel lttng-ust-devel pigz cpio ninja-build elif [ "$ID" = "alpine" ]; then - apk add build-base cmake bash curl clang llvm-dev lld lldb krb5-dev lttng-ust-dev icu-dev openssl-dev pigz cpio + apk add build-base cmake bash curl clang llvm llvm-dev lld lldb-dev krb5-dev lttng-ust-dev icu-dev openssl-dev pigz cpio ninja else echo "Unsupported distro. distro: $ID" exit 1 @@ -52,6 +54,7 @@ brew "openssl@3" brew "pkgconf" brew "python3" brew "pigz" +brew "ninja" EOF ;; diff --git a/eng/common/post-build/redact-logs.ps1 b/eng/common/post-build/redact-logs.ps1 index 472d5bb562c9..fc0218a013d1 100644 --- a/eng/common/post-build/redact-logs.ps1 +++ b/eng/common/post-build/redact-logs.ps1 @@ -9,7 +9,8 @@ param( [Parameter(Mandatory=$false)][string] $TokensFilePath, [Parameter(ValueFromRemainingArguments=$true)][String[]]$TokensToRedact, [Parameter(Mandatory=$false)][string] $runtimeSourceFeed, - [Parameter(Mandatory=$false)][string] $runtimeSourceFeedKey) + [Parameter(Mandatory=$false)][string] $runtimeSourceFeedKey +) try { $ErrorActionPreference = 'Stop' diff --git a/eng/common/templates/steps/vmr-sync.yml b/eng/common/templates/steps/vmr-sync.yml index 599afb6186b8..eb619c502683 100644 --- a/eng/common/templates/steps/vmr-sync.yml +++ b/eng/common/templates/steps/vmr-sync.yml @@ -38,27 +38,6 @@ steps: displayName: Label PR commit workingDirectory: $(Agent.BuildDirectory)/repo -- script: | - vmr_sha=$(grep -oP '(?<=Sha=")[^"]*' $(Agent.BuildDirectory)/repo/eng/Version.Details.xml) - echo "##vso[task.setvariable variable=vmr_sha]$vmr_sha" - displayName: Obtain the vmr sha from Version.Details.xml (Unix) - condition: ne(variables['Agent.OS'], 'Windows_NT') - workingDirectory: $(Agent.BuildDirectory)/repo - -- powershell: | - [xml]$xml = Get-Content -Path $(Agent.BuildDirectory)/repo/eng/Version.Details.xml - $vmr_sha = $xml.SelectSingleNode("//Source").Sha - Write-Output "##vso[task.setvariable variable=vmr_sha]$vmr_sha" - displayName: Obtain the vmr sha from Version.Details.xml (Windows) - condition: eq(variables['Agent.OS'], 'Windows_NT') - workingDirectory: $(Agent.BuildDirectory)/repo - -- script: | - git fetch --all - git checkout $(vmr_sha) - displayName: Checkout VMR at correct sha for repo flow - workingDirectory: ${{ parameters.vmrPath }} - - script: | git config --global user.name "dotnet-maestro[bot]" git config --global user.email "dotnet-maestro[bot]@users.noreply.github.com" diff --git a/eng/common/templates/vmr-build-pr.yml b/eng/common/templates/vmr-build-pr.yml index ce3c29a62faf..2f3694fa1323 100644 --- a/eng/common/templates/vmr-build-pr.yml +++ b/eng/common/templates/vmr-build-pr.yml @@ -34,6 +34,7 @@ resources: type: github name: dotnet/dotnet endpoint: dotnet + ref: refs/heads/main # Set to whatever VMR branch the PR build should insert into stages: - template: /eng/pipelines/templates/stages/vmr-build.yml@vmr diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 049fe6db994e..01296ee601dc 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -157,9 +157,6 @@ function InitializeDotNetCli([bool]$install, [bool]$createSdkLocationFile) { return $global:_DotNetInstallDir } - # Don't resolve runtime, shared framework, or SDK from other locations to ensure build determinism - $env:DOTNET_MULTILEVEL_LOOKUP=0 - # Disable first run since we do not need all ASP.NET packages restored. $env:DOTNET_NOLOGO=1 @@ -225,7 +222,6 @@ function InitializeDotNetCli([bool]$install, [bool]$createSdkLocationFile) { # Make Sure that our bootstrapped dotnet cli is available in future steps of the Azure Pipelines build Write-PipelinePrependPath -Path $dotnetRoot - Write-PipelineSetVariable -Name 'DOTNET_MULTILEVEL_LOOKUP' -Value '0' Write-PipelineSetVariable -Name 'DOTNET_NOLOGO' -Value '1' return $global:_DotNetInstallDir = $dotnetRoot @@ -592,6 +588,11 @@ function LocateVisualStudio([object]$vsRequirements = $null){ return $null } + if ($null -eq $vsInfo -or $vsInfo.Count -eq 0) { + throw "No instance of Visual Studio meeting the requirements specified was found. Requirements: $($args -join ' ')" + return $null + } + # use first matching instance return $vsInfo[0] } @@ -824,6 +825,11 @@ function MSBuild-Core() { $cmdArgs = "$($buildTool.Command) /m /nologo /clp:Summary /v:$verbosity /nr:$nodeReuse /p:ContinuousIntegrationBuild=$ci" + # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable + if ($env:MSBUILD_MT_ENABLED -eq "1") { + $cmdArgs += ' -mt' + } + if ($warnAsError) { $cmdArgs += ' /warnaserror /p:TreatWarningsAsErrors=true' } diff --git a/eng/common/tools.sh b/eng/common/tools.sh index c1841c9dfd0f..edc7b128cf65 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -115,9 +115,6 @@ function InitializeDotNetCli { local install=$1 - # Don't resolve runtime, shared framework, or SDK from other locations to ensure build determinism - export DOTNET_MULTILEVEL_LOOKUP=0 - # Disable first run since we want to control all package sources export DOTNET_NOLOGO=1 @@ -166,7 +163,6 @@ function InitializeDotNetCli { # build steps from using anything other than what we've downloaded. Write-PipelinePrependPath -path "$dotnet_root" - Write-PipelineSetVariable -name "DOTNET_MULTILEVEL_LOOKUP" -value "0" Write-PipelineSetVariable -name "DOTNET_NOLOGO" -value "1" # return value @@ -526,7 +522,13 @@ function MSBuild-Core { } } - RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" + # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable + local mt_switch="" + if [[ "${MSBUILD_MT_ENABLED:-}" == "1" ]]; then + mt_switch="-mt" + fi + + RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch $mt_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" } function GetDarc { diff --git a/eng/common/vmr-sync.ps1 b/eng/common/vmr-sync.ps1 index 97302f3205be..b37992d91cf0 100755 --- a/eng/common/vmr-sync.ps1 +++ b/eng/common/vmr-sync.ps1 @@ -103,12 +103,20 @@ Set-StrictMode -Version Latest Highlight 'Installing .NET, preparing the tooling..' . .\eng\common\tools.ps1 $dotnetRoot = InitializeDotNetCli -install:$true +$env:DOTNET_ROOT = $dotnetRoot $darc = Get-Darc -$dotnet = "$dotnetRoot\dotnet.exe" Highlight "Starting the synchronization of VMR.." # Synchronize the VMR +$versionDetailsPath = Resolve-Path (Join-Path $PSScriptRoot '..\Version.Details.xml') | Select-Object -ExpandProperty Path +[xml]$versionDetails = Get-Content -Path $versionDetailsPath +$repoName = $versionDetails.SelectSingleNode('//Source').Mapping +if (-not $repoName) { + Fail "Failed to resolve repo mapping from $versionDetailsPath" + exit 1 +} + $darcArgs = ( "vmr", "forwardflow", "--tmp", $tmpDir, @@ -130,9 +138,27 @@ if ($LASTEXITCODE -eq 0) { Highlight "Synchronization succeeded" } else { - Fail "Synchronization of repo to VMR failed!" - Fail "'$vmrDir' is left in its last state (re-run of this script will reset it)." - Fail "Please inspect the logs which contain path to the failing patch file (use -debugOutput to get all the details)." - Fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script." - exit 1 + Highlight "Failed to flow code into the local VMR. Falling back to resetting the VMR to match repo contents..." + git -C $vmrDir reset --hard + + $resetArgs = ( + "vmr", "reset", + "${repoName}:HEAD", + "--vmr", $vmrDir, + "--tmp", $tmpDir, + "--additional-remotes", "${repoName}:${repoRoot}" + ) + + & "$darc" $resetArgs + + if ($LASTEXITCODE -eq 0) { + Highlight "Successfully reset the VMR using 'darc vmr reset'" + } + else { + Fail "Synchronization of repo to VMR failed!" + Fail "'$vmrDir' is left in its last state (re-run of this script will reset it)." + Fail "Please inspect the logs which contain path to the failing patch file (use -debugOutput to get all the details)." + Fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script." + exit 1 + } } diff --git a/eng/common/vmr-sync.sh b/eng/common/vmr-sync.sh index 44239e331c0c..198caec59bd4 100755 --- a/eng/common/vmr-sync.sh +++ b/eng/common/vmr-sync.sh @@ -186,6 +186,13 @@ fi # Synchronize the VMR +version_details_path=$(cd "$scriptroot/.."; pwd -P)/Version.Details.xml +repo_name=$(grep -m 1 ' Date: Fri, 6 Mar 2026 16:05:21 -0600 Subject: [PATCH 177/179] Fix RunFileTests to use ToolsetInfo.CurrentTargetFramework instead of hardcoded net10.0 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- test/dotnet.Tests/CommandTests/Run/RunFileTests.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs b/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs index 66ad0845ff13..9d27ee5e5409 100644 --- a/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs +++ b/test/dotnet.Tests/CommandTests/Run/RunFileTests.cs @@ -3188,12 +3188,12 @@ static class B { public static string M() => "Hello from B"; } """) .And.HaveFileContent("src/A/A.cs", a) .And.HaveFileContent("src/A/B.cs", b) - .And.HaveFileContentPattern("src/A/A.csproj", """ + .And.HaveFileContentPattern("src/A/A.csproj", $""" Exe - net10.0 + {ToolsetInfo.CurrentTargetFramework} enable enable true @@ -3307,12 +3307,12 @@ public static void M() .And.HaveFileContent("C.cs", c) .And.HaveFileContent("C_2.cs", d) .And.HaveFileContent("Resources.resx", s_resx) - .And.HaveFileContentPattern("A.csproj", """ + .And.HaveFileContentPattern("A.csproj", $""" Exe - net10.0 + {ToolsetInfo.CurrentTargetFramework} enable enable true From fcc0109c296f1d9ed2dc7ed3b6d0073658e6977c Mon Sep 17 00:00:00 2001 From: Tomas Matousek Date: Sat, 7 Mar 2026 08:03:20 -0800 Subject: [PATCH 178/179] Fix test --- test/dotnet-watch.Tests/HotReload/RazorHotReloadTests.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/test/dotnet-watch.Tests/HotReload/RazorHotReloadTests.cs b/test/dotnet-watch.Tests/HotReload/RazorHotReloadTests.cs index e3f442f1e274..f4f86c25d760 100644 --- a/test/dotnet-watch.Tests/HotReload/RazorHotReloadTests.cs +++ b/test/dotnet-watch.Tests/HotReload/RazorHotReloadTests.cs @@ -38,7 +38,6 @@ public async Task BlazorWasm(bool projectSpecifiesCapabilities) // env variable passed when launching the server: await App.WaitUntilOutputContains($"HOTRELOAD_DELTA_CLIENT_LOG_MESSAGES=dotnet watch 🕵️ [blazorwasm ({tfm})]"); - App.Process.ClearOutput(); // Middleware should have been loaded to blazor-devserver before the browser is launched: await App.WaitUntilOutputContains("dbug: Microsoft.AspNetCore.Watch.BrowserRefresh.BlazorWasmHotReloadMiddleware[0]"); From 23284ebfe998b6a304e435e3407795db127d6f1d Mon Sep 17 00:00:00 2001 From: Tomas Matousek Date: Sat, 7 Mar 2026 14:53:36 -0800 Subject: [PATCH 179/179] Fix test --- test/dotnet-watch.Tests/HotReload/RazorHotReloadTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/dotnet-watch.Tests/HotReload/RazorHotReloadTests.cs b/test/dotnet-watch.Tests/HotReload/RazorHotReloadTests.cs index f4f86c25d760..ae77d656a958 100644 --- a/test/dotnet-watch.Tests/HotReload/RazorHotReloadTests.cs +++ b/test/dotnet-watch.Tests/HotReload/RazorHotReloadTests.cs @@ -48,7 +48,7 @@ public async Task BlazorWasm(bool projectSpecifiesCapabilities) await App.WaitUntilOutputContains("Middleware loaded: DOTNET_MODIFIABLE_ASSEMBLIES=debug, __ASPNETCORE_BROWSER_TOOLS=true"); // shouldn't see any agent messages (agent is not loaded into blazor-devserver): - App.AssertOutputDoesNotContain("🕵️"); + App.AssertOutputDoesNotContain("Loaded into process"); // Browser is launched based on blazor-devserver output "Now listening on: ...". await App.WaitUntilOutputContains(MessageDescriptor.LaunchingBrowser.GetMessage($"http://localhost:{port}"));