Provided by: dotnet-host_6.0.132-0ubuntu1~23.10.1_amd64
.NET default templates for dotnet new
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 command with the -l|--list option: dotnet new --list 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. Templates Short name Language Tags Introduced ─────────────────────────────────────────────────────────────────────────────────────────────────── Console console [C#], F#, VB Common/Console 1.0 Application Class library classlib [C#], F#, VB Common/Library 1.0 WPF Application wpf [C#], VB Common/WPF 3.0 (5.0 for VB) WPF Class wpflib [C#], VB Common/WPF 3.0 (5.0 for VB) library WPF Custom wpfcustomcontrollib [C#], VB Common/WPF 3.0 (5.0 for VB) Control Library WPF User Control wpfusercontrollib [C#], VB Common/WPF 3.0 (5.0 for VB) Library Windows Forms winforms [C#], VB Common/WinForms 3.0 (5.0 for VB) (WinForms) Application Windows Forms winformslib [C#], VB Common/WinForms 3.0 (5.0 for VB) (WinForms) Class library Worker Service worker [C#] Common/Worker/Web 3.0 Unit Test mstest [C#], F#, VB Test/MSTest 1.0 Project NUnit 3 Test nunit [C#], F#, VB Test/NUnit 2.1.400 Project NUnit 3 Test nunit-test [C#], F#, VB Test/NUnit 2.2 Item xUnit Test xunit [C#], F#, VB Test/xUnit 1.0 Project Razor Component razorcomponent [C#] Web/ASP.NET 3.0 Razor Page page [C#] Web/ASP.NET 2.0 MVC ViewImports viewimports [C#] Web/ASP.NET 2.0 MVC ViewStart viewstart [C#] Web/ASP.NET 2.0 Blazor Server blazorserver [C#] Web/Blazor 3.0 App Blazor blazorwasm [C#] Web/Blazor/WebAssembly 3.1.300 WebAssembly App ASP.NET Core web [C#], F# Web/Empty 1.0 Empty ASP.NET Core Web mvc [C#], F# Web/MVC 1.0 App (Model-View- Controller) ASP.NET Core Web webapp, razor [C#] Web/MVC/Razor Pages 2.2, 2.0 App ASP.NET Core angular [C#] Web/MVC/SPA 2.0 with Angular ASP.NET Core react [C#] Web/MVC/SPA 2.0 with React.js ASP.NET Core reactredux [C#] Web/MVC/SPA 2.0 with React.js and Redux Razor Class razorclasslib [C#] Web/Razor/Library/Razor 2.1 Library Class Library ASP.NET Core Web webapi [C#], F# Web/WebAPI 1.0 API ASP.NET Core grpc [C#] Web/gRPC 3.0 gRPC Service dotnet gitignore gitignore Config 3.0 file global.json file globaljson Config 2.0 NuGet Config nugetconfig Config 1.0 Dotnet local tool-manifest Config 3.0 tool manifest file Web Config webconfig Config 1.0 Solution File sln Solution 1.0 Protocol Buffer proto Web/gRPC 3.0 File Template options Each template may have additional options available. The core templates have the following additional options: console • -f|--framework <FRAMEWORK> Specifies the framework to target. Available since .NET Core 3.0 SDK. The following table lists the default values according to the SDK version number you’re using: SDK version Default value ──────────────────────────── 5.0 net5.0 3.1 netcoreapp3.1 3.0 netcoreapp3.0 The ability to create a project for an earlier TFM depends on having that version of the SDK installed. For example, if you have only SDK 5.0 installed, then the only value available for --framework is net5.0. If you install SDK 3.1, the value netcoreapp3.1 becomes available for --framework. If you install SDK 2.1, netcoreapp2.1 becomes available, and so on. So by specifying --framework netcoreapp2.1 you can use SDK 2.1 even while running dotnet new in SDK 5.0. Alternatively, to create a project that targets a framework earlier than the SDK that you’re using, you might be able to do it by installing the NuGet package for the template. Common (https://www.nuget.org/packages?q=Microsoft.DotNet.Common.ProjectTemplates), web (https://www.nuget.org/packages?q=Microsoft.DotNet.Web.ProjectTemplates), and SPA (https://www.nuget.org/packages?q=Microsoft.DotNet.Web.Spa.ProjectTemplates) project types use different packages per target framework moniker (TFM). For example, to create a console project that targets netcoreapp1.0, run dotnet new --install on Microsoft.DotNet.Common.ProjectTemplates.1.x. • --langVersion <VERSION_NUMBER> Sets the LangVersion property in the created project file. For example, use --langVersion 7.3 to use C# 7.3. Not supported for F#. Available since .NET Core 2.2 SDK. For a list of default C# versions, see Defaults. • --no-restore If specified, doesn’t execute an implicit restore during project creation. Available since .NET Core 2.2 SDK. * * * * * classlib • -f|--framework <FRAMEWORK> Specifies the framework to target. Values: net5.0 or netcoreapp<version> to create a .NET Class Library or netstandard<version> to create a .NET Standard Class Library. The default value for .NET 5.0 SDK is net5.0. To create a project that targets a framework earlier than the SDK that you’re using, see --framework for console projects earlier in this article. • --langVersion <VERSION_NUMBER> Sets the LangVersion property in the created project file. For example, use --langVersion 7.3 to use C# 7.3. Not supported for F#. Available since .NET Core 2.2 SDK. For a list of default C# versions, see Defaults. • --no-restore Doesn’t execute an implicit restore during project creation. * * * * * wpf, wpflib, wpfcustomcontrollib, wpfusercontrollib • -f|--framework <FRAMEWORK> Specifies the framework to target. The default value is net5.0. Available since .NET Core 3.1 SDK. To create a project that targets a framework earlier than the SDK that you’re using, see --framework for console projects earlier in this article. • --langVersion <VERSION_NUMBER> Sets the LangVersion property in the created project file. For example, use --langVersion 7.3 to use C# 7.3. For a list of default C# versions, see Defaults. • --no-restore Doesn’t execute an implicit restore during project creation. * * * * * winforms, winformslib • --langVersion <VERSION_NUMBER> Sets the LangVersion property in the created project file. For example, use --langVersion 7.3 to use C# 7.3. For a list of default C# versions, see Defaults. • --no-restore Doesn’t execute an implicit restore during project creation. * * * * * worker, grpc • -f|--framework <FRAMEWORK> Specifies the framework to target. The default value is netcoreapp3.1. Available since .NET Core 3.1 SDK. To create a project that targets a framework earlier than the SDK that you’re using, see --framework for console projects earlier in this article. • --exclude-launch-settings Excludes launchSettings.json from the generated template. • --no-restore Doesn’t execute an implicit restore during project creation. * * * * * mstest, xunit • -f|--framework <FRAMEWORK> Specifies the framework to target. Option available since .NET Core 3.0 SDK. The following table lists the default values according to the SDK version number you’re using: SDK version Default value ──────────────────────────── 5.0 net5.0 3.1 netcoreapp3.1 3.0 netcoreapp3.0 To create a project that targets a framework earlier than the SDK that you’re using, see --framework for console projects earlier in this article. • -p|--enable-pack Enables packaging for the project using dotnet pack. • --no-restore Doesn’t execute an implicit restore during project creation. * * * * * nunit • -f|--framework <FRAMEWORK> Specifies the framework to target. The following table lists the default values according to the SDK version number you’re using: SDK version Default value ──────────────────────────── 5.0 net5.0 3.1 netcoreapp3.1 3.0 netcoreapp3.0 2.2 netcoreapp2.2 2.1 netcoreapp2.1 To create a project that targets a framework earlier than the SDK that you’re using, see --framework for console projects earlier in this article. • -p|--enable-pack Enables packaging for the project using dotnet pack. • --no-restore Doesn’t execute an implicit restore during project creation. * * * * * page • -na|--namespace <NAMESPACE_NAME> Namespace for the generated code. The default value is MyApp.Namespace. • -np|--no-pagemodel Creates the page without a PageModel. * * * * * viewimports, proto • -na|--namespace <NAMESPACE_NAME> Namespace for the generated code. The default value is MyApp.Namespace. * * * * * blazorserver • -au|--auth <AUTHENTICATION_TYPE> The type of authentication to use. The possible values are: • None - No authentication (Default). • Individual - Individual authentication. • IndividualB2C - Individual authentication with Azure AD B2C. • SingleOrg - Organizational authentication for a single tenant. • MultiOrg - Organizational authentication for multiple tenants. • Windows - Windows authentication. • --aad-b2c-instance <INSTANCE> The Azure Active Directory B2C instance to connect to. Use with IndividualB2C authentication. The default value is https://login.microsoftonline.com/tfp/. • -ssp|--susi-policy-id <ID> The sign-in and sign-up policy ID for this project. Use with IndividualB2C authentication. • -rp|--reset-password-policy-id <ID> The reset password policy ID for this project. Use with IndividualB2C authentication. • -ep|--edit-profile-policy-id <ID> The edit profile policy ID for this project. Use with IndividualB2C authentication. • --aad-instance <INSTANCE> The Azure Active Directory instance to connect to. Use with SingleOrg or MultiOrg authentication. The default value is https://login.microsoftonline.com/. • --client-id <ID> The Client ID for this project. Use with IndividualB2C, SingleOrg, or MultiOrg authentication. The default value is 11111111-1111-1111-11111111111111111. • --domain <DOMAIN> The domain for the directory tenant. Use with SingleOrg or IndividualB2C authentication. The default value is qualified.domain.name. • --tenant-id <ID> The TenantId ID of the directory to connect to. Use with SingleOrg authentication. The default value is 22222222-2222-2222-2222-222222222222. • --callback-path <PATH> The request path within the application’s base path of the redirect URI. Use with SingleOrg or IndividualB2C authentication. The default value is /signin-oidc. • -r|--org-read-access Allows this application read-access to the directory. Only applies to SingleOrg or MultiOrg authentication. • --exclude-launch-settings Excludes launchSettings.json from the generated template. • --no-https Turns off HTTPS. This option only applies if Individual, IndividualB2C, SingleOrg, or MultiOrg aren’t being used for --auth. • -uld|--use-local-db Specifies LocalDB should be used instead of SQLite. Only applies to Individual or IndividualB2C authentication. • --no-restore Doesn’t execute an implicit restore during project creation. * * * * * blazorwasm • -f|--framework <FRAMEWORK> Specifies the framework to target. The following table lists the default values according to the SDK version number you’re using: SDK version Default value ──────────────────────────── 5.0 net5.0 3.1 netcoreapp3.1 To create a project that targets a framework earlier than the SDK that you’re using, see --framework for console projects earlier in this article. • --no-restore Doesn’t execute an implicit restore during project creation. • -ho|--hosted Includes an ASP.NET Core host for the Blazor WebAssembly app. • -au|--auth <AUTHENTICATION_TYPE> The type of authentication to use. The possible values are: • None - No authentication (Default). • Individual - Individual authentication. • IndividualB2C - Individual authentication with Azure AD B2C. • SingleOrg - Organizational authentication for a single tenant. • --authority <AUTHORITY> The authority of the OIDC provider. Use with Individual authentication. The default value is https://login.microsoftonline.com/. • --aad-b2c-instance <INSTANCE> The Azure Active Directory B2C instance to connect to. Use with IndividualB2C authentication. The default value is https://aadB2CInstance.b2clogin.com/. • -ssp|--susi-policy-id <ID> The sign-in and sign-up policy ID for this project. Use with IndividualB2C authentication. • --aad-instance <INSTANCE> The Azure Active Directory instance to connect to. Use with SingleOrg authentication. The default value is https://login.microsoftonline.com/. • --client-id <ID> The Client ID for this project. Use with IndividualB2C, SingleOrg, or Individual authentication in standalone scenarios. The default value is 33333333-3333-3333-33333333333333333. • --domain <DOMAIN> The domain for the directory tenant. Use with SingleOrg or IndividualB2C authentication. The default value is qualified.domain.name. • --app-id-uri <URI> The App ID Uri for the server API you want to call. Use with SingleOrg or IndividualB2C authentication. The default value is api.id.uri. • --api-client-id <ID> The Client ID for the API that the server hosts. Use with SingleOrg or IndividualB2C authentication. The default value is 11111111-1111-1111-11111111111111111. • -s|--default-scope <SCOPE> The API scope the client needs to request to provision an access token. Use with SingleOrg or IndividualB2C authentication. The default value is user_impersonation. • --tenant-id <ID> The TenantId ID of the directory to connect to. Use with SingleOrg authentication. The default value is 22222222-2222-2222-2222-222222222222. • -r|--org-read-access Allows this application read-access to the directory. Only applies to SingleOrg authentication. • --exclude-launch-settings Excludes launchSettings.json from the generated template. • -p|--pwa produces a Progressive Web Application (PWA) supporting installation and offline use. • --no-https Turns off HTTPS. This option only applies if Individual, IndividualB2C, or SingleOrg aren’t being used for --auth. • -uld|--use-local-db Specifies LocalDB should be used instead of SQLite. Only applies to Individual or IndividualB2C authentication. • --called-api-url <URL> URL of the API to call from the web app. Only applies to SingleOrg or IndividualB2C authentication without an ASP.NET Core host specified. The default value is https://graph.microsoft.com/v1.0/me. • --calls-graph Specifies if the web app calls Microsoft Graph. Only applies to SingleOrg authentication. • --called-api-scopes <SCOPES> Scopes to request to call the API from the web app. Only applies to SingleOrg or IndividualB2C authentication without an ASP.NET Core host specified. The default is user.read. * * * * * web • --exclude-launch-settings Excludes launchSettings.json from the generated template. • -f|--framework <FRAMEWORK> Specifies the framework to target. Option not available in .NET Core 2.2 SDK. The following table lists the default values according to the SDK version number you’re using: SDK version Default value ──────────────────────────── 5.0 net5.0 3.1 netcoreapp3.1 3.0 netcoreapp3.0 2.1 netcoreapp2.1 To create a project that targets a framework earlier than the SDK that you’re using, see --framework for console projects earlier in this article. • --no-restore Doesn’t execute an implicit restore during project creation. • --no-https Turns off HTTPS. * * * * * mvc, webapp • -au|--auth <AUTHENTICATION_TYPE> The type of authentication to use. The possible values are: • None - No authentication (Default). • Individual - Individual authentication. • IndividualB2C - Individual authentication with Azure AD B2C. • SingleOrg - Organizational authentication for a single tenant. • MultiOrg - Organizational authentication for multiple tenants. • Windows - Windows authentication. • --aad-b2c-instance <INSTANCE> The Azure Active Directory B2C instance to connect to. Use with IndividualB2C authentication. The default value is https://login.microsoftonline.com/tfp/. • -ssp|--susi-policy-id <ID> The sign-in and sign-up policy ID for this project. Use with IndividualB2C authentication. • -rp|--reset-password-policy-id <ID> The reset password policy ID for this project. Use with IndividualB2C authentication. • -ep|--edit-profile-policy-id <ID> The edit profile policy ID for this project. Use with IndividualB2C authentication. • --aad-instance <INSTANCE> The Azure Active Directory instance to connect to. Use with SingleOrg or MultiOrg authentication. The default value is https://login.microsoftonline.com/. • --client-id <ID> The Client ID for this project. Use with IndividualB2C, SingleOrg, or MultiOrg authentication. The default value is 11111111-1111-1111-11111111111111111. • --domain <DOMAIN> The domain for the directory tenant. Use with SingleOrg or IndividualB2C authentication. The default value is qualified.domain.name. • --tenant-id <ID> The TenantId ID of the directory to connect to. Use with SingleOrg authentication. The default value is 22222222-2222-2222-2222-222222222222. • --callback-path <PATH> The request path within the application’s base path of the redirect URI. Use with SingleOrg or IndividualB2C authentication. The default value is /signin-oidc. • -r|--org-read-access Allows this application read-access to the directory. Only applies to SingleOrg or MultiOrg authentication. • --exclude-launch-settings Excludes launchSettings.json from the generated template. • --no-https Turns off HTTPS. This option only applies if Individual, IndividualB2C, SingleOrg, or MultiOrg aren’t being used. • -uld|--use-local-db Specifies LocalDB should be used instead of SQLite. Only applies to Individual or IndividualB2C authentication. • -f|--framework <FRAMEWORK> Specifies the framework to target. Option available since .NET Core 3.0 SDK. The following table lists the default values according to the SDK version number you’re using: SDK version Default value ──────────────────────────── 5.0 net5.0 3.1 netcoreapp3.1 3.0 netcoreapp3.0 To create a project that targets a framework earlier than the SDK that you’re using, see --framework for console projects earlier in this article. • --no-restore Doesn’t execute an implicit restore during project creation. • --use-browserlink Includes BrowserLink in the project. Option not available in .NET Core 2.2 and 3.1 SDK. • -rrc|--razor-runtime-compilation Determines if the project is configured to use Razor runtime compilation in Debug builds. Option available since .NET Core 3.1.201 SDK. * * * * * angular, react • -au|--auth <AUTHENTICATION_TYPE> The type of authentication to use. Available since .NET Core 3.0 SDK. The possible values are: • None - No authentication (Default). • Individual - Individual authentication. • --exclude-launch-settings Excludes launchSettings.json from the generated template. • --no-restore Doesn’t execute an implicit restore during project creation. • --no-https Turns off HTTPS. This option only applies if authentication is None. • -uld|--use-local-db Specifies LocalDB should be used instead of SQLite. Only applies to Individual or IndividualB2C authentication. Available since .NET Core 3.0 SDK. • -f|--framework <FRAMEWORK> Specifies the framework to target. Option not available in .NET Core 2.2 SDK. The following table lists the default values according to the SDK version number you’re using: SDK version Default value ──────────────────────────── 5.0 net5.0 3.1 netcoreapp3.1 3.0 netcoreapp3.0 2.1 netcoreapp2.0 To create a project that targets a framework earlier than the SDK that you’re using, see --framework for console projects earlier in this article. * * * * * reactredux • --exclude-launch-settings Excludes launchSettings.json from the generated template. • -f|--framework <FRAMEWORK> Specifies the framework to target. Option not available in .NET Core 2.2 SDK. The following table lists the default values according to the SDK version number you’re using: SDK version Default value ──────────────────────────── 5.0 net5.0 3.1 netcoreapp3.1 3.0 netcoreapp3.0 2.1 netcoreapp2.0 To create a project that targets a framework earlier than the SDK that you’re using, see --framework for console projects earlier in this article. • --no-restore Doesn’t execute an implicit restore during project creation. • --no-https Turns off HTTPS. * * * * * razorclasslib • --no-restore Doesn’t execute an implicit restore during project creation. • -s|--support-pages-and-views Supports adding traditional Razor pages and Views in addition to components to this library. Available since .NET Core 3.0 SDK. * * * * * webapi • -au|--auth <AUTHENTICATION_TYPE> The type of authentication to use. The possible values are: • None - No authentication (Default). • IndividualB2C - Individual authentication with Azure AD B2C. • SingleOrg - Organizational authentication for a single tenant. • Windows - Windows authentication. • --aad-b2c-instance <INSTANCE> The Azure Active Directory B2C instance to connect to. Use with IndividualB2C authentication. The default value is https://login.microsoftonline.com/tfp/. • -ssp|--susi-policy-id <ID> The sign-in and sign-up policy ID for this project. Use with IndividualB2C authentication. • --aad-instance <INSTANCE> The Azure Active Directory instance to connect to. Use with SingleOrg authentication. The default value is https://login.microsoftonline.com/. • --client-id <ID> The Client ID for this project. Use with IndividualB2C or SingleOrg authentication. The default value is 11111111-1111-1111-11111111111111111. • --domain <DOMAIN> The domain for the directory tenant. Use with IndividualB2C or SingleOrg authentication. The default value is qualified.domain.name. • --tenant-id <ID> The TenantId ID of the directory to connect to. Use with SingleOrg authentication. The default value is 22222222-2222-2222-2222-222222222222. • -r|--org-read-access Allows this application read-access to the directory. Only applies to SingleOrg authentication. • --exclude-launch-settings Excludes launchSettings.json from the generated template. • --no-https Turns off HTTPS. app.UseHsts and app.UseHttpsRedirection aren’t added to Startup.Configure. This option only applies if IndividualB2C or SingleOrg aren’t being used for authentication. • -uld|--use-local-db Specifies LocalDB should be used instead of SQLite. Only applies to IndividualB2C authentication. • -f|--framework <FRAMEWORK> Specifies the framework to target. Option not available in .NET Core 2.2 SDK. The following table lists the default values according to the SDK version number you’re using: SDK version Default value ──────────────────────────── 5.0 net5.0 3.1 netcoreapp3.1 3.0 netcoreapp3.0 2.1 netcoreapp2.1 To create a project that targets a framework earlier than the SDK that you’re using, see --framework for console projects earlier in this article. • --no-restore Doesn’t execute an implicit restore during project creation. * * * * * globaljson • --sdk-version <VERSION_NUMBER> Specifies the version of the .NET SDK to use in the global.json file. See also • dotnet new command • dotnet new –list option • Custom templates for dotnet new • Create a custom template for dotnet new (1)