<PLANTILLA> de dotnet new
Este artículo se aplica a: ✔️ SDK de .NET Core 3.1 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>] [-f|--framework <FRAMEWORK>] [--no-update-check]
[-o|--output <OUTPUT_DIRECTORY>] [--project <PROJECT_PATH>]
[-d|--diagnostics] [--verbosity <LEVEL>] [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.
Nota
A partir del SDK de .NET 7, la sintaxis dotnet new
ha cambiado:
- Las opciones
--list
,--search
,--install
y--uninstall
se han convertido en los subcomandoslist
,search
,install
yuninstall
. - La opción
--update-apply
se ha convertido en el subcomandoupdate
. - Para usar
--update-check
, utilice el subcomandoupdate
con la opción--check-only
.
Otras opciones que estaban disponibles antes siguen estando disponibles para su uso con sus respectivos subcomandos.
Hay ayuda independiente disponible para cada subcomando mediante la opción -h
o --help
: dotnet new <subcommand> --help
enumera todas las opciones admitidas para el subcomando.
Además, la finalización con tabulación ya está disponible para dotnet new
. Admite la finalización de nombres de plantillas instaladas y para las opciones que proporciona una plantilla seleccionada.
Para activar la finalización con tabulación para el SDK de .NET, vea Habilitación de la finalización con tabulación.
Finalización con tabulación
A partir del SDK de .NET 7.0.100, está disponible la finalización de pestañas para dotnet new
. Permite la finalización de nombres de plantillas instaladas, así como la finalización de las opciones que proporciona una plantilla seleccionada.
Para activar la finalización con tabulación para el SDK de .NET, vea Habilitación de la finalización con tabulación.
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
TEMPLATE
La 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 list
para ver una lista de todas las plantillas instaladas.A partir del SDK de .NET Core 3.0 y hasta el SDK de .NET 5.0.300, la CLI busca plantillas en NuGet.org cuando se invoca al comando
dotnet new
en 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 5.0.300, se debe usar el comando
search
para buscar plantillas en NuGet.org.- Si la CLI no encuentra ninguna coincidencia de plantilla al invocar
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.
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 web | blazor |
[C#] | Web/Blazor | 8.0.100 |
BlazorWebAssembly Aplicación independiente | blazorwasm |
[C#] | Web/Blazor//WebAssemblyPWA | 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 |
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/Web API/API/Service/WebAPI | 1.0 |
API de ASP.NET Core | webapiaot |
[C#] | Web/Web API/API/Service | 8.0 |
controlador de API de ASP.NET Core | apicontroller |
[C#] | Web/ASP.NET | 8.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 |
Configuración | 6,0 |
En la tabla siguiente se muestran las plantillas que se han descontinuado y que ya no están preinstaladas con el SDK de .NET. Haga clic en el vínculo del nombre corto para ver las opciones específicas de la plantilla.
Plantillas | Nombre corto | Lenguaje | Etiquetas | Descontinuado desde |
---|---|---|---|---|
ASP.NET Core con Angular | angular |
[C#] | Web/MVC/SPA | 8.0 |
ASP.NET Core con React.js | react |
[C#] | Web/MVC/SPA | 8.0 |
Blazor Aplicación de servidor | blazorserver |
[C#] | Web/Blazor | 8.0 |
Blazor Aplicación de servidor vacía | blazorserver-empty |
[C#] | Web/Blazor | 8.0 |
BlazorWebAssembly Aplicación vacía | blazorwasm-empty |
[C#] | Web/Blazor/WebAssembly | 8.0 |
Opciones
--dry-run
Muestra 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.
--force
Fuerza 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|--help
Imprime la ayuda para el comando. Puede invocarse para el propio comando
dotnet new
o 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.
-f|--framework <FRAMEWORK>
Especifica la plataforma de destino. Espera un moniker de la plataforma de destino (TFM). Ejemplos: "net6.0", "net7.0-macos". Este valor se reflejará en el archivo del proyecto.
-no-update-check
Deshabilita 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 new
comprueba 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.
--project <PROJECT_PATH>
Proyecto al que se agrega la plantilla. Este proyecto se usa para la evaluación de contexto. Si no se especifica, se usa el proyecto de los directorios actual o primario. Disponible a partir del SDK de .NET 7.0.100.
-d|--diagnostics
Habilita la salida de diagnóstico. Disponible a partir del SDK de .NET 7.0.100.
-v|--verbosity <LEVEL>
Establece el nivel de detalle del comando. Los valores permitidos son
q[uiet]
,m[inimal]
,n[ormal]
ydiag[nostic]
. Disponible a partir del SDK de .NET 7.0.100.
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 console
Creació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 MyLibrary
Creación de un proyecto MVC de ASP.NET Core C# en el directorio actual sin autenticación:
dotnet new mvc -au None
Creación de un proyecto de xUnit:
dotnet new xunit
Cree un global.json en el directorio actual estableciendo la versión del SDK en 8.0.101:
dotnet new globaljson --sdk-version 8.0.101 --roll-forward latestFeature
Mostrar ayuda para la plantilla de aplicación de consola de C#:
dotnet new console -h
Mostrar ayuda para la plantilla de aplicación de consola de F#:
dotnet new console --language "F#" -h