Självstudie: Skapa en projektmall
Med .NET kan du skapa och distribuera mallar som genererar projekt, filer och till och med resurser. Den här självstudien är del två i en serie som lär dig hur du skapar, installerar och avinstallerar mallar för användning med dotnet new
kommandot .
Dricks
De officiella .NET-mallar som levereras med .NET SDK finns på följande lagringsplatser:
Mallar | Lagringsplats |
---|---|
Konsol, klassbibliotek och vanliga objektmallar | dotnet/sdk |
ASP.NET- och Blazor-mallar | dotnet/aspnetcore |
ASP.NET mallar för ensidesprogram | dotnet/spa-templates |
WPF-mallar | dotnet/wpf |
Windows Forms-mallar | dotnet/winforms |
Testmallar | dotnet/test-templates |
MAUI-mallar | dotnet/maui |
Du kan visa de mallar som är installerade på datorn genom att dotnet new list
köra kommandot .
I den här delen av serien får du lära dig att:
- Skapa resurserna i en projektmall.
- Skapa mallkonfigurationsmappen och -filen.
- Installera en mall från en filsökväg.
- Testa en objektmall.
- Avinstallera en objektmall.
Förutsättningar
- Slutför del 1 av den här självstudieserien.
- Öppna en terminal och navigera till mappen working\content .
Viktigt!
Den här artikeln är skriven för .NET 7. Det gäller dock även för .NET 6 och tidigare versioner, med en skillnad: Syntaxen dotnet new
är annorlunda. Underkommandona list
, search
, install
och uninstall
bör vara --list
, --search
, --install
och --uninstall
respektive alternativ.
Kommandot i .NET 7 blir dotnet new --install
till exempel dotnet new install
i .NET 6. dotnet new --help
Använd kommandot för att se en lista över alla alternativ och underkommandon.
Skapa en projektmall
Projektmallar skapar färdiga projekt som gör det enkelt för användarna att börja med en fungerande koduppsättning. .NET innehåller några projektmallar, till exempel ett konsolprogram eller ett klassbibliotek. I det här exemplet skapar du ett nytt konsolprogramprojekt som ersätter standardutdata för "Hello World"-konsolen med ett som körs asynkront.
I terminalen går du till mappen working\content och skapar en ny undermapp med namnet consoleasync. Ange undermappen och kör dotnet new console
för att generera standardkonsolprogrammet. Du redigerar filerna som skapas av den här mallen för att skapa en ny mall.
working
└───content
└───consoleasync
consoleasync.csproj
Program.cs
Ändra Program.cs
Öppna filen Program.cs. Standardkonsolprojektet skriver inte asynkront till konsolutdata, så vi lägger till det. Ändra koden till följande och spara filen:
// See https://aka.ms/new-console-template for more information
await Console.Out.WriteAsync("Hello World with C#");
Nu när du har skapat innehållet i mallen måste du skapa mallkonfigurationen i mallens rotmapp.
Skapa mallkonfigurationen
I den här självstudien finns mallmappen i working\content\consoleasync.
Mallar identifieras av .NET eftersom de har en särskild mapp och konfigurationsfil i roten i mallmappen.
Skapa först en ny undermapp med namnet .template.config och ange den. Skapa sedan en ny fil med namnet template.json. Mappstrukturen bör se ut så här:
working
└───content
└───consoleasync
└───.template.config
template.json
Öppna template.json med din favorittextredigerare och klistra in följande json-kod och spara den.
{
"$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"
}
}
Den här konfigurationsfilen innehåller alla inställningar för mallen. Du kan se de grundläggande inställningarna, till exempel name
och shortName
, men det finns också ett tags/type
värde som är inställt på project
. Detta kategoriserar mallen som en "projektmall". Det finns ingen begränsning för vilken typ av mall du skapar. Värdena item
och project
är vanliga namn som .NET rekommenderar så att användarna enkelt kan filtrera den typ av mall som de söker efter.
Objektet sourceName
är det som ersätts när användaren använder mallen. Värdet sourceName
för i konfigurationsfilen söks efter i varje filnamn och filinnehåll och ersätts som standard med namnet på den aktuella mappen. När parametern -n
eller --name
skickas med dotnet new
kommandot används det angivna värdet i stället för det aktuella mappnamnet. När det gäller den här mallen consoleasync
ersätts i namnet på .csproj-filen .
Objektet classifications
representerar kolumnen taggar som du ser när du kör dotnet new
och hämtar en lista med mallar. Användare kan också söka baserat på klassificeringstaggar. Blanda inte ihop tags
egenskapen i filen template.json med listan med classifications
taggar. Det är två olika begrepp som tyvärr kallas samma. Det fullständiga schemat för filen template.json finns i JSON Schema Store och beskrivs i Referens för template.json. Mer information om filen template.json finns i wikin för dotnet-mallning.
Nu när du har en giltig .template.config/template.json-fil är mallen redo att installeras. Innan du installerar mallen måste du ta bort eventuella extra mappar och filer som du inte vill ska ingå i mallen , t.ex. bin - eller obj-mapparna . I terminalen går du till mappen consoleasync och kör dotnet new install .\
för att installera mallen som finns i den aktuella mappen. Om du använder ett Linux- eller macOS-operativsystem använder du ett snedstreck framåt: dotnet new install ./
.
dotnet new install .\
Det här kommandot matar ut en lista över de installerade mallarna, som bör innehålla dina.
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
Testa projektmallen
Nu när du har installerat en projektmall testar du den.
Gå till testmappen.
Skapa ett nytt konsolprogram med följande kommando, vilket genererar ett fungerande projekt som du enkelt kan testa med
dotnet run
kommandot .dotnet new consoleasync -n MyProject
Du får följande utdata.
The template "Example templates: async project" was created successfully.
Kör projektet med hjälp av följande kommando.
dotnet run
Du får följande utdata.
Hello World with C#
Grattis! Du skapade och distribuerade en projektmall med .NET. Som förberedelse för nästa del av den här självstudieserien avinstallerar du mallen som du skapade. Se till att ta bort alla filer från testmappen också. På så sätt återgår du till ett rent tillstånd som är redo för nästa del av den här självstudieserien.
Avinstallera mallen
I terminalen går du till mappen consoleasync och kör följande kommando för att avinstallera mallen som finns i den aktuella mappen:
- I Windows:
dotnet new uninstall .\
- I Linux eller macOS:
dotnet new uninstall ./
Det här kommandot matar ut en lista över de mallar som har avinstallerats, vilket bör inkludera dina.
Success: <root path>\working\content\consoleasync was uninstalled.
När som helst kan du använda dotnet new uninstall
för att se en lista över installerade mallpaket, inklusive för varje mallpaket kommandot för att avinstallera det.
Nästa steg
I den här självstudien skapade du en projektmall. Om du vill lära dig hur du paketera både objektet och projektmallarna i en lätthanterlig fil kan du fortsätta med den här självstudieserien.