Compartir a través de


<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 subcomandos list, search, install y uninstall.
  • La opción --update-apply se ha convertido en el subcomando update.
  • Para usar --update-check, utilice el subcomando update 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.

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 de MSTest mstest [C#], F#, VB Prueba/MSTest 1.0
MsTest Test (clase) mstest-class [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] y diag[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
    

Vea también