diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md
index d772f896381f..3fe0b198957f 100644
--- a/.github/copilot-instructions.md
+++ b/.github/copilot-instructions.md
@@ -1,3 +1,7 @@
+Use the instructions from the main branch if available: @dotnet/sdk/files/.github/copilot-instructions.md
+
+If the instructions from main are not available, use the following as a fallback:
+
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.
diff --git a/build/RunTestsOnHelix.cmd b/build/RunTestsOnHelix.cmd
index f55fcf1ead42..3dc68bb7f8af 100644
--- a/build/RunTestsOnHelix.cmd
+++ b/build/RunTestsOnHelix.cmd
@@ -10,6 +10,9 @@ set PATH=%DOTNET_ROOT%;%PATH%
set DOTNET_MULTILEVEL_LOOKUP=0
set TestFullMSBuild=%1
+REM Ensure Visual Studio instances allow preview SDKs
+PowerShell -ExecutionPolicy ByPass -NoProfile -File "%HELIX_CORRELATION_PAYLOAD%\t\eng\enable-preview-sdks.ps1"
+
REM Use powershell to call partical Arcade logic to get full framework msbuild path and assign it
if "%TestFullMSBuild%"=="true" (
FOR /F "tokens=*" %%g IN ('PowerShell -ExecutionPolicy ByPass -File "%HELIX_CORRELATION_PAYLOAD%\t\eng\print-full-msbuild-path.ps1"') do (SET DOTNET_SDK_TEST_MSBUILD_PATH=%%g)
diff --git a/documentation/general/dotnet-run-file.md b/documentation/general/dotnet-run-file.md
index a14132092ee1..77ea47410b0f 100644
--- a/documentation/general/dotnet-run-file.md
+++ b/documentation/general/dotnet-run-file.md
@@ -248,6 +248,16 @@ The directives are processed as follows:
(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.
+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
+(project directive values need to be resolved to be relative to the target directory
+and also to point to a project file rather than a directory).
+Note that it is not expected that variables inside the path change their meaning during the conversion,
+so for example `#:project ../$(LibName)` is translated to `` (i.e., the variable is preserved).
+However, variables at the start can change, so for example `#:project $(ProjectDir)../Lib` is translated to `` (i.e., the variable is expanded).
+In other directives, all variables are preserved during conversion.
+
Because these directives are limited by the C# language to only appear before the first "C# token" and any `#if`,
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".
diff --git a/documentation/manpages/sdk/dotnet-build-server.1 b/documentation/manpages/sdk/dotnet-build-server.1
index 98776e91f204..7e4bb67eb449 100644
--- a/documentation/manpages/sdk/dotnet-build-server.1
+++ b/documentation/manpages/sdk/dotnet-build-server.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-build-server" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-build-server" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet build-server
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-build-server - Interacts with servers started by a build.
diff --git a/documentation/manpages/sdk/dotnet-build.1 b/documentation/manpages/sdk/dotnet-build.1
index fb7ce5950153..cb9d668228ec 100644
--- a/documentation/manpages/sdk/dotnet-build.1
+++ b/documentation/manpages/sdk/dotnet-build.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-build" "1" "2025-09-30" "" ".NET Documentation"
+.TH "dotnet-build" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet build
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-build - Builds a project, solution, or file-based app and all of its dependencies.
@@ -28,15 +28,13 @@ dotnet-build - Builds a project, solution, or file-based app and all of its depe
\f[C]
dotnet build [||] [-a|--arch ]
[--artifacts-path ]
- [-c|--configuration ] [-f|--framework ]
- [--disable-build-servers]
- [--force] [--interactive] [--no-dependencies] [--no-incremental]
- [--no-restore] [--nologo] [--no-self-contained] [--os ]
- [-o|--output ]
- [-p|--property:=]
- [-r|--runtime ]
- [-sc|--self-contained [true|false]] [--source ]
- [--tl:[auto|on|off]] [--use-current-runtime, --ucr [true|false]]
+ [-c|--configuration ] [--disable-build-servers]
+ [-f|--framework ] [--force] [--interactive]
+ [--no-dependencies] [--no-incremental] [--no-restore] [--nologo]
+ [--no-self-contained] [-o|--output ] [--os ]
+ [-p|--property:=] [-r|--runtime ]
+ [--sc|--self-contained] [--source ]
+ [--tl:[auto|on|off]] [ --ucr|--use-current-runtime]
[-v|--verbosity ] [--version-suffix ]
dotnet build -h|--help
@@ -176,12 +174,6 @@ Forces all dependencies to be resolved even if the last restore was successful.
Specifying this flag is the same as deleting the \f[I]project.assets.json\f[R] file.
.RE
.IP \[bu] 2
-\f[B]\f[VB]-?|-h|--help\f[B]\f[R]
-.RS 2
-.PP
-Prints out a description of how to use the command.
-.RE
-.IP \[bu] 2
\f[B]\f[VB]--interactive\f[B]\f[R]
.RS 2
.PP
@@ -218,9 +210,7 @@ Doesn\[cq]t display the startup banner or the copyright message.
\f[B]\f[VB]--no-self-contained\f[B]\f[R]
.RS 2
.PP
-Publishes the application as a framework dependent application.
-A compatible .NET runtime must be installed on the target machine to run the application.
-Available since .NET 6 SDK.
+Equivalent to \f[V]--self-contained false\f[R].
.RE
.IP \[bu] 2
\f[B]\f[VB]-o|--output \f[B]\f[R]
@@ -272,12 +262,11 @@ If you use this option with .NET 6 SDK, use \f[V]--self-contained\f[R] or \f[V]-
If not specified, the default is to build for the current OS and architecture.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--self-contained [true|false]\f[B]\f[R]
+\f[B]\f[VB]--sc|--self-contained\f[B]\f[R]
.RS 2
.PP
-Publishes the .NET runtime with the application so the runtime doesn\[cq]t need to be installed on the target machine.
-The default is \f[V]true\f[R] if a runtime identifier is specified.
-Available since .NET 6.
+Publish the .NET runtime with your application so the runtime doesn\[cq]t need to be installed on the target machine.
+The default is \f[V]true\f[R].
.RE
.IP \[bu] 2
\f[B]\f[VB]--source \f[B]\f[R]
@@ -314,23 +303,18 @@ Any diagnostics generated for that project.
This option is available starting in .NET 8.
.RE
.IP \[bu] 2
-\f[B]\f[VB]-v|--verbosity \f[B]\f[R]
+\f[B]\f[VB]--ucr|--use-current-runtime\f[B]\f[R]
.RS 2
.PP
-Sets the verbosity level of the command.
-Allowed values are \f[V]q[uiet]\f[R], \f[V]m[inimal]\f[R], \f[V]n[ormal]\f[R], \f[V]d[etailed]\f[R], and \f[V]diag[nostic]\f[R].
-The default is \f[V]minimal\f[R].
-By default, MSBuild displays warnings and errors at all verbosity levels.
-To exclude warnings, use \f[V]/property:WarningLevel=0\f[R].
-For more information, see and WarningLevel.
+Use the current runtime as the target runtime.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--use-current-runtime, --ucr [true|false]\f[B]\f[R]
+\f[B]\f[VB]-v|--verbosity \f[B]\f[R]
.RS 2
.PP
-Sets the \f[V]RuntimeIdentifier\f[R] to a platform portable \f[V]RuntimeIdentifier\f[R] based on the one of your machine.
-This happens implicitly with properties that require a \f[V]RuntimeIdentifier\f[R], such as \f[V]SelfContained\f[R], \f[V]PublishAot\f[R], \f[V]PublishSelfContained\f[R], \f[V]PublishSingleFile\f[R], and \f[V]PublishReadyToRun\f[R].
-If the property is set to false, that implicit resolution will no longer occur.
+Sets the verbosity level of the command.
+Allowed values are \f[V]q[uiet]\f[R], \f[V]m[inimal]\f[R], \f[V]n[ormal]\f[R], \f[V]d[etailed]\f[R], and \f[V]diag[nostic]\f[R].
+For more information, see .
.RE
.IP \[bu] 2
\f[B]\f[VB]--version-suffix \f[B]\f[R]
@@ -340,6 +324,12 @@ Sets the value of the \f[V]$(VersionSuffix)\f[R] property to use when building t
This only works if the \f[V]$(Version)\f[R] property isn\[cq]t set.
Then, \f[V]$(Version)\f[R] is set to the \f[V]$(VersionPrefix)\f[R] combined with the \f[V]$(VersionSuffix)\f[R], separated by a dash.
.RE
+.IP \[bu] 2
+\f[B]\f[VB]-?|-h|--help\f[B]\f[R]
+.RS 2
+.PP
+Prints out a description of how to use the command.
+.RE
.SH EXAMPLES
.IP \[bu] 2
Build a project and its dependencies:
diff --git a/documentation/manpages/sdk/dotnet-clean.1 b/documentation/manpages/sdk/dotnet-clean.1
index d59683069976..1b484daf6d26 100644
--- a/documentation/manpages/sdk/dotnet-clean.1
+++ b/documentation/manpages/sdk/dotnet-clean.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-clean" "1" "2025-09-30" "" ".NET Documentation"
+.TH "dotnet-clean" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet clean
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-clean - Cleans the output of a project.
diff --git a/documentation/manpages/sdk/dotnet-dev-certs.1 b/documentation/manpages/sdk/dotnet-dev-certs.1
index 35379f0069ef..e0c8362f5d1c 100644
--- a/documentation/manpages/sdk/dotnet-dev-certs.1
+++ b/documentation/manpages/sdk/dotnet-dev-certs.1
@@ -15,11 +15,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-dev-certs" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-dev-certs" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet dev-certs
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-dev-certs - Generates a self-signed certificate to enable HTTPS use in development.
@@ -28,7 +28,8 @@ dotnet-dev-certs - Generates a self-signed certificate to enable HTTPS use in de
.nf
\f[C]
dotnet dev-certs https
- [-c|--check] [--clean] [-ep|--export-path ]
+ [-c|--check] [--check-trust-machine-readable]
+ [--clean] [-ep|--export-path ]
[--format] [-i|--import] [-np|--no-password]
[-p|--password] [-q|--quiet] [-t|--trust]
[-v|--verbose] [--version]
@@ -91,6 +92,12 @@ Checks for the existence of the development certificate but doesn\[cq]t perform
Use this option with the \f[V]--trust\f[R] option to check if the certificate is not only valid but also trusted.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--check-trust-machine-readable\f[B]\f[R]
+.RS 2
+.PP
+Same as running \f[V]--check --trust\f[R], but outputs the results in JSON.
+.RE
+.IP \[bu] 2
\f[B]\f[VB]--clean\f[B]\f[R]
.RS 2
.PP
diff --git a/documentation/manpages/sdk/dotnet-environment-variables.7 b/documentation/manpages/sdk/dotnet-environment-variables.7
index 15f048c32d13..501263aeb1f9 100644
--- a/documentation/manpages/sdk/dotnet-environment-variables.7
+++ b/documentation/manpages/sdk/dotnet-environment-variables.7
@@ -14,14 +14,14 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-environment-variables" "7" "2025-07-30" "" ".NET Documentation"
+.TH "dotnet-environment-variables" "7" "2025-10-30" "" ".NET Documentation"
.hy
.SH NAME
.PP
dotnet-environment-variables - .NET environment variables
.SH DESCRIPTION
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.PP
In this article, you\[cq]ll learn about the environment variables used by .NET.
Some environment variables are used by the .NET runtime, while others are only used by the .NET SDK and .NET CLI.
@@ -178,40 +178,6 @@ To opt-out, set the value to either \f[V]false\f[R] or \f[V]0\f[R].
.PP
Starting in .NET 5, this setting to use is no longer available.
.RE
-.SS \f[V]DOTNET_Jit*\f[R] and \f[V]DOTNET_GC*\f[R]
-.PP
-There are two stressing-related features for the JIT and JIT-generated GC information: JIT Stress and GC Hole Stress.
-These features provide a way during development to discover edge cases and more \[lq]real world\[rq] scenarios without having to develop complex applications.
-The following environment variables are available:
-.IP \[bu] 2
-\f[V]DOTNET_JitStress\f[R]
-.IP \[bu] 2
-\f[V]DOTNET_JitStressModeNamesOnly\f[R]
-.IP \[bu] 2
-\f[V]DOTNET_GCStress\f[R]
-.SS JIT stress
-.PP
-Enabling JIT Stress can be done in several ways.
-Set \f[V]DOTNET_JitStress\f[R] to a non-zero integer value to generate varying levels of JIT optimizations based on a hash of the method\[cq]s name.
-To apply all optimizations set \f[V]DOTNET_JitStress=2\f[R], for example.
-Another way to enable JIT Stress is by setting \f[V]DOTNET_JitStressModeNamesOnly=1\f[R] and then requesting the stress modes, space-delimited, in the \f[V]DOTNET_JitStressModeNames\f[R] variable.
-.PP
-As an example, consider:
-.IP
-.nf
-\f[C]
-DOTNET_JitStressModeNames=STRESS_USE_CMOV STRESS_64RSLT_MUL STRESS_LCL_FLDS
-\f[R]
-.fi
-.SS GC Hole stress
-.PP
-Enabling GC Hole Stress causes GCs to always occur in specific locations and that helps to track down GC holes.
-GC Hole Stress can be enabled using the \f[V]DOTNET_GCStress\f[R] environment variable.
-.PP
-For more information, see Investigating JIT and GC Hole stress (https://github.com/dotnet/runtime/blob/main/docs/design/coreclr/jit/investigate-stress.md).
-.SS JIT memory barriers
-.PP
-The code generator for Arm64 allows all \f[V]MemoryBarriers\f[R] instructions to be removed by setting \f[V]DOTNET_JitNoMemoryBarriers\f[R] to \f[V]1\f[R].
.SS \f[V]DOTNET_RUNNING_IN_CONTAINER\f[R] and \f[V]DOTNET_RUNNING_IN_CONTAINERS\f[R]
.PP
The official .NET images (Windows and Linux) set the well-known environment variables:
@@ -457,11 +423,6 @@ If set to \f[V]1\f[R] (enabled), enables rolling forward to a pre-release versio
By default (\f[V]0\f[R] - disabled), when a release version of .NET runtime is requested, roll-forward will only consider installed release versions.
.PP
For more information, see the \f[V]--roll-forward\f[R] option for the \f[V]dotnet\f[R] command.
-.SS \f[V]DOTNET_ROLL_FORWARD_ON_NO_CANDIDATE_FX\f[R]
-.PP
-Disables minor version roll forward, if set to \f[V]0\f[R].
-This setting is superseded in .NET Core 3.0 by \f[V]DOTNET_ROLL_FORWARD\f[R].
-The new settings should be used instead.
.SS \f[V]DOTNET_CLI_FORCE_UTF8_ENCODING\f[R]
.PP
Forces the use of UTF-8 encoding in the console, even for older versions of Windows 10 that don\[cq]t fully support UTF-8.
diff --git a/documentation/manpages/sdk/dotnet-format.1 b/documentation/manpages/sdk/dotnet-format.1
index b3d603d890c8..0ffac6af7de9 100644
--- a/documentation/manpages/sdk/dotnet-format.1
+++ b/documentation/manpages/sdk/dotnet-format.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-format" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-format" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet format
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6.x SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-format - Formats code to match \f[V]editorconfig\f[R] settings.
@@ -26,7 +26,12 @@ dotnet-format - Formats code to match \f[V]editorconfig\f[R] settings.
.IP
.nf
\f[C]
-dotnet format [] [command] [options]
+dotnet format []
+ [--binarylog ] [--diagnostics ]
+ [--exclude ] [--exclude-diagnostics ]
+ [--include ] [--include-generated]
+ [--no-restore] [--report ] [--severity ]
+ [-v|--verbosity ] [--verify-no-changes] [--version]
dotnet format -h|--help
\f[R]
@@ -46,6 +51,12 @@ If a project or solution file is not specified, MSBuild searches the current wor
.PP
None of the options below are required for the \f[V]dotnet format\f[R] command to succeed, but you can use them to further customize what is formatted and by which rules.
.IP \[bu] 2
+\f[B]\f[VB]--binarylog \f[B]\f[R]
+.RS 2
+.PP
+Logs all project or solution load information to a binary log file.
+.RE
+.IP \[bu] 2
\f[B]\f[VB]--diagnostics \f[B]\f[R]
.RS 2
.PP
@@ -54,72 +65,80 @@ Default value is whichever IDs are listed in the \f[I].editorconfig\f[R] file.
For a list of built-in analyzer rule IDs that you can specify, see the list of IDs for code-analysis style rules.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--severity\f[B]\f[R]
+\f[B]\f[VB]--exclude \f[B]\f[R]
.RS 2
.PP
-The minimum severity of diagnostics to fix.
-Allowed values are \f[V]info\f[R], \f[V]warn\f[R], and \f[V]error\f[R].
-The default value is \f[V]warn\f[R].
+A space-separated list of relative file or folder paths to exclude from formatting.
+The default is none.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--no-restore\f[B]\f[R]
+\f[B]\f[VB]--exclude-diagnostics \f[B]\f[R]
.RS 2
.PP
-Doesn\[cq]t execute an implicit restore before formatting.
-Default is to do implicit restore.
+A space-separated list of diagnostic IDs to exclude when fixing code style or third-party issues.
+Default value is none.
+For a list of built-in analyzer rule IDs that you can specify, see the list of IDs for code-analysis style rules.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--verify-no-changes\f[B]\f[R]
+\f[B]\f[VB]--include \f[B]\f[R]
.RS 2
.PP
-Verifies that no formatting changes would be performed.
-Terminates with a non zero exit code if any files would have been formatted.
+A space-separated list of relative file or folder paths to include in formatting.
+The default is all files in the solution or project.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--include \f[B]\f[R]
+\f[B]\f[VB]--include-generated\f[B]\f[R]
.RS 2
.PP
-A space-separated list of relative file or folder paths to include in formatting.
-The default is all files in the solution or project.
+Formats files generated by the SDK.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--exclude \f[B]\f[R]
+\f[B]\f[VB]--no-restore\f[B]\f[R]
.RS 2
.PP
-A space-separated list of relative file or folder paths to exclude from formatting.
-The default is none.
+Doesn\[cq]t execute an implicit restore before formatting.
+Default is to do implicit restore.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--include-generated\f[B]\f[R]
+\f[B]\f[VB]--report \f[B]\f[R]
.RS 2
.PP
-Formats files generated by the SDK.
+Produces a JSON report in the directory specified by \f[V]\f[R].
.RE
.IP \[bu] 2
-\f[B]\f[VB]-v|--verbosity \f[B]\f[R]
+\f[B]\f[VB]--severity \f[B]\f[R]
.RS 2
.PP
-Sets the verbosity level.
-Allowed values are \f[V]q[uiet]\f[R], \f[V]m[inimal]\f[R], \f[V]n[ormal]\f[R], \f[V]d[etailed]\f[R], and \f[V]diag[nostic]\f[R].
-Default value is \f[V]m[inimal]\f[R].
+The minimum severity of diagnostics to fix.
+Allowed values are \f[V]info\f[R], \f[V]warn\f[R], and \f[V]error\f[R].
+The default value is \f[V]warn\f[R].
.RE
.IP \[bu] 2
-\f[B]\f[VB]--binarylog \f[B]\f[R]
+\f[B]\f[VB]--verify-no-changes\f[B]\f[R]
.RS 2
.PP
-Logs all project or solution load information to a binary log file.
+Verifies that no formatting changes would be performed.
+Terminates with a non zero exit code if any files would have been formatted.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--report \f[B]\f[R]
+\f[B]\f[VB]--version\f[B]\f[R]
.RS 2
.PP
-Produces a JSON report in the directory specified by \f[V]\f[R].
+Displays version information.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]-v|--verbosity \f[B]\f[R]
+.RS 2
+.PP
+Sets the verbosity level of the command.
+Allowed values are \f[V]q[uiet]\f[R], \f[V]m[inimal]\f[R], \f[V]n[ormal]\f[R], \f[V]d[etailed]\f[R], and \f[V]diag[nostic]\f[R].
+For more information, see .
.RE
.IP \[bu] 2
-\f[B]\f[VB]-h|--help\f[B]\f[R]
+\f[B]\f[VB]-?|-h|--help\f[B]\f[R]
.RS 2
.PP
-Shows help and usage information
+Prints out a description of how to use the command.
.RE
.SS Subcommands
.SS Whitespace
@@ -153,7 +172,7 @@ Default value is whichever IDs are listed in the \f[I].editorconfig\f[R] file.
For a list of built-in code style analyzer rule IDs that you can specify, see the list of IDs for code-analysis style rules.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--severity\f[B]\f[R]
+\f[B]\f[VB]--severity \f[B]\f[R]
.RS 2
.PP
The minimum severity of diagnostics to fix.
@@ -178,7 +197,7 @@ For a list of built-in analyzer rule IDs that you can specify, see the list of I
For third-party analyzers refer to their documentation.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--severity\f[B]\f[R]
+\f[B]\f[VB]--severity \f[B]\f[R]
.RS 2
.PP
The minimum severity of diagnostics to fix.
diff --git a/documentation/manpages/sdk/dotnet-help.1 b/documentation/manpages/sdk/dotnet-help.1
index 6136b4a1f6a4..59677bea234e 100644
--- a/documentation/manpages/sdk/dotnet-help.1
+++ b/documentation/manpages/sdk/dotnet-help.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-help" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-help" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet help reference
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-help - Shows more detailed documentation online for the specified command.
diff --git a/documentation/manpages/sdk/dotnet-migrate.1 b/documentation/manpages/sdk/dotnet-migrate.1
deleted file mode 100644
index 597a6275c919..000000000000
--- a/documentation/manpages/sdk/dotnet-migrate.1
+++ /dev/null
@@ -1,130 +0,0 @@
-.\" Automatically generated by Pandoc 2.18
-.\"
-.\" Define V font for inline verbatim, using C font in formats
-.\" that render this, and otherwise B font.
-.ie "\f[CB]x\f[]"x" \{\
-. ftr V B
-. ftr VI BI
-. ftr VB B
-. ftr VBI BI
-.\}
-.el \{\
-. ftr V CR
-. ftr VI CI
-. ftr VB CB
-. ftr VBI CBI
-.\}
-.TH "dotnet-migrate" "1" "2025-09-15" "" ".NET Documentation"
-.hy
-.SH dotnet migrate
-.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 2.x SDK
-.SH NAME
-.PP
-dotnet-migrate - Migrates a Preview 2 .NET Core project to a .NET Core SDK-style project.
-.SH SYNOPSIS
-.IP
-.nf
-\f[C]
-dotnet migrate [] [--format-report-file-json ]
- [-r|--report-file ] [-s|--skip-project-references [Debug|Release]]
- [--skip-backup] [-t|--template-file ] [-v|--sdk-package-version]
- [-x|--xproj-file]
-
-dotnet migrate -h|--help
-\f[R]
-.fi
-.SH DESCRIPTION
-.PP
-This command is deprecated.
-The \f[V]dotnet migrate\f[R] command is no longer available starting with .NET Core 3.0 SDK.
-It can only migrate a Preview 2 .NET Core project to a 1.x .NET Core project, which is out of support.
-.PP
-By default, the command migrates the root project and any project references that the root project contains.
-This behavior is disabled using the \f[V]--skip-project-references\f[R] option at run time.
-.PP
-Migration can be performed on the following assets:
-.IP \[bu] 2
-A single project by specifying the \f[I]project.json\f[R] file to migrate.
-.IP \[bu] 2
-All of the directories specified in the \f[I]global.json\f[R] file by passing in a path to the \f[I]global.json\f[R] file.
-.IP \[bu] 2
-A \f[I]solution.sln\f[R] file, where it migrates the projects referenced in the solution.
-.IP \[bu] 2
-On all subdirectories of the given directory recursively.
-.PP
-The \f[V]dotnet migrate\f[R] command keeps the migrated \f[I]project.json\f[R] file inside a \f[V]backup\f[R] directory, which it creates if the directory doesn\[cq]t exist.
-This behavior is overridden using the \f[V]--skip-backup\f[R] option.
-.PP
-By default, the migration operation outputs the state of the migration process to standard output (STDOUT).
-If you use the \f[V]--report-file \f[R] option, the output is saved to the file specify.
-.PP
-The \f[V]dotnet migrate\f[R] command only supports valid Preview 2 \f[I]project.json\f[R]-based projects.
-This means that you cannot use it to migrate DNX or Preview 1 \f[I]project.json\f[R]-based projects directly to MSBuild/csproj projects.
-You first need to manually migrate the project to a Preview 2 \f[I]project.json\f[R]-based project and then use the \f[V]dotnet migrate\f[R] command to migrate the project.
-.SH ARGUMENTS
-.PP
-\f[V]PROJECT_JSON/GLOBAL_JSON/SOLUTION_FILE/PROJECT_DIR\f[R]
-.PP
-The path to one of the following:
-.IP \[bu] 2
-a \f[I]project.json\f[R] file to migrate.
-.IP \[bu] 2
-a \f[I]global.json\f[R] file: the folders specified in \f[I]global.json\f[R] are migrated.
-.IP \[bu] 2
-a \f[I]solution.sln\f[R] file: the projects referenced in the solution are migrated.
-.IP \[bu] 2
-a directory to migrate: recursively searches for \f[I]project.json\f[R] files to migrate inside the specified directory.
-.PP
-Defaults to current directory if nothing is specified.
-.SH OPTIONS
-.PP
-\f[V]--format-report-file-json \f[R]
-.PP
-Output migration report file as JSON rather than user messages.
-.PP
-\f[V]-h|--help\f[R]
-.PP
-Prints out a short help for the command.
-.PP
-\f[V]-r|--report-file \f[R]
-.PP
-Output migration report to a file in addition to the console.
-.PP
-\f[V]-s|--skip-project-references [Debug|Release]\f[R]
-.PP
-Skip migrating project references.
-By default, project references are migrated recursively.
-.PP
-\f[V]--skip-backup\f[R]
-.PP
-Skip moving \f[I]project.json\f[R], \f[I]global.json\f[R], and \f[I]*.xproj\f[R] to a \f[V]backup\f[R] directory after successful migration.
-.PP
-\f[V]-t|--template-file \f[R]
-.PP
-Template csproj file to use for migration.
-By default, the same template as the one dropped by \f[V]dotnet new console\f[R] is used.
-.PP
-\f[V]-v|--sdk-package-version \f[R]
-.PP
-The version of the sdk package that\[cq]s referenced in the migrated app.
-The default is the version of the SDK in \f[V]dotnet new\f[R].
-.PP
-\f[V]-x|--xproj-file \f[R]
-.PP
-The path to the xproj file to use.
-Required when there is more than one xproj in a project directory.
-.SH EXAMPLES
-.PP
-Migrate a project in the current directory and all of its project-to-project dependencies:
-.PP
-\f[V]dotnet migrate\f[R]
-.PP
-Migrate all projects that \f[I]global.json\f[R] file includes:
-.PP
-\f[V]dotnet migrate path/to/global.json\f[R]
-.PP
-Migrate only the current project and no project-to-project (P2P) dependencies.
-Also, use a specific SDK version:
-.PP
-\f[V]dotnet migrate -s -v 1.0.0-preview4\f[R]
diff --git a/documentation/manpages/sdk/dotnet-msbuild.1 b/documentation/manpages/sdk/dotnet-msbuild.1
index bc37f2d92c52..7d9d02a6ec77 100644
--- a/documentation/manpages/sdk/dotnet-msbuild.1
+++ b/documentation/manpages/sdk/dotnet-msbuild.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-msbuild" "1" "2025-07-30" "" ".NET Documentation"
+.TH "dotnet-msbuild" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet msbuild
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-msbuild - Builds a project and all of its dependencies.
diff --git a/documentation/manpages/sdk/dotnet-new-install.1 b/documentation/manpages/sdk/dotnet-new-install.1
index 6a059e4c19e5..7bfe100df1d1 100644
--- a/documentation/manpages/sdk/dotnet-new-install.1
+++ b/documentation/manpages/sdk/dotnet-new-install.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-new-install" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-new-install" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet new install
.PP
@@ -69,6 +69,10 @@ Additionally, tab completion is now available for \f[V]dotnet new\f[R].
It supports completion for installed template names and for the options a selected template provides.
To activate tab completion for the .NET SDK, see Enable tab completion.
> > Examples of old syntax: > > - Install the latest version of Azure web jobs project template package: > > \f[V]dotnetcli > dotnet new --install Microsoft.Azure.WebJobs.ProjectTemplates >\f[R]
+.RS
+.PP
+[!WARNING] Templates can run MSBuild code when triggered, don\[cq]t install or run untrusted .NET templates.
+.RE
.SH ARGUMENTS
.IP \[bu] 2
\f[B]\f[VB]\f[B]\f[R]
diff --git a/documentation/manpages/sdk/dotnet-new-list.1 b/documentation/manpages/sdk/dotnet-new-list.1
index 1b01e6440af1..35e47358f5cb 100644
--- a/documentation/manpages/sdk/dotnet-new-list.1
+++ b/documentation/manpages/sdk/dotnet-new-list.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-new-list" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-new-list" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet new list
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-new-list - Lists available templates to be run using dotnet-new.
diff --git a/documentation/manpages/sdk/dotnet-new-sdk-templates.7 b/documentation/manpages/sdk/dotnet-new-sdk-templates.7
index 8fc161631978..c4e2581a31e0 100644
--- a/documentation/manpages/sdk/dotnet-new-sdk-templates.7
+++ b/documentation/manpages/sdk/dotnet-new-sdk-templates.7
@@ -15,7 +15,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-new-sdk-templates" "7" "2025-09-15" "" ".NET Documentation"
+.TH "dotnet-new-sdk-templates" "7" "2025-10-30" "" ".NET Documentation"
.hy
.SH NAME
.PP
@@ -498,7 +498,6 @@ By default, \f[I]Directory.Build.targets\f[R] files don\[cq]t inherit from paren
.RS 2
.PP
Specifies the framework to target.
-Available since .NET Core 3.0 SDK.
.PP
The following table lists the default values according to the SDK version you\[cq]re using:
.PP
@@ -1041,7 +1040,6 @@ Excludes \f[I]launchSettings.json\f[R] from the generated template.
.RS 2
.PP
Specifies the framework to target.
-Option not available in .NET Core 2.2 SDK.
.PP
The following table lists the default values according to the SDK version number you\[cq]re using:
.PP
@@ -1230,7 +1228,6 @@ Only applies to \f[V]Individual\f[R] or \f[V]IndividualB2C\f[R] authentication.
.RS 2
.PP
Specifies the framework to target.
-Option available since .NET Core 3.0 SDK.
.PP
The following table lists the default values according to the SDK version number you\[cq]re using:
.PP
@@ -1495,7 +1492,6 @@ Only applies to \f[V]IndividualB2C\f[R] authentication.
.RS 2
.PP
Specifies the framework to target.
-Option not available in .NET Core 2.2 SDK.
.PP
The following table lists the default values according to the SDK version number you\[cq]re using:
.PP
@@ -1576,6 +1572,13 @@ Specifies the version of the .NET SDK to use in the \f[I]global.json\f[R] file.
The roll-forward policy to use when selecting an SDK version, either as a fallback when a specific SDK version is missing or as a directive to use a later version.
For more information, see global-json.
.RE
+.IP \[bu] 2
+\f[B]\f[VB]--test-runner \f[B]\f[R]
+.RS 2
+.PP
+This option was introduced in .NET 10 SDK and specifies the test runner to use, either VSTest or Microsoft.Testing.Platform.
+The default is VSTest.
+.RE
.SS \f[V]sln\f[R]
.PP
Creates an empty solution file containing no projects.
@@ -1711,7 +1714,6 @@ This option only applies if authentication is \f[V]None\f[R].
.PP
Specifies LocalDB should be used instead of SQLite.
Only applies to \f[V]Individual\f[R] or \f[V]IndividualB2C\f[R] authentication.
-Available since .NET Core 3.0 SDK.
.RE
.IP \[bu] 2
\f[B]\f[VB]-f|--framework \f[B]\f[R]
diff --git a/documentation/manpages/sdk/dotnet-new-search.1 b/documentation/manpages/sdk/dotnet-new-search.1
index 91924986c113..4462c7d13b71 100644
--- a/documentation/manpages/sdk/dotnet-new-search.1
+++ b/documentation/manpages/sdk/dotnet-new-search.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-new-search" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-new-search" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet new search
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 5.0.300 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-new-search - searches for the templates supported by dotnet-new on NuGet.org.
diff --git a/documentation/manpages/sdk/dotnet-new-uninstall.1 b/documentation/manpages/sdk/dotnet-new-uninstall.1
index 7997f403986e..ef9f96b1eb9d 100644
--- a/documentation/manpages/sdk/dotnet-new-uninstall.1
+++ b/documentation/manpages/sdk/dotnet-new-uninstall.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-new-uninstall" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-new-uninstall" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet new uninstall
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-new-uninstall - uninstalls a template package.
diff --git a/documentation/manpages/sdk/dotnet-new-update.1 b/documentation/manpages/sdk/dotnet-new-update.1
index 49c560571a85..2b418db3dddd 100644
--- a/documentation/manpages/sdk/dotnet-new-update.1
+++ b/documentation/manpages/sdk/dotnet-new-update.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-new-update" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-new-update" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet new update
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-new-update - updates installed template packages.
diff --git a/documentation/manpages/sdk/dotnet-new.1 b/documentation/manpages/sdk/dotnet-new.1
index 3ba477b121aa..97e2d8303a37 100644
--- a/documentation/manpages/sdk/dotnet-new.1
+++ b/documentation/manpages/sdk/dotnet-new.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-new" "1" "2025-09-15" "" ".NET Documentation"
+.TH "dotnet-new" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet new
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-new - Creates a new project, configuration file, or solution based on the specified template.
@@ -81,14 +81,7 @@ For more information, see Template options.
.PP
You can run \f[V]dotnet new list\f[R] to see a list of all installed templates.
.PP
-Starting with .NET Core 3.0 SDK and ending with .NET SDK 5.0.300, the CLI searches for templates in NuGet.org when you invoke the \f[V]dotnet new\f[R] command in the following conditions:
-.IP \[bu] 2
-If the CLI can\[cq]t find a template match when invoking \f[V]dotnet new\f[R], not even partial.
-.IP \[bu] 2
-If there\[cq]s a newer version of the template available.
-In this case, the project or artifact is created but the CLI warns you about an updated version of the template.
-.PP
-Starting with .NET SDK 5.0.300, the \f[V]search\f[R] command should be used to search for templates in NuGet.org.
+The \f[V]search\f[R] command should be used to search for templates in NuGet.org.
.PP
For a list of templates that ship with the .NET SDK, see Preinstalled templates.
.RE
@@ -98,7 +91,6 @@ For a list of templates that ship with the .NET SDK, see Preinstalled templates.
.RS 2
.PP
Displays a summary of what would happen if the given command were run if it would result in a template creation.
-Available since .NET Core 2.2 SDK.
.RE
.IP \[bu] 2
\f[B]\f[VB]--force\f[B]\f[R]
diff --git a/documentation/manpages/sdk/dotnet-nuget-add-source.1 b/documentation/manpages/sdk/dotnet-nuget-add-source.1
index ed4e020b6880..5d24f4b0a8f8 100644
--- a/documentation/manpages/sdk/dotnet-nuget-add-source.1
+++ b/documentation/manpages/sdk/dotnet-nuget-add-source.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-add-source" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-nuget-add-source" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet nuget add source
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1.200 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-nuget-add-source - Add a NuGet source.
diff --git a/documentation/manpages/sdk/dotnet-nuget-delete.1 b/documentation/manpages/sdk/dotnet-nuget-delete.1
index f23b926bea3e..bdd00b922456 100644
--- a/documentation/manpages/sdk/dotnet-nuget-delete.1
+++ b/documentation/manpages/sdk/dotnet-nuget-delete.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-delete" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-nuget-delete" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet nuget delete
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-nuget-delete - Deletes or unlists a package from the server.
diff --git a/documentation/manpages/sdk/dotnet-nuget-disable-source.1 b/documentation/manpages/sdk/dotnet-nuget-disable-source.1
index b2dbf66aaeb5..027add6a8e4b 100644
--- a/documentation/manpages/sdk/dotnet-nuget-disable-source.1
+++ b/documentation/manpages/sdk/dotnet-nuget-disable-source.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-disable-source" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-nuget-disable-source" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet nuget disable source
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1.200 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-nuget-disable-source - Disable a NuGet source.
diff --git a/documentation/manpages/sdk/dotnet-nuget-enable-source.1 b/documentation/manpages/sdk/dotnet-nuget-enable-source.1
index edfc5a2365c1..c700a6a0a7fc 100644
--- a/documentation/manpages/sdk/dotnet-nuget-enable-source.1
+++ b/documentation/manpages/sdk/dotnet-nuget-enable-source.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-enable-source" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-nuget-enable-source" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet nuget enable source
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1.200 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-nuget-enable-source - Enable a NuGet source.
diff --git a/documentation/manpages/sdk/dotnet-nuget-list-source.1 b/documentation/manpages/sdk/dotnet-nuget-list-source.1
index 64a7409f3490..fbdcd6fb30e5 100644
--- a/documentation/manpages/sdk/dotnet-nuget-list-source.1
+++ b/documentation/manpages/sdk/dotnet-nuget-list-source.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-list-source" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-nuget-list-source" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet nuget list source
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1.200 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-nuget-list-source - Lists all configured NuGet sources.
diff --git a/documentation/manpages/sdk/dotnet-nuget-locals.1 b/documentation/manpages/sdk/dotnet-nuget-locals.1
index 7425d09f2bfb..822ae16f2521 100644
--- a/documentation/manpages/sdk/dotnet-nuget-locals.1
+++ b/documentation/manpages/sdk/dotnet-nuget-locals.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-locals" "1" "2025-08-29" "" ".NET Documentation"
+.TH "dotnet-nuget-locals" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet nuget locals
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-nuget-locals - Clears or lists local NuGet resources.
diff --git a/documentation/manpages/sdk/dotnet-nuget-push.1 b/documentation/manpages/sdk/dotnet-nuget-push.1
index e25c575ef1ef..43962b150018 100644
--- a/documentation/manpages/sdk/dotnet-nuget-push.1
+++ b/documentation/manpages/sdk/dotnet-nuget-push.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-push" "1" "2025-08-29" "" ".NET Documentation"
+.TH "dotnet-nuget-push" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet nuget push
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-nuget-push - Pushes a package to the server and publishes it.
@@ -236,16 +236,6 @@ Push all \f[I].nupkg\f[R] files in the current directory to the default push sou
dotnet nuget push \[dq]*.nupkg\[dq]
\f[R]
.fi
-.RS
-.PP
-If this command doesn\[cq]t work, it might be due to a bug that existed in older versions of the SDK (.NET Core 2.1 SDK and earlier versions).
-To fix this, upgrade your SDK version or run the following command instead: \f[V]dotnet nuget push \[dq]**/*.nupkg\[dq]\f[R]
-.RE
-.RS
-.PP
-The enclosing quotes are required for shells such as bash that perform file globbing.
-For more information, see NuGet/Home#4393 (https://github.com/NuGet/Home/issues/4393#issuecomment-667618120).
-.RE
.RE
.IP \[bu] 2
Push all \f[I].nupkg\f[R] files to the default push source specified in the NuGet config file, even if a 409 Conflict response is returned by an HTTP(S) server:
diff --git a/documentation/manpages/sdk/dotnet-nuget-remove-source.1 b/documentation/manpages/sdk/dotnet-nuget-remove-source.1
index 70b18e405c03..14686c77384c 100644
--- a/documentation/manpages/sdk/dotnet-nuget-remove-source.1
+++ b/documentation/manpages/sdk/dotnet-nuget-remove-source.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-remove-source" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-nuget-remove-source" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet nuget remove source
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1.200 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-nuget-remove-source - Remove a NuGet source.
diff --git a/documentation/manpages/sdk/dotnet-nuget-trust.1 b/documentation/manpages/sdk/dotnet-nuget-trust.1
index ca231fbf04f2..5d62c7b6aa8b 100644
--- a/documentation/manpages/sdk/dotnet-nuget-trust.1
+++ b/documentation/manpages/sdk/dotnet-nuget-trust.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-trust" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-nuget-trust" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet nuget trust
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 5.0.300 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-nuget-trust - Gets or sets trusted signers to the NuGet configuration.
diff --git a/documentation/manpages/sdk/dotnet-nuget-update-source.1 b/documentation/manpages/sdk/dotnet-nuget-update-source.1
index 4451af7f7ed0..b17f97b5cc1e 100644
--- a/documentation/manpages/sdk/dotnet-nuget-update-source.1
+++ b/documentation/manpages/sdk/dotnet-nuget-update-source.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-update-source" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-nuget-update-source" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet nuget update source
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1.200 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-nuget-update-source - Update a NuGet source.
diff --git a/documentation/manpages/sdk/dotnet-nuget-verify.1 b/documentation/manpages/sdk/dotnet-nuget-verify.1
index e5c57eefe3c4..9b0eb09cc034 100644
--- a/documentation/manpages/sdk/dotnet-nuget-verify.1
+++ b/documentation/manpages/sdk/dotnet-nuget-verify.1
@@ -15,11 +15,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-verify" "1" "2025-07-30" "" ".NET Documentation"
+.TH "dotnet-nuget-verify" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet nuget verify
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 5.0.100-rc.2.x SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-nuget-verify - Verifies a signed NuGet package.
diff --git a/documentation/manpages/sdk/dotnet-nuget-why.1 b/documentation/manpages/sdk/dotnet-nuget-why.1
index 423e9d5753b6..1fb942fcfba6 100644
--- a/documentation/manpages/sdk/dotnet-nuget-why.1
+++ b/documentation/manpages/sdk/dotnet-nuget-why.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-why" "1" "2025-07-30" "" ".NET Documentation"
+.TH "dotnet-nuget-why" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet nuget why
.PP
@@ -26,7 +26,7 @@ dotnet-nuget-why - Shows the dependency graph for a particular package.
.IP
.nf
\f[C]
-dotnet nuget why [-f|--framework ]
+dotnet nuget why [] [-f|--framework ]
dotnet nuget why -h|--help
\f[R]
@@ -53,6 +53,7 @@ Run \f[V]dotnet nuget why path\[rs]to\[rs]project.assets.json SomePackage\f[R].
The project or solution file to operate on.
If a directory is specified, the command searches the directory for a project or solution file.
If more than one project or solution is found, an error is thrown.
+If no value is provided, the current working directory is used by default.
.RE
.IP \[bu] 2
\f[B]\f[VB]PACKAGE\f[B]\f[R]
@@ -76,24 +77,24 @@ Prints out a description of how to use the command.
.RE
.SH EXAMPLES
.IP \[bu] 2
-Show the dependency graph for the package \[lq]System.Text.Json\[rq] for a given solution:
+Show the dependency graph for the package \[lq]System.Text.Json\[rq]:
.RS 2
.IP
.nf
\f[C]
-dotnet nuget why .\[rs]DotnetNuGetWhyPackage.sln System.Text.Json
+dotnet nuget why System.Text.Json
\f[R]
.fi
.PP
[IMAGE: Example: Solution with multiple projects]
.RE
.IP \[bu] 2
-Show the dependency graph for the package \[lq]System.Text.Json\[rq] for a single project:
+Show the dependency graph for the package \[lq]System.Text.Json\[rq] for a specific project:
.RS 2
.IP
.nf
\f[C]
-dotnet nuget why .\[rs]DotnetNuGetWhyPackage.csproj System.Text.Json
+dotnet nuget why path/to/DotnetNuGetWhyPackage.csproj System.Text.Json
\f[R]
.fi
.RE
@@ -103,7 +104,7 @@ Show the dependency graph for a specific target framework:
.IP
.nf
\f[C]
-dotnet nuget why .\[rs]DotnetNuGetWhyPackage.csproj System.Text.Json --framework net6.0
+dotnet nuget why System.Text.Json --framework net6.0
\f[R]
.fi
.RE
diff --git a/documentation/manpages/sdk/dotnet-pack.1 b/documentation/manpages/sdk/dotnet-pack.1
index 58e02e3e5683..3bd6b4c17646 100644
--- a/documentation/manpages/sdk/dotnet-pack.1
+++ b/documentation/manpages/sdk/dotnet-pack.1
@@ -15,11 +15,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-pack" "1" "2025-09-30" "" ".NET Documentation"
+.TH "dotnet-pack" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet pack
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-pack - Packs the code into a NuGet package.
@@ -27,13 +27,13 @@ dotnet-pack - Packs the code into a NuGet package.
.IP
.nf
\f[C]
-dotnet pack [|] [--artifacts-path ]
- [-c|--configuration ] [--force]
- [--include-source] [--include-symbols] [--interactive]
- [--no-build] [--no-dependencies] [--no-restore] [--nologo]
- [-o|--output ] [--runtime ]
- [-s|--serviceable] [--tl:[auto|on|off]] [-v|--verbosity ]
- [--version-suffix ]
+dotnet pack [|]
+ [--artifacts-path ] [-c|--configuration ]
+ [--disable-build-servers] [--force] [--include-source] [--include-symbols]
+ [--interactive] [--no-build] [--no-dependencies] [--no-restore] [--nologo]
+ [-o|--output ] [--runtime ]
+ [-s|--serviceable] [--tl:[auto|on|off]] [-v|--verbosity ]
+ [--version-suffix ]
dotnet pack -h|--help
\f[R]
@@ -113,17 +113,20 @@ You can override the default in project settings or by using this option.
For more information, see `dotnet publish' uses Release configuration and `dotnet pack' uses Release configuration.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--force\f[B]\f[R]
+\f[B]\f[VB]--disable-build-servers\f[B]\f[R]
.RS 2
.PP
-Forces all dependencies to be resolved even if the last restore was successful.
-Specifying this flag is the same as deleting the \f[I]project.assets.json\f[R] file.
+Forces the command to ignore any persistent build servers.
+This option provides a consistent way to disable all use of build caching, which forces a build from scratch.
+A build that doesn\[cq]t rely on caches is useful when the caches might be corrupted or incorrect for some reason.
+Available since .NET 7 SDK.
.RE
.IP \[bu] 2
-\f[B]\f[VB]-?|-h|--help\f[B]\f[R]
+\f[B]\f[VB]--force\f[B]\f[R]
.RS 2
.PP
-Prints out a description of how to use the command.
+Forces all dependencies to be resolved even if the last restore was successful.
+Specifying this flag is the same as deleting the \f[I]project.assets.json\f[R] file.
.RE
.IP \[bu] 2
\f[B]\f[VB]--include-source\f[B]\f[R]
@@ -144,7 +147,6 @@ Includes the debug symbols NuGet packages in addition to the regular NuGet packa
.PP
Allows the command to stop and wait for user input or action.
For example, to complete authentication.
-Available since .NET Core 3.0 SDK.
.RE
.IP \[bu] 2
\f[B]\f[VB]--no-build\f[B]\f[R]
@@ -282,6 +284,12 @@ For example, if \f[V]VersionPrefix\f[R] is \f[V]0.1.2\f[R] and you pass \f[V]--v
.PP
If \f[V]Version\f[R] has a value and you pass \f[V]--version-suffix\f[R] to \f[V]dotnet pack\f[R], the value specified for \f[V]--version-suffix\f[R] is ignored.
.RE
+.IP \[bu] 2
+\f[B]\f[VB]-?|-h|--help\f[B]\f[R]
+.RS 2
+.PP
+Prints out a description of how to use the command.
+.RE
.SH EXAMPLES
.IP \[bu] 2
Pack the project in the current directory:
diff --git a/documentation/manpages/sdk/dotnet-package-add.1 b/documentation/manpages/sdk/dotnet-package-add.1
index 6e7b16a01928..9c84d13b1a7e 100644
--- a/documentation/manpages/sdk/dotnet-package-add.1
+++ b/documentation/manpages/sdk/dotnet-package-add.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-package-add" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-package-add" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet package add
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-package-add - Adds or updates a package reference in a project file.
@@ -223,7 +223,6 @@ For more information, see Managing the global packages, cache, and temp folders
.RS 2
.PP
Allows prerelease packages to be installed.
-Available since .NET Core 5 SDK
.RE
.IP \[bu] 2
\f[B]\f[VB]-s|--source \f[B]\f[R]
diff --git a/documentation/manpages/sdk/dotnet-package-list.1 b/documentation/manpages/sdk/dotnet-package-list.1
index 15e568704847..5e04923a899f 100644
--- a/documentation/manpages/sdk/dotnet-package-list.1
+++ b/documentation/manpages/sdk/dotnet-package-list.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-package-list" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-package-list" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet package list
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-package-list - Lists the package references for a project or solution.
@@ -36,7 +36,7 @@ dotnet package list [--config ]
[--deprecated] [--project [|]]
[-f|--framework ] [--highest-minor] [--highest-patch]
[--include-prerelease] [--include-transitive] [--interactive]
- [--outdated] [--source ] [-v|--verbosity ]
+ [--no-restore] [--outdated] [--source ] [-v|--verbosity ]
[--vulnerable]
[--format ]
[--output-version ]
@@ -47,11 +47,15 @@ dotnet package list -h|--help
.SH DESCRIPTION
.PP
The \f[V]dotnet package list\f[R] command provides a convenient option to list all NuGet package references for a specific project or a solution.
-You first need to build the project in order to have the assets needed for this command to process.
+Starting with \f[B].NET 10\f[R], the command automatically performs restore if necessary before generating the results.
+In earlier versions, you first need to \f[B]build/restore the project\f[R] in order to have the assets needed for this command to process.
The following example shows the output of the \f[V]dotnet package list\f[R] command for the SentimentAnalysis (https://github.com/dotnet/samples/tree/main/machine-learning/tutorials/SentimentAnalysis) project:
.IP
.nf
\f[C]
+Restore complete (5.9s)
+
+Build succeeded in 6.0s
Project \[aq]SentimentAnalysis\[aq] has the following package references
[netcoreapp2.1]:
Top-level Package Requested Resolved
@@ -66,6 +70,21 @@ The \f[B]Requested\f[R] column refers to the package version specified in the pr
The \f[B]Resolved\f[R] column lists the version that the project is currently using and is always a single value.
The packages displaying an \f[V](A)\f[R] right next to their names represent implicit package references that are inferred from your project settings (\f[V]Sdk\f[R] type, or \f[V]\f[R] or \f[V]\f[R] property).
.PP
+If you want to skip the automatic restore, you can use the \f[V]--no-restore\f[R] option.
+Example \f[V]dotnet package list --no-restore\f[R]:
+.IP
+.nf
+\f[C]
+Project \[aq]SentimentAnalysis\[aq] has the following package references
+ [netcoreapp2.1]:
+ Top-level Package Requested Resolved
+ > Microsoft.ML 1.4.0 1.4.0
+ > Microsoft.NETCore.App (A) [2.1.0, ) 2.1.0
+
+(A) : Auto-referenced package.
+\f[R]
+.fi
+.PP
Use the \f[V]--outdated\f[R] option to find out if there are newer versions available of the packages you\[cq]re using in your projects.
By default, \f[V]--outdated\f[R] lists the latest stable packages unless the resolved version is also a prerelease version.
To include prerelease versions when listing newer versions, also specify the \f[V]--include-prerelease\f[R] option.
@@ -75,6 +94,10 @@ The following example shows the output of the \f[V]dotnet package list --outdate
.IP
.nf
\f[C]
+Restore complete (0.6s)
+
+Build succeeded in 0.7s
+
The following sources were used:
https://api.nuget.org/v3/index.json
C:\[rs]Program Files (x86)\[rs]Microsoft SDKs\[rs]NuGetPackages\[rs]
@@ -92,6 +115,9 @@ The following example shows the output from running the \f[V]dotnet package list
.IP
.nf
\f[C]
+Restore complete (0.6s)
+
+Build succeeded in 0.7s
Project \[aq]HelloPlugin\[aq] has the following package references
[netcoreapp3.0]:
Transitive Package Resolved
@@ -171,6 +197,12 @@ For example, to complete authentication.
Available since .NET Core 3.0 SDK.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--no-restore\f[B]\f[R]
+.RS 2
+.PP
+Don\[cq]t restore before running the command.
+.RE
+.IP \[bu] 2
\f[B]\f[VB]--outdated\f[B]\f[R]
.RS 2
.PP
@@ -198,7 +230,7 @@ For more information, see .
.PP
Lists packages that have known vulnerabilities.
Cannot be combined with \f[V]--deprecated\f[R] or \f[V]--outdated\f[R] options.
-Use the \f[V]\f[R] property in your configuration file to specify your source of vulnerability data, which is acquired from the VulnerabilityInfo resource.
+Available starting in \f[B].NET SDK 9.0.300\f[R], this option uses the \f[V]\f[R] property in your configuration file to specify your source of vulnerability data, which is acquired from the VulnerabilityInfo resource.
If \f[V]\f[R] is not specified, the specified \f[V]\f[R] are used to load vulnerability data.
For more information, see Audit sources and How to scan NuGet packages for security vulnerabilities (https://devblogs.microsoft.com/nuget/how-to-scan-nuget-packages-for-security-vulnerabilities/).
.RE
diff --git a/documentation/manpages/sdk/dotnet-package-remove.1 b/documentation/manpages/sdk/dotnet-package-remove.1
index 656afc95a0a9..9ddb4994efe5 100644
--- a/documentation/manpages/sdk/dotnet-package-remove.1
+++ b/documentation/manpages/sdk/dotnet-package-remove.1
@@ -14,14 +14,14 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-package-remove" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-package-remove" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet package remove
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
-dotnet-package-remove - Removes package reference from a project file.
+dotnet-package-remove - Removes a package reference from a project file.
.RS
.PP
If you\[cq]re using .NET 9 SDK or earlier, use the \[lq]verb first\[rq] form (dotnet-remove-package) instead.
@@ -32,7 +32,8 @@ For more information, see More consistent command order.
.IP
.nf
\f[C]
-dotnet package remove [--project ]
+dotnet package remove
+ [--file ] [--interactive] [--project ]
dotnet package remove -h|--help
\f[R]
@@ -42,16 +43,32 @@ dotnet package remove -h|--help
The \f[V]dotnet package remove\f[R] command provides a convenient option to remove a NuGet package reference from a project.
.SH ARGUMENTS
.PP
-\f[V]PROJECT\f[R]
-.PP
-Specifies the project file.
-If not specified, the command searches the current directory for one.
-.PP
\f[V]PACKAGE_NAME\f[R]
.PP
The package reference to remove.
.SH OPTIONS
.IP \[bu] 2
+\f[B]\f[VB]--file \f[B]\f[R]
+.RS 2
+.PP
+The file-based app to operate on.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]--interactive\f[B]\f[R]
+.RS 2
+.PP
+Allows the command to stop and wait for user input or action.
+For example, to complete authentication.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]-p|--project \f[B]\f[R]
+.RS 2
+.PP
+The project file to operate on.
+If a solution file is specified, the command will update the package in all projects in the solution that reference it.
+If not specified, the command will search the current directory for a project file.
+.RE
+.IP \[bu] 2
\f[B]\f[VB]-?|-h|--help\f[B]\f[R]
.RS 2
.PP
@@ -68,3 +85,13 @@ dotnet package remove Newtonsoft.Json
\f[R]
.fi
.RE
+.IP \[bu] 2
+Remove \f[V]Newtonsoft.Json\f[R] NuGet package from a specific project file:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet package remove Newtonsoft.Json --file MyApp.cs
+\f[R]
+.fi
+.RE
diff --git a/documentation/manpages/sdk/dotnet-publish.1 b/documentation/manpages/sdk/dotnet-publish.1
index 77da5ae6f4be..4f45604a4ccd 100644
--- a/documentation/manpages/sdk/dotnet-publish.1
+++ b/documentation/manpages/sdk/dotnet-publish.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-publish" "1" "2025-09-30" "" ".NET Documentation"
+.TH "dotnet-publish" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet publish
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-publish - Publishes the application and its dependencies to a folder for deployment to a hosting system.
@@ -33,9 +33,9 @@ dotnet publish [||] [-a|--arch ]
[--manifest ] [--no-build] [--no-dependencies]
[--no-restore] [--nologo] [-o|--output ]
[--os ] [-r|--runtime ]
- [--sc|--self-contained [true|false]] [--no-self-contained]
+ [--sc|--self-contained] [--no-self-contained]
[-s|--source ] [--tl:[auto|on|off]]
- [--use-current-runtime, --ucr [true|false]]
+ [--ucr|--use-current-runtime]
[-v|--verbosity ] [--version-suffix ]
dotnet publish -h|--help
@@ -239,18 +239,11 @@ Forces all dependencies to be resolved even if the last restore was successful.
Specifying this flag is the same as deleting the \f[I]project.assets.json\f[R] file.
.RE
.IP \[bu] 2
-\f[B]\f[VB]-?|-h|--help\f[B]\f[R]
-.RS 2
-.PP
-Prints out a description of how to use the command.
-.RE
-.IP \[bu] 2
\f[B]\f[VB]--interactive\f[B]\f[R]
.RS 2
.PP
Allows the command to stop and wait for user input or action.
For example, to complete authentication.
-Available since .NET Core 3.0 SDK.
.RE
.IP \[bu] 2
\f[B]\f[VB]--manifest \f[B]\f[R]
@@ -334,15 +327,11 @@ If you use this option, don\[cq]t use the \f[V]-r|--runtime\f[R] option.
Available since .NET 6.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--sc|--self-contained [true|false]\f[B]\f[R]
+\f[B]\f[VB]--sc|--self-contained\f[B]\f[R]
.RS 2
.PP
-Publishes the .NET runtime with your application so the runtime doesn\[cq]t need to be installed on the target machine.
-Default is \f[V]true\f[R] if a runtime identifier is specified and the project is an executable project (not a library project).
-For more information, see Self-contained deployment.
-.PP
-If this option is used without specifying \f[V]true\f[R] or \f[V]false\f[R], the default is \f[V]true\f[R].
-In that case, don\[cq]t put the solution or project argument immediately after \f[V]--self-contained\f[R], because \f[V]true\f[R] or \f[V]false\f[R] is expected in that position.
+Publish the .NET runtime with your application so the runtime doesn\[cq]t need to be installed on the target machine.
+The default is \f[V]true\f[R].
.RE
.IP \[bu] 2
\f[B]\f[VB]--no-self-contained\f[B]\f[R]
@@ -394,12 +383,10 @@ Any diagnostics generated for that project.
This option is available starting in .NET 8.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--use-current-runtime, --ucr [true|false]\f[B]\f[R]
+\f[B]\f[VB]--ucr|--use-current-runtime\f[B]\f[R]
.RS 2
.PP
-Sets the \f[V]RuntimeIdentifier\f[R] to a platform portable \f[V]RuntimeIdentifier\f[R] based on the one of your machine.
-This happens implicitly with properties that require a \f[V]RuntimeIdentifier\f[R], such as \f[V]SelfContained\f[R], \f[V]PublishAot\f[R], \f[V]PublishSelfContained\f[R], \f[V]PublishSingleFile\f[R], and \f[V]PublishReadyToRun\f[R].
-If the property is set to false, that implicit resolution will no longer occur.
+Use the current runtime as the target runtime.
.RE
.IP \[bu] 2
\f[B]\f[VB]-v|--verbosity \f[B]\f[R]
@@ -416,6 +403,12 @@ For more information, see .
.PP
Defines the version suffix to replace the asterisk (\f[V]*\f[R]) in the version field of the project file.
.RE
+.IP \[bu] 2
+\f[B]\f[VB]-?|-h|--help\f[B]\f[R]
+.RS 2
+.PP
+Prints out a description of how to use the command.
+.RE
.SH EXAMPLES
.IP \[bu] 2
Create a framework-dependent cross-platform binary for the project in the current directory:
diff --git a/documentation/manpages/sdk/dotnet-reference-add.1 b/documentation/manpages/sdk/dotnet-reference-add.1
index e70c62f99b00..5aae9a42c104 100644
--- a/documentation/manpages/sdk/dotnet-reference-add.1
+++ b/documentation/manpages/sdk/dotnet-reference-add.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-reference-add" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-reference-add" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet reference add
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-reference-add - Adds project-to-project (P2P) references.
diff --git a/documentation/manpages/sdk/dotnet-reference-list.1 b/documentation/manpages/sdk/dotnet-reference-list.1
index 00390492a286..7b658ffe4e19 100644
--- a/documentation/manpages/sdk/dotnet-reference-list.1
+++ b/documentation/manpages/sdk/dotnet-reference-list.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-reference-list" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-reference-list" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet reference list
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-reference-list - Lists project-to-project references.
diff --git a/documentation/manpages/sdk/dotnet-reference-remove.1 b/documentation/manpages/sdk/dotnet-reference-remove.1
index 4117a2412d71..4b1abefbe84b 100644
--- a/documentation/manpages/sdk/dotnet-reference-remove.1
+++ b/documentation/manpages/sdk/dotnet-reference-remove.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-reference-remove" "1" "2025-08-29" "" ".NET Documentation"
+.TH "dotnet-reference-remove" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet reference remove
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-reference-remove - Removes project-to-project (P2P) references.
diff --git a/documentation/manpages/sdk/dotnet-restore.1 b/documentation/manpages/sdk/dotnet-restore.1
index 334fba4e4b17..7bfe79ac3a37 100644
--- a/documentation/manpages/sdk/dotnet-restore.1
+++ b/documentation/manpages/sdk/dotnet-restore.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-restore" "1" "2025-09-30" "" ".NET Documentation"
+.TH "dotnet-restore" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet restore
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-restore - Restores the dependencies and tools of a project.
@@ -26,14 +26,15 @@ dotnet-restore - Restores the dependencies and tools of a project.
.IP
.nf
\f[C]
-dotnet restore [||] [--configfile ] [--disable-build-servers]
- [--disable-parallel]
- [-f|--force] [--force-evaluate] [--ignore-failed-sources]
- [--interactive] [--lock-file-path ] [--locked-mode]
- [--no-cache] [--no-dependencies] [--packages ]
- [-r|--runtime ] [-s|--source ]
- [--tl:[auto|on|off]] [--use-current-runtime, --ucr [true|false]]
- [--use-lock-file] [-a|--arch ] [--os ] [-v|--verbosity ]
+dotnet restore [||]
+ [-a|--arch ] [--configfile ] [--disable-build-servers]
+ [--disable-parallel] [-f|--force] [--force-evaluate]
+ [--ignore-failed-sources] [--interactive] [--lock-file-path ]
+ [--locked-mode] [--no-dependencies] [--no-http-cache]
+ [--os ] [--packages ]
+ [-r|--runtime ] [-s|--source ]
+ [--tl:[auto|on|off]] [--ucr|--use-current-runtime] [--use-lock-file]
+ [-v|--verbosity ]
dotnet restore -h|--help
\f[R]
@@ -189,12 +190,6 @@ Specifying this flag is the same as deleting the \f[I]project.assets.json\f[R] f
Forces restore to reevaluate all dependencies even if a lock file already exists.
.RE
.IP \[bu] 2
-\f[B]\f[VB]-?|-h|--help\f[B]\f[R]
-.RS 2
-.PP
-Prints out a description of how to use the command.
-.RE
-.IP \[bu] 2
\f[B]\f[VB]--ignore-failed-sources\f[B]\f[R]
.RS 2
.PP
@@ -221,16 +216,26 @@ By default, this is \f[I]PROJECT_ROOT.lock.json\f[R].
Don\[cq]t allow updating project lock file.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--no-cache\f[B]\f[R]
+\f[B]\f[VB]--no-dependencies\f[B]\f[R]
.RS 2
.PP
-Specifies to not cache HTTP requests.
+When restoring a project with project-to-project (P2P) references, restores the root project and not the references.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--no-dependencies\f[B]\f[R]
+\f[B]\f[VB]--no-http-cache\f[B]\f[R]
.RS 2
.PP
-When restoring a project with project-to-project (P2P) references, restores the root project and not the references.
+Disable HTTP caching for packages.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]--os\f[B]\f[R]
+.RS 2
+.PP
+Specifies the target operating system (OS).
+This is a shorthand syntax for setting the Runtime Identifier (RID), where the provided value is combined with the default RID.
+For example, on a \f[V]win-x64\f[R] machine, specifying \f[V]--os linux\f[R] sets the RID to \f[V]linux-x64\f[R].
+.PP
+Introduced in .NET SDK 10.0.100
.RE
.IP \[bu] 2
\f[B]\f[VB]--packages \f[B]\f[R]
@@ -255,6 +260,18 @@ This setting overrides all of the sources specified in the \f[I]nuget.config\f[R
Multiple sources can be provided by specifying this option multiple times.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--ucr|--use-current-runtime\f[B]\f[R]
+.RS 2
+.PP
+Use the current runtime as the target runtime.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]--use-lock-file\f[B]\f[R]
+.RS 2
+.PP
+Enables project lock file to be generated and used with restore.
+.RE
+.IP \[bu] 2
\f[B]\f[VB]--tl:[auto|on|off]\f[B]\f[R]
.RS 2
.PP
@@ -283,38 +300,6 @@ Any diagnostics generated for that project.
This option is available starting in .NET 8.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--use-current-runtime, --ucr [true|false]\f[B]\f[R]
-.RS 2
-.PP
-Sets the \f[V]RuntimeIdentifier\f[R] to a platform portable \f[V]RuntimeIdentifier\f[R] based on the one of your machine.
-This happens implicitly with properties that require a \f[V]RuntimeIdentifier\f[R], such as \f[V]SelfContained\f[R], \f[V]PublishAot\f[R], \f[V]PublishSelfContained\f[R], \f[V]PublishSingleFile\f[R], and \f[V]PublishReadyToRun\f[R].
-If the property is set to false, that implicit resolution will no longer occur.
-.RE
-.IP \[bu] 2
-\f[B]\f[VB]--use-lock-file\f[B]\f[R]
-.RS 2
-.PP
-Enables project lock file to be generated and used with restore.
-.RE
-.IP \[bu] 2
-\f[B]\f[VB]-a|--arch\f[B]\f[R]
-.RS 2
-.PP
-Specifies the target architecture.This is a shorthand syntax for setting the Runtime Identifier (RID), where the provided value is combined with the default RID.
-For example, on a \f[V]win-x64\f[R] machine, specifying \f[V]--arch arm64\f[R] sets the RID to \f[V]win-arm64\f[R].
-.PP
-Introduced in .NET SDK 8.0.100
-.RE
-.IP \[bu] 2
-\f[B]\f[VB]--os\f[B]\f[R]
-.RS 2
-.PP
-Specifies the target operating system (OS).This is a shorthand syntax for setting the Runtime Identifier (RID), where the provided value is combined with the default RID.
-For example, on a \f[V]win-x64\f[R] machine, specifying \f[V]--os linux\f[R] sets the RID to \f[V]linux-x64\f[R].
-.PP
-Introduced in .NET SDK 10.0.100
-.RE
-.IP \[bu] 2
\f[B]\f[VB]-v|--verbosity \f[B]\f[R]
.RS 2
.PP
@@ -323,6 +308,12 @@ Allowed values are \f[V]q[uiet]\f[R], \f[V]m[inimal]\f[R], \f[V]n[ormal]\f[R], \
The default is \f[V]minimal\f[R].
For more information, see .
.RE
+.IP \[bu] 2
+\f[B]\f[VB]-?|-h|--help\f[B]\f[R]
+.RS 2
+.PP
+Prints out a description of how to use the command.
+.RE
.SH EXAMPLES
.IP \[bu] 2
Restore dependencies and tools for the project in the current directory:
diff --git a/documentation/manpages/sdk/dotnet-run.1 b/documentation/manpages/sdk/dotnet-run.1
index c37a294d9f89..f7f0f159fd31 100644
--- a/documentation/manpages/sdk/dotnet-run.1
+++ b/documentation/manpages/sdk/dotnet-run.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-run" "1" "2025-09-30" "" ".NET Documentation"
+.TH "dotnet-run" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet run
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-run - Runs source code without any explicit compile or launch commands.
@@ -26,14 +26,14 @@ dotnet-run - Runs source code without any explicit compile or launch commands.
.IP
.nf
\f[C]
-dotnet run [] [-a|--arch ] [-c|--configuration ]
- [-e|--environment ] [--file ]
- [-f|--framework ] [--force] [--interactive]
- [--launch-profile ] [--no-build]
- [--no-dependencies] [--no-launch-profile] [--no-restore]
- [--os ] [--project ] [-r|--runtime ]
- [--tl:[auto|on|off]] [-v|--verbosity ]
- [[--] [application arguments]]
+dotnet run []
+ [-a|--arch ] [--artifacts-path ]
+ [-c|--configuration ] [-e|--environment ]
+ [--file ] [-f|--framework ] [--force] [--interactive]
+ [--launch-profile ] [--no-build] [--no-dependencies]
+ [--no-launch-profile] [--no-restore] [--os ] [--project ]
+ [-r|--runtime ] [--tl:[auto|on|off]]
+ [-v|--verbosity ] [[--] [application arguments]]
dotnet run -h|--help
\f[R]
@@ -114,6 +114,14 @@ If you use this option, don\[cq]t use the \f[V]-r|--runtime\f[R] option.
Available since .NET 6 Preview 7.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--artifacts-path \f[B]\f[R]
+.RS 2
+.PP
+All build output files from the executed command will go in subfolders under the specified path, separated by project.
+For more information see Artifacts Output Layout.
+Available since .NET 8 SDK.
+.RE
+.IP \[bu] 2
\f[B]\f[VB]-c|--configuration \f[B]\f[R]
.RS 2
.PP
@@ -121,6 +129,15 @@ Defines the build configuration.
The default for most projects is \f[V]Debug\f[R], but you can override the build configuration settings in your project.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--disable-build-servers\f[B]\f[R]
+.RS 2
+.PP
+Forces the command to ignore any persistent build servers.
+This option provides a consistent way to disable all use of build caching, which forces a build from scratch.
+A build that doesn\[cq]t rely on caches is useful when the caches might be corrupted or incorrect for some reason.
+Available since .NET 7 SDK.
+.RE
+.IP \[bu] 2
\f[B]\f[VB]-e|--environment \f[B]\f[R]
.RS 2
.PP
@@ -175,12 +192,6 @@ Forces all dependencies to be resolved even if the last restore was successful.
Specifying this flag is the same as deleting the \f[I]project.assets.json\f[R] file.
.RE
.IP \[bu] 2
-\f[B]\f[VB]-?|-h|--help\f[B]\f[R]
-.RS 2
-.PP
-Prints out a description of how to use the command.
-.RE
-.IP \[bu] 2
\f[B]\f[VB]--interactive\f[B]\f[R]
.RS 2
.PP
@@ -204,6 +215,12 @@ Doesn\[cq]t build the project before running.
It also implicitly sets the \f[V]--no-restore\f[R] flag.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--no-cache\f[B]\f[R]
+.RS 2
+.PP
+Skip up to date checks and always build the program before running.
+.RE
+.IP \[bu] 2
\f[B]\f[VB]--no-dependencies\f[B]\f[R]
.RS 2
.PP
@@ -222,6 +239,13 @@ Doesn\[cq]t try to use \f[I]launchSettings.json\f[R] to configure the applicatio
Doesn\[cq]t execute an implicit restore when running the command.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--no-self-contained\f[B]\f[R]
+.RS 2
+.PP
+Publish your application as a framework dependent application.
+A compatible .NET runtime must be installed on the target machine to run your application.
+.RE
+.IP \[bu] 2
\f[B]\f[VB]--os \f[B]\f[R]
.RS 2
.PP
@@ -239,7 +263,7 @@ Specifies the path of the project file to run (folder name or full path).
If not specified, it defaults to the current directory.
.PP
The \f[V]-p\f[R] abbreviation for \f[V]--project\f[R] is deprecated starting in .NET 6 SDK.
-For a limited time starting in .NET 6 RC1 SDK, \f[V]-p\f[R] can still be used for \f[V]--project\f[R] despite the deprecation warning.
+For a limited time, \f[V]-p\f[R] can still be used for \f[V]--project\f[R] despite the deprecation warning.
If the argument provided for the option doesn\[cq]t contain \f[V]=\f[R], the command accepts \f[V]-p\f[R] as short for \f[V]--project\f[R].
Otherwise, the command assumes that \f[V]-p\f[R] is short for \f[V]--property\f[R].
This flexible use of \f[V]-p\f[R] for \f[V]--project\f[R] will be phased out in .NET 7.
@@ -278,6 +302,14 @@ Specifies the target runtime to restore packages for.
For a list of Runtime Identifiers (RIDs), see the RID catalog.
.RE
.IP \[bu] 2
+\f[B]\f[VB]-sc|--self-contained\f[B]\f[R]
+.RS 2
+.PP
+Publishes the .NET runtime with your application so the runtime doesn\[cq]t need to be installed on the target system.
+The default is \f[V]false\f[R].
+However, when targeting .NET 7 or lower, the default is \f[V]true\f[R] if a runtime identifier is specified.
+.RE
+.IP \[bu] 2
\f[B]\f[VB]--tl:[auto|on|off]\f[B]\f[R]
.RS 2
.PP
@@ -314,6 +346,12 @@ Allowed values are \f[V]q[uiet]\f[R], \f[V]m[inimal]\f[R], \f[V]n[ormal]\f[R], \
The default is \f[V]minimal\f[R].
For more information, see .
.RE
+.IP \[bu] 2
+\f[B]\f[VB]-?|-h|--help\f[B]\f[R]
+.RS 2
+.PP
+Prints out a description of how to use the command.
+.RE
.SH ENVIRONMENT VARIABLES
.PP
There are four mechanisms by which environment variables can be applied to the launched application:
diff --git a/documentation/manpages/sdk/dotnet-sdk-check.1 b/documentation/manpages/sdk/dotnet-sdk-check.1
index af343856c60a..9a443aeefbdb 100644
--- a/documentation/manpages/sdk/dotnet-sdk-check.1
+++ b/documentation/manpages/sdk/dotnet-sdk-check.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-sdk-check" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-sdk-check" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet sdk check
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-sdk-check - Lists the latest available version of the .NET SDK and .NET Runtime, for each feature band.
diff --git a/documentation/manpages/sdk/dotnet-sln.1 b/documentation/manpages/sdk/dotnet-sln.1
index 6cae1db32abe..881c7282a1d5 100644
--- a/documentation/manpages/sdk/dotnet-sln.1
+++ b/documentation/manpages/sdk/dotnet-sln.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-sln" "1" "2025-08-29" "" ".NET Documentation"
+.TH "dotnet-sln" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet sln
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-sln - Lists or modifies the projects in a .NET solution file, or migrates the file to an \f[I].slnx\f[R] file.
diff --git a/documentation/manpages/sdk/dotnet-store.1 b/documentation/manpages/sdk/dotnet-store.1
index b1b60c20da6a..f4ba14078207 100644
--- a/documentation/manpages/sdk/dotnet-store.1
+++ b/documentation/manpages/sdk/dotnet-store.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-store" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-store" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet store
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-store - Stores the specified assemblies in the runtime package store.
@@ -26,11 +26,13 @@ dotnet-store - Stores the specified assemblies in the runtime package store.
.IP
.nf
\f[C]
-dotnet store -m|--manifest
- -f|--framework -r|--runtime
- [--framework-version ] [--output ]
- [--skip-optimization] [--skip-symbols] [-v|--verbosity ]
- [--working-dir ]
+dotnet store [-m|--manifest ]
+ [-f|--framework ] [--disable-build-servers]
+ [--framework-version ]
+ [--output ] [-r|--runtime ]
+ [--skip-optimization] [--skip-symbols]
+ [--ucr|--use-current-runtime] [-v|--verbosity ]
+ [--working-dir ]
dotnet store -h|--help
\f[R]
@@ -49,6 +51,15 @@ Specifies the target framework.
The target framework has to be specified in the project file.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--disable-build-servers\f[B]\f[R]
+.RS 2
+.PP
+Forces the command to ignore any persistent build servers.
+This option provides a consistent way to disable all use of build caching, which forces a build from scratch.
+A build that doesn\[cq]t rely on caches is useful when the caches might be corrupted or incorrect for some reason.
+Available since .NET 7 SDK.
+.RE
+.IP \[bu] 2
\f[B]\f[VB]-m|--manifest \f[B]\f[R]
.RS 2
.PP
@@ -73,12 +84,6 @@ Specifies the .NET SDK version.
This option enables you to select a specific framework version beyond the framework specified by the \f[V]-f|--framework\f[R] option.
.RE
.IP \[bu] 2
-\f[B]\f[VB]-?|-h|--help\f[B]\f[R]
-.RS 2
-.PP
-Prints out a description of how to use the command.
-.RE
-.IP \[bu] 2
\f[B]\f[VB]-o|--output \f[B]\f[R]
.RS 2
.PP
@@ -100,6 +105,13 @@ Skips symbol generation.
Currently, you can only generate symbols on Windows and Linux.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--ucr|--use-current-runtime\f[B]\f[R]
+.RS 2
+.PP
+Use current runtime as the target runtime.
+The default is \f[V]false\f[R].
+.RE
+.IP \[bu] 2
\f[B]\f[VB]-v|--verbosity \f[B]\f[R]
.RS 2
.PP
@@ -114,6 +126,12 @@ For more information, see .
The working directory used by the command.
If not specified, it uses the \f[I]obj\f[R] subdirectory of the current directory.
.RE
+.IP \[bu] 2
+\f[B]\f[VB]-?|-h|--help\f[B]\f[R]
+.RS 2
+.PP
+Prints out a description of how to use the command.
+.RE
.SH EXAMPLES
.IP \[bu] 2
Store the packages specified in the \f[I]packages.csproj\f[R] project file for .NET 6.0.1:
diff --git a/documentation/manpages/sdk/dotnet-test.1 b/documentation/manpages/sdk/dotnet-test.1
index 11c791bf15c2..eaaeaf31bae1 100644
--- a/documentation/manpages/sdk/dotnet-test.1
+++ b/documentation/manpages/sdk/dotnet-test.1
@@ -15,30 +15,38 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-test" "1" "2025-09-15" "" ".NET Documentation"
+.TH "dotnet-test" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet test
+.PP
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-test - .NET test driver used to execute unit tests.
.SH DESCRIPTION
.PP
The \f[V]dotnet test\f[R] command builds the solution and runs the tests with either VSTest or Microsoft Testing Platform (MTP).
-To enable MTP, you need to add a config file named \f[V]dotnet.config\f[R] with an INI-like format located at the root of the solution or repository.
+To enable MTP, you need to specify the test runner in the \f[V]global.json\f[R] file.
.PP
-Some examples of the \f[V]dotnet.config\f[R] file:
+Some examples of how to specify the test runner in the \f[V]global.json\f[R] file:
.IP
.nf
\f[C]
-[dotnet.test.runner]
-name = \[dq]Microsoft.Testing.Platform\[dq]
+{
+ \[dq]test\[dq]: {
+ \[dq]runner\[dq]: \[dq]Microsoft.Testing.Platform\[dq]
+ }
+}
\f[R]
.fi
.IP
.nf
\f[C]
-[dotnet.test.runner]
-name = \[dq]VSTest\[dq]
+{
+ \[dq]test\[dq]: {
+ \[dq]runner\[dq]: \[dq]VSTest\[dq]
+ }
+}
\f[R]
.fi
.RS
@@ -51,8 +59,6 @@ The \f[V]dotnet test\f[R] experience for MTP is only supported in \f[V]Microsoft
.RE
.SS VSTest and Microsoft.Testing.Platform (MTP)
.SS dotnet test with VSTest
-.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
.SH SYNOPSIS
.IP
.nf
@@ -71,6 +77,7 @@ dotnet test [ | | | | ]
[-c|--configuration ]
[--collect ]
[-d|--diag ]
+ [--disable-build-servers]
[-f|--framework ]
[-e|--environment ]
[--filter ]
@@ -85,6 +92,7 @@ dotnet test [ | | | | ]
[-r|--runtime ]
[-s|--settings ]
[-t|--list-tests]
+ [--tl:[auto|on|off]]
[-v|--verbosity ]
[...]
[[--] ]
@@ -298,6 +306,15 @@ Enables diagnostic mode for the test platform and writes diagnostic messages to
The process that is logging the messages determines which files are created, such as \f[V]*.host_.txt\f[R] for test host log, and \f[V]*.datacollector_.txt\f[R] for data collector log.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--disable-build-servers\f[B]\f[R]
+.RS 2
+.PP
+Forces the command to ignore any persistent build servers.
+This option provides a consistent way to disable all use of build caching, which forces a build from scratch.
+A build that doesn\[cq]t rely on caches is useful when the caches might be corrupted or incorrect for some reason.
+Available since .NET 7 SDK.
+.RE
+.IP \[bu] 2
\f[B]\f[VB]-e|--environment \f[B]\f[R]
.RS 2
.PP
@@ -443,6 +460,34 @@ Configure a test run (https://github.com/microsoft/vstest/blob/main/docs/configu
List the discovered tests instead of running the tests.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--tl:[auto|on|off]\f[B]\f[R]
+.RS 2
+.PP
+Specifies whether \f[I]Terminal Logger\f[R] should be used for the build output.
+The default is \f[V]auto\f[R], which first verifies the environment before enabling terminal logging.
+The environment check verifies that the terminal is capable of using modern output features and isn\[cq]t using a redirected standard output before enabling the new logger.
+\f[V]on\f[R] skips the environment check and enables terminal logging.
+\f[V]off\f[R] skips the environment check and uses the default console logger.
+.PP
+Terminal Logger shows you the restore phase followed by the build phase.
+During each phase, the currently building projects appear at the bottom of the terminal.
+Each project that\[cq]s building outputs both the MSBuild target currently being built and the amount of time spent on that target.
+You can search this information to learn more about the build.
+When a project is finished building, a single \[lq]build completed\[rq] section is written that captures:
+.IP \[bu] 2
+The name of the built project.
+.IP \[bu] 2
+The target framework (if multi-targeted).
+.IP \[bu] 2
+The status of that build.
+.IP \[bu] 2
+The primary output of that build (which is hyperlinked).
+.IP \[bu] 2
+Any diagnostics generated for that project.
+.PP
+This option is available starting in .NET 8.
+.RE
+.IP \[bu] 2
\f[B]\f[VB]-v|--verbosity \f[B]\f[R]
.RS 2
.PP
@@ -765,7 +810,7 @@ Moreover, MTP supports a globbing filter when running tests.
For more information, see Microsoft.Testing.Platform.
.RS
.PP
-[!WARNING] When Microsoft.Testing.Platform is opted in via \f[V]dotnet.config\f[R], \f[V]dotnet test\f[R] expects all test projects to use Microsoft.Testing.Platform.
+[!WARNING] When Microsoft.Testing.Platform is opted in via \f[V]global.json\f[R], \f[V]dotnet test\f[R] expects all test projects to use Microsoft.Testing.Platform.
It is an error if any of the test projects use VSTest.
.RE
.SS Implicit restore
diff --git a/documentation/manpages/sdk/dotnet-tool-install.1 b/documentation/manpages/sdk/dotnet-tool-install.1
index d3bf45cc02ad..f2ae419c9f3c 100644
--- a/documentation/manpages/sdk/dotnet-tool-install.1
+++ b/documentation/manpages/sdk/dotnet-tool-install.1
@@ -15,11 +15,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-tool-install" "1" "2025-09-15" "" ".NET Documentation"
+.TH "dotnet-tool-install" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet tool install
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-tool-install - Installs the specified .NET tool on your machine.
diff --git a/documentation/manpages/sdk/dotnet-tool-list.1 b/documentation/manpages/sdk/dotnet-tool-list.1
index 7914853ef702..a95962953a21 100644
--- a/documentation/manpages/sdk/dotnet-tool-list.1
+++ b/documentation/manpages/sdk/dotnet-tool-list.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-tool-list" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-tool-list" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet tool list
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-tool-list - Lists all .NET tools of the specified type currently installed on your machine.
diff --git a/documentation/manpages/sdk/dotnet-tool-restore.1 b/documentation/manpages/sdk/dotnet-tool-restore.1
index 1513fb137364..fbd6881d48a8 100644
--- a/documentation/manpages/sdk/dotnet-tool-restore.1
+++ b/documentation/manpages/sdk/dotnet-tool-restore.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-tool-restore" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-tool-restore" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet tool restore
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-tool-restore - Installs the .NET local tools that are in scope for the current directory.
diff --git a/documentation/manpages/sdk/dotnet-tool-run.1 b/documentation/manpages/sdk/dotnet-tool-run.1
index 484fa2474411..916965c47936 100644
--- a/documentation/manpages/sdk/dotnet-tool-run.1
+++ b/documentation/manpages/sdk/dotnet-tool-run.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-tool-run" "1" "2025-09-15" "" ".NET Documentation"
+.TH "dotnet-tool-run" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet tool run
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-tool-run - Invokes a local tool.
diff --git a/documentation/manpages/sdk/dotnet-tool-search.1 b/documentation/manpages/sdk/dotnet-tool-search.1
index d6815f41877b..f695d7b42eca 100644
--- a/documentation/manpages/sdk/dotnet-tool-search.1
+++ b/documentation/manpages/sdk/dotnet-tool-search.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-tool-search" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-tool-search" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet tool search
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 5 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-tool-search - Searches all .NET tools that are published to NuGet.
diff --git a/documentation/manpages/sdk/dotnet-tool-uninstall.1 b/documentation/manpages/sdk/dotnet-tool-uninstall.1
index 4e5364e222c4..8425665cdccd 100644
--- a/documentation/manpages/sdk/dotnet-tool-uninstall.1
+++ b/documentation/manpages/sdk/dotnet-tool-uninstall.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-tool-uninstall" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-tool-uninstall" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet tool uninstall
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-tool-uninstall - Uninstalls the specified .NET tool from your machine.
diff --git a/documentation/manpages/sdk/dotnet-tool-update.1 b/documentation/manpages/sdk/dotnet-tool-update.1
index e826b49892ff..151174f122d7 100644
--- a/documentation/manpages/sdk/dotnet-tool-update.1
+++ b/documentation/manpages/sdk/dotnet-tool-update.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-tool-update" "1" "2025-06-30" "" ".NET Documentation"
+.TH "dotnet-tool-update" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet tool update
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-tool-update - Updates the specified .NET tool on your machine.
diff --git a/documentation/manpages/sdk/dotnet-vstest.1 b/documentation/manpages/sdk/dotnet-vstest.1
index 710c161a06cf..e7c43077ec80 100644
--- a/documentation/manpages/sdk/dotnet-vstest.1
+++ b/documentation/manpages/sdk/dotnet-vstest.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-vstest" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet-vstest" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet vstest
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.RS
.PP
The \f[V]dotnet vstest\f[R] command is superseded by \f[V]dotnet test\f[R], which can now be used to run assemblies.
@@ -37,7 +37,7 @@ dotnet vstest [] [--Blame] [--Diag ]
[--ParentProcessId ] [--Platform]
[--Port ] [--ResultsDirectory] [--Settings ]
[--TestAdapterPath ] [--TestCaseFilter ]
- [--Tests ] [[--] ...]]
+ [--Tests ] [[--] ...]
dotnet vstest -?|--Help
\f[R]
@@ -75,7 +75,7 @@ Logs are written to the provided file.
.RS 2
.PP
Target .NET Framework version used for test execution.
-Examples of valid values are \f[V].NETFramework,Version=v4.6\f[R] or \f[V].NETCoreApp,Version=v1.0\f[R].
+An example of a valid value is \f[V].NETFramework,Version=v7.0\f[R].
Other supported values are \f[V]Framework40\f[R], \f[V]Framework45\f[R], \f[V]FrameworkCore10\f[R], and \f[V]FrameworkUap10\f[R].
.RE
.IP \[bu] 2
diff --git a/documentation/manpages/sdk/dotnet-watch.1 b/documentation/manpages/sdk/dotnet-watch.1
index 538a5acd0632..549f1815cd34 100644
--- a/documentation/manpages/sdk/dotnet-watch.1
+++ b/documentation/manpages/sdk/dotnet-watch.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-watch" "1" "2025-09-30" "" ".NET Documentation"
+.TH "dotnet-watch" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet watch
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
dotnet-watch - Restarts or hot reloads the specified application, or runs a specified dotnet command, when changes in source code are detected.
@@ -27,11 +27,10 @@ dotnet-watch - Restarts or hot reloads the specified application, or runs a spec
.nf
\f[C]
dotnet watch []
- [--list]
- [--no-hot-reload] [--non-interactive]
- [--project ]
- [-q|--quiet] [-v|--verbose]
- [--version]
+ [--artifacts-path ] [--disable-build-servers]
+ [--list] [--no-hot-reload] [--no-self-contained]
+ [--non-interactive] [--project ] [--sc|--self-contained]
+ [-q|--quiet] [-v|--verbose] [--version]
[--]
dotnet watch -?|-h|--help
@@ -95,12 +94,35 @@ If you\[cq]re running \f[V]dotnet watch test\f[R], these arguments are options f
.RE
.SH OPTIONS
.IP \[bu] 2
+\f[B]\f[VB]--artifacts-path \f[B]\f[R]
+.RS 2
+.PP
+All build output files from the executed command will go in subfolders under the specified path, separated by project.
+For more information see Artifacts Output Layout.
+Available since .NET 8 SDK.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]--disable-build-servers\f[B]\f[R]
+.RS 2
+.PP
+Forces the command to ignore any persistent build servers.
+This option provides a consistent way to disable all use of build caching, which forces a build from scratch.
+A build that doesn\[cq]t rely on caches is useful when the caches might be corrupted or incorrect for some reason.
+Available since .NET 7 SDK.
+.RE
+.IP \[bu] 2
\f[B]\f[VB]--list\f[B]\f[R]
.RS 2
.PP
Lists all discovered files without starting the watcher.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--no-self-contained\f[B]\f[R]
+.RS 2
+.PP
+Equivalent to \f[V]--self-contained false\f[R].
+.RE
+.IP \[bu] 2
\f[B]\f[VB]--no-hot-reload\f[B]\f[R]
.RS 2
.PP
@@ -123,6 +145,13 @@ Specifies the path of the project file to run (folder only or including the proj
If not specified, it defaults to the current directory.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--sc|--self-contained\f[B]\f[R]
+.RS 2
+.PP
+Publish the .NET runtime with your application so the runtime doesn\[cq]t need to be installed on the target machine.
+The default is \f[V]true\f[R].
+.RE
+.IP \[bu] 2
\f[B]\f[VB]-q|--quiet\f[B]\f[R]
.RS 2
.PP
@@ -150,6 +179,12 @@ The double-dash option (`\[en]') can be used to delimit \f[V]dotnet watch\f[R] o
Its use is optional.
When the double-dash option isn\[cq]t used, \f[V]dotnet watch\f[R] considers the first unrecognized argument to be the beginning of arguments that it should pass into the child \f[V]dotnet\f[R] process.
.RE
+.IP \[bu] 2
+\f[B]\f[VB]-?|-h|--help\f[B]\f[R]
+.RS 2
+.PP
+Prints out a description of how to use the command.
+.RE
.SH ENVIRONMENT VARIABLES
.PP
\f[V]dotnet watch\f[R] uses the following environment variables:
@@ -307,7 +342,7 @@ This property can be used as shown in the following example:
.fi
.SS Hot Reload
.PP
-Starting in .NET 6, \f[V]dotnet watch\f[R] includes support for \f[I]hot reload\f[R].
+Starting in .NET 6 SDK, \f[V]dotnet watch\f[R] includes support for \f[I]hot reload\f[R].
Hot reload is a feature that lets you apply changes to a running app without having to rebuild and restart it.
The changes may be to code files or static assets, such as stylesheet files and JavaScript files.
This feature streamlines the local development experience, as it gives immediate feedback when you modify your app.
diff --git a/documentation/manpages/sdk/dotnet.1 b/documentation/manpages/sdk/dotnet.1
index 4c5c9f9eca03..7ad0f4f46429 100644
--- a/documentation/manpages/sdk/dotnet.1
+++ b/documentation/manpages/sdk/dotnet.1
@@ -15,11 +15,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet" "1" "2025-06-13" "" ".NET Documentation"
+.TH "dotnet" "1" "2025-10-30" "" ".NET Documentation"
.hy
.SH dotnet command
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET Core 3.1 SDK and later versions
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 6 SDK and later versions
.SH NAME
.PP
\f[V]dotnet\f[R] - The generic driver for the .NET CLI.
@@ -289,11 +289,6 @@ T}@T{
Shows more detailed documentation online for the command.
T}
T{
-dotnet migrate
-T}@T{
-Migrates a valid Preview 2 project to a .NET Core SDK 1.0 project.
-T}
-T{
dotnet msbuild
T}@T{
Provides access to the MSBuild command line.
@@ -472,6 +467,21 @@ Function
T}
_
T{
+dotnet workload clean
+T}@T{
+Removes workload components.
+T}
+T{
+dotnet workload config
+T}@T{
+Enables or disables workload-set update mode.
+T}
+T{
+dotnet workload history
+T}@T{
+Shows all workload installation actions.
+T}
+T{
dotnet workload install
T}@T{
Installs an optional workload.
@@ -487,6 +497,11 @@ T}@T{
Repairs all installed workloads.
T}
T{
+dotnet workload restore
+T}@T{
+Restore workloads required for a project.
+T}
+T{
dotnet workload search
T}@T{
List selected workloads or all available workloads.
diff --git a/eng/enable-preview-sdks.ps1 b/eng/enable-preview-sdks.ps1
new file mode 100644
index 000000000000..d21466f856da
--- /dev/null
+++ b/eng/enable-preview-sdks.ps1
@@ -0,0 +1,59 @@
+param()
+
+. $PSScriptRoot\common\tools.ps1
+
+try {
+ $vsInfo = LocateVisualStudio
+}
+catch {
+ Write-Host "LocateVisualStudio failed: $_"
+ return
+}
+
+if ($null -eq $vsInfo) {
+ Write-Host "No Visual Studio instance detected; preview SDKs remain enabled by default."
+ return
+}
+
+$vsId = $vsInfo.instanceId
+$vsMajorVersion = $vsInfo.installationVersion.Split('.')[0]
+$instanceDir = Join-Path $env:USERPROFILE "AppData\Local\Microsoft\VisualStudio\$vsMajorVersion.0_$vsId"
+
+Create-Directory $instanceDir
+
+$sdkFile = Join-Path $instanceDir 'sdk.txt'
+
+$desiredLine = 'UsePreviews=True'
+$existingLines = @()
+
+if (Test-Path $sdkFile) {
+ $existingLines = @(Get-Content -Path $sdkFile -Encoding ASCII)
+}
+
+# Determine how to place the UsePreviews flag based on existing content.
+$replacementIndex = -1
+for ($i = 0; $i -lt $existingLines.Count; $i++) {
+ if ($existingLines[$i] -match '^UsePreviews=.*$') {
+ $replacementIndex = $i
+ break
+ }
+}
+
+# Replace the existing line to enforce it as True
+if ($replacementIndex -ge 0) {
+ $updatedLines = $existingLines
+ $updatedLines[$replacementIndex] = $desiredLine
+}
+elseif ($existingLines.Count -gt 0) {
+ # Write to the top of the file but keep the remaining portion (assumption: order does not matter to VS)
+ $updatedLines = @($desiredLine) + $existingLines
+}
+else {
+ # Write a whole new file
+ $updatedLines = @($desiredLine)
+}
+
+Set-Content -Path $sdkFile -Value $updatedLines -Encoding ASCII
+
+Write-Host "Updated $sdkFile"
+Get-Content -Path $sdkFile | ForEach-Object { Write-Host " $_" }
diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs b/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs
index 22fd4000c0ff..1157bc586313 100644
--- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs
+++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs
@@ -6,12 +6,14 @@
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Text.RegularExpressions;
using System.Xml;
+using Microsoft.Build.Execution;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
@@ -225,6 +227,30 @@ static bool Fill(ref WhiteSpaceInfo info, in SyntaxTriviaList triviaList, int in
}
}
}
+
+ ///
+ /// If there are any #:project, expands $() in them and ensures they point to project files (not directories).
+ ///
+ public static ImmutableArray EvaluateDirectives(
+ ProjectInstance? project,
+ ImmutableArray directives,
+ SourceFile sourceFile,
+ DiagnosticBag diagnostics)
+ {
+ if (directives.OfType().Any())
+ {
+ 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, diagnostics)
+ : d)
+ .ToImmutableArray();
+ }
+
+ return directives;
+ }
}
internal readonly record struct SourceFile(string Path, SourceText Text)
@@ -457,8 +483,32 @@ public sealed class Package(in ParseInfo info) : Named(info)
///