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 list
subopdrachten , search
en uninstall
install
subopdrachten moeten respectievelijk , --search
--install
en --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.
Navigeer naar de testmap .
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.
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.