Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A .NET használatával projekteket, fájlokat és erőforrásokat létrehozó sablonokat hozhat létre és helyezhet üzembe. Ez az oktatóanyag egy sorozat harmadik része, amely bemutatja, hogyan hozhat létre, telepíthet és távolíthat el sablonokat a dotnet new paranccsal való használatra.
A kész sablont a .NET-minták GitHub-adattárábantekintheti meg.
A sorozat ezen részében megtanulhatja, hogyan:
- Sabloncsomag létrehozása a Microsoft.TemplateEngine.Authoring.Templates NuGet-csomag
használatával. - Sabloncsomag telepítése NuGet-csomagfájlból.
- Távolítsa el a sabloncsomagot csomagazonosító alapján.
Előfeltételek
.NET 9 vagy újabb verzió.
Töltse ki a 1. rész és a 2. rész elemeit az oktatóanyag-sorozatból.
Ez az oktatóanyag az oktatóanyag-sorozat első két részében létrehozott két sablont használja. Használhat egy másik sablont, amíg a sablont mappaként másolja a munka\tartalom mappába.
Nyisson meg egy terminált, és keresse meg a működő mappát.
Telepítse a
Microsoft.TemplateEngine.Authoring.Templatessablont a NuGet-csomagcsatornából.- Futtassa a
dotnet new install Microsoft.TemplateEngine.Authoring.Templatesparancsot a terminálból.
- Futtassa a
Sabloncsomag-projekt létrehozása
Egy sabloncsomag egy vagy több, NuGet-csomagba csomagolt sablon. Sabloncsomag telepítésekor vagy eltávolításakor a rendszer a csomagban található összes sablont hozzáadja vagy eltávolítja.
A sabloncsomagokat nuGet-csomag (.nupkg) fájl jelöli. És mint minden NuGet-csomag, feltöltheti a sabloncsomagot egy NuGet-hírcsatornába. A dotnet new install parancs támogatja a sabloncsomagok NuGet-csomagcsatornából, .nupkg fájlból vagy sablonnal rendelkező könyvtárból történő telepítését.
Általában egy C#-projektfájlt használ a kód fordításához és egy bináris fájl létrehozásához. A projekt azonban sabloncsomag létrehozásához is használható. A .csproj
A létrehozni kívánt csomag tartalmazza a korábban létrehozott elemet és projektsablonokat .
A Microsoft.TemplateEngine.Authoring.Templates csomag a sablonkészítéshez hasznos sablonokat tartalmaz. A csomag telepítéséhez nuget.org NuGet-hírcsatornaként kell rendelkezésre állnia a munkakönyvtárban.
A működő mappában futtassa a következő parancsot a sabloncsomag létrehozásához:
dotnet new templatepack -n "AdatumCorporation.Utility.Templates"A
-nparaméter a projektfájl nevét AdatumCorporation.Utility.Templates.csprojállítja be. Az alábbi kimenethez hasonló eredményt kell látnia.The template "Template Package" was created successfully. Processing post-creation actions... Description: Manual actions required Manual instructions: Open *.csproj in the editor and complete the package metadata configuration. Copy the templates to _content_ folder. Fill in README.md.Ezután nyissa meg a AdatumCorporation.Utility.Templates.csproj fájlt egy kódszerkesztőben, és töltse ki a sablonban található tippek szerint:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <!-- The package metadata. Fill in the properties marked as TODO below --> <!-- Follow the instructions on https://learn.microsoft.com/nuget/create-packages/package-authoring-best-practices --> <PackageId>AdatumCorporation.Utility.Templates</PackageId> <PackageVersion>1.0</PackageVersion> <Title>AdatumCorporation Templates</Title> <Authors>Me</Authors> <Description>Templates to use when creating an application for Adatum Corporation.</Description> <PackageTags>dotnet-new;templates;contoso</PackageTags> <PackageProjectUrl>https://your-url</PackageProjectUrl> <PackageType>Template</PackageType> <TargetFramework>net8.0</TargetFramework> <IncludeContentInPack>true</IncludeContentInPack> <IncludeBuildOutput>false</IncludeBuildOutput> <ContentTargetFolders>content</ContentTargetFolders> <NoWarn>$(NoWarn);NU5128</NoWarn> <NoDefaultExcludes>true</NoDefaultExcludes> ... cut for brevity ...
A projekt XML-fájljának leírása
Az XML-kódrészlet <PropertyGroup> alatti beállítások két csoportra vannak bontva.
Az első csoport a NuGet-csomagokhoz szükséges tulajdonságokkal foglalkozik. A négy <Package*> beállításnak a NuGet-csomag tulajdonságaival kell rendelkeznie, hogy azonosítsa a csomagot egy NuGet-csatornán. A NuGet által használt <PackageId> érték a sabloncsomag eltávolítására is használható. A többi beállításnak, például a <Title> és a <PackageTags>, a NuGet-csatornán és a .NET-csomagkezelőben megjelenített metaadatokkal kell rendelkeznie. További információ a NuGet-beállításokról: NuGet és MSBuild tulajdonságok.
Megjegyzés:
Annak érdekében, hogy a sabloncsomag megjelenjen a dotnet new search eredmények között, <PackageType>-et Template-re kell állítani.
A második csoportban a <TargetFramework> beállítás biztosítja, hogy az MSBuild megfelelően fusson, amikor a csomagparancsot futtatja a projekt fordításához és csomagolásához. A csoport olyan beállításokat is tartalmaz, amelyek a projekt konfigurálásával kapcsolatosak, hogy a sablonok a létrehozásukkor a NuGet-csomag megfelelő mappájába kerüljenek.
A
<NoWarn>beállítás letilt egy olyan figyelmeztető üzenetet, amely nem vonatkozik a sabloncsomag-projektekre.A
<NoDefaultExcludes>beállítás biztosítja, hogy a.(például.gitignore) kezdődő fájlok és mappák a sablon részét képezik. A NuGet-csomagok alapértelmezett viselkedése az, hogy figyelmen kívül hagyja ezeket a fájlokat és mappákat.
<ItemGroup> két elemet tartalmaz. Először is a <Content> elem tartalmazza a sablonok mappájának minden tartalmát. Úgy is van beállítva, hogy kizárja a bin mappát vagy a obj mappát, hogy megakadályozza a fordított kód bekerülését, ha tesztelte és lefordította a sablonokat. Másodszor, a <Compile> elem kizárja az összes kódfájl összeállítását, függetlenül attól, hogy hol találhatók. Ez a beállítás megakadályozza, hogy a sabloncsomag létrehozásához használt projekt megpróbálja lefordítani a kódot a sablonok mappahierarchiájában.
Tipp
További információ a NuGet metaadat-beállításairól: Sablon csomagolása NuGet-csomagba (nupkg-fájlba).
A létrehozott projektfájl msbuild feladatokat és honosítási beállításokat létrehozó sablont tartalmaz.
<PropertyGroup>
<LocalizeTemplates>false</LocalizeTemplates>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.TemplateEngine.Tasks" Version="*" PrivateAssets="all" IsImplicitlyDefined="true"/>
</ItemGroup>
Fontos
A tartalom mappa egy SampleTemplate mappát tartalmaz. Töröld ezt a mappát, mivel bemutató céljából adták hozzá a szerzői sablonhoz.
Ezek az MSBuild-feladatok sablonérvényesítést és a sablonok képességeinek honosítását biztosítják. A honosítás alapértelmezés szerint le van tiltva. Honosítási fájlok létrehozásának engedélyezéséhez állítsa LocalizeTemplatestrueértékre.
Csomagolás és telepítés
Mentse a projektfájlt. A sabloncsomag létrehozása előtt ellenőrizze, hogy a mappaszerkezet helyes-e. A csomagolni kívánt sablonokat a tartalommappába , a saját mappájába kell helyezni. A mappaszerkezetnek a következő hierarchiához hasonlóan kell kinéznie:
working
│ AdatumCorporation.Utility.Templates.csproj
└───content
├───extensions
│ └───.template.config
│ template.json
└───consoleasync
└───.template.config
template.json
A tartalom mappának két mappája van: bővítmények és consoleasync.
A terminálban a működő mappából futtassa a dotnet pack parancsot. Ez a parancs létrehozza a projektet, és létrehoz egy NuGet-csomagot a working\bin\Release mappában, az alábbi kimenetnek megfelelően:
MSBuild version 17.8.0-preview-23367-03+0ff2a83e9 for .NET
Determining projects to restore...
Restored C:\code\working\AdatumCorporation.Utility.Templates.csproj (in 1.16 sec).
AdatumCorporation.Utility.Templates -> C:\code\working\bin\Release\net8.0\AdatumCorporation.Utility.Templates.dll
Successfully created package 'C:\code\working\bin\Release\AdatumCorporation.Utility.Templates.1.0.0.nupkg'.
Ezután telepítse a sabloncsomagot a dotnet new install paranccsal. Windows rendszeren:
dotnet new install .\bin\Release\AdatumCorporation.Utility.Templates.1.0.0.nupkg
Linux vagy macOS rendszeren:
dotnet new install bin/Release/AdatumCorporation.Utility.Templates.1.0.0.nupkg
Az alábbihoz hasonló kimenetnek kell megjelennie:
The following template packages will be installed:
C:\code\working\AdatumCorporation.Utility.Templates\bin\Release\AdatumCorporation.Utility.Templates.1.0.0.nupkg
Success: AdatumCorporation.Utility.Templates::1.0.0 installed the following templates:
Templates Short Name Language Tags
-------------------------------------------- ------------------- ------------ ----------------------
Example templates: string extensions stringext [C#] Common/Code
Example templates: async project consoleasync [C#] Common/Console/C#9
Ha feltöltötte a NuGet-csomagot egy NuGet-hírcsatornába, használhatja a dotnet new install <PACKAGE_ID> parancsot, amelyben a <PACKAGE_ID> ugyanaz, mint a <PackageId> beállítás a .csproj fájlból.
A sabloncsomag eltávolítása
Függetlenül attól, hogy hogyan telepítette a sabloncsomagot, akár közvetlenül a .nupkg fájllal, akár a NuGet-hírcsatornával, a sabloncsomag eltávolítása ugyanaz. Az eltávolítani kívánt sablon <PackageId>-ját használja. Az dotnet new uninstall parancs futtatásával lekérheti a telepített sablonok listáját.
C:\working> dotnet new uninstall
Currently installed items:
... cut to save space ...
AdatumCorporation.Utility.Templates
Details:
NuGetPackageId: AdatumCorporation.Utility.Templates
Version: 1.0.0
Author: Me
Templates:
Example templates: async project (consoleasync) C#
Example templates: string extensions (stringext) C#
Uninstall Command:
dotnet new uninstall AdatumCorporation.Utility.Templates
A dotnet new uninstall AdatumCorporation.Utility.Templates-t futtassa a sabloncsomag eltávolításához. A parancs adatokat ad ki arról, hogy milyen sabloncsomagokat távolítottak el.
Gratulálok! Telepített és eltávolított egy sabloncsomagot.
Következő lépések
Ha többet szeretne megtudni a sablonokról, amelyek többségét már megtanulta, tekintse meg a dotnet új cikkének