Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Etki alanına özgü bir dil çözümünde metin şablonlarını değiştirdiğinizde veya eklediğinizde, altyapı şablonu kaynak koda dönüştürdüğünde veya oluşturulan kodu derlediğinde hatalarla karşılaşabilirsiniz. Aşağıdaki kılavuzda, metin şablonunda hata ayıklamak için yapabileceğiniz bazı işlemler gösterilmektedir.
Not
Genel olarak metin şablonları hakkında daha fazla bilgi için bkz . Kod Oluşturma ve T4 Metin Şablonları. Metin şablonlarında hata ayıklama hakkında daha fazla bilgi için bkz . İzlenecek Yol: Metin Şablonunda Hata Ayıklama.
Etki Alanına Özgü Dil Çözümü Oluşturma
Bu yordamda, aşağıdaki özelliklere sahip etki alanına özgü bir dil çözümü oluşturursunuz:
Ad: DebuggingTestLanguage
Çözüm şablonu: En Az Dil
Dosya uzantısı: .ddd
Şirket adı: Fabrikam
Etki alanına özgü dil çözümü oluşturma hakkında daha fazla bilgi için bkz . Nasıl yapılır: Etki Alanına Özgü Dil Çözümü Oluşturma.
Metin şablonu oluşturma
Çözümünüz için bir metin şablonu ekleyin.
Metin şablonu oluşturmak için
Çözümü derleyin ve hata ayıklayıcıda çalıştırmaya başlayın. (Derleme menüsü, Çözümü Yeniden Oluştur'a tıklayın ve hata ayıklama menüsünde Hata Ayıklamayı Başlat'a tıklayın.) Visual Studio'nun yeni bir örneği Hata Ayıklama projesini açar.
Hata Ayıklama projesine adlı
DebugTest.ttbir metin dosyası ekleyin.DebugTest.tt Özel Araç özelliğinin olarak
TextTemplatingFileGeneratorayarlandığından emin olun.
Metin şablonundan modele erişen hata ayıklama yönergeleri
Metin şablonundaki deyimlerden ve ifadelerden bir modele erişebilmeniz için önce oluşturulan yönerge işlemcisini çağırmanız gerekir. Oluşturulan yönerge işlemcisini çağırmak, modelinizdeki sınıfların metin şablonu kodunda özellik olarak kullanılabilmesini sağlar. Daha fazla bilgi için bkz . Metin Şablonlarından Modellere Erişme.
Aşağıdaki yordamlarda, yanlış yönerge adında ve yanlış özellik adında hata ayıklayacaksınız.
Yanlış yönerge adında hata ayıklamak için
DebugTest.tt içindeki kodu aşağıdaki kodla değiştirin:
Not
Kod bir hata içeriyor. Hata ayıklamak için hataya neden olacaksınız.
<#@ 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 #> <# } #>Çözüm Gezgini'da DebugTest.tt sağ tıklayın ve ardından Özel Aracı Çalıştır'a tıklayın.
Hata Listesi penceresinde şu hata görüntülenir:
'DebuggingTestLanguageDirectiveProcessor' adlı işlemci 'modelRoot' adlı yönergeyi desteklemiyor. Dönüştürme çalıştırılmaz.
Bu durumda, yönerge çağrısı yanlış bir yönerge adı içeriyor. Yönerge adı olarak belirttiniz
modelRoot, ancak doğru yönerge adı şeklindedirDebuggingTestLanguage.Koda atlamak için Hata Listesi penceresindeki hatayı çift tıklatın.
Kodu düzeltmek için yönerge adını olarak
DebuggingTestLanguagedeğiştirin.Değişiklik vurgulanır.
Çözüm Gezgini'da DebugTest.tt sağ tıklayın ve ardından Özel Aracı Çalıştır'a tıklayın.
Şimdi sistem metin şablonunu dönüştürür ve karşılık gelen çıkış dosyasını oluşturur. Hata Listesi penceresinde hata görmezsiniz.
Yanlış özellik adında hata ayıklamak için
DebugTest.tt içindeki kodu aşağıdaki kodla değiştirin:
Not
Kod bir hata içeriyor. Hata ayıklamak için hataya neden olacaksınız.
<#@ 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 #> <# } #>Çözüm Gezgini'da DebugTest.tt sağ tıklayın ve ardından Özel Aracı Çalıştır'a tıklayın.
Hata Listesi penceresi görüntülenir ve şu hatalardan birini görüntüler:
(C#)
Derleme dönüştürmesi: Microsoft.VisualStudio.TextTemplating<GUID>. GeneratedTextTransformation', 'ExampleModel' için bir tanım içermiyor
(Visual Basic)
Derleme dönüştürmesi: 'ExampleModel', 'Microsoft.VisualStudio.TextTemplating GUID'sinin<> üyesi değil. GeneratedTextTransformation'.
Bu durumda, metin şablonu kodu yanlış bir özellik adı içeriyor. Özellik adı olarak belirttiniz
ExampleModel, ancak doğru özellik adı şeklindedirLibraryModel. Aşağıdaki kodda gösterildiği gibi provides parametresinde doğru özellik adını bulabilirsiniz:<#@ DebuggingTestLanguage processor="DebuggingTestLanguageDirectiveProcessor" requires="fileName='Sample.ddd'" provides="ExampleModel=LibraryModel" #>Koda atlamak için Hata Listesi penceresindeki hatayı çift tıklatın.
Kodu düzeltmek için metin şablonu kodunda özellik adını olarak
LibraryModeldeğiştirin.Değişiklikler vurgulanır.
<#@ 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 #> <# } #>Çözüm Gezgini'da DebugTest.tt sağ tıklayın ve ardından Özel Aracı Çalıştır'a tıklayın.
Şimdi sistem metin şablonunu dönüştürür ve karşılık gelen çıkış dosyasını oluşturur. Hata Listesi penceresinde hata görmezsiniz.