Udostępnij za pośrednictwem


Samouczek: tworzenie szablonu projektu

Za pomocą platformy .NET można tworzyć i wdrażać szablony, które generują projekty, pliki, a nawet zasoby. Ten samouczek jest drugą częścią serii, która uczy, jak tworzyć, instalować i odinstalować szablony do użycia z poleceniem dotnet new .

Napiwek

Oficjalne szablony platformy .NET dostarczane z zestawem .NET SDK można znaleźć w następujących repozytoriach:

Szablony Repozytorium
Konsola, biblioteka klas i typowe szablony elementów dotnet/sdk
szablony ASP.NET i blazor dotnet/aspnetcore
szablony aplikacji jednostronicowych ASP.NET dotnet/spa-templates
Szablony WPF dotnet/wpf
Szablony formularzy systemu Windows dotnet/winforms
Testowanie szablonów dotnet/test-templates
Szablony MAUI dotnet/maui

Szablony zainstalowane na maszynie można wyświetlić, uruchamiając dotnet new list polecenie .

W tej części serii dowiesz się, jak wykonywać następujące działania:

  • Utwórz zasoby szablonu projektu.
  • Utwórz folder konfiguracji szablonu i plik.
  • Zainstaluj szablon ze ścieżki pliku.
  • Testowanie szablonu elementu.
  • Odinstaluj szablon elementu.

Wymagania wstępne

  • Ukończ część 1 tej serii samouczków.
  • Otwórz terminal i przejdź do folderu working\content .

Ważne

Ten artykuł jest napisany dla platformy .NET 7. Dotyczy to jednak również platformy .NET 6 i poprzednich wersji z jedną różnicą: Składnia dotnet new jest inna. Polecenia list, search, installi uninstall podrzędne powinny być --listodpowiednio opcjami , --search, --installi --uninstall .

Na przykład dotnet new install polecenie na platformie .NET 7 staje dotnet new --install się w programie .NET 6. dotnet new --help Użyj polecenia , aby wyświetlić listę wszystkich opcji i podpolecenia.

Tworzenie szablonu projektu

Szablony projektów tworzą gotowe do uruchomienia projekty, które ułatwiają użytkownikom rozpoczęcie pracy z zestawem kodu. Platforma .NET zawiera kilka szablonów projektów, takich jak aplikacja konsolowa lub biblioteka klas. W tym przykładzie utworzysz nowy projekt aplikacji konsolowej, który zastępuje standardowe dane wyjściowe konsoli "Hello World" danymi wyjściowymi, które są uruchamiane asynchronicznie.

W terminalu przejdź do folderu working\content i utwórz nowy podfolder o nazwie consoleasync. Wprowadź podfolder i uruchom polecenie dotnet new console , aby wygenerować standardową aplikację konsolową. Edytujesz pliki utworzone przez ten szablon, aby utworzyć nowy szablon.

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

Modyfikowanie pliku Program.cs

Otwórz plik Program.cs . Standardowy projekt konsoli nie jest asynchronicznie zapisywany w danych wyjściowych konsoli, więc dodajmy to. Zmień kod na następujący i zapisz plik:

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

Po utworzeniu zawartości szablonu należy utworzyć konfigurację szablonu w folderze głównym szablonu.

Tworzenie konfiguracji szablonu

W tym samouczku folder szablonu znajduje się w folderze working\content\consoleasync.

Szablony są rozpoznawane przez platformę .NET, ponieważ mają specjalny folder i plik konfiguracji w folderze głównym folderu szablonu.

Najpierw utwórz nowy podfolder o nazwie .template.config i wprowadź go. Następnie utwórz nowy plik o nazwie template.json. Struktura folderów powinna wyglądać następująco:

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

Otwórz plik template.json przy użyciu ulubionego edytora tekstów i wklej następujący kod json i zapisz go.

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

Ten plik konfiguracji zawiera wszystkie ustawienia szablonu. Możesz zobaczyć podstawowe ustawienia, takie jak name i shortName, ale istnieje również tags/type wartość ustawiona na projectwartość . Spowoduje to kategoryzowanie szablonu jako szablonu "projektu". Nie ma żadnych ograniczeń dotyczących typu tworzonego szablonu. Wartości item i project to nazwy pospolite zalecane przez platformę .NET, aby użytkownicy mogli łatwo filtrować typ szukanego szablonu.

Element sourceName jest zastępowany, gdy użytkownik używa szablonu. Wartość sourceName w pliku konfiguracji jest wyszukiwana w każdej nazwie pliku i zawartości pliku, a domyślnie jest zastępowana nazwą bieżącego folderu. Po przekazaniu parametru -ndotnet new or --name za pomocą polecenia podana wartość jest używana zamiast nazwy bieżącego folderu. W przypadku tego szablonu consoleasync element jest zastępowany nazwą pliku csproj .

Element classifications reprezentuje kolumnę tagów widoczną po uruchomieniu dotnet newi pobraniu listy szablonów. Użytkownicy mogą również wyszukiwać na podstawie tagów klasyfikacji. Nie należy mylić tags właściwości w pliku template.json z listą classifications tagów. Są to dwa różne pojęcia, które są niestety takie same. Pełny schemat pliku template.json znajduje się w magazynie schematów JSON i jest opisany w artykule Reference for template.json (Dokumentacja pliku template.json). Aby uzyskać więcej informacji na temat pliku template.json , zobacz witrynę typu wiki dotnet templating.

Teraz, gdy masz prawidłowy plik .template.config/template.json , szablon jest gotowy do zainstalowania. Przed zainstalowaniem szablonu upewnij się, że usunięto wszystkie dodatkowe foldery i pliki, których nie chcesz uwzględnić w szablonie, takich jak pojemnik lub foldery obj . W terminalu przejdź do folderu consoleasync i uruchom polecenie dotnet new install .\ , aby zainstalować szablon znajdujący się w bieżącym folderze. Jeśli używasz systemu operacyjnego Linux lub macOS, użyj ukośnika do przodu: dotnet new install ./.

dotnet new install .\

To polecenie zwraca listę zainstalowanych szablonów, które powinny zawierać Twoje.

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

Testowanie szablonu projektu

Po zainstalowaniu szablonu projektu przetestuj go.

  1. Przejdź do folderu testowego.

  2. Utwórz nową aplikację konsolową za pomocą następującego polecenia, które generuje projekt roboczy, który można łatwo przetestować za dotnet run pomocą polecenia .

    dotnet new consoleasync -n MyProject
    

    Uzyskasz następujące dane wyjściowe.

    The template "Example templates: async project" was created successfully.
    
  3. Uruchom projekt przy użyciu następującego polecenia.

    dotnet run
    

    Uzyskasz następujące dane wyjściowe.

    Hello World with C#
    

Gratulacje! Utworzono i wdrożono szablon projektu przy użyciu platformy .NET. W ramach przygotowań do następnej części tej serii samouczków odinstaluj utworzony szablon. Pamiętaj, aby usunąć wszystkie pliki z folderu testowego. Spowoduje to powrót do czystego stanu gotowego do następnej części tej serii samouczków.

Odinstalowywanie szablonu

W terminalu przejdź do folderu consoleasync i uruchom następujące polecenie, aby odinstalować szablon znajdujący się w bieżącym folderze:

  • W systemie Windows: dotnet new uninstall .\
  • W systemie Linux lub macOS: dotnet new uninstall ./

To polecenie zwraca listę odinstalowanych szablonów, które powinny zawierać Twoje.

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

W dowolnym momencie możesz użyć dotnet new uninstall polecenia , aby wyświetlić listę zainstalowanych pakietów szablonów, w tym dla każdego pakietu szablonu polecenie , aby je odinstalować.

Następne kroki

W tym samouczku utworzono szablon projektu. Aby dowiedzieć się, jak spakować zarówno element, jak i szablony projektów w łatwy w użyciu plik, kontynuuj tę serię samouczków.