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.
Saat mengubah atau menambahkan templat teks dalam solusi bahasa khusus domain, Anda mungkin mengalami kesalahan saat mesin mengubah templat menjadi kode sumber atau saat menyusun kode yang dihasilkan. Panduan berikut menunjukkan beberapa hal yang dapat Anda lakukan untuk men-debug templat teks.
Catatan
Untuk informasi selengkapnya tentang templat teks secara umum, lihat Pembuatan Kode dan Templat Teks T4. Untuk informasi selengkapnya tentang penelusuran kesalahan templat teks, lihat Panduan: Penelusuran Kesalahan Templat Teks.
Membuat Solusi Bahasa Khusus Domain
Dalam prosedur ini, Anda membuat solusi bahasa khusus domain yang memiliki karakteristik berikut:
Nama: DebuggingTestLanguage
Templat solusi: Bahasa Minimal
Ekstensi file: .ddd
Nama perusahaan: Fabrikam
Untuk informasi selengkapnya tentang membuat solusi bahasa khusus domain, lihat Petunjuk: Membuat Solusi Bahasa Khusus Domain.
Membuat templat teks
Tambahkan templat teks ke solusi Anda.
Untuk membuat templat teks
Bangun solusi dan mulai jalankan di debugger. (Pada menu Build, klik Bangun Kembali Solusi, lalu pada menu Debug, klik Mulai Penelusuran Kesalahan.) Instans baru Visual Studio membuka proyek Penelusuran Kesalahan.
Tambahkan file teks bernama
DebugTest.ttke proyek Penelusuran Kesalahan.Pastikan bahwa properti Alat Kustom DebugTest.tt diatur ke
TextTemplatingFileGenerator.
Arahan penelusuran kesalahan yang mengakses model dari templat teks
Sebelum dapat mengakses model dari pernyataan dan ekspresi dalam templat teks, Anda harus terlebih dahulu memanggil prosesor arahan yang dihasilkan. Memanggil prosesor arahan yang dihasilkan membuat kelas dalam model Anda tersedia untuk kode templat teks sebagai properti. Untuk informasi selengkapnya, lihat Mengakses Model dari Templat Teks.
Dalam prosedur berikut, Anda akan men-debug nama arahan yang salah dan nama properti yang salah.
Untuk men-debug nama arahan yang salah
Ganti kode di DebugTest.tt dengan kode berikut:
Catatan
Kode berisi kesalahan. Anda memasukkan kesalahan untuk men-debugnya.
<#@ template language="C#" inherits="Microsoft.VisualStudio.TextTemplating.VSHost.ModelingTextTransformation"#> <#@ output extension=".txt" #> <#@ modelRoot processor="DebuggingTestLanguageDirectiveProcessor" requires="fileName='Sample.ddd'" provides="ExampleModel=ExampleModel" #> Model: <#= this.ExampleModel #> <# foreach (ExampleElement element in this.ExampleModel.Elements) { #> Element: <#= element.Name #> <# } #>Di Penjelajah Solusi, klik kanan TestDP.tt lalu klik Run Custom Tool.
Jendela Daftar Kesalahan menampilkan kesalahan ini:
Prosesor bernama 'DebuggingTestLanguageDirectiveProcessor' tidak mendukung arahan bernama 'modelRoot'. Transformasi tidak akan dijalankan.
Dalam hal ini, panggilan arahan berisi nama arahan yang salah. Anda telah menentukan
modelRootsebagai nama arahan, tetapi nama arahan yang benar adalahDebuggingTestLanguage.Klik dua kali kesalahan di jendela Daftar Kesalahan untuk masuk ke kode.
Untuk memperbaiki kode, ubah nama arahan menjadi
DebuggingTestLanguage.Perubahan disorot.
Di Penjelajah Solusi, klik kanan TestDP.tt lalu klik Run Custom Tool.
Sekarang sistem mengubah templat teks dan menghasilkan file output yang sesuai. Anda tidak akan melihat kesalahan apa pun di jendela Daftar Kesalahan.
Untuk men-debug nama properti yang salah
Ganti kode di DebugTest.tt dengan kode berikut:
Catatan
Kode berisi kesalahan. Anda memasukkan kesalahan untuk men-debugnya.
<#@ template language="C#" inherits="Microsoft.VisualStudio.TextTemplating.VSHost.ModelingTextTransformation"#> <#@ output extension=".txt" #> <#@ DebuggingTestLanguage processor="DebuggingTestLanguageDirectiveProcessor" requires="fileName='Sample.ddd'" provides="ExampleModel=LibraryModel" #> Model: <#= this.ExampleModel #> <# foreach (ExampleElement element in this.ExampleModel.Elements) { #> Element: <#= element.Name #> <# } #>Di Penjelajah Solusi, klik kanan TestDP.tt lalu klik Run Custom Tool.
Jendela Daftar Kesalahan muncul dan menampilkan salah satu kesalahan ini:
(C#)
Mengompilasi transformasi: Microsoft.VisualStudio.TextTemplating<GUID>. GeneratedTextTransformation' tidak berisi definisi untuk 'ExampleModel'
(Visual Basic)
Mengompilasi transformasi: 'ExampleModel' bukan bagian dari 'Microsoft.VisualStudio.TextTemplating<GUID>.GeneratedTextTransformation'.
Dalam hal ini, kode templat teks berisi nama properti yang salah. Anda telah menentukan
ExampleModelsebagai nama properti, tetapi nama properti yang benar adalahLibraryModel. Anda dapat menemukan nama properti yang benar di parameter yang disediakan, seperti yang ditunjukkan dalam kode berikut:<#@ DebuggingTestLanguage processor="DebuggingTestLanguageDirectiveProcessor" requires="fileName='Sample.ddd'" provides="ExampleModel=LibraryModel" #>Klik dua kali kesalahan di jendela Daftar Kesalahan untuk masuk ke kode.
Untuk memperbaiki kode, ubah nama properti menjadi
LibraryModeldalam kode templat teks.Perubahan disorot.
<#@ template language="C#" inherits="Microsoft.VisualStudio.TextTemplating.VSHost.ModelingTextTransformation"#> <#@ output extension=".txt" #> <#@ DebuggingTestLanguage processor="DebuggingTestLanguageDirectiveProcessor" requires="fileName='Sample.ddd'" provides="ExampleModel=LibraryModel" #> Model: <#= this.LibraryModel #> <# foreach (ExampleElement element in this.LibraryModel.Elements) { #> Element: <#= element.Name #> <# } #>Di Penjelajah Solusi, klik kanan TestDP.tt lalu klik Run Custom Tool.
Sekarang sistem mengubah templat teks dan menghasilkan file output yang sesuai. Anda tidak akan melihat kesalahan apa pun di jendela Daftar Kesalahan.