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 SDK számos már telepített és használatra kész sablont tartalmaz. A dotnet new parancs nem csak a sablon használatának módja, hanem a sablonok telepítésének és eltávolításának módja is. Létrehozhat saját egyéni sablonokat bármilyen típusú projekthez, például alkalmazáshoz, szolgáltatáshoz, eszközhöz vagy osztálytárhoz. Létrehozhat olyan sablont is, amely egy vagy több független fájlt, például konfigurációs fájlt ad ki.
Egyéni sablonokat bármely NuGet-csatornán telepíthet Egy NuGet-csomagból, ha közvetlenül egy NuGet .nupkg-fájlra hivatkozik, vagy megadhatja a sablont tartalmazó fájlrendszerkönyvtárat. A sablonmotor olyan funkciókat kínál, amelyek lehetővé teszik az értékek cseréjét, a fájlok belefoglalását és kizárását, valamint egyéni feldolgozási műveletek végrehajtását a sablon használatakor.
A sablonmotor nyílt forráskódú, az online kódtár pedig a GitHubon található dotnet/templating helyen található. További sablonokat, köztük harmadik felektől származó sablonokat is találhat a használatával dotnet new search. További információ az egyéni sablonok létrehozásáról és használatáról: Hogyan hozhat létre saját sablonokat a dotnet új és a dotnet/templating GitHub-adattár wikijéhez.
Megjegyzés:
Sablonpéldák a dotnet/templating GitHub-adattárban érhetők el.
Az útmutató követéséhez és a sablon létrehozásához tekintse meg az új dotnet-oktatóanyag egyéni sablonjának létrehozását ismertető témakört .
.NET alapértelmezett sablonjai
A .NET SDK telepítésekor több mint egy tucat beépített sablont kap projektek és fájlok létrehozásához, beleértve a konzolalkalmazásokat, osztálytárakat, egységtesztelési projekteket, ASP.NET Core-alkalmazásokat (beleértve az Angular- és React-projekteket) és a konfigurációs fájlokat. A beépített sablonok listázásához futtassa a dotnet new list következő parancsot:
dotnet new list
Konfiguráció
A sablon a következő részekből áll:
- Forrásfájlok és mappák.
- Konfigurációs fájl (template.json).
Forrásfájlok és mappák
A forrásfájlok és mappák tartalmazzák azokat a fájlokat és mappákat, amelyeket a sablonmotor a parancs futtatásakor dotnet new <TEMPLATE> használni szeretne. A sablonmotor úgy lett kialakítva, hogy futtatható projekteket használjon forráskódként a projektek létrehozásához. Ennek számos előnye van:
- A sablonmotor nem szükséges speciális jeleket injektálni a projekt forráskódjába.
- A kódfájlok nem speciális fájlok, és semmilyen módon nem módosíthatók a sablonmotor használatához. Így a projektek használatakor általában használt eszközök sablontartalommal is működnek.
- A sablonprojekteket ugyanúgy hozhatja létre, futtathatja és hibakeresést végezhet, mint bármely más projekt esetében.
- Egy meglévő projektből egyszerűen létrehozhat sablont úgy, hogy hozzáad egy ./.template.config/template.json konfigurációs fájlt a projekthez.
A sablonban tárolt fájlok és mappák nem korlátozódnak a formális .NET-projekttípusokra. A forrásfájlok és mappák bármilyen tartalomból állhatnak, amelyeket a sablon használatakor létre szeretne hozni, még akkor is, ha a sablonmotor csak egy fájlt állít elő kimenetként.
A sablon által létrehozott fájlok a template.json konfigurációs fájlban megadott logika és beállítások alapján módosíthatók. A felhasználó felülbírálhatja ezeket a beállításokat úgy, hogy átadja a beállításokat a dotnet new <TEMPLATE> parancsnak. Az egyéni logika gyakori példája az, amikor egy osztály vagy változó nevet adunk a sablon által telepített kódfájlban.
template.json
A template.json fájl egy .template.config mappába kerül a sablon gyökérkönyvtárában. A fájl konfigurációs információkat biztosít a sablonmotornak. A minimális konfigurációhoz az alábbi táblázatban szereplő tagok szükségesek, ami elegendő egy funkcionális sablon létrehozásához.
| Tag | Típus | Leírás |
|---|---|---|
$schema |
URI | A template.json fájl JSON-sémája. A JSON-sémákat támogató szerkesztők engedélyezik a JSON-szerkesztési funkciókat a séma megadásakor. A Visual Studio Code-nak például engedélyeznie kell az IntelliSense-t. Az https://json.schemastore.org/template érték használata. |
author |
karakterlánc | A sablon szerzője. |
classifications |
tömb(karakterlánc) | A sablon nulla vagy több tulajdonsága, amellyel a felhasználó megkeresheti a sablont a keresés során. A besorolások akkor is megjelennek a Címkék oszlopban, ha a parancs használatával dotnet new list létrehozott sablonok listájában jelennek meg. |
identity |
karakterlánc | A sablon egyedi neve. |
name |
karakterlánc | A sablon neve, amelyet a felhasználóknak látniuk kell. |
shortName |
karakterlánc | Az alapértelmezett rövidített név a sablon kiválasztásához, amely olyan környezetekre vonatkozik, ahol a sablon nevét a felhasználó adja meg, és nem grafikus felhasználói felületen van kiválasztva. A rövid név például akkor hasznos, ha parancssori parancssorból származó sablonokat használ cli-parancsokkal. |
sourceName |
karakterlánc | A forrásfa azon neve, amely a felhasználó által megadott névre cserélendő. A sablonmotor megkeresi a konfigurációs fájlban említett sourceName előfordulásait, és kicseréli azokat a fájlnevekben és a fájltartalomban. A lecserélendő érték megadható a sablon futtatása közben a -n vagy --name opciók használatával. Ha nincs megadva név, a rendszer az aktuális könyvtárat használja. |
preferNameDirectory |
logikai | Azt jelzi, hogy létre szeretne-e hozni egy könyvtárat a sablonhoz, ha a név meg van adva, de nincs beállítva kimeneti könyvtár (ahelyett, hogy közvetlenül az aktuális könyvtárban hozná létre a tartalmat). Az alapértelmezett érték hamis. |
A template.json fájl teljes sémája a JSON sématárolóban található. A template.json fájlról további információt a dotnet templating wikijében talál. Ha részletesebb példákat és információkat szeretne megtudni arról, hogyan teheti láthatóvá sablonjait a Visual Studióban, tekintse meg a Sayed Hashimi által létrehozott erőforrásokat.
példa
Íme például egy sablonmappa, amely két tartalomfájlt tartalmaz: console.cs és readme.txt. A szükséges.template.confignevű mappa is tartalmazza a template.json fájlt.
└───mytemplate
│ console.cs
│ readme.txt
│
└───.template.config
template.json
A template.json fájl a következőképpen néz ki:
{
"$schema": "https://json.schemastore.org/template",
"author": "Travis Chau",
"classifications": [ "Common", "Console" ],
"identity": "AdatumCorporation.ConsoleTemplate.CSharp",
"name": "Adatum Corporation Console Application",
"shortName": "adatumconsole"
}
A mytemplate mappa egy telepíthető sabloncsomag. A csomag telepítése után a shortName a dotnet new paranccsal használható. Például dotnet new adatumconsole az aktuális mappába helyezi a console.cs és readme.txt fájlokat.
Sablon honosítása
A .NET-sablonok honosíthatók. Ha egy sablon az aktuális területi beállításnak megfelelő nyelvhez van honosítva, az elemei ugyanabban a nyelven jelennek meg, mint a parancssori felület. A honosítás nem kötelező új sablonok létrehozásakor.
A sablon honosítható elemei a következők:
- Név
- Szerző
- Leírás
- Szimbólumok
- Leírás
- Megjelenítendő név
- A választási paraméterek választási lehetőségeinek leírása és megjelenítendő neve
- Hozzászólások műveletei
- Leírás
- Manuális utasítások
A honosítási fájlok JSON formátumúak, és kultúránként csak egy fájlnak kell léteznie. Az elnevezési konvenció a következő: templatestrings.<lang code>.jsonahol lang code a CultureInfo egyik lehetőségének felel meg. Minden honosítási fájlnak a .template-config\localize mappában kell lennie.
A honosítási JSON kulcsértékpárokból áll:
- A lényeg a honosítandó elem
template.jsonhivatkozása. Ha az elem egy gyermek, használja a teljes elérési utat egy/elválasztójellel. - Az érték a kulcs által megadott elem honosítási sztringje.
A sablonok honosításáról további információt a dotnet templating wiki honosítási oldalán talál.
példa
Például az alábbi template.json fájl néhány honosítható mezővel:
{
"$schema": "https://json.schemastore.org/template",
"author": "Microsoft",
"classifications": "Config",
"name": "EditorConfig file",
"description": "Creates an .editorconfig file for configuring code style preferences.",
"symbols": {
"Empty": {
"type": "parameter",
"datatype": "bool",
"defaultValue": "false",
"displayName": "Empty",
"description": "Creates empty .editorconfig instead of the defaults for .NET."
}
}
}
Továbbá egyes mezőket brazil portugál nyelvre kell lokalizálni. A fájlnév templatestrings.pt-BR.json a kulturális környezetnek felel meg, és a következőképpen fog kinézni:
{
"author": "Microsoft",
"name": "Arquivo EditorConfig",
"description": "Cria um arquivo .editorconfig para configurar as preferências de estilo de código.",
"symbols/Empty/displayName": "Vazio",
"symbols/Empty/description": "Cria .editorconfig vazio em vez dos padrões para .NET."
}
Sablon csomagolása NuGet-csomagba (nupkg-fájl)
Egy egyéni sablon a dotnet pack paranccsal és egy .csproj fájllal van összeállítva. Másik lehetőségként a NuGet a nuget pack paranccsal és egy .nuspec fájllal is használható. A NuGet azonban megköveteli a .NET-keretrendszert Windows és Mono rendszeren Linuxon és macOS rendszeren.
A .csproj fájl kissé eltér a hagyományos code-project .csproj fájltól. Vegye figyelembe a következő beállításokat:
- A
<PackageType>beállítás hozzáadódik ésTemplate-re van állítva. - A
<PackageVersion>beállítás hozzá lesz adva, és egy érvényes NuGet-verziószámra van állítva. - A
<PackageId>beállítás hozzáadódik, és egyedi azonosítóra van állítva. Ez az azonosító a sabloncsomag eltávolítására szolgál, és a NuGet-hírcsatornák használják a sabloncsomag regisztrálásához. - Az általános metaadat-beállításokat be kell állítani:
<Title>,<Authors>,<Description>és<PackageTags>. - A
<TargetFramework>beállítást be kell állítani, annak ellenére, hogy a sablonfolyamat által létrehozott bináris fájl nincs használatban. Az alábbi példában a következőrenetstandard2.0van állítva: .
A .nupkg NuGet-csomag formájában lévő sabloncsomaghoz minden sablont a csomag tartalommappájában kell tárolni. A .csproj-fájlhoz további beállításokat is hozzá kell adni, hogy a létrehozott .nupkg sabloncsomagként telepíthető legyen:
- A
<IncludeContentInPack>beállítás úgy van beállítvatrue, hogy bármely fájlt, amelyet a projekt tartalomként állított be, belefoglalja a NuGet-csomagba. - A
<IncludeBuildOutput>beállítás úgy van beállítva, hogyfalsekizárja a fordító által létrehozott összes bináris fájlt a NuGet-csomagból. - A
<ContentTargetFolders>beállítás a következőrecontentvan állítva: . Ez biztosítja, hogy a tartalomként beállított fájlok a NuGet-csomag tartalommappájában legyenek tárolva. A NuGet-csomagban lévő mappát a dotnet-sablonrendszer elemzi.
A sablonprojekt kódfájlainak kizárásának egyszerű módja, ha a <Compile Remove="**\*" /> elemet használja a projektfájlban, egy <ItemGroup> elemen belül.
A sabloncsomag felépítésének egyszerű módja az, hogy minden egyes sablont külön mappába helyez, majd ezeket a sablonmappákat egy sablonok mappába helyezi, amely az .csproj fájllal azonos könyvtárban található. Így egyetlen projektelem használatával az összes fájlt és mappát tartalomként is belefoglalhatja a sablonokba. Elemen <ItemGroup> belül hozzon létre egy <Content Include="templates\**\*" Exclude="templates\**\bin\**;templates\**\obj\**" /> elemet.
Íme egy példa .csproj fájlra, amely az alábbi irányelvek mindegyikét követi. A sablonok gyermekmappáját a tartalomcsomag mappájába csomagolja, és kizárja a kódfájl fordítását.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageType>Template</PackageType>
<PackageVersion>1.0</PackageVersion>
<PackageId>AdatumCorporation.Utility.Templates</PackageId>
<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>
<TargetFramework>netstandard2.0</TargetFramework>
<IncludeContentInPack>true</IncludeContentInPack>
<IncludeBuildOutput>false</IncludeBuildOutput>
<ContentTargetFolders>content</ContentTargetFolders>
</PropertyGroup>
<ItemGroup>
<Content Include="templates\**\*" Exclude="templates\**\bin\**;templates\**\obj\**" />
<Compile Remove="**\*" />
</ItemGroup>
</Project>
Az alábbi példa bemutatja a . csproj sabloncsomag létrehozásához használt fájl- és mappastruktúráját. A MyDotnetTemplates.csproj fájl és a sablonok mappa egyaránt egy project_folder nevű könyvtár gyökerében található. A sablonok mappa két sablont tartalmaz: mytemplate1 és mytemplate2. Minden sablon tartalmaz tartalomfájlokat és.template.configmappát egytemplate.json konfigurációs fájllal.
project_folder
│ MyDotnetTemplates.csproj
│
└───templates
├───mytemplate1
│ │ console.cs
│ │ readme.txt
│ │
│ └───.template.config
│ template.json
│
└───mytemplate2
│ otherfile.cs
│
└───.template.config
template.json
Megjegyzés:
Annak érdekében, hogy a sabloncsomag eredményként dotnet new search jelenjen meg, állítsa a NuGet-csomag típusát a következőre Template: .
Sabloncsomag telepítése
Sabloncsomag telepítéséhez használja a dotnet új telepítési parancsát.
Figyelmeztetés
A sablonok aktiválva futtathatják az MSBuild kódot és más tetszőleges kódot. Ne telepítse vagy futtassa a nem megbízható .NET-sablonokat.
Sabloncsomag telepítése a nuget.org-ben tárolt NuGet-csomagból
Sabloncsomag telepítéséhez használja a NuGet-csomag azonosítót.
dotnet new install <NUGET_PACKAGE_ID>
Sabloncsomag telepítése egyéni NuGet-forrásból
Adjon meg egy egyéni NuGet-forrást (például https://api.my-custom-nuget.com/v3/index.json).
dotnet new install <NUGET_PACKAGE_ID> --nuget-source <SOURCE>
Sabloncsomag telepítése helyi nupkg-fájlból
Adja meg a .nupkg NuGet-csomagfájl elérési útját.
dotnet new install <PATH_TO_NUPKG_FILE>
Sabloncsomag telepítése fájlrendszerkönyvtárból
A sablonok sablonmappából telepíthetők, például az előző példában szereplő mytemplate1 mappából. Adja meg a .template.config mappa elérési útját. A sablonkönyvtár elérési útjának nem kell abszolútnak lennie.
dotnet new install <FILE_SYSTEM_DIRECTORY>
Telepített sabloncsomagok listájának lekérése
Az eltávolítási parancs minden más paraméter nélkül felsorolja az összes telepített sabloncsomagot és a mellékelt sablonokat.
dotnet new uninstall
A parancs a következő kimenethez hasonló eredményt ad vissza:
Currently installed items:
Microsoft.Azure.WebJobs.ProjectTemplates
Version: 4.0.1942
Details:
Author: Microsoft
NuGetSource: https://api.nuget.org/v3/index.json
Templates:
Azure Functions (func) C#
Azure Functions (func) F#
Uninstall Command:
dotnet new uninstall Microsoft.Azure.WebJobs.ProjectTemplates
...
A Currently installed items: utáni elemek első szintje azokat az azonosítókat tartalmazza, amelyeket a sabloncsomagok eltávolításához használnak. Az előző példában a Microsoft.Azure.WebJobs.ProjectTemplates szerepel. Ha a sabloncsomag fájlrendszer-elérési úttal lett telepítve, ez az azonosító a .template.config mappa elérési útja. A listában csak a telepített dotnet new install sabloncsomagok jelennek meg. A .NET SDK-ba beépített sabloncsomagok nem jelennek meg.
Sabloncsomag eltávolítása
Sabloncsomag eltávolításához használja a dotnet új eltávolítási parancsát.
Ha a csomagot egy NuGet-hírcsatorna vagy egy .nupkg-fájl telepítette közvetlenül, adja meg az azonosítót.
dotnet new uninstall <NUGET_PACKAGE_ID>
Ha a csomagot a .template.config mappához vezető elérési út megadásával telepítette, akkor ezzel az elérési úttal távolíthatja el a csomagot. A sabloncsomag abszolút elérési útját a parancs által megadott kimenetben tekintheti meg dotnet new uninstall . További információ: A telepített sablonok listájának lekérése szakasz.
dotnet new uninstall <FILE_SYSTEM_DIRECTORY>
Projekt létrehozása egyéni sablonnal
Miután telepített egy sablont, használja a sablont úgy, hogy végrehajtja a dotnet new <TEMPLATE> parancsot, ahogyan bármely más előre telepített sablon esetében tenné. A parancs beállításait is megadhatja, beleértve a dotnet new sablonbeállításokban konfigurált sablonspecifikus beállításokat is. Adja meg közvetlenül a parancsnak a sablon rövid nevét:
dotnet new <TEMPLATE>