Compartir a través de


Tutorial: Creación de una plantilla de proyecto

Con .NET, puede crear e implementar plantillas que generen proyectos, archivos y recursos. Este tutorial es la segunda parte de una serie que le enseña a crear, instalar y desinstalar plantillas para usarlas con el dotnet new comando .

Sugerencia

Las plantillas oficiales de .NET que se incluyen con el SDK de .NET se pueden encontrar en los repositorios siguientes:

Plantillas Repositorio
Consola, biblioteca de clases y plantillas de elementos comunes dotnet/sdk
plantillas de ASP.NET y Blazor dotnet/aspnetcore
ASP.NET plantillas de aplicación de página única dotnet/spa-templates
Plantillas de WPF dotnet/wpf
Plantillas de Windows Forms dotnet/winforms
Plantillas de prueba dotnet/test-templates
Plantillas MAUI dotnet/maui

Para ver las plantillas instaladas en el equipo, ejecute el dotnet new list comando .

En esta parte de la serie, aprenderá a:

  • Cree los recursos de una plantilla de proyecto.
  • Cree la carpeta y el archivo de configuración de plantilla.
  • Instale una plantilla desde una ruta de archivo.
  • Pruebe una plantilla de elemento.
  • Desinstale una plantilla de elemento.

Prerrequisitos

  • .NET 9 o una versión posterior.

  • Complete la parte 1 de esta serie de tutoriales.

  • Abra un terminal y vaya a la carpeta working\content .

Creación de una plantilla de proyecto

Las plantillas de proyecto generan proyectos listos para ejecutarse que facilitan a los usuarios empezar con un conjunto de código en funcionamiento. .NET incluye algunas plantillas de proyecto, como una aplicación de consola o una biblioteca de clases. En este ejemplo, se crea un nuevo proyecto de aplicación de consola que reemplaza la salida estándar de la consola "Hello World" por una que se ejecuta de forma asincrónica.

En el terminal, vaya a la carpeta working\content y cree una nueva subcarpeta denominada consoleasync. Acceda a la subcarpeta y ejecute dotnet new console para generar la aplicación de consola estándar. Edite los archivos generados por esta plantilla para crear una nueva plantilla.

working
└───content
    └───consoleasync
            consoleasync.csproj
            Program.cs

Modificar Program.cs

Abra el archivo Program.cs . El proyecto estándar de consola no escribe asincrónicamente en la salida de la consola, así que es aconsejable agregar esa funcionalidad. Cambie el código a lo siguiente y guarde el archivo:

// See https://aka.ms/new-console-template for more information
await Console.Out.WriteAsync("Hello World with C#");

Ahora que tiene el contenido de la plantilla creada, debe crear la configuración de plantilla en la carpeta raíz de la plantilla.

Creación de la configuración de plantilla

En este tutorial, la carpeta de plantilla se encuentra en working\content\consoleasync.

.NET reconoce plantillas porque tienen una carpeta especial y un archivo de configuración en la raíz de la carpeta de plantilla.

En primer lugar, cree una subcarpeta denominada .template.configy escríbala. A continuación, cree un nuevo archivo denominado template.json. La estructura de carpetas debe tener este aspecto:

working
└───content
    └───consoleasync
        └───.template.config
                template.json

Abra el template.json con su editor de texto favorito y pegue el código json siguiente y guárdelo.

{
  "$schema": "http://json.schemastore.org/template",
  "author": "Me",
  "classifications": [ "Common", "Console" ],
  "identity": "ExampleTemplate.AsyncProject",
  "name": "Example templates: async project",
  "shortName": "consoleasync",
  "sourceName":"consoleasync",
  "tags": {
    "language": "C#",
    "type": "project"
  }
}

Este archivo de configuración contiene todas las opciones de configuración de la plantilla. Puede ver la configuración básica, como name y shortName, pero también hay un valor de tags/type que está establecido en project. Esto clasifica la plantilla como una plantilla de "proyecto". No hay ninguna restricción en el tipo de plantilla que cree. Los item valores y project son nombres comunes que .NET recomienda para que los usuarios puedan filtrar fácilmente el tipo de plantilla que están buscando.

El sourceName elemento es lo que se reemplaza cuando el usuario usa la plantilla. El valor de sourceName en el archivo de configuración se busca en cada nombre de archivo y en el contenido de cada archivo, y de forma predeterminada se reemplaza por el nombre de la carpeta actual. Cuando se pasa el -n parámetro o --name con el dotnet new comando , se usa el valor proporcionado en lugar del nombre de carpeta actual. En el caso de esta plantilla, consoleasync se reemplaza en el nombre del archivo .csproj .

El classifications elemento representa la columna de etiquetas que ve al ejecutar dotnet new y obtener una lista de plantillas. Los usuarios también pueden buscar en función de las etiquetas de clasificación. No confunda la tags propiedad en el archivo template.json con la classifications lista de etiquetas. Son dos conceptos diferentes que, por desgracia, se denominan iguales. El esquema completo del archivo template.json se encuentra en el almacén de esquemas JSON y se describe en Referencia para template.json. Para obtener más información sobre el archivo template.json , consulte la wiki de plantillas de dotnet.

Ahora que tiene un archivo .template.configotemplate.json válido, la plantilla está lista para instalarse. Antes de instalar la plantilla, asegúrese de eliminar las carpetas y archivos adicionales que no quiera incluir en la plantilla, como las carpetas binobj . En el terminal, vaya a la carpeta consoleasync y ejecute dotnet new install .\ para instalar la plantilla ubicada en la carpeta actual. Si usa un sistema operativo Linux o macOS, use una barra diagonal: dotnet new install ./.

dotnet new install .\

Este comando genera una lista de las plantillas instaladas, que deben incluir las suyas.

The following template packages will be installed:
   <root path>\working\content\consoleasync

Success: <root path>\working\content\consoleasync installed the following templates:
Templates                                         Short Name               Language          Tags
--------------------------------------------      -------------------      ------------      ----------------------
Example templates: async project                  consoleasync             [C#]              Common/Console

Prueba de la plantilla de proyecto

Ahora que tiene instalada una plantilla de proyecto, pruébela.

  1. Vaya a la carpeta de prueba .

  2. Cree una nueva aplicación de consola con el comando siguiente, que genera un proyecto de trabajo que puede probar fácilmente con el dotnet run comando .

    dotnet new consoleasync -n MyProject
    

    Obtienes la siguiente salida.

    The template "Example templates: async project" was created successfully.
    
  3. Ejecute el proyecto con el siguiente comando.

    dotnet run
    

    Obtienes la siguiente salida.

    Hello World with C#
    

¡Felicidades! Ha creado e implementado una plantilla de proyecto con .NET. En preparación para la siguiente parte de esta serie de tutoriales, desinstale la plantilla que creó. Asegúrese de eliminar también todos los archivos de la carpeta de prueba . Esto le lleva a un estado inicial, listo para la siguiente parte de esta serie de tutoriales.

Desinstalación de la plantilla

En el terminal, vaya a la carpeta consoleasync y ejecute el siguiente comando para desinstalar la plantilla ubicada en la carpeta actual:

  • En Windows: dotnet new uninstall .\
  • En Linux o macOS: dotnet new uninstall ./

Este comando genera una lista de las plantillas que se desinstalaron, que deben incluir las suyas.

Success: <root path>\working\content\consoleasync was uninstalled.

En cualquier momento, puede usar dotnet new uninstall para ver una lista de paquetes de plantilla instalados, incluido para cada paquete de plantilla el comando para desinstalarlo.

Pasos siguientes

En este tutorial, ha creado una plantilla de proyecto. Para obtener información sobre cómo empaquetar tanto el elemento como las plantillas de proyecto en un archivo fácil de usar, continúe con esta serie de tutoriales.