Aracılığıyla paylaş


Hata ayıklama T4 metin şablonu

Kesme noktaları metin şablonları ayarlayabilirsiniz.Tasarım zamanı metin şablonu hata ayıklamak için seçim Hata ayıklama T4 şablon metin şablon dosyası Çözüm Gezgini'nde, kısayol menüsünde.Çalışma zamanı metin şablonu hata ayıklamak için basitçe ait olduğu uygulama hata ayıklama.

Metin şablonu hata ayıklamak için şablon dönüşüm işleminin adımları anlamanız gerekir.İçinde her adım çeşitli hatalar oluşabilir.Adımlar aşağıdaki gibidir:

Adım

Tasarım Şablonu: ne olur

Çalışma zamanı şablonu: ne olur

Metin şablonu kodu oluşturulur.

Yönergeleri, hataları veya eşleşmeyen veya disordered <#…#> etiketler.

Ne zaman şablon kaydetmek veya metin dönüştürme çağırır.

Ne zaman şablon kaydetmek veya metin dönüştürme çağırır.

Oluşturulan kod derlenir.

Şablon kodunuzda bir derleme hatası.

Hemen önceki adımdan sonra.

Uygulama kodu ile birlikte.

Kod çalışır.

Şablon kodunuzda çalışma zamanı hataları.

Hemen önceki adımdan sonra.

Ne zaman uygulama çalışır ve şablonu kodu çağırır.

Çoğu durumda, Hata raporundaki satır numaralarını şablonu kodu verilir.Geçici bir dosya adı için hata raporu başvurduğu zaman, her zamanki eşleşmeyen köşeli ayraç içinde metin şablonu kodu nedenidir.

Metin şablonları içinde kesme noktalarını ayarlayın ve her zamanki yolla hata ayıklama.

Ortak hatalar ve düzeltmeler

Aşağıdaki tabloda en sık karşılaşılan hatalar ve bunların düzeltmeleri listeler.

Hata iletisi

Tanımlama

Çözüm

Hangi dönüştürme sınıfının devraldığı '{0}' temel sınıfı yüklenemedi.

Belirtilen temel sınıfı bulunamıyor ortaya inherits parametre şablon yönergesi.İletiyi şablon yönergesi satırı sayısını sağlar.

Belirtilen sınıf var ve derleme içinde bulunan bir derleme yönergesinde belirtilen emin olun.

Çözülemedi dahil file:{0 için metin}

İçerdiği bir şablon bulamadığında oluşur.İleti, istenen içerik dosyası adı sağlar.

Özgün şablon yolu dosya yolu olduğunu veya dosyası yürütücüsüyle kayıtlı bir konumda olduğunu veya dosya için tam bir yol olduğunu unutmayın.

Dönüşüm nesnesi başlatılırken hatalar oluşturuldu.Dönüşüm çalışmaz.

Dönüşüm sınıfının 'önce 'Initialize() başarısız oldu veya false döndürdü oluşur.

<#@template#> Belirtilen dönüşüm temel sınıf olarak Initialize() işlev kodu geldiği yönerge ve yönergesi işlemciler.Initialize büyük olasılıkla başarısız olmasına neden olan hata, hata listede bulunuyor.Neden başarısız araştırın.Şablon hata ayıklamak için yordamları izleyerek önce Initialize() için gerçek üretilen koda bakabilirsiniz.

Yönerge işlemcisi '{1}' için '{0}' derlemesi FullTrust izni verilmedi.Yalnızca güvenilir derlemeler yönergesini işlemciler sağlamak için izin verilir.Bu yönerge işlemcisi yüklü değil.

Sistem yönerge işlemcisi içeren bir derleme için FullTrust izinleri vermek değil oluşur.İleti derlemenin adını ve yönerge işlemcisi adını sağlar.

Güvenilir derlemeler yalnızca yerel makinede kullandığınızdan emin olun.

'{0}' Yolu, bu bilgisayar için yerel ya da güvenilen, bölgenin bir parçası olmalıdır.

Yönergeniz veya derleme yönergesi değil yerel makinenizde veya ağınızın güvenilir bölge üzerinde bir dosyaya başvurduğunda oluşur.

Yönergeniz veya derleme yönergeleri konumlandırıldığı dizin diliminizi güvenilir olduğundan emin olun.Internet Explorer, güvenilen bölge için bir ağ dizini ekleyebilirsiniz.

Birden çok sözdizimi hataları "Geçersiz simge ' catch'" veya "üyeler doğrudan bir ad içeremez"

Şablon kodunuzu çok fazla kapama ayraçları.Derleyiciye standart kod ile kafa olur.

Kaşlı ayraçlar ve kod sınırlayıcıları içinde köşeli kapatma sayısını denetleyin.

Döngüleri veya derlenmiş veya düzgün yürütülen bilgi almak.Örne?in:

<#if (i>10)#>
   Number is: <#= i #>.

Bu kodu her zaman değerini verir istiyorum.Yalnızca "sayı:" koşullu değil.

C# [NULL]'ta her zaman ayraçlar içine denetim deyimleri katıştırılmış metin bloklarını kullanın.

Kaşlı ayraçlar ekleyin:

<#if (i>10) { #>
   Number is: <#= i #>.
<# } #>

"Çok karmaşık ifade" olduğunda işleme tasarım şablonu veya çalışma zamanı (Önişlenmiş) şablonu derleniyor.

Visual Studioçalışma zamanı şablonu tarafından üretilen kod incelemek çalışırken çalışmayı durdurur.

Metin bloğu çok uzun.Her şablon satırı için bir dize içeren bir dize bitiştirme ifadesi metin bloklarını T4 dönüştürür.Çok uzun metin blokları derleyicinin boyut sınırları overstep.

Uzun metin bloğu gibi bir ifade bloğu ile bölmek:

<#= "" #>

Uyarı açıklamaları ve düzeltmeleri

Aşağıdaki tablo, varsa birlikte düzeltmeleri, en yaygın uyarıları listeler.

Uyarı iletisi

Tanımlama

Çözüm

'{0}' İçerik dosyası yüklenirken null veya boş dize döndürdü.

Eklenen metin şablon dosyası boş ise oluşur.İletinin ekli dosyanın dosya adı sağlar.

İçerme yönergesi kaldırın ya da bazı içerik dosyası olduğundan emin olun.

Dönüşüm derleme:

Bu dize için tüm hataları ve Uyarıları derleyici dönüştürmeyi derlediğinde kaynaklanan başına ekler.Bu dize, derleyici bir hata veya uyarı gönderdi anlamına gelir.

dll ararken bir sorun varsa, dll gac içerisinde ise tam yolu veya tam tanımlayıcı bir ad vermeniz gerekir.

Yönergede '{0}' parametresi zaten var.Yinelenen parametre yoksayılır.

Parametre bir yönergesinde belirtilen birden çok kez oluşur.İleti adı parametresi ve yönergesi satırı sayısını sağlar.

Yinelenen parametre belirtimini kaldırın.

'{0}' İçerik dosyası yüklenirken hata oluştu.İçerme yönergesi yoksayılır.

Belirtilen dosyayı bulamadığında oluşur bir include yönergesi.İleti dosyasının adını ve yönergesi satırı sayısını sağlar.

Özgün metin şablon dosyası ile aynı dizinde veya bir ana bilgisayar ile kayıtlı dahil dizinleri içer dosyanın varolduğundan emin olun.

Geçersiz bir temel sınıf dönüştürme sınıfı için belirtildi.Temel sınıf Microsoft.VisualStudio.TextTemplating.TextTransformation ' türetilmelidir.

Oluşur, inherits sınıfından olmayan bir sınıf şablon yönergesi belirtir TextTransformation.İletiyi şablon yönergesi satırı sayısını sağlar.

Türetilen bir sınıf belirtmek TextTransformation.

'Şablon' yönergesinde belirtilen geçersiz bir kültür.Kültür "xx-xx" biçiminde olmalıdır.Sabit kültür kullanılacaktır.

Şablon yönergesi kültür parametresi yanlış olarak belirtildiğinde oluşur.İletiyi şablon yönergesi satırı sayısını sağlar.

Kültür parametresi "xx-xx" biçiminde geçerli bir kültür olarak değiştirin.

Geçersiz hata ayıklama değer için '{0}' şablonu yönergesinde belirtilmiş.Hata ayıklama değerini "true" veya "yanlış" olmalıdır.Varsayılan değer "false" olarak kullanılacaktır.

Oluşur, debug parametre şablon yönergesi hatalı belirtilmiş.İletiyi şablon yönergesi satırı sayısını sağlar.

Hata ayıklama parametresi "doğru" veya "false" olarak ayarlayın.

Geçersiz HostSpecific değeri '{0}' şablonu yönergesinde belirtilmiş.HostSpecific değeri "doğru" veya "false" olmalıdır.Varsayılan değer "false" olarak kullanılacaktır.

Oluşur, ana bilgisayara özgü parametresinde bir template yönergesi hatalı belirtilen.İletiyi şablon yönergesi satırı sayısını sağlar.

Ana bilgisayara özgü parametresi "doğru" veya "false" olarak ayarlayın.

'{0}' Geçersiz bir dil 'şablon' yönergesi belirtildi.Dil, "C#" veya "vb" olmalıdır."C#" varsayılan değeri kullanılır.

Desteklenmeyen bir dil belirtildiğinde oluşur template yönergesi.Yalnızca "C#" veya "vb" verilir (büyük/küçük harf duyarlı).İletiyi şablon yönergesi satırı sayısını sağlar.

Set language "C#" veya "vb" şablon yönergesi parametresi.

Birden çok çıkış yönergesi şablonunda bulunamadı.İlki dışındaki tüm göz ardı edilir.

Oluşur, birden çok output yönergeleri şablon dosyasında belirtilir.İletiyi çift çıkış yönergesi satırı sayısını sağlar.

Yineleneni Kaldır output yönergeleri.

Birden çok şablon yönergeleri şablonu bulunamadı.İlki dışındaki tüm göz ardı edilir.Bir şablon yönergesi içinde şablon yönergesi için birden çok parametre belirtilmelidir.

Çoklu belirttiğiniz meydana template içindeki bir metin şablonu dosyasını (eklenen dosyalar dahil).İleti yinelenen şablon yönergesi satırı sayısını sağlar.

Farklı toplama template yönergeleri tek bir template yönergesi.

'{0}' Adlı bir yönergesi için hiçbir işlemci belirtildi.Yönergesi yoksayılır.

Belirttiğiniz meydana bir custom yönergesi, ancak değil bir processor özniteliği.İleti adı yönergesi ve satır numarası sağlar.

Sağlayan bir processor öznitelik adı ile directive yönergesi için işlemci.

'{1}' Adlı yönergesi için '{0}' adlı bir işlemci bulunamadı.Yönergesi yoksayılır.

Sistem bulamadığında ortaya directive işlemci içinde belirtilen bir custom yönergesi.İleti yönerge adı, işlemci adı ve satır numarası yönergesi sağlar.

Set processor yönergesinde yönerge işlemcisi adı özniteliği.

'{0}' {1}' Yönergesi için gerekli bir parametre bulunamadı.Yönergesi yoksayılır.

Sistemi yönergesi gerekli bir parametre sağlamaz oluşur.İleti eksik parametrenin adını, yönerge adı ve satır numarası sağlar.

Eksik parametre sağlar.

Yönergede '{1}' adlı {0}' adlı işlemci desteklemez.Yönergesi yoksayılır.

Yönerge işlemcisi bir yönergesi desteklemediğinde ortaya çıkar.İleti adı yönerge işlemcisi sorunlu yönergesinin adı ve satır numarası sağlar.

Yönergesi adını düzeltin.

'{0}' Dosyası için içerme yönergesi, sonsuz bir döngüye neden olur.

Döngüsel yönergeleri görüntülenebilmesi belirtilir (örneğin, dosya a içeren dosya a, b dosya içerir).

Döngüsel belirtme yönergeleri içerir.

Dönüştürmeyi çalıştırma:

Bu dize için tüm hataları ve dönüşüm çalıştırılırken oluşturulan uyarıları başına ekler.

Yoktur.

Beklenmeyen bir başlangıç veya bitiş etiketi bir blok içinde bulundu.Başlangıç veya bitiş etiketi mis-type değil olduğunu ve herhangi bir iç içe bloklar şablonda yoksa emin olun.

Beklenmeyen bir olduğunda görüntülenen < # veya #>.Yani, değil kapalı açık başka bir etiket veya aldıktan sonra bir # < # > varsa hiç kapatılmamış açık etiketinden önce onu olduğunda.İleti etiketi eşleşmeyen satır sayısını sağlar.

Eşleşmeyen başlangıç veya bitiş etiketi kaldırın ya da bir kaçış karakterini kullanın.

Yanlış biçimde bir yönergesi belirtildi.Yönergesi yoksayılır.Lütfen yönergesini belirttiğiniz biçimde < #@ adı [parametername = "parametervalue"] * #>

Doğru biçimde bir yönerge belirtilmezse, ayrıştırıcı tarafından görüntülenir.İleti yanlış yönergesi satırı sayısını sağlar.

Tüm yönergeleri biçiminde olduğundan emin olun < #@ adı [parametername = "parametervalue"] * #>.Daha fazla bilgi için bkz. T4 Metin şablon yönergeleri.

Kayıtlı yönerge işlemcisi '{1}' için '{0}' derlemesi yüklenemedi

{2}

Ana bilgisayar tarafından yönerge işlemcisi yüklenemedi oluşur.İleti için yönerge işlemcisi ve yönerge işlemcisi adı verilen bütünleştirilmiş kodu tanımlar.

Derlemenin varolduğunu ve yönerge işlemcisi doğru şekilde kayıtlı olduğundan emin olun.

'{0}' Türü '{1}' derlemesinde kayıtlı yönerge işlemcisi için {2}' bulunamadı.

{3}

Yönerge işlemcisi türü kendi derlemesinden yüklenemedi oluşur.İleti türü, derleme ve yönerge işlemcisi adını sağlar.

Vshost yönergesi işlemci bilgileri (adı, derleme ve tür) kayıt defterinde bulur.Yönerge işlemcisi doğru olarak kaydedilmemiş ve türü derlemede var emin olun.

'{0}' Derlemesi yüklenirken bir sorun oluştu

Bir derleme yüklenirken bir sorun olduğunda oluşur.İleti derlemenin adını sağlar.

< @# Derleme #> yüklenecek derlemeler belirtebilirsiniz. yönergeleri ve yönergesi işlemciler.Bu dize aşağıdaki hata iletisini neden başarısız derleme yükleme hakkında daha fazla veri sağlamanız gerekir.

Oluşturma ve '{1}' adlı bir yönergesinin işlemci başlatılırken bir sorun oluştu.İşlemci türü olduğundan {0}.Yönergesi yoksayılır.

Sistem oluşturulamadı veya yönerge işlemcisi başlatma oluşur.İleti yönergesi adı ve satır numarasını ve işlemci türünü sağlar.

Doğru yönerge işlemcisi kullanın ve yönerge işlemcisi genel varsayılan bir oluşturucuya sahip olun.Aksi takdirde yönerge işlemcisi olarak Initialize() yöntemini başarısız olduğu neden bulmak için hata ayıklama seçeneklerini kullanın.Daha fazla bilgi için bkz. Hata ayıklama T4 metin şablonu.

'{0}' Adlı bir yönergesi işlerken bir özel durum oluşturuldu.

Yönerge işlemcisi bir yönergeyi işleme sırasında özel durum oluşturduğunda gerçekleşir.

Yönerge işlemcisi için parametreleri doğru olduğundan emin olun.

Ana bilgisayar derleme başvurusu '{0}' çözülmeye çalışılırken bir özel durum oluşturdu.

Ana bilgisayar derleme başvurusu çözümlemeye çalışırken özel durum oluşturduğunda gerçekleşir.İleti derleme sağlar başvuru dizesi.

Derleme başvuruları gelen < @# derleme #> yönergeleri ve yönergesi işlemciler.Sağlanan derleme parametresinde 'name' parametresi doğru olduğundan emin olun.

Yönergesi {2} için desteklenmeyen {1} değeri '{0}' belirleme girişimi

RequiresProvidesDirectiveProcessor (tüm bizim oluşturulan yönergesi işlemciler kendisinden türetmek), ortaya çıkar sağladığınız bir desteklenmeyen gerektirir veya bağımsız değişken sağlar.

Name = adlarında 'çiftleri sağlanan değer,' dikkat gerektirir ve doğru parametreleri sağlar.