Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dengan .NET, Anda dapat membuat dan menyebarkan templat yang menghasilkan proyek, file, dan sumber daya. Tutorial ini adalah bagian dari seri yang mengajarkan Anda cara membuat, menginstal, dan menghapus instalasi templat untuk digunakan dengan dotnet new perintah .
Anda dapat melihat templat yang telah selesai di repositori GitHub Sampel .NET.
Petunjuk / Saran
Templat item tidak ditampilkan dalam dialog Tambahkan>Item Baru di Visual Studio.
Di bagian seri ini, Anda mempelajari cara:
- Buat kelas untuk templat item.
- Buat folder dan file konfigurasi templat.
- Instal templat dari jalur file.
- Menguji tipe templat.
- Copot templat item.
Prasyarat
.NET 9 atau versi yang lebih baru.
Artikel referensi menjelaskan dasar-dasar tentang templat dan bagaimana templat disatukan. Beberapa informasi ini diulangi di sini.
Buka terminal dan navigasi ke folder tempat Anda akan menyimpan dan menguji templat.
Membuat folder yang diperlukan
Seri ini menggunakan "folder kerja" tempat sumber templat Anda berada dan "folder pengujian" yang digunakan untuk menguji templat Anda. Folder kerja dan folder pengujian harus berada di bawah folder induk yang sama.
Pertama, buat folder induk, nama tidak masalah. Kemudian, buat dua subfolder bernama bekerja dan uji. Di dalam folder kerja , buat subfolder bernama konten.
Struktur folder akan terlihat seperti berikut ini.
parent_folder
├───test
└───working
└───content
Membuat pola item
Templat item adalah jenis templat tertentu yang berisi satu atau beberapa file. Jenis templat ini berguna ketika Anda sudah memiliki proyek dan Anda ingin membuat file lain, seperti file konfigurasi atau file kode. Dalam contoh ini, Anda membuat kelas yang menambahkan metode ekstensi ke jenis string.
Di terminal Anda, navigasikan ke folder working\content dan buat subfolder baru bernama extensions.
working
└───content
└───extensions
Navigasikan ke folder ekstensi dan buat file baru bernama StringExtensions.cs. Buka file di editor teks. Kelas ini menyediakan metode ekstensi bernama Reverse yang membalikkan konten string. Tempelkan kode berikut dan simpan file:
namespace System;
public static class StringExtensions
{
public static string Reverse(this string value)
{
char[] tempArray = value.ToCharArray();
Array.Reverse(tempArray);
return new string(tempArray);
}
}
Sekarang setelah konten templat selesai, buat konfigurasi templat.
Membuat konfigurasi templat
Di bagian tutorial ini, folder templat Anda terletak di working\content\extensions.
Templat dikenali oleh .NET karena memiliki folder khusus dan file konfigurasi yang ada di akar folder templat Anda.
Pertama, buat subfolder baru bernama .template.config, dan masukkan. Kemudian, buat file baru bernama template.json. Struktur folder Anda akan terlihat seperti ini:
working
└───content
└───extensions
└───.template.config
template.json
Buka template.json dengan editor teks favorit Anda dan tempelkan kode JSON berikut dan simpan.
{
"$schema": "http://json.schemastore.org/template",
"author": "Me",
"classifications": [ "Common", "Code" ],
"identity": "ExampleTemplate.StringExtensions",
"name": "Example templates: string extensions",
"shortName": "stringext",
"tags": {
"language": "C#",
"type": "item"
},
"symbols": {
"ClassName":{
"type": "parameter",
"description": "The name of the code file and class.",
"datatype": "text",
"replaces": "StringExtensions",
"fileRename": "StringExtensions",
"defaultValue": "StringExtensions"
}
}
}
File konfigurasi ini berisi semua pengaturan untuk templat Anda. Anda dapat melihat pengaturan dasar, seperti name dan shortName, tetapi ada juga tags/type nilai yang diatur ke item. Ini mengategorikan templat Anda sebagai templat "item". Tidak ada batasan pada jenis templat yang Anda buat. Nilai item dan project adalah nama umum yang direkomendasikan .NET sehingga pengguna dapat dengan mudah memfilter jenis templat yang mereka cari.
Item classifications mewakili kolom tag yang Anda lihat saat menjalankan dotnet new dan mendapatkan daftar templat. Pengguna juga dapat mencari berdasarkan tag klasifikasi. Jangan membingungkan tags properti dalam file template.json dengan classifications daftar tag. Mereka adalah dua konsep berbeda yang sayangnya dinamai sama. Skema lengkap untuk file template.json ditemukan di Penyimpanan Skema JSON dan dijelaskan di Referensi untuk template.json. Untuk informasi selengkapnya tentang file template.json , lihat wiki templat dotnet.
Bagian symbols dari objek JSON ini digunakan untuk menentukan parameter yang dapat digunakan dalam templat. Dalam hal ini, ada satu parameter yang ditentukan, ClassName. Parameter yang ditentukan berisi pengaturan berikut:
-
type- Ini adalah pengaturan wajib dan harus diatur keparameter. -
description- Deskripsi parameter, yang dicetak dalam bantuan templat. -
datatype- Jenis data nilai parameter saat parameter digunakan. -
replaces- Menentukan nilai teks yang harus diganti di semua file templat dengan nilai parameter. -
fileRename- Mirip denganreplaces, ini menentukan nilai teks yang menggantikan nama semua file templat dengan nilai parameter. -
defaultValue- Nilai default parameter ini ketika parameter tidak ditentukan oleh pengguna.
Ketika templat digunakan, pengguna dapat memberikan nilai untuk ClassName parameter , dan nilai ini menggantikan semua kemunculan StringExtensions. Jika nilai tidak disediakan, nilai defaultValue akan digunakan. Untuk templat ini, ada dua kemunculan StringExtensions: file StringExtensions.cs dan kelas StringExtensions.
defaultValue Karena parameternya adalah StringExtensions, nama file dan nama kelas tetap tidak berubah jika parameter tidak ditentukan saat menggunakan templat. Ketika nilai ditentukan, misalnya dotnet new stringext -ClassName MyExts, file diganti namanya MyExts.cs dan kelas diganti namanya menjadi MyExts.
Untuk melihat parameter apa yang tersedia untuk templat, gunakan -? parameter dengan nama templat:
dotnet new stringext -?
Yang menghasilkan output berikut:
Example templates: string extensions (C#)
Author: Me
Usage:
dotnet new stringext [options] [template options]
Options:
-n, --name <name> The name for the output being created. If no name is specified, the name of the output directory is used.
-o, --output <output> Location to place the generated output.
--dry-run Displays a summary of what would happen if the given command line were run if it would result in a template creation.
--force Forces content to be generated even if it would change existing files.
--no-update-check Disables checking for the template package updates when instantiating a template.
--project <project> The project that should be used for context evaluation.
-lang, --language <C#> Specifies the template language to instantiate.
--type <item> Specifies the template type to instantiate.
Template options:
-C, --ClassName <ClassName> The name of the code file and class.
Type: text
Default: StringExtensions
Sekarang setelah Anda memiliki file .template.config/template.json yang valid, templat Anda siap untuk diinstal. Di terminal Anda, navigasikan ke folder ekstensi dan jalankan perintah berikut untuk menginstal templat yang terletak di folder saat ini:
-
Pada Windows:
dotnet new install .\ -
Di Linux atau macOS:
dotnet new install ./
Perintah ini menghasilkan daftar templat yang diinstal, yang harus menyertakan templat Anda.
The following template packages will be installed:
<root path>\working\content\extensions
Success: <root path>\working\content\extensions installed the following templates:
Templates Short Name Language Tags
-------------------------------------------- ------------------- ------------ ----------------------
Example templates: string extensions stringext [C#] Common/Code
Menguji templat item
Sekarang setelah Anda menginstal templat item, uji templat tersebut.
Navigasikan ke folder pengujian .
Buat aplikasi konsol baru dengan
dotnet new console, yang menghasilkan proyek kerja yang dapat Anda uji dengan mudah dengandotnet runperintah .dotnet new consoleAnda mendapatkan output yang mirip dengan yang berikut ini.
The template "Console Application" was created successfully. Processing post-creation actions... Running 'dotnet restore' on C:\test\test.csproj... Restore completed in 54.82 ms for C:\test\test.csproj. Restore succeeded.Jalankan proyek menggunakan perintah berikut.
dotnet runAnda mendapatkan output berikut.
Hello, World!Jalankan
dotnet new stringextuntuk menghasilkan file StringExtensions.cs dari templat.dotnet new stringextAnda mendapatkan output berikut.
The template "Example templates: string extensions" was created successfully.Ubah kode di Program.cs untuk membalikkan
"Hello, World!"string dengan metode ekstensi yang disediakan oleh templat.Console.WriteLine("Hello, World!".Reverse());Jalankan program lagi dan lihat bahwa hasilnya dibalik.
dotnet runAnda mendapatkan output berikut.
!dlroW ,olleH
Selamat! Anda membuat dan menyebarkan templat item dengan .NET. Sebagai persiapan untuk bagian berikutnya dari seri tutorial ini, hapus instalan templat yang Anda buat. Pastikan untuk menghapus semua file dan folder di folder pengujian juga. Ini mengembalikan Anda ke kondisi yang bersih, siap untuk memulai bagian berikutnya dari seri tutorial ini.
Copot pemasangan templat
Di terminal Anda, navigasikan ke folder ekstensi dan jalankan perintah berikut untuk menghapus instalasi templat yang terletak di folder saat ini:
-
Di Windows:
dotnet new uninstall .\ -
Di Linux atau macOS:
dotnet new uninstall ./
Perintah ini menghasilkan daftar templat yang dihapus instalasinya, yang harus menyertakan templat Anda.
Success: <root path>\working\content\extensions was uninstalled.
Kapan saja, Anda dapat menggunakan dotnet new uninstall untuk melihat daftar paket templat yang diinstal, termasuk untuk setiap paket templat perintah untuk menghapus instalannya.
Langkah selanjutnya
Dalam tutorial ini, Anda membuat templat item. Untuk mempelajari cara membuat templat proyek, lanjutkan seri tutorial ini.