dotnet new
Este artículo se aplica a: ✔️ SDK de .NET Core 2.0 y versiones posteriores
NOMBRE
dotnet new: crea un nuevo proyecto, archivo de configuración o solución según la plantilla especificada.
Sinopsis
dotnet new <TEMPLATE> [--dry-run] [--force] [-lang|--language {"C#"|"F#"|VB}]
[-n|--name <OUTPUT_NAME>] [--no-update-check] [-o|--output <OUTPUT_DIRECTORY>] [Template options]
dotnet new -h|--help
Descripción
El comando dotnet new crea un proyecto de .NET u otros artefactos basados en una plantilla.
El comando llama al motor de plantillas para crear los artefactos en el disco basándose en las opciones y la plantilla especificadas.
Restauración implícita
No es necesario ejecutar dotnet restore porque lo ejecutan implícitamente todos los comandos que necesitan que se produzca una restauración, como dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish y dotnet pack. Para deshabilitar la restauración implícita, use la opción --no-restore.
El comando dotnet restore sigue siendo válido en algunos escenarios donde tiene sentido realizar una restauración explícita, como las compilaciones de integración continua en Azure DevOps Services o en los sistemas de compilación que necesitan controlar explícitamente cuándo se produce la restauración.
Para obtener información sobre cómo administrar fuentes de NuGet, vea la documentación de dotnet restore.
Argumentos
TEMPLATELa plantilla de la que se va a crear una instancia cuando se invoca el comando. Cada plantilla puede tener opciones específicas que puede pasar. Para obtener más información, vea Opciones de plantilla.
Puede ejecutar
dotnet new --listpara ver una lista de todas las plantillas instaladas.A partir del SDK de .NET Core 3.0 y hasta el SDK de .NET Core 5.0.300, la CLI busca plantillas en NuGet.org cuando se invoca al comando
dotnet newen las siguientes condiciones:- Si la CLI no encuentra ninguna coincidencia de plantilla al invocar
dotnet new, ni siquiera parcial. - Si hay disponible una versión más reciente de la plantilla. En este caso, se crea el proyecto o el artefacto, pero la CLI le advierte de que hay una versión actualizada de la plantilla.
A partir del SDK de .NET Core 5.0.300, se debe usar la opción
--searchpara buscar plantillas en NuGet.org.En la tabla siguiente se muestran las plantillas que vienen preinstaladas con el SDK de .NET. El lenguaje predeterminado de la plantilla se muestra entre corchetes. Haga clic en el vínculo del nombre corto para ver las opciones específicas de la plantilla.
- Si la CLI no encuentra ninguna coincidencia de plantilla al invocar
| Plantillas | Nombre corto | Lenguaje | Etiquetas | Inclusión |
|---|---|---|---|---|
| Aplicación de consola | console |
[C#], F#, VB | Común/Consola | 1.0 |
| Biblioteca de clases | classlib |
[C#], F#, VB | Común/Biblioteca | 1.0 |
| Aplicación WPF | wpf |
[C#], VB | Común/WPF | 3.0 (5.0 para VB) |
| Biblioteca de clases de WPF | wpflib |
[C#], VB | Común/WPF | 3.0 (5.0 para VB) |
| Biblioteca de controles personalizados WPF | wpfcustomcontrollib |
[C#], VB | Común/WPF | 3.0 (5.0 para VB) |
| Biblioteca de controles de usuario de WPF | wpfusercontrollib |
[C#], VB | Común/WPF | 3.0 (5.0 para VB) |
| Aplicación de Windows Forms (WinForms) | winforms |
[C#], VB | Común/WinForms | 3.0 (5.0 para VB) |
| Biblioteca de clases de Windows Forms (WinForms) | winformslib |
[C#], VB | Común/WinForms | 3.0 (5.0 para VB) |
| Servicio Worker | worker |
[C#] | Común/Worker/Web | 3.0 |
| Proyecto de prueba unitaria | mstest |
[C#], F#, VB | Prueba/MSTest | 1.0 |
| Proyecto de prueba de NUnit 3 | nunit |
[C#], F#, VB | Prueba/NUnit | 2.1.400 |
| Elemento de prueba de NUnit 3 | nunit-test |
[C#], F#, VB | Prueba/NUnit | 2.2 |
| Proyecto de prueba de xUnit | xunit |
[C#], F#, VB | Prueba/xUnit | 1.0 |
| Componente Razor | razorcomponent |
[C#] | Web/ASP.NET | 3.0 |
| Página de Razor | 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 Aplicación de servidor | blazorserver |
[C#] | Web/Blazor | 3.0 |
| Aplicación de Blazor WebAssembly | blazorwasm |
[C#] | Web/Blazor/WebAssembly | 3.1.300 |
| Vacío de ASP.NET Core | web |
[C#], F# | Web/Vacío | 1.0 |
| Aplicación web de ASP.NET Core (Model-View-Controller) | mvc |
[C#], F# | Web/MVC | 1.0 |
| Aplicación web de ASP.NET Core | webapp, razor |
[C#] | Web/MVC/Razor Pages | 2.2, 2.0 |
| ASP.NET Core con Angular | angular |
[C#] | Web/MVC/SPA | 2.0 |
| ASP.NET Core con React.js | react |
[C#] | Web/MVC/SPA | 2.0 |
| ASP.NET Core con React.js y Redux | reactredux |
[C#] | Web/MVC/SPA | 2.0 |
| Biblioteca de clases de Razor | razorclasslib |
[C#] | Web/Razor/Biblioteca/Biblioteca de clases de Razor | 2.1 |
| API web de ASP.NET Core | webapi |
[C#], F# | Web/WebAPI | 1.0 |
| Servicio gRPC de ASP.NET Core | grpc |
[C#] | Web/gRPC | 3.0 |
| Archivo dotnet gitignore | gitignore |
Configuración | 3.0 | |
| archivo global.json | globaljson |
Configuración | 2.0 | |
| Configuración de NuGet | nugetconfig |
Configuración | 1.0 | |
| Archivo de manifiesto de la herramienta local dotnet | tool-manifest |
Configuración | 3.0 | |
| Configuración web | webconfig |
Configuración | 1.0 | |
| Archivo de solución | sln |
Soluciones | 1.0 | |
| Archivo de búfer de protocolo | proto |
Web/gRPC | 3.0 | |
| Archivo EditorConfig | editorconfig(dotnet-new-sdk-templates.md#editorconfig) |
Configuración | 6,0 |
Opciones
--dry-runMuestra un resumen de lo que sucedería si se ejecutara el comando determinado y el resultado fuera la creación de una plantilla. Disponible a partir del SDK de .NET Core 2.2.
--forceFuerza la generación de contenido incluso aunque se vayan a cambiar los archivos existentes. Es necesario si la plantilla elegida invalidará los archivos existentes en el directorio de salida.
-?|-h|--helpImprime la ayuda para el comando. Puede invocarse para el propio comando
dotnet newo para cualquier plantilla. Por ejemplo:dotnet new mvc --help.-lang|--language {C#|F#|VB}El lenguaje de la plantilla que se va a crear. El lenguaje aceptado cambia según la plantilla (vea los valores predeterminados en la sección argumentos). No es válido para algunas plantillas.
Nota
Algunos shells interpretan
#como un carácter especial. En esos casos, incluya el valor del parámetro de lenguaje entre comillas. Por ejemplo:dotnet new console -lang "F#".-n|--name <OUTPUT_NAME>El nombre de la salida creada. Si no se especifica ningún nombre, se usa el nombre del directorio actual.
-no-update-checkDeshabilita la comprobación de actualizaciones de paquetes de plantillas al crear instancias de una plantilla. Disponible a partir del SDK de .NET 6.0.100. Al crear instancias de la plantilla desde un paquete de plantillas que se instaló mediante
dotnet new --install,dotnet newcomprueba si hay una actualización para la plantilla. A partir de .NET 6, no se realizan comprobaciones de actualización para las plantillas predeterminadas de .NET. Para actualizar las plantillas predeterminadas de .NET, instale la versión de revisión del SDK de .NET.-o|--output <OUTPUT_DIRECTORY>La ubicación para colocar la salida generada. El valor predeterminado es el directorio actual.
Opciones de plantilla
Cada plantilla puede tener opciones adicionales definidas. Para obtener más información, vea Plantillas predeterminadas de .NET para dotnet new.
Ejemplos
Creación de un proyecto de aplicación de consola de C#:
dotnet new consoleCreación de un proyecto de aplicación de consola con F# en el directorio actual:
dotnet new console --language "F#"Creación de un proyecto de biblioteca de clases de .NET Standard 2.0 en el directorio especificado:
dotnet new classlib --framework "netstandard2.0" -o MyLibraryCreación de un proyecto MVC de ASP.NET Core C# en el directorio actual sin autenticación:
dotnet new mvc -au NoneCreación de un proyecto de xUnit:
dotnet new xunitCreación de un archivo global.json en el directorio actual al establecer la versión del SDK en 3.1.101:
dotnet new globaljson --sdk-version 3.1.101Mostrar ayuda para la plantilla de aplicación de consola de C#:
dotnet new console -hMostrar ayuda para la plantilla de aplicación de consola de F#:
dotnet new console --language "F#" -h