diff --git a/.vsts-ci.yml b/.vsts-ci.yml
index c8ce371dc95f..cceb8e5faab4 100644
--- a/.vsts-ci.yml
+++ b/.vsts-ci.yml
@@ -30,6 +30,7 @@ variables:
# Helix testing requires a token when internally run.
# Variables used: HelixApiAccessToken
- group: DotNet-HelixApi-Access
+- group: AzureDevOps-Artifact-Feeds-Pats
# Allows Arcade to run a signed build by disabling post-build signing for release-branch builds or manual builds that are not running tests.
- ${{ if and(eq(parameters.runTestBuild, false), or(startswith(variables['Build.SourceBranch'], 'refs/heads/release/'), startswith(variables['Build.SourceBranch'], 'refs/heads/internal/release/'), eq(variables['Build.Reason'], 'Manual'))) }}:
- name: PostBuildSign
@@ -68,12 +69,10 @@ extends:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-fpm
centosStream9:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9
- debian11Amd64:
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-11-amd64
+ debian12Amd64:
+ image: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-gcc14-amd64
fedora39:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39
- ubuntu2204:
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04
mariner20CrossArm:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm
ubuntu2204DebPkg:
@@ -296,6 +295,7 @@ extends:
############### SOURCE BUILD ###############
- template: /eng/common/templates-official/job/source-build.yml@self
parameters:
+ enableInternalSources: true
platform:
name: Managed
container: centosStream9
@@ -308,6 +308,7 @@ extends:
parameters:
oneESCompat:
publishTaskPrefix: 1ES.
+ runtimeSourceProperties: /p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64)
############### PUBLISH STAGE ###############
- ${{ if and(eq(parameters.runTestBuild, false), ne(variables['Build.Reason'], 'PullRequest')) }}:
diff --git a/.vsts-pr.yml b/.vsts-pr.yml
index e130dc576aee..584f725feb86 100644
--- a/.vsts-pr.yml
+++ b/.vsts-pr.yml
@@ -20,12 +20,12 @@ resources:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode
- container: centosStream9
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9
- - container: debian11Amd64
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-11-amd64
+ - container: debian12Amd64
+ image: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-gcc14-amd64
- container: fedora39
image: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39
- - container: ubuntu2204
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04
+ - container: ubuntu2204DebPkg
+ image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-debpkg
stages:
############### BUILD STAGE ###############
@@ -62,6 +62,7 @@ stages:
############### SOURCE BUILD ###############
- template: /eng/common/templates/job/source-build.yml
parameters:
+ enableInternalSources: true
platform:
name: Managed
container: centosStream9
diff --git a/CODEOWNERS b/CODEOWNERS
index cab8d0026343..4c48269fd3e0 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -102,8 +102,8 @@
/test/dotnet-format.Tests @dotnet/roslyn-ide
# Area: VMR & SourceBuild
-/.devcontainer/ @dotnet/source-build-internal
-/eng/pipelines/ @dotnet/source-build-internal @dotnet/product-construction
-/eng/SourceBuild* @dotnet/source-build-internal
-/src/SourceBuild/ @dotnet/source-build-internal @dotnet/product-construction
+/.devcontainer/ @dotnet/source-build
+/eng/pipelines/ @dotnet/source-build @dotnet/product-construction
+/eng/SourceBuild* @dotnet/source-build
+/src/SourceBuild/ @dotnet/source-build @dotnet/product-construction
/src/VirtualMonoRepo/ @dotnet/product-construction
diff --git a/documentation/manpages/sdk/dotnet-add-package.1 b/documentation/manpages/sdk/dotnet-add-package.1
index 56296ebb2602..3288c7261a49 100644
--- a/documentation/manpages/sdk/dotnet-add-package.1
+++ b/documentation/manpages/sdk/dotnet-add-package.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-add-package" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-add-package" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet add package
.PP
diff --git a/documentation/manpages/sdk/dotnet-add-reference.1 b/documentation/manpages/sdk/dotnet-add-reference.1
index abbd594ffd25..97255d5e114a 100644
--- a/documentation/manpages/sdk/dotnet-add-reference.1
+++ b/documentation/manpages/sdk/dotnet-add-reference.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-add-reference" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-add-reference" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet add reference
.PP
@@ -55,7 +55,7 @@ But you can do that by editing your \f[I].csproj\f[R] file and adding markup sim
\f[C]
- \[dq].\[rs]MyDLLFolder\[rs]MyAssembly.dll
+ .\[rs]MyDLLFolder\[rs]MyAssembly.dll
\f[R]
diff --git a/documentation/manpages/sdk/dotnet-build-server.1 b/documentation/manpages/sdk/dotnet-build-server.1
index 054dbb05a50f..ab1714b3cca2 100644
--- a/documentation/manpages/sdk/dotnet-build-server.1
+++ b/documentation/manpages/sdk/dotnet-build-server.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-build-server" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-build-server" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet build-server
.PP
diff --git a/documentation/manpages/sdk/dotnet-build.1 b/documentation/manpages/sdk/dotnet-build.1
index ec60b6207728..f6878f38c329 100644
--- a/documentation/manpages/sdk/dotnet-build.1
+++ b/documentation/manpages/sdk/dotnet-build.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-build" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-build" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet build
.PP
@@ -27,6 +27,7 @@ dotnet-build - Builds a project and all of its dependencies.
.nf
\f[C]
dotnet build [|] [-a|--arch ]
+ [--artifacts-path ]
[-c|--configuration ] [-f|--framework ]
[--disable-build-servers]
[--force] [--interactive] [--no-dependencies] [--no-incremental]
@@ -35,7 +36,7 @@ dotnet build [|] [-a|--arch ]
[-p|--property:=]
[-r|--runtime ]
[--self-contained [true|false]] [--source ]
- [--tl [auto|on|off]] [--use-current-runtime, --ucr [true|false]]
+ [--tl:[auto|on|off]] [--use-current-runtime, --ucr [true|false]]
[-v|--verbosity ] [--version-suffix ]
dotnet build -h|--help
@@ -132,6 +133,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
@@ -273,7 +282,7 @@ Available since .NET 6.
The URI of the NuGet package source to use during the restore operation.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--tl [auto|on|off]\f[B]\f[R]
+\f[B]\f[VB]--tl:[auto|on|off]\f[B]\f[R]
.RS 2
.PP
Specifies whether the \f[I]terminal logger\f[R] should be used for the build output.
@@ -286,17 +295,17 @@ The 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 for that captures:
+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
+The name of the built project.
.IP \[bu] 2
-The target framework (if multi-targeted)
+The target framework (if multi-targeted).
.IP \[bu] 2
-The status of that build
+The status of that build.
.IP \[bu] 2
-The primary output of that build (which is hyperlinked)
+The primary output of that build (which is hyperlinked).
.IP \[bu] 2
-Any diagnostics generated for that project
+Any diagnostics generated for that project.
.PP
This option is available starting in .NET 8.
.RE
@@ -349,12 +358,12 @@ dotnet build --configuration Release
.fi
.RE
.IP \[bu] 2
-Build a project and its dependencies for a specific runtime (in this example, Ubuntu 18.04):
+Build a project and its dependencies for a specific runtime (in this example, Linux):
.RS 2
.IP
.nf
\f[C]
-dotnet build --runtime ubuntu.18.04-x64
+dotnet build --runtime linux-x64
\f[R]
.fi
.RE
diff --git a/documentation/manpages/sdk/dotnet-clean.1 b/documentation/manpages/sdk/dotnet-clean.1
index 9c24fa04623a..1d2f8f09a3c5 100644
--- a/documentation/manpages/sdk/dotnet-clean.1
+++ b/documentation/manpages/sdk/dotnet-clean.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-clean" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-clean" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet clean
.PP
@@ -26,10 +26,12 @@ dotnet-clean - Cleans the output of a project.
.IP
.nf
\f[C]
-dotnet clean [|] [-c|--configuration ]
+dotnet clean [|] [--artifacts-path ]
+ [-c|--configuration ]
[-f|--framework ] [--interactive]
[--nologo] [-o|--output ]
- [-r|--runtime ] [-v|--verbosity ]
+ [-r|--runtime ] [--tl:[auto|on|off]]
+ [-v|--verbosity ]
dotnet clean -h|--help
\f[R]
@@ -48,6 +50,14 @@ The MSBuild project or solution to clean.
If a project or solution file is not specified, MSBuild searches the current working directory for a file that has a file extension that ends in \f[I]proj\f[R] or \f[I]sln\f[R], and uses that file.
.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]-c|--configuration \f[B]\f[R]
.RS 2
.PP
@@ -106,6 +116,34 @@ Cleans the output folder of the specified runtime.
This is used when a self-contained deployment was created.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--tl:[auto|on|off]\f[B]\f[R]
+.RS 2
+.PP
+Specifies whether the \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
+The 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
diff --git a/documentation/manpages/sdk/dotnet-dev-certs.1 b/documentation/manpages/sdk/dotnet-dev-certs.1
index 1c2b92e4aa96..d061cc94cdf6 100644
--- a/documentation/manpages/sdk/dotnet-dev-certs.1
+++ b/documentation/manpages/sdk/dotnet-dev-certs.1
@@ -15,7 +15,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-dev-certs" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-dev-certs" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet dev-certs
.PP
diff --git a/documentation/manpages/sdk/dotnet-environment-variables.7 b/documentation/manpages/sdk/dotnet-environment-variables.7
index b5ce82b8886e..cf9140fe4d57 100644
--- a/documentation/manpages/sdk/dotnet-environment-variables.7
+++ b/documentation/manpages/sdk/dotnet-environment-variables.7
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-environment-variables" "7" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-environment-variables" "7" "2024-10-02" "" ".NET Documentation"
.hy
.SH NAME
.PP
@@ -240,8 +240,20 @@ Defaults to 0.
See the Diagnostic Port documentation for more information.
.SS \f[V]DOTNET_EnableDiagnostics\f[R]
.PP
-When set to \f[V]1\f[R], enables debugging, profiling, and other diagnostics via the Diagnostic Port.
-Defaults to 1.
+When set to \f[V]0\f[R], disables debugging, profiling, and other diagnostics via the Diagnostic Port and can\[cq]t be overridden by other diagnostics settings.
+Defaults to \f[V]1\f[R].
+.SS \f[V]DOTNET_EnableDiagnostics_IPC\f[R]
+.PP
+Starting with .NET 8, when set to \f[V]0\f[R], disables the Diagnostic Port and can\[cq]t be overridden by other diagnostics settings.
+Defaults to \f[V]1\f[R].
+.SS \f[V]DOTNET_EnableDiagnostics_Debugger\f[R]
+.PP
+Starting with .NET 8, when set to \f[V]0\f[R], disables debugging and can\[cq]t be overridden by other diagnostics settings.
+Defaults to \f[V]1\f[R].
+.SS \f[V]DOTNET_EnableDiagnostics_Profiler\f[R]
+.PP
+Starting with .NET 8, when set to \f[V]0\f[R], disables profiling and can\[cq]t be overridden by other diagnostics settings.
+Defaults to \f[V]1\f[R].
.SS EventPipe variables
.PP
See EventPipe environment variables for more information.
@@ -253,11 +265,12 @@ See EventPipe environment variables for more information.
\f[V]DOTNET_EventPipeOutputStreaming\f[R]: When set to \f[V]1\f[R], enables streaming to the output file while the app is running.
By default trace information is accumulated in a circular buffer and the contents are written at app shutdown.
.SS .NET SDK and CLI environment variables
-.SS \f[V]DOTNET_ROOT\f[R], \f[V]DOTNET_ROOT(x86)\f[R]
+.SS \f[V]DOTNET_ROOT\f[R], \f[V]DOTNET_ROOT(x86)\f[R], \f[V]DOTNET_ROOT_X86\f[R], \f[V]DOTNET_ROOT_X64\f[R]
.PP
Specifies the location of the .NET runtimes, if they are not installed in the default location.
The default location on Windows is \f[V]C:\[rs]Program Files\[rs]dotnet\f[R].
The default location on macOS is \f[V]/usr/local/share/dotnet\f[R].
+The default location for the x64 runtimes on an arm64 OS is under an x64 subfolder (so \f[V]C:\[rs]Program Files\[rs]dotnet\[rs]x64\f[R] on windows and \f[V]/usr/local/share/dotnet/x64\f[R] on macOS.
The default location on Linux varies depending on distro and installment method.
The default location on Ubuntu 22.04 is \f[V]/usr/share/dotnet\f[R] (when installed from \f[V]packages.microsoft.com\f[R]) or \f[V]/usr/lib/dotnet\f[R] (when installed from Jammy feed).
For more information, see the following resources:
@@ -270,6 +283,7 @@ GitHub issue dotnet/runtime#79237 (https://github.com/dotnet/runtime/issues/7923
.PP
This environment variable is used only when running apps via generated executables (apphosts).
\f[V]DOTNET_ROOT(x86)\f[R] is used instead when running a 32-bit executable on a 64-bit OS.
+\f[V]DOTNET_ROOT_X64\f[R] is used instead when running a 64-bit executable on an ARM64 OS.
.SS \f[V]DOTNET_HOST_PATH\f[R]
.PP
Specifies the absolute path to a \f[V]dotnet\f[R] host (\f[V]dotnet.exe\f[R] on Windows, \f[V]dotnet\f[R] on Linux and macOS) that was used to launch the currently-running \f[V]dotnet\f[R] process.
@@ -286,6 +300,83 @@ otherwise, rely on \f[V]dotnet\f[R] via the system\[cq]s \f[V]PATH\f[R]
\f[V]DOTNET_HOST_PATH\f[R] is not a general solution for locating the \f[V]dotnet\f[R] host.
It is only intended to be used by tools that are invoked by the .NET SDK.
.RE
+.SS \f[V]DOTNET_LAUNCH_PROFILE\f[R]
+.PP
+The dotnet run command sets this variable to the selected launch profile.
+.PP
+Given the following \f[I]launchSettings.json\f[R] file:
+.IP
+.nf
+\f[C]
+{
+ \[dq]profiles\[dq]: {
+ \[dq]First\[dq]: {
+ \[dq]commandName\[dq]: \[dq]Project\[dq],
+ },
+ \[dq]Second\[dq]: {
+ \[dq]commandName\[dq]: \[dq]Project\[dq],
+ }
+ }
+}
+\f[R]
+.fi
+.PP
+And the following \f[I]Program.cs\f[R] file:
+.IP
+.nf
+\f[C]
+var value = Environment.GetEnvironmentVariable(\[dq]DOTNET_LAUNCH_PROFILE\[dq]);
+Console.WriteLine($\[dq]DOTNET_LAUNCH_PROFILE={value}\[dq]);
+\f[R]
+.fi
+.PP
+The following scenarios produce the output shown:
+.IP \[bu] 2
+Launch profile specified and exists
+.RS 2
+.IP
+.nf
+\f[C]
+$ dotnet run --launch-profile First
+DOTNET_LAUNCH_PROFILE=First
+\f[R]
+.fi
+.RE
+.IP \[bu] 2
+Launch profile not specified, first one selected
+.RS 2
+.IP
+.nf
+\f[C]
+$ dotnet run
+DOTNET_LAUNCH_PROFILE=First
+\f[R]
+.fi
+.RE
+.IP \[bu] 2
+Launch profile specified but does not exist
+.RS 2
+.IP
+.nf
+\f[C]
+$ dotnet run --launch-profile Third
+The launch profile \[dq]Third\[dq] could not be applied.
+A launch profile with the name \[aq]Third\[aq] doesn\[aq]t exist.
+DOTNET_LAUNCH_PROFILE=
+\f[R]
+.fi
+.RE
+.IP \[bu] 2
+Launch with no profile
+.RS 2
+.IP
+.nf
+\f[C]
+$ dotnet run --no-launch-profile
+DOTNET_LAUNCH_PROFILE=
+\f[R]
+.fi
+.RE
.SS \f[V]NUGET_PACKAGES\f[R]
.PP
The global packages folder.
@@ -317,11 +408,16 @@ To not add global tools to the path, set to \f[V]0\f[R], \f[V]false\f[R], or \f[
.PP
Specifies whether data about the .NET tools usage is collected and sent to Microsoft.
Set to \f[V]true\f[R] to opt-out of the telemetry feature (values \f[V]true\f[R], \f[V]1\f[R], or \f[V]yes\f[R] accepted).
-Otherwise, set to \f[V]false\f[R] to opt into the telemetry features (values \f[V]false\f[R], \f[V]0\f[R], or \f[V]no\f[R] accepted).
+Otherwise, set to \f[V]false\f[R] to opt in to the telemetry features (values \f[V]false\f[R], \f[V]0\f[R], or \f[V]no\f[R] accepted).
If not set, the default is \f[V]false\f[R] and the telemetry feature is active.
.SS \f[V]DOTNET_SKIP_FIRST_TIME_EXPERIENCE\f[R]
.PP
If \f[V]DOTNET_SKIP_FIRST_TIME_EXPERIENCE\f[R] is set to \f[V]true\f[R], the \f[V]NuGetFallbackFolder\f[R] won\[cq]t be expanded to disk and a shorter welcome message and telemetry notice will be shown.
+.RS
+.PP
+This environment variable is no longer supported in .NET Core 3.0 and later.
+Use \f[V]DOTNET_NOLOGO\f[R] as a replacement.
+.RE
.SS \f[V]DOTNET_MULTILEVEL_LOOKUP\f[R]
.PP
Specifies whether the .NET runtime, shared framework, or SDK are resolved from the global location.
@@ -382,6 +478,16 @@ List of assemblies to load and execute startup hooks from.
Specifies a directory to which a single-file application is extracted before it is executed.
.PP
For more information, see Single-file executables.
+.SS \f[V]DOTNET_CLI_HOME\f[R]
+.PP
+Specifies the location that supporting files for .NET CLI commands should be written to.
+For example:
+.IP \[bu] 2
+User-writable paths for workload packs, manifests, and other supporting data.
+.IP \[bu] 2
+First-run sentinel/lock files for aspects of the .NET CLI\[cq]s first-run migrations and notification experiences.
+.IP \[bu] 2
+The default .NET local tool installation location.
.SS \f[V]DOTNET_CLI_CONTEXT_*\f[R]
.IP \[bu] 2
\f[V]DOTNET_CLI_CONTEXT_VERBOSE\f[R]: To enable a verbose context, set to \f[V]true\f[R].
diff --git a/documentation/manpages/sdk/dotnet-format.1 b/documentation/manpages/sdk/dotnet-format.1
index cb28edeca4f8..de2870a41082 100644
--- a/documentation/manpages/sdk/dotnet-format.1
+++ b/documentation/manpages/sdk/dotnet-format.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-format" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-format" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet format
.PP
@@ -26,14 +26,14 @@ dotnet-format - Formats code to match \f[V]editorconfig\f[R] settings.
.IP
.nf
\f[C]
-dotnet format [options] []
+dotnet format [] [command] [options]
dotnet format -h|--help
\f[R]
.fi
.SH DESCRIPTION
.PP
-\f[V]dotnet format\f[R] is a code formatter that applies style preferences to a project or solution.
+\f[V]dotnet format\f[R] is a code formatter that applies style preferences and static analysis recommendations to a project or solution.
Preferences will be read from an \f[I].editorconfig\f[R] file, if present, otherwise a default set of preferences will be used.
For more information, see the EditorConfig documentation.
.SH ARGUMENTS
@@ -127,7 +127,7 @@ Shows help and usage information
\f[V]dotnet format whitespace\f[R] - Formats code to match \f[V]editorconfig\f[R] settings for whitespace.
.SH DESCRIPTION
.PP
-The \f[V]dotnet format whitespace\f[R] subcommand will only run formatting rules associated with whitespace formatting.
+The \f[V]dotnet format whitespace\f[R] subcommand only runs formatting rules associated with whitespace formatting.
For a complete list of possible formatting options that you can specify in your \f[I].editorconfig\f[R] file, see the C# formatting options.
.SH OPTIONS
.IP \[bu] 2
@@ -141,16 +141,16 @@ Treat the \f[V]\f[R] argument as a path to a simple folder o
\f[V]dotnet format style\f[R] - Formats code to match EditorConfig settings for code style.
.SH DESCRIPTION
.PP
-The \f[V]dotnet format style\f[R] subcommand will only run formatting rule associated with code style formatting.
+The \f[V]dotnet format style\f[R] subcommand only runs formatting rules associated with code style formatting.
For a complete list of formatting options that you can specify in your \f[V]editorconfig\f[R] file, see Code style rules.
.SH OPTIONS
.IP \[bu] 2
\f[B]\f[VB]--diagnostics \f[B]\f[R]
.RS 2
.PP
-A space-separated list of diagnostic IDs to use as a filter when fixing code style or third-party issues.
+A space-separated list of diagnostic IDs to use as a filter when fixing code style issues.
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.
+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]
@@ -162,19 +162,20 @@ The default value is \f[V]warn\f[R]
.RE
.SS Analyzers
.PP
-\f[V]dotnet format analyzers\f[R] - Formats code to match \f[V]editorconfig\f[R] settings for analyzers.
+\f[V]dotnet format analyzers\f[R] - Formats code to match \f[V]editorconfig\f[R] settings for analyzers (excluding code style rules).
.SH DESCRIPTION
.PP
-The \f[V]dotnet format analyzers\f[R] subcommand will only run formatting rule associated with analyzers.
-For a list of analyzer rules that you can specify in your \f[V]editorconfig\f[R] file, see Code style rules.
+The \f[V]dotnet format analyzers\f[R] subcommand only runs formatting rules associated with analyzers.
+For a list of analyzer rules that you can specify in your \f[V]editorconfig\f[R] file, see Quality rules.
.SH OPTIONS
.IP \[bu] 2
\f[B]\f[VB]--diagnostics \f[B]\f[R]
.RS 2
.PP
-A space-separated list of diagnostic IDs to use as a filter when fixing code style or third-party issues.
+A space-separated list of diagnostic IDs to use as a filter when fixing non code style issues.
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.
+For a list of built-in analyzer rule IDs that you can specify, see the list of IDs for quality rules.
+For third-party analyzers refer to their documentation.
.RE
.IP \[bu] 2
\f[B]\f[VB]--severity\f[B]\f[R]
@@ -225,3 +226,43 @@ dotnet format --include ./src/ ./tests/ --exclude ./src/submodule-a/
\f[R]
.fi
.RE
+.IP \[bu] 2
+Fix a specific \f[B]code style\f[R] issue:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet format style --diagnostics IDE0005 --severity info
+\f[R]
+.fi
+.RE
+.IP \[bu] 2
+Fix all \f[B]code style\f[R] issues that have severity \f[V]info\f[R], \f[V]warning\f[R] or \f[V]error\f[R]:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet format style --severity info
+\f[R]
+.fi
+.RE
+.IP \[bu] 2
+Fix a specific (non code style) analyzer issue:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet format analyzers --diagnostics CA1831 --severity warn
+\f[R]
+.fi
+.RE
+.IP \[bu] 2
+Fix all non code style issues that have severity \f[V]info\f[R], \f[V]warning\f[R] or \f[V]error\f[R]:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet format analyzers --severity info
+\f[R]
+.fi
+.RE
diff --git a/documentation/manpages/sdk/dotnet-help.1 b/documentation/manpages/sdk/dotnet-help.1
index 0bd7df09968d..dda34df0732e 100644
--- a/documentation/manpages/sdk/dotnet-help.1
+++ b/documentation/manpages/sdk/dotnet-help.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-help" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-help" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet help reference
.PP
diff --git a/documentation/manpages/sdk/dotnet-list-package.1 b/documentation/manpages/sdk/dotnet-list-package.1
index 2e3e95e5c22b..875df968de55 100644
--- a/documentation/manpages/sdk/dotnet-list-package.1
+++ b/documentation/manpages/sdk/dotnet-list-package.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-list-package" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-list-package" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet list package
.PP
@@ -28,7 +28,7 @@ dotnet-list-package - Lists the package references for a project or solution.
\f[C]
dotnet list [|] package [--config ]
[--deprecated]
- [--framework ] [--highest-minor] [--highest-patch]
+ [-f|--framework ] [--highest-minor] [--highest-patch]
[--include-prerelease] [--include-transitive] [--interactive]
[--outdated] [--source ] [-v|--verbosity ]
[--vulnerable]
@@ -114,12 +114,13 @@ Requires the \f[V]--outdated\f[R] option.
Displays packages that have been deprecated.
.RE
.IP \[bu] 2
-\f[B]\f[VB]--framework \f[B]\f[R]
+\f[B]\f[VB]-f|--framework \f[B]\f[R]
.RS 2
.PP
Displays only the packages applicable for the specified target framework.
To specify multiple frameworks, repeat the option multiple times.
For example: \f[V]--framework net6.0 --framework netstandard2.0\f[R].
+The short form of the option (\f[V]-f\f[R]) is available starting in .NET 9 SDK.
.RE
.IP \[bu] 2
\f[B]\f[VB]-?|-h|--help\f[B]\f[R]
diff --git a/documentation/manpages/sdk/dotnet-list-reference.1 b/documentation/manpages/sdk/dotnet-list-reference.1
index 800d8ca3927a..9730e8990125 100644
--- a/documentation/manpages/sdk/dotnet-list-reference.1
+++ b/documentation/manpages/sdk/dotnet-list-reference.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-list-reference" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-list-reference" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet list reference
.PP
diff --git a/documentation/manpages/sdk/dotnet-migrate.1 b/documentation/manpages/sdk/dotnet-migrate.1
index 71f8a11c471b..488833f8c5e6 100644
--- a/documentation/manpages/sdk/dotnet-migrate.1
+++ b/documentation/manpages/sdk/dotnet-migrate.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-migrate" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-migrate" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet migrate
.PP
diff --git a/documentation/manpages/sdk/dotnet-msbuild.1 b/documentation/manpages/sdk/dotnet-msbuild.1
index 3a152a3ac02e..3961ccf06801 100644
--- a/documentation/manpages/sdk/dotnet-msbuild.1
+++ b/documentation/manpages/sdk/dotnet-msbuild.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-msbuild" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-msbuild" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet msbuild
.PP
@@ -64,12 +64,12 @@ dotnet msbuild -property:Configuration=Release
.fi
.RE
.IP \[bu] 2
-Run the publish target and publish for the \f[V]osx.10.11-x64\f[R] RID:
+Run the publish target and publish for the \f[V]osx-x64\f[R] RID:
.RS 2
.IP
.nf
\f[C]
-dotnet msbuild -target:Publish -property:RuntimeIdentifiers=osx.10.11-x64
+dotnet msbuild -target:Publish -property:RuntimeIdentifiers=osx-x64
\f[R]
.fi
.RE
diff --git a/documentation/manpages/sdk/dotnet-new-details.1 b/documentation/manpages/sdk/dotnet-new-details.1
index 6f1b7be169f3..4d26bc738627 100644
--- a/documentation/manpages/sdk/dotnet-new-details.1
+++ b/documentation/manpages/sdk/dotnet-new-details.1
@@ -14,11 +14,11 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-new-details" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-new-details" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet new details
.PP
-\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 8 preview 6
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 8
.SH NAME
.PP
dotnet-new-details - Displays template package metadata.
diff --git a/documentation/manpages/sdk/dotnet-new-install.1 b/documentation/manpages/sdk/dotnet-new-install.1
index e62824844716..07172f5ced35 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" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-new-install" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet new install
.PP
diff --git a/documentation/manpages/sdk/dotnet-new-list.1 b/documentation/manpages/sdk/dotnet-new-list.1
index f0948edf29c6..0fdd0d18d463 100644
--- a/documentation/manpages/sdk/dotnet-new-list.1
+++ b/documentation/manpages/sdk/dotnet-new-list.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-new-list" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-new-list" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet new list
.PP
diff --git a/documentation/manpages/sdk/dotnet-new-sdk-templates.7 b/documentation/manpages/sdk/dotnet-new-sdk-templates.7
index 9fd5e19e0fdb..19fad24c72c3 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" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-new-sdk-templates" "7" "2024-10-02" "" ".NET Documentation"
.hy
.SH NAME
.PP
@@ -238,50 +238,28 @@ T}@T{
2.0
T}
T{
-Blazor Server App
+Blazor Web App
T}@T{
-\f[V]blazorserver\f[R]
+\f[V]blazor\f[R]
T}@T{
[C#]
T}@T{
Web/Blazor
T}@T{
-3.0
+8.0.100
T}
T{
-Blazor Server App Empty
-T}@T{
-\f[V]blazorserver-empty\f[R]
-T}@T{
-[C#]
-T}@T{
-Web/Blazor
-T}@T{
-7.0
-T}
-T{
-Blazor WebAssembly App
+Blazor WebAssembly Standalone App
T}@T{
\f[V]blazorwasm\f[R]
T}@T{
[C#]
T}@T{
-Web/Blazor/WebAssembly
+Web/Blazor/WebAssembly/PWA
T}@T{
3.1.300
T}
T{
-Blazor WebAssembly App Empty
-T}@T{
-\f[V]blazorwasm-empty\f[R]
-T}@T{
-[C#]
-T}@T{
-Web/Blazor/WebAssembly
-T}@T{
-7.0
-T}
-T{
ASP.NET Core Empty
T}@T{
\f[V]web\f[R]
@@ -315,28 +293,6 @@ T}@T{
2.2, 2.0
T}
T{
-ASP.NET Core with Angular
-T}@T{
-\f[V]angular\f[R]
-T}@T{
-[C#]
-T}@T{
-Web/MVC/SPA
-T}@T{
-2.0
-T}
-T{
-ASP.NET Core with React.js
-T}@T{
-\f[V]react\f[R]
-T}@T{
-[C#]
-T}@T{
-Web/MVC/SPA
-T}@T{
-2.0
-T}
-T{
Razor Class Library
T}@T{
\f[V]razorclasslib\f[R]
@@ -370,6 +326,17 @@ T}@T{
8.0
T}
T{
+ASP.NET Core API controller
+T}@T{
+\f[V]apicontroller\f[R]
+T}@T{
+[C#]
+T}@T{
+Web/ASP.NET
+T}@T{
+8.0
+T}
+T{
ASP.NET Core gRPC Service
T}@T{
\f[V]grpc\f[R]
@@ -453,7 +420,7 @@ T}
T{
EditorConfig file
T}@T{
-\f[V]editorconfig\f[R](#editorconfig)
+\f[V]editorconfig\f[R]
T}@T{
T}@T{
Config
@@ -461,6 +428,81 @@ T}@T{
6.0
T}
.TE
+.PP
+The following table shows templates that have been discontinued and no longer come pre-installed with the .NET SDK.
+Click on the short name link to see the specific template options.
+.PP
+.TS
+tab(@);
+l l l l l.
+T{
+Templates
+T}@T{
+Short name
+T}@T{
+Language
+T}@T{
+Tags
+T}@T{
+Discontinued since
+T}
+_
+T{
+ASP.NET Core with Angular
+T}@T{
+\f[V]angular\f[R]
+T}@T{
+[C#]
+T}@T{
+Web/MVC/SPA
+T}@T{
+8.0
+T}
+T{
+ASP.NET Core with React.js
+T}@T{
+\f[V]react\f[R]
+T}@T{
+[C#]
+T}@T{
+Web/MVC/SPA
+T}@T{
+8.0
+T}
+T{
+Blazor Server App
+T}@T{
+\f[V]blazorserver\f[R]
+T}@T{
+[C#]
+T}@T{
+Web/Blazor
+T}@T{
+8.0
+T}
+T{
+Blazor Server App Empty
+T}@T{
+\f[V]blazorserver-empty\f[R]
+T}@T{
+[C#]
+T}@T{
+Web/Blazor
+T}@T{
+8.0
+T}
+T{
+Blazor WebAssembly App Empty
+T}@T{
+\f[V]blazorwasm-empty\f[R]
+T}@T{
+[C#]
+T}@T{
+Web/Blazor/WebAssembly
+T}@T{
+8.0
+T}
+.TE
.SS Template options
.PP
Each template may have additional options available.
@@ -488,6 +530,11 @@ Default value
T}
_
T{
+8.0
+T}@T{
+\f[V]net8.0\f[R]
+T}
+T{
7.0
T}@T{
\f[V]net7.0\f[R]
@@ -549,8 +596,8 @@ Available only for C#.
.RS 2
.PP
Specifies the framework to target.
-Values: \f[V]net7.0\f[R], \f[V]net6.0\f[R], or \f[V]netcoreapp3.1\f[R] to create a .NET Class Library or \f[V]netstandard2.1\f[R] or \f[V]netstandard2.0\f[R] to create a .NET Standard Class Library.
-The default value for .NET SDK 7.0.x is \f[V]net7.0\f[R].
+Values: \f[V]net8.0\f[R], \f[V]net7.0\f[R], or \f[V]net6.0\f[R] to create a .NET Class Library, or \f[V]netstandard2.1\f[R] or \f[V]netstandard2.0\f[R] to create a .NET Standard Class Library.
+The default value for .NET SDK 8.0.x is \f[V]net8.0\f[R].
.PP
To create a project that targets a framework earlier than the SDK that you\[cq]re using, see \f[V]--framework\f[R] for \f[V]console\f[R] projects earlier in this article.
.RE
@@ -579,7 +626,7 @@ Doesn\[cq]t execute an implicit restore during project creation.
.RS 2
.PP
Specifies the framework to target.
-For the .NET 6 SDK, the default value is \f[V]net6.0\f[R].
+For the .NET 8 SDK, the default value is \f[V]net8.0\f[R].
Available since .NET Core 3.1 SDK.
.RE
.IP \[bu] 2
@@ -623,7 +670,7 @@ Doesn\[cq]t execute an implicit restore during project creation.
.RS 2
.PP
Specifies the framework to target.
-The default value for .NET 7 SDK is \f[V]net7.0\f[R].
+The default value for .NET 8 SDK is \f[V]net8.0\f[R].
Available since .NET Core 3.1 SDK.
.PP
To create a project that targets a framework earlier than the SDK that you\[cq]re using, see \f[V]--framework\f[R] for \f[V]console\f[R] projects earlier in this article.
@@ -670,6 +717,16 @@ Default value
T}
_
T{
+8.0
+T}@T{
+\f[V]net8.0\f[R]
+T}
+T{
+7.0
+T}@T{
+\f[V]net7.0\f[R]
+T}
+T{
6.0
T}@T{
\f[V]net6.0\f[R]
@@ -725,6 +782,16 @@ Default value
T}
_
T{
+8.0
+T}@T{
+\f[V]net8.0\f[R]
+T}
+T{
+7.0
+T}@T{
+\f[V]net7.0\f[R]
+T}
+T{
6.0
T}@T{
\f[V]net6.0\f[R]
@@ -788,6 +855,8 @@ The default value is \f[V]MyApp.Namespace\f[R].
.PP
* * * * *
.SS \f[V]blazorserver\f[R]
+.PP
+\f[B]Discontinued since .NET 8 SDK.\f[R]
.IP \[bu] 2
\f[B]\f[VB]-au|--auth \f[B]\f[R]
.RS 2
@@ -802,6 +871,7 @@ The possible values are:
\f[V]IndividualB2C\f[R] - Individual authentication with Azure AD B2C.
.IP \[bu] 2
\f[V]SingleOrg\f[R] - Organizational authentication for a single tenant.
+Entra External ID tenants also use \f[V]SingleOrg\f[R].
.IP \[bu] 2
\f[V]MultiOrg\f[R] - Organizational authentication for multiple tenants.
.IP \[bu] 2
@@ -930,6 +1000,89 @@ If specified, an explicit \f[V]Program\f[R] class and \f[V]Main\f[R] method will
Available since .NET SDK 6.0.300.
Default value: \f[V]false\f[R].
.RE
+.PP
+ * * * * *
+.SS \f[V]blazor\f[R]
+.IP \[bu] 2
+\f[B]\f[VB]-f|--framework \f[B]\f[R]
+.RS 2
+.PP
+Specifies the framework to target.
+.PP
+This template is available for .NET 8 or later.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]--no-restore\f[B]\f[R]
+.RS 2
+.PP
+Doesn\[cq]t execute an implicit restore during project creation.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]--exclude-launch-settings\f[B]\f[R]
+.RS 2
+.PP
+Excludes \f[I]launchSettings.json\f[R] from the generated app.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]-int|--interactivity \f[B]\f[R]
+.RS 2
+.PP
+Specifies which interactive render mode to use for interactive components.
+The possible values are:
+.IP \[bu] 2
+\f[V]None\f[R] - No interactivity (static server-side rendering only).
+.IP \[bu] 2
+\f[V]Server\f[R] - (Default) Runs the app on the server with interactive server-side rendering.
+.IP \[bu] 2
+\f[V]WebAssembly\f[R] - Runs the app using client-side rendering in the browser with WebAssembly.
+.IP \[bu] 2
+\f[V]Auto\f[R] - Uses interactive server-side rendering while downloading the Blazor bundle and activating the Blazor runtime on the client, then uses client-side rendering with WebAssembly.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]--empty\f[B]\f[R]
+.RS 2
+.PP
+Omits sample pages and styling that demonstrate basic usage patterns.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]-au|--auth \f[B]\f[R]
+.RS 2
+.PP
+The type of authentication to use.
+The possible values are:
+.IP \[bu] 2
+\f[V]None\f[R] - No authentication (Default).
+.IP \[bu] 2
+\f[V]Individual\f[R] - Individual authentication.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]-uld|--use-local-db\f[B]\f[R]
+.RS 2
+.PP
+Specifies LocalDB should be used instead of SQLite.
+Only applies to \f[V]Individual\f[R] authentication.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]-ai|--all-interactive\f[B]\f[R]
+.RS 2
+.PP
+Makes every page interactive by applying an interactive render mode at the top level.
+If \f[V]false\f[R], pages use static server-side rendering by default and can be marked interactive on a per-page or per-component basis.
+This option is only effective if the \f[V]-i|--interactivity\f[R] option isn\[cq]t set to \f[V]None\f[R].
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]--no-https\f[B]\f[R]
+.RS 2
+.PP
+Turns off HTTPS.
+This option only applies if \f[V]Individual\f[R] isn\[cq]t chosen for the \f[V]-au|--auth\f[R] option.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]--use-program-main\f[B]\f[R]
+.RS 2
+.PP
+If specified, an explicit \f[V]Program\f[R] class and \f[V]Main\f[R] method is generated instead of top-level statements.
+.RE
.PP
* * * * *
.SS \f[V]blazorwasm\f[R]
@@ -951,6 +1104,11 @@ Default value
T}
_
T{
+8.0
+T}@T{
+\f[V]net8.0\f[R]
+T}
+T{
7.0
T}@T{
\f[V]net7.0\f[R]
@@ -1000,6 +1158,7 @@ The possible values are:
\f[V]IndividualB2C\f[R] - Individual authentication with Azure AD B2C.
.IP \[bu] 2
\f[V]SingleOrg\f[R] - Organizational authentication for a single tenant.
+Entra External ID tenants also use SingleOrg.
.RE
.IP \[bu] 2
\f[B]\f[VB]--authority \f[B]\f[R]
@@ -1185,6 +1344,16 @@ Default value
T}
_
T{
+8.0
+T}@T{
+\f[V]net8.0\f[R]
+T}
+T{
+7.0
+T}@T{
+\f[V]net7.0\f[R]
+T}
+T{
6.0
T}@T{
\f[V]net6.0\f[R]
@@ -1263,6 +1432,7 @@ The possible values are:
\f[V]IndividualB2C\f[R] - Individual authentication with Azure AD B2C.
.IP \[bu] 2
\f[V]SingleOrg\f[R] - Organizational authentication for a single tenant.
+Entra External ID tenants also use SingleOrg.
.IP \[bu] 2
\f[V]MultiOrg\f[R] - Organizational authentication for multiple tenants.
.IP \[bu] 2
@@ -1383,6 +1553,16 @@ Default value
T}
_
T{
+8.0
+T}@T{
+\f[V]net8.0\f[R]
+T}
+T{
+7.0
+T}@T{
+\f[V]net7.0\f[R]
+T}
+T{
6.0
T}@T{
\f[V]net6.0\f[R]
@@ -1450,6 +1630,8 @@ Default value: \f[V]false\f[R].
.PP
* * * * *
.SS \f[V]angular\f[R], \f[V]react\f[R]
+.PP
+\f[B]Discontinued since .NET 8 SDK.\f[R]
.IP \[bu] 2
\f[B]\f[VB]-au|--auth \f[B]\f[R]
.RS 2
@@ -1498,6 +1680,10 @@ 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:
+.RS
+.PP
+There isn\[cq]t a React template for \f[V]net8.0\f[R], however, if you\[cq]re interested in developing React apps with ASP.NET Core, see Overview of Single Page Apps (SPAs) in ASP.NET Core.
+.RE
.PP
.TS
tab(@);
@@ -1509,6 +1695,11 @@ Default value
T}
_
T{
+7.0
+T}@T{
+\f[V]net7.0\f[R]
+T}
+T{
6.0
T}@T{
\f[V]net6.0\f[R]
@@ -1558,87 +1749,6 @@ If specified, an explicit \f[V]Program\f[R] class and \f[V]Main\f[R] method will
Available since .NET SDK 6.0.300.
Default value: \f[V]false\f[R].
.RE
-.PP
- * * * * *
-.SS \f[V]reactredux\f[R]
-.IP \[bu] 2
-\f[B]\f[VB]--exclude-launch-settings\f[B]\f[R]
-.RS 2
-.PP
-Excludes \f[I]launchSettings.json\f[R] from the generated template.
-.RE
-.IP \[bu] 2
-\f[B]\f[VB]-f|--framework \f[B]\f[R]
-.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
-.TS
-tab(@);
-l l.
-T{
-SDK version
-T}@T{
-Default value
-T}
-_
-T{
-6.0
-T}@T{
-\f[V]net6.0\f[R]
-T}
-T{
-5.0
-T}@T{
-\f[V]net5.0\f[R]
-T}
-T{
-3.1
-T}@T{
-\f[V]netcoreapp3.1\f[R]
-T}
-T{
-3.0
-T}@T{
-\f[V]netcoreapp3.0\f[R]
-T}
-T{
-2.1
-T}@T{
-\f[V]netcoreapp2.0\f[R]
-T}
-.TE
-.PP
-To create a project that targets a framework earlier than the SDK that you\[cq]re using, see \f[V]--framework\f[R] for \f[V]console\f[R] projects earlier in this article.
-.RE
-.IP \[bu] 2
-\f[B]\f[VB]--no-restore\f[B]\f[R]
-.RS 2
-.PP
-Doesn\[cq]t execute an implicit restore during project creation.
-.RE
-.IP \[bu] 2
-\f[B]\f[VB]--no-https\f[B]\f[R]
-.RS 2
-.PP
-Turns off HTTPS.
-.RE
-.IP \[bu] 2
-\f[B]\f[VB]--kestrelHttpPort\f[B]\f[R]
-.RS 2
-.PP
-Port number to use for the HTTP endpoint in \f[I]launchSettings.json\f[R].
-.RE
-.IP \[bu] 2
-\f[B]\f[VB]--kestrelHttpsPort\f[B]\f[R]
-.RS 2
-.PP
-Port number to use for the HTTPS endpoint in \f[I]launchSettings.json\f[R].
-This option is not applicable when the parameter \f[V]no-https\f[R] is used (but \f[V]no-https\f[R] is ignored when an individual or organizational authentication setting is chosen for \f[V]--auth\f[R]).
-.RE
.PP
* * * * *
.SS \f[V]razorclasslib\f[R]
@@ -1720,6 +1830,7 @@ The possible values are:
\f[V]IndividualB2C\f[R] - Individual authentication with Azure AD B2C.
.IP \[bu] 2
\f[V]SingleOrg\f[R] - Organizational authentication for a single tenant.
+Entra External ID tenants also use SingleOrg.
.IP \[bu] 2
\f[V]Windows\f[R] - Windows authentication.
.RE
@@ -1736,8 +1847,8 @@ The default value is \f[V]https://login.microsoftonline.com/tfp/\f[R].
.RS 2
.PP
Create a project that uses the ASP.NET Core minimal API.
-Default is \f[V]false\f[R], but this option is overridden by \f[V]--controllers\f[R].
-Since the default for \f[V]--controllers\f[R] is \f[V]false\f[R], entering \f[V]dotnet new webapi\f[R] without specifying either option creates a minimal API project.
+Default is \f[V]false\f[R], but this option is overridden by \f[V]-controllers\f[R].
+Since the default for \f[V]-controllers\f[R] is \f[V]false\f[R], entering \f[V]dotnet new webapi\f[R] without specifying either option creates a minimal API project.
.RE
.IP \[bu] 2
\f[B]\f[VB]-ssp|--susi-policy-id \f[B]\f[R]
@@ -1763,12 +1874,13 @@ Use with \f[V]IndividualB2C\f[R] or \f[V]SingleOrg\f[R] authentication.
The default value is \f[V]11111111-1111-1111-11111111111111111\f[R].
.RE
.IP \[bu] 2
-\f[B]\f[VB]--controllers\f[B]\f[R], \f[B]\f[VB]--use-controllers\f[B]\f[R]
+\f[B]\f[VB]-controllers|--use-controllers\f[B]\f[R]
.RS 2
.PP
Whether to use controllers instead of minimal APIs.
If both this option and \f[V]-minimal\f[R] are specified, this option overrides the value specified by \f[V]-minimal\f[R].
Default is \f[V]false\f[R].
+Available since .NET 8 SDK.
.RE
.IP \[bu] 2
\f[B]\f[VB]--domain \f[B]\f[R]
@@ -1841,6 +1953,11 @@ Default value
T}
_
T{
+8.0
+T}@T{
+\f[V]net8.0\f[R]
+T}
+T{
7.0
T}@T{
\f[V]net7.0\f[R]
@@ -1888,6 +2005,25 @@ If specified, an explicit \f[V]Program\f[R] class and \f[V]Main\f[R] method will
Available since .NET SDK 6.0.300.
Default value: \f[V]false\f[R].
.RE
+.PP
+ * * * * *
+.SS \f[V]apicontroller\f[R]
+.PP
+API Controller with or without read/write actions.
+.IP \[bu] 2
+\f[B]\f[VB]-p:n|--name \f[B]\f[R]
+.RS 2
+.PP
+The namespace for the generated code.
+Default is \f[V]MyApp.Namespace\f[R].
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]-ac|--actions\f[B]\f[R]
+.RS 2
+.PP
+Create a controller with read/write actions.
+Default is \f[V]false\f[R].
+.RE
.PP
* * * * *
.SS \f[V]globaljson\f[R]
@@ -1897,6 +2033,13 @@ Default value: \f[V]false\f[R].
.PP
Specifies the version of the .NET SDK to use in the \f[I]global.json\f[R] file.
.RE
+.IP \[bu] 2
+\f[B]\f[VB]--roll-forward \f[B]\f[R]
+.RS 2
+.PP
+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
.SS \f[V]editorconfig\f[R]
.PP
Creates an \f[I].editorconfig\f[R] file for configuring code style preferences.
diff --git a/documentation/manpages/sdk/dotnet-new-search.1 b/documentation/manpages/sdk/dotnet-new-search.1
index f904c1d09971..c5411ca680ba 100644
--- a/documentation/manpages/sdk/dotnet-new-search.1
+++ b/documentation/manpages/sdk/dotnet-new-search.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-new-search" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-new-search" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet new search
.PP
@@ -28,9 +28,9 @@ dotnet-new-search - searches for the templates supported by dotnet-new on NuGet.
\f[C]
dotnet new search
-dotnet new search [] [--author ] [-lang|--language {\[dq]C#\[dq]|\[dq]F#\[dq]|VB}]
+dotnet new search [] [--author ] [-lang|--language ]
[--package ] [--tag ] [--type ]
- [--columns ] [--columns-all]
+ [--columns ] [--columns-all]
[-d|--diagnostics] [--verbosity ] [-h|--help]
\f[R]
.fi
@@ -63,7 +63,7 @@ To activate tab completion for the .NET SDK, see Enable tab completion.
.RS 2
.PP
If the argument is specified, only templates containing \f[V]\f[R] in the template name or short name will be shown.
-The argument is mandatory when \f[V]--author\f[R], \f[V]--language\f[R], \f[V]--package\f[R], \f[V]--tag\f[R] or \f[V]--type\f[R] options are not specified.
+The argument is mandatory when \f[V]--author\f[R], \f[V]--language\f[R], \f[V]--package\f[R], \f[V]--tag\f[R], or \f[V]--type\f[R] options are not specified.
.RS
.PP
Starting with .NET SDK 6.0.100, you can put the \f[V]\f[R] argument after the \f[V]--search\f[R] option.
@@ -77,26 +77,26 @@ Using more than one argument is not allowed.
.RS 2
.PP
Filters templates based on template author.
-Partial match is supported.
+A partial match is supported.
.RE
.IP \[bu] 2
\f[B]\f[VB]--columns \f[B]\f[R]
.RS 2
.PP
-Comma-separated list of columns to display in the output.
+The list of columns to display in the output.
The supported columns are:
.IP \[bu] 2
-\f[V]language\f[R] - A comma-separated list of languages supported by the template.
+\f[V]author\f[R] - The template author.
.IP \[bu] 2
-\f[V]tags\f[R] - The list of template tags.
+\f[V]language\f[R] - The template language.
.IP \[bu] 2
-\f[V]author\f[R] - The template author.
+\f[V]tags\f[R] - The list of template tags.
.IP \[bu] 2
-\f[V]type\f[R] - The template type: project or item.
+\f[V]type\f[R] - The template type.
.PP
-The template name, short name, package name and total downloads count are always shown.
-The default list of columns is template name, short name, author, language, package, and total downloads.
-This list is equivalent to specifying \f[V]--columns=author,language\f[R].
+The template name, short name, package name, an indication if it\[cq]s a trusted source, and total downloads count are always shown.
+The default list of columns is template name, short name, language, package, an indication if it\[cq]s a trusted source, and total downloads.
+To specify multiple columns, use the \f[V]--columns\f[R] option multiple times.
.RE
.IP \[bu] 2
\f[B]\f[VB]--columns-all\f[B]\f[R]
@@ -119,11 +119,11 @@ Prints out help for the search command.
Available since .NET SDK 7.0.100.
.RE
.IP \[bu] 2
-\f[B]\f[VB]-lang|--language {C#|F#|VB}\f[B]\f[R]
+\f[B]\f[VB]-lang|--language \f[B]\f[R]
.RS 2
.PP
Filters templates based on language supported by the template.
-The language accepted varies by the template.
+The language accepted varies by the template, possible languages are C#, F#, VB, SQL, JSON, TypeScript, and more.
Not valid for some templates.
.RS
.PP
@@ -137,7 +137,7 @@ For example, \f[V]dotnet new --search --language \[dq]F#\[dq]\f[R].
.RS 2
.PP
Filters templates based on NuGet package ID.
-Partial match is supported.
+A partial match is supported.
.RE
.IP \[bu] 2
\f[B]\f[VB]--tag \f[B]\f[R]
@@ -202,7 +202,7 @@ Search for all C# templates, showing the type and tags in the output.
.IP
.nf
\f[C]
-dotnet new search --language \[dq]C#\[dq] --columns \[dq]type,tags\[dq]
+dotnet new search --language \[dq]C#\[dq] --columns \[dq]type\[dq] --columns \[dq]tags\[dq]
\f[R]
.fi
.RE
diff --git a/documentation/manpages/sdk/dotnet-new-uninstall.1 b/documentation/manpages/sdk/dotnet-new-uninstall.1
index a2dc561dfd43..f9838d1a963f 100644
--- a/documentation/manpages/sdk/dotnet-new-uninstall.1
+++ b/documentation/manpages/sdk/dotnet-new-uninstall.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-new-uninstall" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-new-uninstall" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet new uninstall
.PP
diff --git a/documentation/manpages/sdk/dotnet-new-update.1 b/documentation/manpages/sdk/dotnet-new-update.1
index 05a237913b61..b96cc6b9b9d3 100644
--- a/documentation/manpages/sdk/dotnet-new-update.1
+++ b/documentation/manpages/sdk/dotnet-new-update.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-new-update" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-new-update" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet new update
.PP
@@ -80,6 +80,10 @@ For more information, see Common NuGet Configurations.
Available since .NET SDK 7.0.100.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--check-only|--dry-run\f[B]\f[R]
+.PP
+Only checks for updates and displays the template packages to be updated, without applying any updates.
+.IP \[bu] 2
\f[B]\f[VB]-d|--diagnostics\f[B]\f[R]
.RS 2
.PP
diff --git a/documentation/manpages/sdk/dotnet-new.1 b/documentation/manpages/sdk/dotnet-new.1
index aba30cb7f9a3..164fb0b70674 100644
--- a/documentation/manpages/sdk/dotnet-new.1
+++ b/documentation/manpages/sdk/dotnet-new.1
@@ -15,7 +15,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-new" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-new" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet new
.PP
@@ -90,11 +90,11 @@ 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.
+.RE
.PP
The following table shows the templates that come pre-installed with the .NET SDK.
The default language for the template is shown inside the brackets.
Click on the short name link to see the specific template options.
-.RE
.PP
.TS
tab(@);
@@ -112,7 +112,7 @@ Introduced
T}
_
T{
-Console application
+Console Application
T}@T{
\f[V]console\f[R]
T}@T{
@@ -134,7 +134,7 @@ T}@T{
1.0
T}
T{
-WPF application
+WPF Application
T}@T{
\f[V]wpf\f[R]
T}@T{
@@ -145,7 +145,7 @@ T}@T{
3.0 (5.0 for VB)
T}
T{
-WPF class library
+WPF Class library
T}@T{
\f[V]wpflib\f[R]
T}@T{
@@ -156,7 +156,7 @@ T}@T{
3.0 (5.0 for VB)
T}
T{
-WPF custom control library
+WPF Custom Control Library
T}@T{
\f[V]wpfcustomcontrollib\f[R]
T}@T{
@@ -167,7 +167,7 @@ T}@T{
3.0 (5.0 for VB)
T}
T{
-WPF user control library
+WPF User Control Library
T}@T{
\f[V]wpfusercontrollib\f[R]
T}@T{
@@ -178,7 +178,7 @@ T}@T{
3.0 (5.0 for VB)
T}
T{
-Windows Forms (WinForms) application
+Windows Forms (WinForms) Application
T}@T{
\f[V]winforms\f[R]
T}@T{
@@ -189,7 +189,7 @@ T}@T{
3.0 (5.0 for VB)
T}
T{
-Windows Forms (WinForms) class library
+Windows Forms (WinForms) Class library
T}@T{
\f[V]winformslib\f[R]
T}@T{
@@ -200,7 +200,7 @@ T}@T{
3.0 (5.0 for VB)
T}
T{
-Worker service
+Worker Service
T}@T{
\f[V]worker\f[R]
T}@T{
@@ -211,7 +211,7 @@ T}@T{
3.0
T}
T{
-Unit test project
+Unit Test Project
T}@T{
\f[V]mstest\f[R]
T}@T{
@@ -222,7 +222,7 @@ T}@T{
1.0
T}
T{
-NUnit 3 test project
+NUnit 3 Test Project
T}@T{
\f[V]nunit\f[R]
T}@T{
@@ -233,7 +233,7 @@ T}@T{
2.1.400
T}
T{
-NUnit 3 test item
+NUnit 3 Test Item
T}@T{
\f[V]nunit-test\f[R]
T}@T{
@@ -244,7 +244,7 @@ T}@T{
2.2
T}
T{
-xUnit test project
+xUnit Test Project
T}@T{
\f[V]xunit\f[R]
T}@T{
@@ -255,7 +255,7 @@ T}@T{
1.0
T}
T{
-Razor component
+Razor Component
T}@T{
\f[V]razorcomponent\f[R]
T}@T{
@@ -266,7 +266,7 @@ T}@T{
3.0
T}
T{
-Razor page
+Razor Page
T}@T{
\f[V]page\f[R]
T}@T{
@@ -299,29 +299,29 @@ T}@T{
2.0
T}
T{
-Blazor server app
+Blazor Web App
T}@T{
-\f[V]blazorserver\f[R]
+\f[V]blazor\f[R]
T}@T{
[C#]
T}@T{
Web/Blazor
T}@T{
-3.0
+8.0.100
T}
T{
-Blazor WebAssembly app
+Blazor WebAssembly Standalone App
T}@T{
\f[V]blazorwasm\f[R]
T}@T{
[C#]
T}@T{
-Web/Blazor/WebAssembly
+Web/Blazor/WebAssembly/PWA
T}@T{
3.1.300
T}
T{
-ASP.NET Core empty
+ASP.NET Core Empty
T}@T{
\f[V]web\f[R]
T}@T{
@@ -332,7 +332,7 @@ T}@T{
1.0
T}
T{
-ASP.NET Core web app (Model-View-Controller)
+ASP.NET Core Web App (Model-View-Controller)
T}@T{
\f[V]mvc\f[R]
T}@T{
@@ -343,7 +343,7 @@ T}@T{
1.0
T}
T{
-ASP.NET Core web app
+ASP.NET Core Web App
T}@T{
\f[V]webapp, razor\f[R]
T}@T{
@@ -354,62 +354,51 @@ T}@T{
2.2, 2.0
T}
T{
-ASP.NET Core with Angular
+Razor Class Library
T}@T{
-\f[V]angular\f[R]
+\f[V]razorclasslib\f[R]
T}@T{
[C#]
T}@T{
-Web/MVC/SPA
+Web/Razor/Library/Razor Class Library
T}@T{
-2.0
+2.1
T}
T{
-ASP.NET Core with React.js
+ASP.NET Core Web API
T}@T{
-\f[V]react\f[R]
+\f[V]webapi\f[R]
T}@T{
-[C#]
+[C#], F#
T}@T{
-Web/MVC/SPA
+Web/Web API/API/Service/WebAPI
T}@T{
-2.0
+1.0
T}
T{
-ASP.NET Core with React.js and Redux
+ASP.NET Core API
T}@T{
-\f[V]reactredux\f[R]
+\f[V]webapiaot\f[R]
T}@T{
[C#]
T}@T{
-Web/MVC/SPA
+Web/Web API/API/Service
T}@T{
-2.0
+8.0
T}
T{
-Razor class library
+ASP.NET Core API controller
T}@T{
-\f[V]razorclasslib\f[R]
+\f[V]apicontroller\f[R]
T}@T{
[C#]
T}@T{
-Web/Razor/Library/Razor Class Library
-T}@T{
-2.1
-T}
-T{
-ASP.NET Core web API
-T}@T{
-\f[V]webapi\f[R]
-T}@T{
-[C#], F#
-T}@T{
-Web/WebAPI
+Web/ASP.NET
T}@T{
-1.0
+8.0
T}
T{
-ASP.NET Core gRPC service
+ASP.NET Core gRPC Service
T}@T{
\f[V]grpc\f[R]
T}@T{
@@ -440,7 +429,7 @@ T}@T{
2.0
T}
T{
-NuGet config
+NuGet Config
T}@T{
\f[V]nugetconfig\f[R]
T}@T{
@@ -460,7 +449,7 @@ T}@T{
3.0
T}
T{
-Web config
+Web Config
T}@T{
\f[V]webconfig\f[R]
T}@T{
@@ -470,7 +459,7 @@ T}@T{
1.0
T}
T{
-Solution file
+Solution File
T}@T{
\f[V]sln\f[R]
T}@T{
@@ -480,7 +469,7 @@ T}@T{
1.0
T}
T{
-Protocol buffer file
+Protocol Buffer File
T}@T{
\f[V]proto\f[R]
T}@T{
@@ -500,6 +489,81 @@ T}@T{
6.0
T}
.TE
+.PP
+The following table shows templates that have been discontinued and no longer come pre-installed with the .NET SDK.
+Click on the short name link to see the specific template options.
+.PP
+.TS
+tab(@);
+l l l l l.
+T{
+Templates
+T}@T{
+Short name
+T}@T{
+Language
+T}@T{
+Tags
+T}@T{
+Discontinued since
+T}
+_
+T{
+ASP.NET Core with Angular
+T}@T{
+\f[V]angular\f[R]
+T}@T{
+[C#]
+T}@T{
+Web/MVC/SPA
+T}@T{
+8.0
+T}
+T{
+ASP.NET Core with React.js
+T}@T{
+\f[V]react\f[R]
+T}@T{
+[C#]
+T}@T{
+Web/MVC/SPA
+T}@T{
+8.0
+T}
+T{
+Blazor Server App
+T}@T{
+\f[V]blazorserver\f[R]
+T}@T{
+[C#]
+T}@T{
+Web/Blazor
+T}@T{
+8.0
+T}
+T{
+Blazor Server App Empty
+T}@T{
+\f[V]blazorserver-empty\f[R]
+T}@T{
+[C#]
+T}@T{
+Web/Blazor
+T}@T{
+8.0
+T}
+T{
+Blazor WebAssembly App Empty
+T}@T{
+\f[V]blazorwasm-empty\f[R]
+T}@T{
+[C#]
+T}@T{
+Web/Blazor/WebAssembly
+T}@T{
+8.0
+T}
+.TE
.SH OPTIONS
.IP \[bu] 2
\f[B]\f[VB]--dry-run\f[B]\f[R]
@@ -650,12 +714,12 @@ dotnet new xunit
.fi
.RE
.IP \[bu] 2
-Create a \f[I]global.json\f[R] in the current directory setting the SDK version to 3.1.101:
+Create a \f[I]global.json\f[R] in the current directory setting the SDK version to 8.0.101:
.RS 2
.IP
.nf
\f[C]
-dotnet new globaljson --sdk-version 3.1.101
+dotnet new globaljson --sdk-version 8.0.101 --roll-forward latestFeature
\f[R]
.fi
.RE
diff --git a/documentation/manpages/sdk/dotnet-nuget-add-source.1 b/documentation/manpages/sdk/dotnet-nuget-add-source.1
index 20fed447c738..c971c2e03028 100644
--- a/documentation/manpages/sdk/dotnet-nuget-add-source.1
+++ b/documentation/manpages/sdk/dotnet-nuget-add-source.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-add-source" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-nuget-add-source" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet nuget add source
.PP
@@ -22,13 +22,17 @@
.SH NAME
.PP
dotnet-nuget-add-source - Add a NuGet source.
+.RS
+.PP
+Use package sources that you trust.
+.RE
.SH SYNOPSIS
.IP
.nf
\f[C]
dotnet nuget add source [--name ] [--username ]
[--password ] [--store-password-in-clear-text]
- [--valid-authentication-types ] [--configfile ]
+ [--valid-authentication-types ] [--configfile ] [--allow-insecure-connections]
dotnet nuget add source -h|--help
\f[R]
@@ -38,7 +42,7 @@ dotnet nuget add source -h|--help
The \f[V]dotnet nuget add source\f[R] command adds a new package source to your NuGet configuration files.
.RS
.PP
-[!WARNING] When adding multiple package sources, be careful not to introduce a dependency confusion vulnerability (https://aka.ms/pkg-sec-wp).
+[!WARNING] When adding multiple package sources, be careful not to introduce a dependency confusion vulnerability.
.RE
.SH ARGUMENTS
.IP \[bu] 2
@@ -58,6 +62,14 @@ If not specified, the hierarchy of configuration files from the current director
For more information, see Common NuGet Configurations.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--allow-insecure-connections\f[B]\f[R]
+.RS 2
+.PP
+Allows HTTP connections for adding or updating packages.
+This method is not secure.
+Available since .NET 9 SDK.
+.RE
+.IP \[bu] 2
\f[B]\f[VB]-n|--name \f[B]\f[R]
.RS 2
.PP
@@ -69,12 +81,22 @@ Name of the source.
.PP
Password to be used when connecting to an authenticated source.
.RE
+.RS
+.PP
+Be aware that encrypted passwords are only supported on Windows.
+Moreover, they can only be decrypted on the same machine and by the same user who originally encrypted them.
+.RE
.IP \[bu] 2
\f[B]\f[VB]--store-password-in-clear-text\f[B]\f[R]
.RS 2
.PP
Enables storing portable package source credentials by disabling password encryption.
.RE
+.RS
+.PP
+[!WARNING] Storing passwords in clear text is strongly discouraged.
+For more information on managing credentials securely, refer to the security best practices for consuming packages from private feeds.
+.RE
.IP \[bu] 2
\f[B]\f[VB]-u|--username \f[B]\f[R]
.RS 2
@@ -116,7 +138,7 @@ Add a source that needs authentication:
.IP
.nf
\f[C]
-dotnet nuget add source https://someServer/myTeam -n myTeam -u myUsername -p myPassword --store-password-in-clear-text
+dotnet nuget add source https://someServer/myTeam -n myTeam -u myUsername -p myPassword
\f[R]
.fi
.RE
@@ -132,6 +154,8 @@ dotnet nuget add source https://azureartifacts.microsoft.com/myTeam -n myTeam
.RE
.SH SEE ALSO
.IP \[bu] 2
+Security best practices for managing package source credentials
+.IP \[bu] 2
Package source sections in NuGet.config files
.IP \[bu] 2
sources command (nuget.exe)
diff --git a/documentation/manpages/sdk/dotnet-nuget-config-get.1 b/documentation/manpages/sdk/dotnet-nuget-config-get.1
new file mode 100644
index 000000000000..e603edb74430
--- /dev/null
+++ b/documentation/manpages/sdk/dotnet-nuget-config-get.1
@@ -0,0 +1,93 @@
+.\" 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-nuget-config-get" "1" "2024-10-02" "" ".NET Documentation"
+.hy
+.SH dotnet nuget config get
+.PP
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 8.0.2xx SDK and later versions
+.SH NAME
+.PP
+dotnet-nuget-config-get - Gets the NuGet configuration settings that will be applied.
+.SH SYNOPSIS
+.IP
+.nf
+\f[C]
+dotnet nuget config get [--show-path] [--working-directory ]
+
+dotnet nuget config get -h|--help
+\f[R]
+.fi
+.SH DESCRIPTION
+.PP
+The \f[V]dotnet nuget config get\f[R] Gets the NuGet configuration settings that will be applied from the config section.
+.SH ARGUMENTS
+.IP \[bu] 2
+\f[B]\f[VB]ALL\f[B]\f[R]
+.RS 2
+.PP
+Get all merged NuGet configuration settings from multiple NuGet configuration files that will be applied, when invoking NuGet command from the working directory path.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]CONFIG_KEY\f[B]\f[R]
+.RS 2
+.PP
+Get the effective value of the specified configuration settings of the config section.
+.RE
+.SH OPTIONS
+.IP \[bu] 2
+\f[B]\f[VB]--show-path\f[B]\f[R]
+.RS 2
+.PP
+Indicate that the NuGet configuration file path will be shown beside the configuration settings.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]--working-directory \f[B]\f[R]
+.RS 2
+.PP
+Specifies the directory to start from when listing configuration files.
+If not specified, the current directory is used.
+.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
+Lists all the Nuget configuration settings being applied to the current directory:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet nuget config get all
+\f[R]
+.fi
+.RE
+.IP \[bu] 2
+Lists the \f[V]repositoryPath\f[R] value from the config section being applied to the specified directory:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet nuget config get repositoryPath --working-directory \[dq]C:/working-directory\[dq]
+\f[R]
+.fi
+.RE
+.SH SEE ALSO
+.IP \[bu] 2
+nuGet.config reference
diff --git a/documentation/manpages/sdk/dotnet-nuget-config-paths.1 b/documentation/manpages/sdk/dotnet-nuget-config-paths.1
new file mode 100644
index 000000000000..9e06b81d7104
--- /dev/null
+++ b/documentation/manpages/sdk/dotnet-nuget-config-paths.1
@@ -0,0 +1,74 @@
+.\" 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-nuget-config-paths" "1" "2024-10-02" "" ".NET Documentation"
+.hy
+.SH dotnet nuget config paths
+.PP
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 8.0.2xx SDK and later versions
+.SH NAME
+.PP
+dotnet-nuget-config-paths - Lists nuget configuration files currently being appplied to a directory.
+.SH SYNOPSIS
+.IP
+.nf
+\f[C]
+dotnet nuget config paths [--working-directory ]
+
+dotnet nuget config paths -h|--help
+\f[R]
+.fi
+.SH DESCRIPTION
+.PP
+The \f[V]dotnet nuget config paths\f[R] Lists the paths to all NuGet configuration files that will be applied when invoking NuGet commands in a specific directory.
+.SH OPTIONS
+.IP \[bu] 2
+\f[B]\f[VB]--working-directory \f[B]\f[R]
+.RS 2
+.PP
+Specifies the directory to start from when listing configuration files.
+If not specified, the current directory is used.
+.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
+Lists Nuget configuration files being applied to the current directory:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet nuget config paths
+\f[R]
+.fi
+.RE
+.IP \[bu] 2
+Lists Nuget configuration files being applied to the specified directory:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet nuget config paths --working-directory \[dq]C:/working-directory\[dq]
+\f[R]
+.fi
+.RE
+.SH SEE ALSO
+.IP \[bu] 2
+nuGet.config reference
diff --git a/documentation/manpages/sdk/dotnet-nuget-config-set.1 b/documentation/manpages/sdk/dotnet-nuget-config-set.1
new file mode 100644
index 000000000000..4ad5f037116e
--- /dev/null
+++ b/documentation/manpages/sdk/dotnet-nuget-config-set.1
@@ -0,0 +1,89 @@
+.\" 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-nuget-config-set" "1" "2024-10-02" "" ".NET Documentation"
+.hy
+.SH dotnet nuget config set
+.PP
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 8.0.2xx SDK and later versions
+.SH NAME
+.PP
+dotnet-nuget-config-set - Set the value of a specified NuGet configuration setting.
+.SH SYNOPSIS
+.IP
+.nf
+\f[C]
+dotnet nuget config set [--configfile ]
+
+dotnet nuget config set -h|--help
+\f[R]
+.fi
+.SH DESCRIPTION
+.PP
+The \f[V]dotnet nuget config set\f[R] sets the values for NuGet configuration settings that will be applied from the config section.
+.SH ARGUMENTS
+.IP \[bu] 2
+\f[B]\f[VB]CONFIG_KEY\f[B]\f[R]
+.RS 2
+.PP
+The key of the settings that are to be set.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]CONFIG-VALUE\f[B]\f[R]
+.RS 2
+.PP
+The value of the settings that are to be set.
+.RE
+.SH OPTIONS
+.IP \[bu] 2
+\f[B]\f[VB]--configfile \f[B]\f[R]
+.RS 2
+.PP
+The NuGet configuration file (\f[I]nuget.config\f[R]) to use.
+If specified, only the settings from this file will be used.
+If not specified, the hierarchy of configuration files from the current directory will be used.
+For more information, see Common NuGet Configurations.
+.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
+Sets the \f[V]repositoryPath\f[R] configuration value \f[V]c:\[rs]installed_packages\f[R] to the current directory:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet nuget config set repositoryPath \[dq]c:\[rs]installed_packages\[dq]
+\f[R]
+.fi
+.RE
+.IP \[bu] 2
+Sets the \f[V]repositoryPath\f[R] configuration value \f[V]c:\[rs]installed_packages\f[R] to the specified configuration file:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet nuget config set repositoryPath \[dq]c:\[rs]installed_packages\[dq] --configfile \[dq]c:\[rs]nuget.config\[dq]
+\f[R]
+.fi
+.RE
+.SH SEE ALSO
+.IP \[bu] 2
+nuGet.config reference
diff --git a/documentation/manpages/sdk/dotnet-nuget-config-unset.1 b/documentation/manpages/sdk/dotnet-nuget-config-unset.1
new file mode 100644
index 000000000000..7a5498cc8c84
--- /dev/null
+++ b/documentation/manpages/sdk/dotnet-nuget-config-unset.1
@@ -0,0 +1,73 @@
+.\" 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-nuget-config-unset" "1" "2024-10-02" "" ".NET Documentation"
+.hy
+.SH dotnet nuget config unset
+.PP
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 8.0.2xx SDK and later versions
+.SH NAME
+.PP
+dotnet-nuget-config-unset - Removes the key-value pair from a specified NuGet configuration setting.
+.SH SYNOPSIS
+.IP
+.nf
+\f[C]
+dotnet nuget config unset [--configfile ]
+
+dotnet nuget config unset -h|--help
+\f[R]
+.fi
+.SH DESCRIPTION
+.PP
+The \f[V]dotnet nuget config unset\f[R] unsets the values for NuGet configuration settings that will be applied from the config section.
+.SH ARGUMENTS
+.IP \[bu] 2
+\f[B]\f[VB]CONFIG_KEY\f[B]\f[R]
+.RS 2
+.PP
+The key of the settings that are to be removed.
+.RE
+.SH OPTIONS
+.IP \[bu] 2
+\f[B]\f[VB]--configfile \f[B]\f[R]
+.RS 2
+.PP
+The NuGet configuration file (\f[I]nuget.config\f[R]) to use.
+If specified, only the settings from this file will be used.
+If not specified, the hierarchy of configuration files from the current directory will be used.
+For more information, see Common NuGet Configurations.
+.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
+Removes\[cq]s the \f[V]repositoryPath\f[R] config value from the specified configuration file:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet nuget config unset repositoryPath --configfile \[dq]C:/nugte.config\[dq]
+\f[R]
+.fi
+.RE
+.SH SEE ALSO
+.IP \[bu] 2
+nuGet.config reference
diff --git a/documentation/manpages/sdk/dotnet-nuget-delete.1 b/documentation/manpages/sdk/dotnet-nuget-delete.1
index 6e27e290c315..45adc38506b7 100644
--- a/documentation/manpages/sdk/dotnet-nuget-delete.1
+++ b/documentation/manpages/sdk/dotnet-nuget-delete.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-delete" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-nuget-delete" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet nuget delete
.PP
diff --git a/documentation/manpages/sdk/dotnet-nuget-disable-source.1 b/documentation/manpages/sdk/dotnet-nuget-disable-source.1
index 6b4f05d62f07..2c7c2fdf4624 100644
--- a/documentation/manpages/sdk/dotnet-nuget-disable-source.1
+++ b/documentation/manpages/sdk/dotnet-nuget-disable-source.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-disable-source" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-nuget-disable-source" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet nuget disable source
.PP
diff --git a/documentation/manpages/sdk/dotnet-nuget-enable-source.1 b/documentation/manpages/sdk/dotnet-nuget-enable-source.1
index d2652bff07bd..8b7bcc2bf44d 100644
--- a/documentation/manpages/sdk/dotnet-nuget-enable-source.1
+++ b/documentation/manpages/sdk/dotnet-nuget-enable-source.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-enable-source" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-nuget-enable-source" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet nuget enable source
.PP
diff --git a/documentation/manpages/sdk/dotnet-nuget-list-source.1 b/documentation/manpages/sdk/dotnet-nuget-list-source.1
index 23136dca18b9..870726a5435a 100644
--- a/documentation/manpages/sdk/dotnet-nuget-list-source.1
+++ b/documentation/manpages/sdk/dotnet-nuget-list-source.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-list-source" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-nuget-list-source" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet nuget list source
.PP
diff --git a/documentation/manpages/sdk/dotnet-nuget-locals.1 b/documentation/manpages/sdk/dotnet-nuget-locals.1
index 2d1f4061ea8f..47cb350efc2d 100644
--- a/documentation/manpages/sdk/dotnet-nuget-locals.1
+++ b/documentation/manpages/sdk/dotnet-nuget-locals.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-locals" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-nuget-locals" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet nuget locals
.PP
diff --git a/documentation/manpages/sdk/dotnet-nuget-push.1 b/documentation/manpages/sdk/dotnet-nuget-push.1
index 48a4919393ac..4e5bdb975388 100644
--- a/documentation/manpages/sdk/dotnet-nuget-push.1
+++ b/documentation/manpages/sdk/dotnet-nuget-push.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-push" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-nuget-push" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet nuget push
.PP
diff --git a/documentation/manpages/sdk/dotnet-nuget-remove-source.1 b/documentation/manpages/sdk/dotnet-nuget-remove-source.1
index 03dd9e0d5287..1e5c4e995d50 100644
--- a/documentation/manpages/sdk/dotnet-nuget-remove-source.1
+++ b/documentation/manpages/sdk/dotnet-nuget-remove-source.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-remove-source" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-nuget-remove-source" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet nuget remove source
.PP
diff --git a/documentation/manpages/sdk/dotnet-nuget-sign.1 b/documentation/manpages/sdk/dotnet-nuget-sign.1
index d5537f3da9fa..5b4634611856 100644
--- a/documentation/manpages/sdk/dotnet-nuget-sign.1
+++ b/documentation/manpages/sdk/dotnet-nuget-sign.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-sign" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-nuget-sign" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet nuget sign
.PP
@@ -105,7 +105,12 @@ If there are multiple matching certificates in the result, or no matching certif
\f[B]\f[VB]--certificate-fingerprint \f[B]\f[R]
.RS 2
.PP
-SHA-1 fingerprint of the certificate used to search a local certificate store for the certificate.
+Specifies the fingerprint of the certificate used to search a local certificate store for the certificate.
+.PP
+Starting with .NET 9, this option can be used to specify the SHA-1, SHA-256, SHA-384, or SHA-512 fingerprint of the certificate.
+However, a \f[V]NU3043\f[R] warning is raised when a SHA-1 certificate fingerprint is used because it is no longer considered secure.
+.PP
+All the previous versions of the .NET SDK continue to accept only SHA-1 certificate fingerprint.
.RE
.IP \[bu] 2
\f[B]\f[VB]--certificate-password \f[B]\f[R]
diff --git a/documentation/manpages/sdk/dotnet-nuget-trust.1 b/documentation/manpages/sdk/dotnet-nuget-trust.1
index ce123cf49db7..49601dc3efd2 100644
--- a/documentation/manpages/sdk/dotnet-nuget-trust.1
+++ b/documentation/manpages/sdk/dotnet-nuget-trust.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-trust" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-nuget-trust" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet nuget trust
.PP
diff --git a/documentation/manpages/sdk/dotnet-nuget-update-source.1 b/documentation/manpages/sdk/dotnet-nuget-update-source.1
index 61731576a932..add727b0b109 100644
--- a/documentation/manpages/sdk/dotnet-nuget-update-source.1
+++ b/documentation/manpages/sdk/dotnet-nuget-update-source.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-update-source" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-nuget-update-source" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet nuget update source
.PP
@@ -22,6 +22,10 @@
.SH NAME
.PP
dotnet-nuget-update-source - Update a NuGet source.
+.RS
+.PP
+Use package sources that you trust.
+.RE
.SH SYNOPSIS
.IP
.nf
@@ -59,6 +63,11 @@ For more information, see Common NuGet Configurations.
.PP
Password to be used when connecting to an authenticated source.
.RE
+.RS
+.PP
+Be aware that encrypted passwords are only supported on Windows.
+Moreover, they can only be decrypted on the same machine and by the same user who originally encrypted them.
+.RE
.IP \[bu] 2
\f[B]\f[VB]-s|--source \f[B]\f[R]
.RS 2
@@ -71,6 +80,11 @@ Path to the package source.
.PP
Enables storing portable package source credentials by disabling password encryption.
.RE
+.RS
+.PP
+[!WARNING] Storing passwords in clear text is strongly discouraged.
+For more information on managing credentials securely, refer to the security best practices for consuming packages from private feeds.
+.RE
.IP \[bu] 2
\f[B]\f[VB]-u|--username \f[B]\f[R]
.RS 2
@@ -98,6 +112,8 @@ dotnet nuget update source mySource --source c:\[rs]packages
.RE
.SH SEE ALSO
.IP \[bu] 2
+Security best practices for managing package source credentials
+.IP \[bu] 2
Package source sections in NuGet.config files
.IP \[bu] 2
sources command (nuget.exe)
diff --git a/documentation/manpages/sdk/dotnet-nuget-verify.1 b/documentation/manpages/sdk/dotnet-nuget-verify.1
index 9c44b5d070a4..687e51c957dd 100644
--- a/documentation/manpages/sdk/dotnet-nuget-verify.1
+++ b/documentation/manpages/sdk/dotnet-nuget-verify.1
@@ -15,7 +15,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-nuget-verify" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-nuget-verify" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet nuget verify
.PP
diff --git a/documentation/manpages/sdk/dotnet-nuget-why.1 b/documentation/manpages/sdk/dotnet-nuget-why.1
new file mode 100644
index 000000000000..62fabfe11b86
--- /dev/null
+++ b/documentation/manpages/sdk/dotnet-nuget-why.1
@@ -0,0 +1,103 @@
+.\" 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-nuget-why" "1" "2024-10-02" "" ".NET Documentation"
+.hy
+.SH dotnet nuget why
+.PP
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 8.0.4xx SDK and later versions
+.SH NAME
+.PP
+dotnet-nuget-why - Shows the dependency graph for a particular package.
+.SH SYNOPSIS
+.IP
+.nf
+\f[C]
+dotnet nuget why [-f|--framework ]
+
+dotnet nuget why -h|--help
+\f[R]
+.fi
+.SH DESCRIPTION
+.PP
+The \f[V]dotnet nuget why\f[R] command shows the dependency graph for a particular package for a given project or solution.
+.PP
+Starting from the .NET 9 SDK, it\[cq]s possible to pass a NuGet assets file in place of the project file, in order to use the command with projects that can\[cq]t be restored with the .NET SDK.
+First, restore the project in Visual Studio, or \f[V]msbuild.exe\f[R].
+By default the assets file is in the project\[cq]s \f[V]obj\[rs]\f[R] directory, but you can find the location with \f[V]msbuild.exe path\[rs]to\[rs]project.proj -getProperty:ProjectAssetsFile\f[R].
+Finally, run \f[V]dotnet nuget why path\[rs]to\[rs]project.assets.json SomePackage\f[R].
+.SH ARGUMENTS
+.IP \[bu] 2
+\f[B]\f[VB]PROJECT|SOLUTION\f[B]\f[R]
+.RS 2
+.PP
+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.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]PACKAGE\f[B]\f[R]
+.RS 2
+.PP
+The package name to look up in the dependency graph.
+.RE
+.SH OPTIONS
+.IP \[bu] 2
+\f[B]\f[VB]-f|--framework \f[B]\f[R]
+.RS 2
+.PP
+The target framework(s) for which dependency graphs are shown.
+You can pass multiple \f[V]--framework\f[R] options to see graphs for more than one framework.
+.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
+Show the dependency graph for the package \[lq]System.Text.Json\[rq] for a given solution:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet nuget why .\[rs]DotnetNuGetWhyPackage.sln 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:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet nuget why .\[rs]DotnetNuGetWhyPackage.csproj System.Text.Json
+\f[R]
+.fi
+.RE
+.IP \[bu] 2
+Show the dependency graph for a specific target framework:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet nuget why .\[rs]DotnetNuGetWhyPackage.csproj 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 3e79b0ea945c..a6ec0706f6cd 100644
--- a/documentation/manpages/sdk/dotnet-pack.1
+++ b/documentation/manpages/sdk/dotnet-pack.1
@@ -15,7 +15,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-pack" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-pack" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet pack
.PP
@@ -27,11 +27,12 @@ dotnet-pack - Packs the code into a NuGet package.
.IP
.nf
\f[C]
-dotnet pack [|] [-c|--configuration ]
- [--force] [--include-source] [--include-symbols] [--interactive]
+dotnet pack [|] [--artifacts-path ]
+ [-c|--configuration ] [--force]
+ [--include-source] [--include-symbols] [--interactive]
[--no-build] [--no-dependencies] [--no-restore] [--nologo]
[-o|--output ] [--runtime ]
- [-s|--serviceable] [-v|--verbosity ]
+ [-s|--serviceable] [--tl:[auto|on|off]] [-v|--verbosity ]
[--version-suffix ]
dotnet pack -h|--help
@@ -94,11 +95,22 @@ It\[cq]s either a path to a csproj, vbproj, or fsproj file, or to a solution fil
If not specified, the command searches the current directory for a project or solution file.
.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]-c|--configuration \f[B]\f[R]
.RS 2
.PP
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.
+If you\[cq]re developing with the .NET 8 SDK or a later version, the command uses the \f[V]Release\f[R] configuration by default for projects whose TargetFramework is set to \f[V]net8.0\f[R] or a later version.
+The default build configuration is \f[V]Debug\f[R] for earlier versions of the SDK and for earlier target frameworks.
+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]
@@ -187,6 +199,34 @@ Sets the serviceable flag in the package.
For more information, see .NET Blog: .NET Framework 4.5.1 Supports Microsoft Security Updates for .NET NuGet Libraries (https://aka.ms/nupkgservicing).
.RE
.IP \[bu] 2
+\f[B]\f[VB]--tl:[auto|on|off]\f[B]\f[R]
+.RS 2
+.PP
+Specifies whether the \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
+The 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
@@ -314,12 +354,12 @@ dotnet pack -p:TargetFrameworks=net45
.fi
.RE
.IP \[bu] 2
-Pack the project and use a specific runtime (Windows 10) for the restore operation:
+Pack the project and use a specific runtime (Windows) for the restore operation:
.RS 2
.IP
.nf
\f[C]
-dotnet pack --runtime win10-x64
+dotnet pack --runtime win-x64
\f[R]
.fi
.RE
diff --git a/documentation/manpages/sdk/dotnet-package-search.1 b/documentation/manpages/sdk/dotnet-package-search.1
new file mode 100644
index 000000000000..f61078bdb0b4
--- /dev/null
+++ b/documentation/manpages/sdk/dotnet-package-search.1
@@ -0,0 +1,242 @@
+.\" 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-package-search" "1" "2024-10-02" "" ".NET Documentation"
+.hy
+.SH dotnet package search
+.PP
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 8.0.2xx SDK and later versions
+.SH NAME
+.PP
+dotnet-package-search - Searches for a NuGet package.
+.SH SYNOPSIS
+.IP
+.nf
+\f[C]
+dotnet package search [--configfile ] [--exact-match] [--format ]
+ [--interactive] [--prerelease] [--skip ] [--source ] [--take ]
+ [--verbosity ]
+
+dotnet package search -h|--help
+\f[R]
+.fi
+.SH DESCRIPTION
+.PP
+The \f[V]dotnet package search\f[R] command searches for a NuGet package.
+.SH ARGUMENTS
+.IP \[bu] 2
+\f[B]\f[VB]search terms\f[B]\f[R]
+.RS 2
+.PP
+Specifies the search term to filter results.
+Use this argument to search for packages matching the provided query.
+Example: \f[V]dotnet package search json\f[R].
+.RE
+.SH OPTIONS
+.IP \[bu] 2
+\f[B]\f[VB]--configfile\f[B]\f[R]
+.RS 2
+.PP
+The NuGet configuration file.
+If specified, only the settings from this file will be used.
+If not specified, the hierarchy of configuration files from the current directory will be used.
+For more information, see Common NuGet configurations.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]--exact-match\f[B]\f[R]
+.RS 2
+.PP
+This option narrows the search to only include packages whose IDs exactly match the specified search term, effectively filtering out any partial matches.
+It provides a concise list of all available versions for the identified package.
+Causes \f[V]--take\f[R] and \f[V]--skip\f[R] options to be ignored.
+Utilize this option to display all available versions of a specified package.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]--format\f[B]\f[R]
+.RS 2
+.PP
+The format options are \f[V]table\f[R] and \f[V]json\f[R].
+The default is \f[V]table\f[R].
+.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]--prerelease\f[B]\f[R]
+.RS 2
+.PP
+Allow prerelease packages to be shown.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]--skip\f[B]\f[R]
+.RS 2
+.PP
+The number of results to skip, for pagination.
+The default value is 0.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]--source \f[B]\f[R]
+.RS 2
+.PP
+The package source to search.
+You can pass multiple \[en]source options to search multiple package sources.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]--take\f[B]\f[R]
+.RS 2
+.PP
+The number of results to return.
+The default value is 20.
+.RE
+.IP \[bu] 2
+\f[B]\f[VB]--verbosity\f[B]\f[R]
+.RS 2
+.PP
+Display this amount of details in the output: \f[V]normal\f[R], \f[V]minimal\f[R], or \f[V]detailed\f[R].
+The default is \f[V]normal\f[R].
+.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
+Search NuGet.org for packages that match the search term \[lq]Newtonsoft.Json,\[rq] and render the output as a table with up to 20 packages:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet package search Newtonsoft.Json --source https://api.nuget.org/v3/index.json
+\f[R]
+.fi
+.IP
+.nf
+\f[C]
+ Source: https://api.nuget.org/v3/index.json
+ | Package ID | Latest Version | Owners | Downloads |
+ |---------------------------------------------|----------------|--------|-----------------|
+ | Newtonsoft.Json | 13.0.3 | | 3,829,822,911 |
+ |---------------------------------------------|----------------|--------|-----------------|
+ | Newtonsoft.Json.Bson | 1.0.2 | | 554,641,545 |
+ |---------------------------------------------|----------------|--------|-----------------|
+ | Newtonsoft.Json.Schema | 3.0.15 | | 39,648,430 |
+ |---------------------------------------------|----------------|--------|-----------------|
+ | Microsoft.AspNetCore.Mvc.NewtonsoftJson | 7.0.12 | | 317,067,823 |
+ |---------------------------------------------|----------------|--------|-----------------|
+ ...
+\f[R]
+.fi
+.RE
+.IP \[bu] 2
+Search NuGet.org for packages that match the search term \[lq]Newtonsoft.Json,\[rq] and render the output as json.
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet package search Newtonsoft.Json --source https://api.nuget.org/v3/index.json --format json
+\f[R]
+.fi
+.IP
+.nf
+\f[C]
+ {
+ \[dq]version\[dq]: 2,
+ \[dq]problems\[dq]: [],
+ \[dq]searchResult\[dq]: [
+ {
+ \[dq]sourceName\[dq]: \[dq]https://api.nuget.org/v3/index.json\[dq],
+ \[dq]packages\[dq]: [
+ {
+ \[dq]id\[dq]: \[dq]Newtonsoft.Json\[dq],
+ \[dq]latestVersion\[dq]: \[dq]13.0.3\[dq],
+ \[dq]totalDownloads\[dq]: 4456137550,
+ \[dq]owners\[dq]: \[dq]dotnetfoundation, jamesnk, newtonsoft\[dq]
+ },
+ {
+ \[dq]id\[dq]: \[dq]Newtonsoft.Json.Bson\[dq],
+ \[dq]latestVersion\[dq]: \[dq]1.0.2\[dq],
+ \[dq]totalDownloads\[dq]: 655362732,
+ \[dq]owners\[dq]: \[dq]dotnetfoundation, jamesnk, newtonsoft\[dq]
+ },
+ {
+ \[dq]id\[dq]: \[dq]Newtonsoft.Json.Schema\[dq],
+ \[dq]latestVersion\[dq]: \[dq]3.0.15\[dq],
+ \[dq]totalDownloads\[dq]: 46062119,
+ \[dq]owners\[dq]: \[dq]jamesnk, newtonsoft\[dq]
+ },
+ {
+ \[dq]id\[dq]: \[dq]Microsoft.AspNetCore.Mvc.NewtonsoftJson\[dq],
+ \[dq]latestVersion\[dq]: \[dq]8.0.3\[dq],
+ \[dq]totalDownloads\[dq]: 372202749,
+ \[dq]owners\[dq]: \[dq]aspnet, dotnetframework, Microsoft\[dq]
+ },
+ {
+ \[dq]id\[dq]: \[dq]Newtonsoft.Json.Encryption\[dq],
+ \[dq]latestVersion\[dq]: \[dq]2.2.0\[dq],
+ \[dq]totalDownloads\[dq]: 113101,
+ \[dq]owners\[dq]: \[dq]simoncropp\[dq]
+ }
+ ]
+ }
+ ]
+ }
+\f[R]
+.fi
+.RE
+.IP \[bu] 2
+Search NuGet.org for packages using the search term \[lq]Newtonsoft.Json,\[rq] show only two results, and skip the first packages in the search result:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet package search Newtonsoft.Json --source https://api.nuget.org/v3/index.json --skip 1 --take 2
+\f[R]
+.fi
+.IP
+.nf
+\f[C]
+ Source: https://api.nuget.org/v3/index.json
+ | Package ID | Latest Version | Owners | Downloads |
+ |---------------------------------------------|----------------|--------|-----------------|
+ | Newtonsoft.Json.Bson | 1.0.2 | | 554,641,545 |
+ | Newtonsoft.Json.Schema | 3.0.15 | | 39,648,430 |
+\f[R]
+.fi
+.RE
+.IP \[bu] 2
+Search for packages that exactly match \[lq]Newtonsoft.Json\[rq] and list all available versions of it, ignoring any packages that contain \[lq]Newtonsoft.Json\[rq] as a part of their name or description but don\[cq]t match it exactly:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet package search Newtonsoft.Json --source https://api.nuget.org/v3/index.json --exact-match
+\f[R]
+.fi
+.IP
+.nf
+\f[C]
+ Source: https://api.nuget.org/v3/index.json
+ | Package ID | Version | Owners | Downloads |
+ |---------------------------------------------|---------|--------|-----------------|
+ | Newtonsoft.Json | 13.0.3 | | 3,829,822,911 |
+\f[R]
+.fi
+.RE
diff --git a/documentation/manpages/sdk/dotnet-publish.1 b/documentation/manpages/sdk/dotnet-publish.1
index bc7601dd03f8..858961897bc1 100644
--- a/documentation/manpages/sdk/dotnet-publish.1
+++ b/documentation/manpages/sdk/dotnet-publish.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-publish" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-publish" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet publish
.PP
@@ -27,13 +27,15 @@ dotnet-publish - Publishes the application and its dependencies to a folder for
.nf
\f[C]
dotnet publish [|] [-a|--arch ]
+ [--artifacts-path ]
[-c|--configuration ] [--disable-build-servers]
[-f|--framework ] [--force] [--interactive]
[--manifest ] [--no-build] [--no-dependencies]
[--no-restore] [--nologo] [-o|--output ]
[--os ] [-r|--runtime ]
[--sc|--self-contained [true|false]] [--no-self-contained]
- [-s|--source ] [--use-current-runtime, --ucr [true|false]]
+ [-s|--source ] [--tl:[auto|on|off]]
+ [--use-current-runtime, --ucr [true|false]]
[-v|--verbosity ] [--version-suffix ]
dotnet publish -h|--help
@@ -193,11 +195,22 @@ 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
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.
+If you\[cq]re developing with the .NET 8 SDK or a later version, the command uses the \f[V]Release\f[R] configuration by default for projects whose TargetFramework is set to \f[V]net8.0\f[R] or a later version.
+The default build configuration is \f[V]Debug\f[R] for earlier versions of the SDK and for earlier target frameworks.
+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]--disable-build-servers\f[B]\f[R]
@@ -359,13 +372,32 @@ For more information, see .NET application publishing and Publish .NET apps with
If you use this option, use \f[V]--self-contained\f[R] or \f[V]--no-self-contained\f[R] also.
.RE
.IP \[bu] 2
-\f[B]\f[VB]-v|--verbosity \f[B]\f[R]
+\f[B]\f[VB]--tl:[auto|on|off]\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].
-For more information, see .
+Specifies whether the \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
+The 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]--use-current-runtime, --ucr [true|false]\f[B]\f[R]
@@ -376,6 +408,15 @@ This happens implicitly with properties that require a \f[V]RuntimeIdentifier\f[
If the property is set to false, that implicit resolution will no longer occur.
.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].
+The default is \f[V]minimal\f[R].
+For more information, see .
+.RE
+.IP \[bu] 2
\f[B]\f[VB]--version-suffix \f[B]\f[R]
.RS 2
.PP
@@ -400,7 +441,7 @@ Create a self-contained executable for the project in the current directory, for
.IP
.nf
\f[C]
-dotnet publish --runtime osx.10.11-x64
+dotnet publish --runtime osx-x64
\f[R]
.fi
.PP
@@ -412,7 +453,7 @@ Create a framework-dependent executable for the project in the current directory
.IP
.nf
\f[C]
-dotnet publish --runtime osx.10.11-x64 --self-contained false
+dotnet publish --runtime osx-x64 --self-contained false
\f[R]
.fi
.PP
@@ -425,7 +466,7 @@ Publish the project in the current directory, for a specific runtime and target
.IP
.nf
\f[C]
-dotnet publish --framework netcoreapp3.1 --runtime osx.10.11-x64
+dotnet publish --framework net8.0 --runtime osx-x64
\f[R]
.fi
.RE
diff --git a/documentation/manpages/sdk/dotnet-remove-package.1 b/documentation/manpages/sdk/dotnet-remove-package.1
index dd1a66064f1b..a2c2bccb528a 100644
--- a/documentation/manpages/sdk/dotnet-remove-package.1
+++ b/documentation/manpages/sdk/dotnet-remove-package.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-remove-package" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-remove-package" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet remove package
.PP
diff --git a/documentation/manpages/sdk/dotnet-remove-reference.1 b/documentation/manpages/sdk/dotnet-remove-reference.1
index e02531e32e63..887dd48eb3f0 100644
--- a/documentation/manpages/sdk/dotnet-remove-reference.1
+++ b/documentation/manpages/sdk/dotnet-remove-reference.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-remove-reference" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-remove-reference" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet remove reference
.PP
diff --git a/documentation/manpages/sdk/dotnet-restore.1 b/documentation/manpages/sdk/dotnet-restore.1
index 0424884f827b..7930795c645d 100644
--- a/documentation/manpages/sdk/dotnet-restore.1
+++ b/documentation/manpages/sdk/dotnet-restore.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-restore" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-restore" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet restore
.PP
@@ -32,8 +32,8 @@ dotnet restore [] [--configfile ] [--disable-build-servers]
[--interactive] [--lock-file-path ] [--locked-mode]
[--no-cache] [--no-dependencies] [--packages ]
[-r|--runtime ] [-s|--source ]
- [--use-current-runtime, --ucr [true|false]] [--use-lock-file]
- [-v|--verbosity ]
+ [--tl:[auto|on|off]] [--use-current-runtime, --ucr [true|false]]
+ [--use-lock-file] [-v|--verbosity ]
dotnet restore -h|--help
\f[R]
@@ -134,6 +134,16 @@ Optional path to the project file to restore.
.RE
.SH OPTIONS
.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 x86\f[R] sets the RID to \f[V]win-x86\f[R].
+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]--configfile \f[B]\f[R]
.RS 2
.PP
@@ -237,6 +247,34 @@ 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]--tl:[auto|on|off]\f[B]\f[R]
+.RS 2
+.PP
+Specifies whether the \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
+The 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]--use-current-runtime, --ucr [true|false]\f[B]\f[R]
.RS 2
.PP
@@ -312,11 +350,12 @@ dotnet restore --verbosity detailed
.RE
.SS Audit for security vulnerabilities
.PP
-Starting in .NET 8, you can opt into NuGet security auditing for \f[V]dotnet restore\f[R].
+Starting in .NET 8, \f[V]dotnet restore\f[R] includes NuGet security auditing.
This auditing produces a report of security vulnerabilities with the affected package name, the severity of the vulnerability, and a link to the advisory for more details.
.PP
-To opt into security auditing, set the \f[V]\f[R] MSBuild property to \f[V]true\f[R] in your project file.
-Additionally, to retrieve the known vulnerability dataset, ensure that you have the NuGet.org central registry defined as one of your package sources:
+To opt out of the security auditing, set the \f[V]\f[R] MSBuild property to \f[V]false\f[R] in your project file.
+.PP
+To retrieve the known vulnerability dataset, ensure that you have the NuGet.org central registry defined as one of your package sources:
.IP
.nf
\f[C]
@@ -329,3 +368,9 @@ Additionally, to retrieve the known vulnerability dataset, ensure that you have
You can configure the level at which auditing will fail by setting the \f[V]\f[R] MSBuild property.
Possible values are \f[V]low\f[R], \f[V]moderate\f[R], \f[V]high\f[R], and \f[V]critical\f[R].
For example if you only want to see moderate, high, and critical advisories, you can set the property to \f[V]moderate\f[R].
+.PP
+Starting in .NET 9, NuGet audits both \f[I]direct\f[R] and \f[I]transitive\f[R] package references, by default.
+In .NET 8, only \f[I]direct\f[R] package references are audited.
+You can change the mode by setting the \f[V]\f[R] MSBuild property to \f[V]direct\f[R] or \f[V]all\f[R].
+.PP
+For more information, see Auditing package dependencies for security vulnerabilities.
diff --git a/documentation/manpages/sdk/dotnet-run.1 b/documentation/manpages/sdk/dotnet-run.1
index f2d444d68fca..c43572321200 100644
--- a/documentation/manpages/sdk/dotnet-run.1
+++ b/documentation/manpages/sdk/dotnet-run.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-run" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-run" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet run
.PP
@@ -31,7 +31,8 @@ dotnet run [-a|--arch ] [-c|--configuration ]
[--launch-profile ] [--no-build]
[--no-dependencies] [--no-launch-profile] [--no-restore]
[--os ] [--project ] [-r|--runtime ]
- [-v|--verbosity ] [[--] [application arguments]]
+ [--tl:[auto|on|off]] [-v|--verbosity ]
+ [[--] [application arguments]]
dotnet run -h|--help
\f[R]
@@ -228,6 +229,34 @@ 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]--tl:[auto|on|off]\f[B]\f[R]
+.RS 2
+.PP
+Specifies whether the \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
+The 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
diff --git a/documentation/manpages/sdk/dotnet-sdk-check.1 b/documentation/manpages/sdk/dotnet-sdk-check.1
index 9ad18fa199e8..4c70541167ef 100644
--- a/documentation/manpages/sdk/dotnet-sdk-check.1
+++ b/documentation/manpages/sdk/dotnet-sdk-check.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-sdk-check" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-sdk-check" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet sdk check
.PP
diff --git a/documentation/manpages/sdk/dotnet-sln.1 b/documentation/manpages/sdk/dotnet-sln.1
index 3061cc3fa0e5..7339bb6dec0d 100644
--- a/documentation/manpages/sdk/dotnet-sln.1
+++ b/documentation/manpages/sdk/dotnet-sln.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-sln" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-sln" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet sln
.PP
diff --git a/documentation/manpages/sdk/dotnet-store.1 b/documentation/manpages/sdk/dotnet-store.1
index 71118ee254e0..f31193ac01b7 100644
--- a/documentation/manpages/sdk/dotnet-store.1
+++ b/documentation/manpages/sdk/dotnet-store.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-store" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-store" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet store
.PP
diff --git a/documentation/manpages/sdk/dotnet-test.1 b/documentation/manpages/sdk/dotnet-test.1
index 049753cd67de..fa54b6589e93 100644
--- a/documentation/manpages/sdk/dotnet-test.1
+++ b/documentation/manpages/sdk/dotnet-test.1
@@ -15,7 +15,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-test" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-test" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet test
.PP
@@ -28,8 +28,9 @@ dotnet-test - .NET test driver used to execute unit tests.
.nf
\f[C]
dotnet test [ | | | | ]
- [--test-adapter-path ]
+ [--test-adapter-path ]
[-a|--arch ]
+ [--artifacts-path ]
[--blame]
[--blame-crash]
[--blame-crash-dump-type ]
@@ -64,12 +65,22 @@ dotnet test -h|--help
.SH DESCRIPTION
.PP
The \f[V]dotnet test\f[R] command is used to execute unit tests in a given solution.
-The \f[V]dotnet test\f[R] command builds the solution and runs a test host application for each test project in the solution.
+The \f[V]dotnet test\f[R] command builds the solution and runs a test host application for each test project in the solution using \f[V]VSTest\f[R].
The test host executes tests in the given project using a test framework, for example: MSTest, NUnit, or xUnit, and reports the success or failure of each test.
If all tests are successful, the test runner returns 0 as an exit code; otherwise if any test fails, it returns 1.
+.RS
+.PP
+\f[V]dotnet test\f[R] was originally designed to support only \f[V]VSTest\f[R]-based test projects.
+Recent versions of the test frameworks are adding support for Microsoft.Testing.Platform.
+This alternative test platform is more lightweight and faster than \f[V]VSTest\f[R] and supports \f[V]dotnet test\f[R] with different command line options.
+For more information, see Microsoft.Testing.Platform.
+.RE
.PP
For multi-targeted projects, tests are run for each targeted framework.
The test host and the unit test framework are packaged as NuGet packages and are restored as ordinary dependencies for the project.
+Starting with the .NET 9 SDK, these tests are run in parallel by default.
+To disable parallel execution, set the \f[V]TestTfmsInParallel\f[R] MSBuild property to \f[V]false\f[R].
+For more information, see Run tests in parallel and the example command line later in this article.
.PP
Test projects specify the test runner using an ordinary \f[V]\f[R] element, as seen in the following sample project file:
.PP
@@ -116,6 +127,11 @@ Starting in .NET 7: switch \f[V]-a\f[R] to alias \f[V]--arch\f[R] instead of \f[
.IP \[bu] 2
Starting in .NET 7: switch \f[V]-r\f[R] to alias \f[V]--runtime\f[R] instead of \f[V]--results-directory\f[R]
.RE
+.RS
+.PP
+[!WARNING] When using \f[V]Microsoft.Testing.Platform\f[R], please refer to dotnet test integration for the supported options.
+As a rule of thumbs, every option non-related to testing is supported while every testing-related option is not supported as-is.
+.RE
.IP \[bu] 2
\f[B]\f[VB]--test-adapter-path \f[B]\f[R]
.RS 2
@@ -137,6 +153,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]--blame\f[B]\f[R]
.RS 2
.PP
@@ -380,7 +404,7 @@ For more information, see the following resources:
.IP \[bu] 2
Configure unit tests by using a \f[V].runsettings\f[R] file.
.IP \[bu] 2
-Configure a test run (https://github.com/Microsoft/vstest-docs/blob/main/docs/configure.md)
+Configure a test run (https://github.com/microsoft/vstest/blob/main/docs/configure.md)
.RE
.IP \[bu] 2
\f[B]\f[VB]-t|--list-tests\f[B]\f[R]
@@ -544,7 +568,7 @@ Run the tests in the \f[V]test1\f[R] project, providing the \f[V]-bl\f[R] (binar
.IP
.nf
\f[C]
-dotnet test \[ti]/projects/test1/test1.csproj -bl
+dotnet test \[ti]/projects/test1/test1.csproj -bl
\f[R]
.fi
.RE
@@ -557,6 +581,17 @@ Run the tests in the \f[V]test1\f[R] project, setting the MSBuild \f[V]DefineCon
dotnet test \[ti]/projects/test1/test1.csproj -p:DefineConstants=\[dq]DEV\[dq]
\f[R]
.fi
+.PP
+.RE
+.IP \[bu] 2
+Run the tests in the \f[V]test1\f[R] project, setting the MSBuild \f[V]TestTfmsInParallel\f[R] property to \f[V]false\f[R]:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet test \[ti]/projects/test1/test1.csproj -p:TestTfmsInParallel=false
+\f[R]
+.fi
.RE
.SS Filter option details
.PP
diff --git a/documentation/manpages/sdk/dotnet-tool-install.1 b/documentation/manpages/sdk/dotnet-tool-install.1
index bba2f1319ad2..fa3fda3d8bc5 100644
--- a/documentation/manpages/sdk/dotnet-tool-install.1
+++ b/documentation/manpages/sdk/dotnet-tool-install.1
@@ -15,7 +15,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-tool-install" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-tool-install" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet tool install
.PP
@@ -28,7 +28,7 @@ dotnet-tool-install - Installs the specified .NET tool on your machine.
.nf
\f[C]
dotnet tool install -g|--global
- [-a|--arch ]
+ [--allow-downgrade] [-a|--arch ]
[--add-source ] [--configfile ] [--disable-parallel]
[--framework ] [--ignore-failed-sources] [--interactive]
[--no-cache] [--prerelease]
@@ -36,7 +36,7 @@ dotnet tool install -g|--global
[--version ]
dotnet tool install --tool-path
- [-a|--arch ]
+ [--allow-downgrade] [-a|--arch ]
[--add-source ] [--configfile ] [--disable-parallel]
[--framework ] [--ignore-failed-sources] [--interactive]
[--no-cache] [--prerelease]
@@ -44,7 +44,7 @@ dotnet tool install --tool-path
[--version ]
dotnet tool install [--local]
- [-a|--arch ]
+ [--allow-downgrade] [-a|--arch ]
[--add-source ] [--configfile ]
[--create-manifest-if-needed] [--disable-parallel]
[--framework ] [--ignore-failed-sources] [--interactive]
@@ -92,9 +92,16 @@ T}
.TE
.PP
Executables are generated in these folders for each globally installed tool, although the actual tool binaries are nested deep into the sibling \f[V].store\f[R] directory.
+.RS
+.PP
+On Linux after installing a command-line tool with \f[V]dotnet tool\f[R], the tool can be executed only from the \f[V]$HOME/.dotnet/tools\f[R] path.
+To make the tool executable from any directory, update the \f[V]PATH\f[R] environment variable.
+To make the updated \f[V]PATH\f[R] environment variable permanent in your shell, update your shell settings.
+For \f[V]Bash\f[R], this is the \f[V]$HOME/.bashrc\f[R] file.
+.RE
.SS \f[V]--tool-path\f[R] tools
.PP
-Local tools with explicit tool paths are stored wherever you specified the \f[V]--tool-path\f[R] parameter to point to.
+Tools with explicit tool paths are stored wherever you specified the \f[V]--tool-path\f[R] parameter to point to.
They\[cq]re stored in the same way as global tools: an executable binary with the actual binaries in a sibling \f[V].store\f[R] directory.
.SS Local tools
.PP
@@ -120,6 +127,13 @@ Name/ID of the NuGet package that contains the .NET tool to install.
.RE
.SH OPTIONS
.IP \[bu] 2
+\f[B]\f[VB]--allow-downgrade\f[B]\f[R]
+.RS 2
+.PP
+Allow package downgrade when installing or updating a .NET tool package.
+Suppresses the warning, \[lq]The requested version x.x.x is lower than existing version x.x.x.\[rq]
+.RE
+.IP \[bu] 2
\f[B]\f[VB]-a|--arch \f[B]\f[R]
.RS 2
.PP
@@ -150,6 +164,7 @@ For more information, see Common NuGet Configurations.
.RS 2
.PP
Applies to local tools.
+Available starting with .NET 8 SDK.
To find a manifest, the search algorithm searches up the directory tree for \f[V]dotnet-tools.json\f[R] or a \f[V].config\f[R] folder that contains a \f[V]dotnet-tools.json\f[R] file.
.PP
If a tool-manifest can\[cq]t be found and the \f[V]--create-manifest-if-needed\f[R] option is set to false, the \f[V]CannotFindAManifestFile\f[R] error occurs.
@@ -160,10 +175,12 @@ It chooses a folder for the manifest as follows:
Walk up the directory tree searching for a directory that has a \f[V].git\f[R] subfolder.
If one is found, create the manifest in that directory.
.IP \[bu] 2
-If the previous step doesn\[cq]t find a directory, walk up the directory tree searching for a directory that has a \f[V].sln/git\f[R] file.
+If the previous step doesn\[cq]t find a directory, walk up the directory tree searching for a directory that has a \f[V].sln\f[R] or \f[V].git\f[R] file.
If one is found, create the manifest in that directory.
.IP \[bu] 2
If neither of the previous two steps finds a directory, create the manifest in the current working directory.
+.PP
+For more information on how manifests are located, see Install a local tool.
.RE
.IP \[bu] 2
\f[B]\f[VB]--disable-parallel\f[B]\f[R]
@@ -254,6 +271,9 @@ For more information, see .
The version of the tool to install.
By default, the latest stable package version is installed.
Use this option to install preview or older versions of the tool.
+.PP
+Starting with .NET 8.0, \f[V]--version Major.Minor.Patch\f[R] refers to a specific major/minor/patch version, including unlisted versions.
+To get the latest version of a certain major/minor version instead, use \f[V]--version Major.Minor.*\f[R].
.RE
.SH EXAMPLES
.IP \[bu] 2
@@ -286,6 +306,13 @@ Installs version 2.0.0 of dotnetsay (https://www.nuget.org/packages/dotnetsay/)
.PP
Installs dotnetsay (https://www.nuget.org/packages/dotnetsay/) as a local tool for the current directory.
.RE
+.IP \[bu] 2
+\f[B]\f[VB]dotnet tool install -g --verbosity minimal\f[B]\f[R]
+.RS 2
+.PP
+Installs dotnetsay (https://www.nuget.org/packages/dotnetsay/) as a global tool with the verbosity of minimal.
+The default verbosity for global tool is quiet.
+.RE
.SH SEE ALSO
.IP \[bu] 2
\&.NET tools
diff --git a/documentation/manpages/sdk/dotnet-tool-list.1 b/documentation/manpages/sdk/dotnet-tool-list.1
index 4d892b2e1c90..7f6c50684e34 100644
--- a/documentation/manpages/sdk/dotnet-tool-list.1
+++ b/documentation/manpages/sdk/dotnet-tool-list.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-tool-list" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-tool-list" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet tool list
.PP
@@ -60,7 +60,8 @@ To list a specific tool, use the optional \f[V]PACKAGE_ID\f[R] argument.
Lists the tool that has the supplied package ID if the tool is installed.
Can be used in conjunction with options.
Provides a way to check if a specific tool was installed.
-The command returns 1 if no tool with the specified package ID is found; returns 0 otherwise.
+If no tool with the specified package ID is found, the command lists headings with no detail rows.
+The command always returns 0.
.RE
.SH OPTIONS
.IP \[bu] 2
diff --git a/documentation/manpages/sdk/dotnet-tool-restore.1 b/documentation/manpages/sdk/dotnet-tool-restore.1
index fa7dff98877f..0ab2914c30d3 100644
--- a/documentation/manpages/sdk/dotnet-tool-restore.1
+++ b/documentation/manpages/sdk/dotnet-tool-restore.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-tool-restore" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-tool-restore" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet tool restore
.PP
diff --git a/documentation/manpages/sdk/dotnet-tool-run.1 b/documentation/manpages/sdk/dotnet-tool-run.1
index 7f40c7ed2a87..94138a8bc808 100644
--- a/documentation/manpages/sdk/dotnet-tool-run.1
+++ b/documentation/manpages/sdk/dotnet-tool-run.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-tool-run" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-tool-run" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet tool run
.PP
diff --git a/documentation/manpages/sdk/dotnet-tool-search.1 b/documentation/manpages/sdk/dotnet-tool-search.1
index c2d4d0e5af6c..44c37c46ad96 100644
--- a/documentation/manpages/sdk/dotnet-tool-search.1
+++ b/documentation/manpages/sdk/dotnet-tool-search.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-tool-search" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-tool-search" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet tool search
.PP
diff --git a/documentation/manpages/sdk/dotnet-tool-uninstall.1 b/documentation/manpages/sdk/dotnet-tool-uninstall.1
index 4ed65d5bedfc..2d81afcb0a71 100644
--- a/documentation/manpages/sdk/dotnet-tool-uninstall.1
+++ b/documentation/manpages/sdk/dotnet-tool-uninstall.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-tool-uninstall" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-tool-uninstall" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet tool uninstall
.PP
diff --git a/documentation/manpages/sdk/dotnet-tool-update.1 b/documentation/manpages/sdk/dotnet-tool-update.1
index f677365fa8c5..36a3769fecdd 100644
--- a/documentation/manpages/sdk/dotnet-tool-update.1
+++ b/documentation/manpages/sdk/dotnet-tool-update.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-tool-update" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-tool-update" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet tool update
.PP
@@ -27,21 +27,24 @@ dotnet-tool-update - Updates the specified .NET tool on your machine.
.nf
\f[C]
dotnet tool update -g|--global
- [--add-source ] [--configfile ]
+ [--add-source ] [--allow-downgrade]
+ [--configfile ]
[--disable-parallel] [--framework ]
[--ignore-failed-sources] [--interactive]
[--no-cache] [--prerelease]
[-v|--verbosity ] [--version ]
dotnet tool update --tool-path
- [--add-source ] [--configfile ]
+ [--add-source ] [--allow-downgrade]
+ [--configfile ]
[--disable-parallel] [--framework ]
[--ignore-failed-sources] [--interactive]
[--no-cache] [--prerelease]
[-v|--verbosity ] [--version ]
dotnet tool update --local
- [--add-source ] [--configfile ]
+ [--add-source ] [--allow-downgrade]
+ [--configfile ]
[--disable-parallel] [--framework ]
[--ignore-failed-sources] [--interactive]
[--no-cache] [--prerelease]
@@ -81,6 +84,13 @@ If the same package and version is in multiple feeds, the fastest feed wins.
For more information, see What happens when a NuGet package is installed?.
.RE
.IP \[bu] 2
+\f[B]\f[VB]--allow-downgrade\f[B]\f[R]
+.RS 2
+.PP
+Allow package downgrade when installing or updating a .NET tool package.
+Suppresses the warning, \[lq]The requested version x.x.x is lower than existing version x.x.x.\[rq]
+.RE
+.IP \[bu] 2
\f[B]\f[VB]--configfile \f[B]\f[R]
.RS 2
.PP
@@ -176,6 +186,9 @@ For more information, see .
.PP
The version range of the tool package to update to.
This cannot be used to downgrade versions, you must \f[V]uninstall\f[R] newer versions first.
+.PP
+Starting in .NET 8.0, \f[V]--version Major.Minor.Patch\f[R] refers to a specific major.minor.patch version, including unlisted versions.
+To get the latest version of a certain major.minor version instead, use \f[V]--version Major.Minor.*\f[R].
.RE
.SH EXAMPLES
.IP \[bu] 2
diff --git a/documentation/manpages/sdk/dotnet-vstest.1 b/documentation/manpages/sdk/dotnet-vstest.1
index e5f6a27f8dc8..cbba97c3df08 100644
--- a/documentation/manpages/sdk/dotnet-vstest.1
+++ b/documentation/manpages/sdk/dotnet-vstest.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-vstest" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-vstest" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet vstest
.PP
diff --git a/documentation/manpages/sdk/dotnet-watch.1 b/documentation/manpages/sdk/dotnet-watch.1
index f4e30e873ce1..a97a81652a86 100644
--- a/documentation/manpages/sdk/dotnet-watch.1
+++ b/documentation/manpages/sdk/dotnet-watch.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-watch" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-watch" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet watch
.PP
@@ -74,15 +74,19 @@ As an alternative to disabling response compression, manually add the browser re
.fi
.SH ARGUMENTS
.IP \[bu] 2
-\f[B]\f[VB]command\f[B]\f[R]
+\f[B]\f[VB]\f[B]\f[R]
.RS 2
.PP
-\f[V]dotnet watch\f[R] can run any command that is dispatched via the \f[V]dotnet\f[R] executable, such as built-in CLI commands and global tools.
+In .NET 7 SDK and earlier, \f[V]dotnet watch\f[R] can run any command that is dispatched via the \f[V]dotnet\f[R] executable, such as built-in CLI commands and global tools.
If you can run \f[V]dotnet \f[R], you can run \f[V]dotnet watch \f[R].
+.PP
+In .NET 8 SDK and later, \f[V]dotnet watch\f[R] can run \f[V]dotnet run\f[R], \f[V]dotnet build\f[R], or \f[V]dotnet test\f[R].
+Specify \f[V]run\f[R], \f[V]build\f[R], or \f[V]test\f[R] for \f[V]\f[R].
+.PP
If the child command isn\[cq]t specified, the default is \f[V]run\f[R] for \f[V]dotnet run\f[R].
.RE
.IP \[bu] 2
-\f[B]\f[VB]forwarded arguments\f[B]\f[R]
+\f[B]\f[VB]\f[B]\f[R]
.RS 2
.PP
Arguments provided after a double dash (\f[V]--\f[R]) are passed to the child \f[V]dotnet\f[R] process.
diff --git a/documentation/manpages/sdk/dotnet-workload-config.1 b/documentation/manpages/sdk/dotnet-workload-config.1
new file mode 100644
index 000000000000..8432851fb340
--- /dev/null
+++ b/documentation/manpages/sdk/dotnet-workload-config.1
@@ -0,0 +1,73 @@
+.\" 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-workload-config" "1" "2024-10-02" "" ".NET Documentation"
+.hy
+.SH dotnet workload config
+.PP
+\f[B]This article applies to:\f[R] \[u2714]\[uFE0F] .NET 8.0.400 SDK and later versions
+.SH NAME
+.PP
+dotnet-workload-config - Enables or disables workload-set update mode.
+.SH SYNOPSIS
+.IP
+.nf
+\f[C]
+dotnet workload config
+[--update-mode [|]]
+
+dotnet workload config -?|-h|--help
+\f[R]
+.fi
+.SH DESCRIPTION
+.PP
+For more information about the \f[V]dotnet workload config\f[R] command, see .NET SDK workload sets.
+.SH OPTIONS
+.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]--update-mode [|]\f[B]\f[R]
+.RS 2
+.PP
+Controls whether updates look for workload set versions or individual manifest versions.
+To display the current mode, specify this option without an argument.
+For more information, see .NET SDK workload sets.
+.RE
+.SH EXAMPLES
+.IP \[bu] 2
+Enable workload-set update mode:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet workload config --update-mode workload-set
+\f[R]
+.fi
+.RE
+.IP \[bu] 2
+Disable workload-set update mode:
+.RS 2
+.IP
+.nf
+\f[C]
+dotnet workload config --update-mode manifests
+\f[R]
+.fi
+.RE
diff --git a/documentation/manpages/sdk/dotnet-workload-install.1 b/documentation/manpages/sdk/dotnet-workload-install.1
index b2274d460ced..e3835fbd50de 100644
--- a/documentation/manpages/sdk/dotnet-workload-install.1
+++ b/documentation/manpages/sdk/dotnet-workload-install.1
@@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
-.TH "dotnet-workload-install" "1" "2023-10-25" "" ".NET Documentation"
+.TH "dotnet-workload-install" "1" "2024-10-02" "" ".NET Documentation"
.hy
.SH dotnet workload install
.PP
@@ -29,8 +29,8 @@ dotnet-workload-install - Installs optional workloads.
dotnet workload install ...
[--configfile ] [--disable-parallel]
[--ignore-failed-sources] [--include-previews] [--interactive]
- [--no-cache] [--skip-manifest-update]
- [--source ] [--temp-dir ] [-v|--verbosity ]
+ [--no-cache] [--skip-manifest-update] [--source ]
+ [--temp-dir ] [-v|--verbosity ] [--version