Dela via


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, installoch uninstall bör vara --list, --search, --installoch --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.

  1. Gå till testmappen.

  2. 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.
    
  3. 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.