Share via


Zelfstudie: Een projectsjabloon maken

Met .NET kunt u sjablonen maken en implementeren waarmee projecten, bestanden en zelfs resources worden gegenereerd. Deze zelfstudie is deel twee van een reeks waarin u leert hoe u sjablonen maakt, installeert en verwijdert voor gebruik met de dotnet new opdracht.

Fooi

De officiële .NET-sjablonen die worden verzonden met de .NET SDK, vindt u in de volgende opslagplaatsen:

Sjablonen Opslagplaats
Console-, klassebibliotheek- en algemene itemsjablonen dotnet/sdk
ASP.NET- en Blazor-sjablonen dotnet/aspnetcore
toepassingssjablonen met één pagina ASP.NET dotnet/spa-templates
WPF-sjablonen dotnet/wpf
Windows Forms-sjablonen dotnet/winforms
Testsjablonen dotnet/test-templates
SJABLONEN VOOR TEMPLATES dotnet/maui

U kunt de sjablonen weergeven die op uw computer zijn geïnstalleerd door de opdracht uit te dotnet new list voeren.

In dit deel van de reeks leert u het volgende:

  • Maak de resources van een projectsjabloon.
  • Maak de sjabloonconfiguratiemap en het bestand.
  • Installeer een sjabloon vanuit een bestandspad.
  • Test een itemsjabloon.
  • Verwijder een itemsjabloon.

Vereisten

  • Voltooi deel 1 van deze reeks zelfstudies.
  • Open een terminal en navigeer naar de map working\content .

Belangrijk

Dit artikel is geschreven voor .NET 7. Het is echter ook van toepassing op .NET 6 en eerdere versies, met één verschil: de dotnet new syntaxis is anders. De listsubopdrachten , searchen uninstallinstallsubopdrachten moeten respectievelijk , --search--installen --uninstall opties zijn--list.

De opdracht in .NET 7 wordt dotnet new --install bijvoorbeeld dotnet new install in .NET 6. Gebruik de dotnet new --help opdracht om een lijst met alle opties en subopdrachten weer te geven.

Een projectsjabloon maken

Projectsjablonen produceren kant-en-klare projecten waarmee gebruikers eenvoudig kunnen beginnen met een werkende set code. .NET bevat enkele projectsjablonen, zoals een consoletoepassing of een klassebibliotheek. In dit voorbeeld maakt u een nieuw consoletoepassingsproject dat de standaard 'Hallo wereld'-console-uitvoer vervangt door een console die asynchroon wordt uitgevoerd.

Navigeer in de terminal naar de map working\content en maak een nieuwe submap met de naam consoleasync. Voer de submap in en voer deze uit dotnet new console om de standaardconsoletoepassing te genereren. U bewerkt de bestanden die door deze sjabloon worden geproduceerd om een nieuwe sjabloon te maken.

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

Program.cs wijzigen

Open het bestand Program.cs . Het standaardconsoleproject schrijft niet asynchroon naar de console-uitvoer, dus laten we dat toevoegen. Wijzig de code in het volgende en sla het bestand op:

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

Nu u de inhoud van de sjabloon hebt gemaakt, moet u de sjabloonconfiguratie maken in de hoofdmap van de sjabloon.

De sjabloonconfiguratie maken

In deze zelfstudie bevindt uw sjabloonmap zich in working\content\consoleasync.

Sjablonen worden herkend door .NET omdat ze een speciale map en een configuratiebestand hebben in de hoofdmap van uw sjabloonmap.

Maak eerst een nieuwe submap met de naam .template.config en voer deze in. Maak vervolgens een nieuw bestand met de naam template.json. De mapstructuur moet er als volgt uitzien:

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

Open de template.json met uw favoriete teksteditor en plak de volgende json-code en sla deze op.

{
  "$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"
  }
}

Dit configuratiebestand bevat alle instellingen voor uw sjabloon. U kunt de basisinstellingen zien, zoals name en shortName, maar er is ook een tags/type waarde ingesteld op project. Hiermee categoriseert u uw sjabloon als een projectsjabloon. Er is geen beperking voor het type sjabloon dat u maakt. De item en project waarden zijn algemene namen die door .NET worden aanbevolen, zodat gebruikers eenvoudig het type sjabloon kunnen filteren waarnaar ze zoeken.

Het sourceName item wordt vervangen wanneer de gebruiker de sjabloon gebruikt. De waarde van sourceName het configuratiebestand wordt gezocht in elke bestandsnaam en bestandsinhoud en wordt standaard vervangen door de naam van de huidige map. Wanneer de -n of --name parameter wordt doorgegeven met de dotnet new opdracht, wordt de opgegeven waarde gebruikt in plaats van de naam van de huidige map. In het geval van deze sjabloon wordt consoleasync deze vervangen in de naam van het .csproj-bestand .

Het classifications item vertegenwoordigt de kolom met tags die u ziet wanneer u uitvoert dotnet new en een lijst met sjablonen opgeeft. Gebruikers kunnen ook zoeken op basis van classificatietags. Verwar de tags eigenschap in het bestand template.json niet met de classifications lijst met tags. Het zijn twee verschillende concepten die helaas hetzelfde worden genoemd. Het volledige schema voor het bestand template.json vindt u in het JSON-schemaarchief en wordt beschreven op Referentie voor template.json. Zie de sjabloonwiki dotnet voor meer informatie over het bestand template.json.

Nu u een geldig .template.config/template.json-bestand hebt, kunt u de sjabloon installeren. Voordat u de sjabloon installeert, moet u ervoor zorgen dat u extra mappen en bestanden verwijdert die u niet wilt opnemen in uw sjabloon, zoals de bin- of obj-mappen. Navigeer in de terminal naar de consoleasync-map en voer deze uit dotnet new install .\ om de sjabloon in de huidige map te installeren. Als u een Linux- of macOS-besturingssysteem gebruikt, gebruikt u een slash: dotnet new install ./.

dotnet new install .\

Met deze opdracht wordt een lijst uitgevoerd met de geïnstalleerde sjablonen, waaronder die van u.

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

De projectsjabloon testen

Nu u een projectsjabloon hebt geïnstalleerd, test u deze.

  1. Navigeer naar de testmap .

  2. Maak een nieuwe consoletoepassing met de volgende opdracht, waarmee u een werkend project genereert dat u eenvoudig kunt testen met de dotnet run opdracht.

    dotnet new consoleasync -n MyProject
    

    U krijgt de volgende uitvoer.

    The template "Example templates: async project" was created successfully.
    
  3. Voer het project uit met behulp van de volgende opdracht.

    dotnet run
    

    U krijgt de volgende uitvoer.

    Hello World with C#
    

Gefeliciteerd! U hebt een projectsjabloon gemaakt en geïmplementeerd met .NET. Verwijder de sjabloon die u hebt gemaakt ter voorbereiding op het volgende deel van deze reeks zelfstudies. Zorg ervoor dat u ook alle bestanden uit de testmap verwijdert. Hiermee krijgt u weer een schone status voor het volgende deel van deze zelfstudiereeks.

De sjabloon verwijderen

Navigeer in de terminal naar de map consoleasync en voer de volgende opdracht uit om de sjabloon in de huidige map te verwijderen:

  • In Windows: dotnet new uninstall .\
  • In Linux of macOS: dotnet new uninstall ./

Met deze opdracht wordt een lijst uitgevoerd met de sjablonen die zijn verwijderd, waaronder die van u.

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

U kunt dotnet new uninstall op elk gewenst moment een lijst met geïnstalleerde sjabloonpakketten bekijken, inclusief voor elk sjabloonpakket dat u wilt verwijderen.

Volgende stappen

In deze zelfstudie hebt u een projectsjabloon gemaakt. Als u wilt weten hoe u zowel de item- als projectsjablonen in een gebruiksvriendelijk bestand kunt verpakken, gaat u verder met deze reeks zelfstudies.