You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/core/distribution-packaging.md
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,6 +18,7 @@ When installed, .NET consists of several components that are laid out as follows
18
18
```
19
19
{dotnet_root} (0) (*)
20
20
├── dotnet (1)
21
+
├── dnx (22)
21
22
├── LICENSE.txt (8)
22
23
├── ThirdPartyNotices.txt (8)
23
24
├── host (*)
@@ -69,12 +70,15 @@ When installed, .NET consists of several components that are laid out as follows
69
70
│ └── dotnet.1.gz (9)
70
71
└── usr/bin
71
72
└── dotnet (10)
73
+
└── dnx (23)
72
74
```
73
75
74
76
- (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`.
75
77
76
78
- (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`).
77
79
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
+
78
82
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.
79
83
80
84
- (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
93
97
94
98
- (8) **LICENSE.txt,ThirdPartyNotices.txt** are the .NET license and licenses of third-party libraries used in .NET, respectively.
95
99
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.
97
101
98
102
- (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.
99
103
@@ -171,7 +175,7 @@ The following lists the recommended packages:
Copy file name to clipboardExpand all lines: docs/core/tools/dotnet-new-sdk-templates.md
+36-3Lines changed: 36 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,9 +3,9 @@ title: .NET default templates for dotnet new
3
3
description: The information about dotnet new templates shipped with dotnet SDK.
4
4
ms.custom: updateeachrelease
5
5
no-loc: [Blazor, WebAssembly]
6
-
ms.date: 02/21/2024
6
+
ms.date: 08/29/2025
7
7
---
8
-
# .NET default templates for dotnet new
8
+
# Default templates for `dotnet new`
9
9
10
10
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:
11
11
@@ -19,7 +19,31 @@ dotnet new list
19
19
20
20
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`.
21
21
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
+
***
23
47
24
48
## `console`
25
49
@@ -901,6 +925,15 @@ API Controller with or without read/write actions.
901
925
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.
902
926
For more information, see [global-json](global-json.md#rollforward).
903
927
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
+
904
937
## `editorconfig`
905
938
906
939
Creates an *.editorconfig* file for configuring code style preferences.
0 commit comments