Nachdem ich heute zwei kleine REST-Services für mein Server geschrieben hatte und noch einen zusätzlichen Service aufsetzen wollte hab ich mir gedacht, dass das ganze doch einfacher gehen muss als jedes mal wieder alle benötigten NuGet Pakete hinzuzufügen, die allgemeinen Klassen zu erstellen (naja eher Copy & Paste aus einem bestehenden Projekt) und so weiter.

Also hab ich schnell nach „Visual Studio custom template“ gegoogelt und bin auch recht fix fündig geworden. Und zwar bietet Visual Studio die Funktion, aus einem bestehenden Projekt ein Template zu erstellen. Das ganze findet man unter: Project > Export Template…

Export Template Wizard
Optionen

Ein paar kurze Infos eingetragen und auf Finish geklickt. Schon hat mein sein Template erstellt. Naja, fast! Seit VS 2019 wurde der Dialog zum Erstellen einer Solution geändert. Daher muss man das Template noch etwas anpassen, damit man es auch im Auswahl Dialog finden kann. Und zwar muss man dem Template noch ein paar Tags verpassen, damit man das ganze in Visual Studio auch wieder finden kann. Dazu muss man folgendes machen:

  1. In den Ordner wechseln wo das Template gespeichert ist (C:\Users\USER\Documents\Visual Studio 2019\My Exported Templates\)
  2. Das Template entpacken
  3. Die Datei MyTemplate.vstemplate suchen und im Editor eurer Wahl (VSCode, notepad++, etc.) öffnen
  4. Dem Knoten <TemplateData> muss jetzt folgendes hinzugefügt werden:
    <LanguageTag>CSharp</LanguageTag>
    <PlatformTag>Windows</PlatformTag>
    <ProjectTypeTag>Console</ProjectTypeTag>


    Die Werte (CSharp, Windows, Console) müssen naklar passend zum Template gesetzt werden.
  5. Wenn die Tags hinzugefügt sind, die Datei speichern
  6. Alles wieder als Zip packen und anschließend in den Ordner C:\Users\USER\Documents\Visual Studio 2019\Templates\Project Templates\
    verschieben.
    Hier könnt ihr das Template auch noch in ein passenden Unterordner packen um das ganze etwas sortierter zu haben.

Am Ende sieht das ganze dann so aus:

TopshelfService & RESTService sind benutzerdefinierte Templates.

Ziemlich einfach oder?