Skip to content

Commit ad04c77

Browse files
Merge pull request #48291 from dotnet/main
Merge main into live
2 parents 5658ede + 248dc83 commit ad04c77

File tree

3 files changed

+45
-6
lines changed

3 files changed

+45
-6
lines changed

docs/core/distribution-packaging.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ When installed, .NET consists of several components that are laid out as follows
1818
```
1919
{dotnet_root} (0) (*)
2020
├── dotnet (1)
21+
├── dnx (22)
2122
├── LICENSE.txt (8)
2223
├── ThirdPartyNotices.txt (8)
2324
├── host (*)
@@ -69,12 +70,15 @@ When installed, .NET consists of several components that are laid out as follows
6970
│ └── dotnet.1.gz (9)
7071
└── usr/bin
7172
└── dotnet (10)
73+
└── dnx (23)
7274
```
7375

7476
- (0) **{dotnet_root}** is a shared root for all .NET major and minor versions. If multiple runtimes are installed, they share the **{dotnet_root}** folder, for example, `{dotnet_root}/shared/Microsoft.NETCore.App/6.0.11` and `{dotnet_root}/shared/Microsoft.NETCore.App/7.0.0`. The name of the `{dotnet_root}` folder should be version agnostic, that is, simply `dotnet`.
7577

7678
- (1) **dotnet** The host (also known as the "muxer") has two distinct roles: activate a runtime to launch an application, and activate an SDK to dispatch commands to it. The host is a native executable (`dotnet.exe`).
7779

80+
- (22) **dnx** The `dnx` script is an executable shell script whose purpose is to foward along user commands to the `dotnet dnx` command inside an SDK. This functionality primarily exists to make acquiring and launching various kinds of .NET applications, like .NET Tools, easier for end-users. Think of it similarly to the `npx` command from Node. It is version-independent since most of the actual functionality of the `dnx` one-shot execution process is handled in the `dotnet` CLI implementation in the versioned SDK directory.
81+
7882
While there's a single host, most of the other components are in versioned directories (2,3,5,6). This means multiple versions can be present on the system since they're installed side by side.
7983

8084
- (2) **host/fxr/\<fxr version>** contains the framework resolution logic used by the host. The host uses the latest hostfxr that is installed. The hostfxr is responsible for selecting the appropriate runtime when executing a .NET application. For example, an application built for .NET 7.0.0 uses the 7.0.5 runtime when it's available. Similarly, hostfxr selects the appropriate SDK during development.
@@ -93,7 +97,7 @@ The **shared** folder contains frameworks. A shared framework provides a set of
9397

9498
- (8) **LICENSE.txt,ThirdPartyNotices.txt** are the .NET license and licenses of third-party libraries used in .NET, respectively.
9599

96-
- (9,10) **dotnet.1.gz, dotnet** `dotnet.1.gz` is the dotnet manual page. `dotnet` is a symlink to the dotnet host(1). These files are installed at well-known locations for system integration.
100+
- (9,10, 23) **dotnet.1.gz, dotnet** `dotnet.1.gz` is the dotnet manual page. `dotnet` is a symlink to the dotnet host(1). `dnx` is a symlink to the `dnx` shell script (22). These files are installed at well-known locations for system integration.
97101

98102
- (11,12) **Microsoft.NETCore.App.Ref,Microsoft.AspNetCore.App.Ref** describe the API of an `x.y` version of .NET and ASP.NET Core respectively. These packs are used when compiling for those target versions.
99103

@@ -171,7 +175,7 @@ The following lists the recommended packages:
171175
- `dotnet-host` - dependency
172176
- **Version:** \<runtime version>
173177
- **Example:** dotnet-host
174-
- **Contains:** (1),(8),(9),(10),(16)
178+
- **Contains:** (1),(8),(9),(10),(16),(22),(23)
175179

176180
- `dotnet-apphost-pack-[major].[minor]` - dependency
177181
- **Version:** \<runtime version>

docs/core/tools/dotnet-new-sdk-templates.md

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ title: .NET default templates for dotnet new
33
description: The information about dotnet new templates shipped with dotnet SDK.
44
ms.custom: updateeachrelease
55
no-loc: [Blazor, WebAssembly]
6-
ms.date: 02/21/2024
6+
ms.date: 08/29/2025
77
---
8-
# .NET default templates for dotnet new
8+
# Default templates for `dotnet new`
99

1010
When you install the [.NET SDK](https://dotnet.microsoft.com/download), you receive over a dozen built-in templates for creating projects and files, including console apps, class libraries, unit test projects, ASP.NET Core apps (including [Angular](https://angular.io/) and [React](https://reactjs.org/) projects), and configuration files. To list the built-in templates, run the `dotnet new list` command:
1111

@@ -19,7 +19,31 @@ dotnet new list
1919

2020
Each template may have additional options available. To show the additional options available for the template use the `--help` option with the template name argument, for example: `dotnet new console --help`.
2121
In case the template supports multiple languages, this command will show help for the template in the default language. By combining it with the `--language` option, you can see the help for other languages: `dotnet new console --help --language F#`.
22-
The templates that ship with the .NET SDK have the following additional options:
22+
The templates that ship with the .NET SDK have additional options that are described in the following sections.
23+
24+
## `buildprops`
25+
26+
Creates a *Directory.Build.props* file for customizing MSBuild properties for an entire folder tree. For more information, see [Customize your build](/visualstudio/msbuild/customize-your-build).
27+
28+
- **`--inherit`**
29+
30+
If specified, adds an Import element for the closest *Directory.Build.props* file in the parent directory hierarchy. By default, *Directory.Build.props* files don't inherit from parent directories, so enabling this option allows you to build up a hierarchy of customizations folder-by-folder.
31+
32+
- **`--use-artifacts`**
33+
34+
If specified, adds a property to enable the artifacts output layout. This is a common pattern for projects that produce build artifacts, such as NuGet packages, that are placed in a common folder structure. For more information, see [Artifacts output layout](../sdk/artifacts-output.md).
35+
36+
***
37+
38+
## `buildtargets`
39+
40+
Creates a *Directory.Build.targets* file for customizing MSBuild targets and tasks for an entire folder tree. For more information, see [Customize your build](/visualstudio/msbuild/customize-your-build).
41+
42+
- **`--inherit`**
43+
44+
If specified, adds an Import element for the closest *Directory.Build.targets* file in the parent directory hierarchy. By default, *Directory.Build.targets* files don't inherit from parent directories, so enabling this option allows you to build up a hierarchy of customizations folder-by-folder.
45+
46+
***
2347

2448
## `console`
2549

@@ -901,6 +925,15 @@ API Controller with or without read/write actions.
901925
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.
902926
For more information, see [global-json](global-json.md#rollforward).
903927

928+
## `sln`
929+
930+
Creates an empty solution file containing no projects.
931+
932+
> [!NOTE]
933+
> In .NET SDK 9.0.200 and later, this template supports a `--format` option to choose between `sln` and `slnx` formats. Starting with .NET 10, the default format is `slnx`.
934+
935+
***
936+
904937
## `editorconfig`
905938

906939
Creates an *.editorconfig* file for configuring code style preferences.

includes/templates.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ The following table shows the templates that come pre-installed with the .NET SD
3535
| NuGet Config | `nugetconfig` | | Config | 1.0 |
3636
| Dotnet local tool manifest file | `tool-manifest` | | Config | 3.0 |
3737
| Web Config | `webconfig` | | Config | 1.0 |
38-
| Solution File | `sln` | | Solution | 1.0 |
38+
| Directory.Build.props file | [`buildprops`](../docs/core/tools/dotnet-new-sdk-templates.md#buildprops) | | Config | 8.0.100 |
39+
| Directory.Build.targets file | [`buildtargets`](../docs/core/tools/dotnet-new-sdk-templates.md#buildtargets) | | Config | 8.0.100 |
40+
| Solution File | [`sln`](../docs/core/tools/dotnet-new-sdk-templates.md#sln) | | Solution | 1.0 |
3941
| Protocol Buffer File | [`proto`](../docs/core/tools/dotnet-new-sdk-templates.md#namespace) | | Web/gRPC | 3.0 |
4042
| EditorConfig file | [`editorconfig`](../docs/core/tools/dotnet-new-sdk-templates.md#editorconfig) | | Config | 6.0 |
4143

0 commit comments

Comments
 (0)