Sdílet prostřednictvím


Ladění textové šablony T4

Můžete nastavit zarážky v textu šablony.Ladění textu návrhu šablony, uložte soubor šablony text a pak zvolte Ladění šablony T4 v místní nabídce souboru v Průzkumníku řešení.Ladění spuštění text šablony, jednoduše ladit aplikace, do které patří.

Ladění textu šablony, měli byste pochopit kroky procesu transformace šablony.Různé druhy chyby může dojít v každém kroku.Postup je následující.

Krok

Šablona návrhu: když se stane

Spuštění šablony: když se stane

Generování kódu ze šablony text.

Chyby ve směrnicích, nebo neodpovídající nebo disordered <#…#> značky.

Při uložení šablony nebo vyvolat transformace textu.

Při uložení šablony nebo vyvolat transformace textu.

Generovaný kód je zkompilován.

Chyby kompilace v kódu šablony.

Ihned po předchozím kroku.

A kód vaší aplikace.

Kód se spustí.

Chyby v kódu šablony.

Ihned po předchozím kroku.

Pokud aplikace spustí a vyvolá kód šablony.

Ve většině případů čísla řádků v kódu šablony jsou uvedeny v chybové zprávě.Pokud chybová zpráva odkazuje na dočasný název souboru, je obvyklá příčina neshodující závorky v kódu šablony text.

Můžete nastavit zarážky v textu šablony a ladění obvyklým způsobem.

Běžné chyby a opravy

Následující tabulka uvádí většinu běžných chyb a jejich oprav.

Chybová zpráva

Description

Řešení

Nepodařilo se načíst z které transformace třída dědí základní třídy {0}.

Dochází, pokud nelze najít rodičovskou třídou zadanou v inherits parametr v směrnice šablony.Zpráva obsahuje číslo směrnice šablony.

Ujistěte se, že zadaná třída existuje a že sestavení, která existuje v podle směrnice sestavení.

Nepodařilo se vložit text, file:{0}

Dochází, když nelze najít šablonu zahrnuty.Zpráva obsahuje název souboru požadovaného zahrnout.

Ujistěte se, že cesta k souboru je relativní k cestě původní šablony, nebo že soubor je v umístění, které je registrována s hostitelem nebo že je úplná cesta k souboru.

Při inicializaci objektu transformace byly generovány chyby.Transformace se nespustí.

Vyvolá se v případě "Initialize()" třída transformace se nezdařila nebo vrátila hodnotu false.

Kód funkce Initialize() pochází ze třídy základní transformace podle <#@template#> a ze směrnice procesorů.Chyby, která způsobila pravděpodobně nezdaří inicializace je v seznamu chyb.Zjistěte, proč se nezdařilo.Pomocí následujících postupů ladění šablonu můžete prohlédnout skutečné generovaný kód pro Initialize().

Sestavení {0}' pro směrnice procesoru {1} nebyla udělena sada oprávnění FullTrust.Pouze důvěryhodné sestavení mohou poskytnout směrnice procesorů.Tato směrnice procesoru nebude načten.

Dochází, když systém neuděluje oprávnění FullTrust sestavení obsahující směrnice procesoru.Zpráva obsahuje název sestavení a název směrnice procesoru.

Ujistěte se, pouze pomocí důvěryhodných sestavení v místním počítači.

Cestu {0} musí být k tomuto počítači místní nebo součástí důvěryhodné zóny.

Vyvolá se v případě směrnice nebo směrnice sestavení odkazuje na soubor, který není v místním počítači nebo v síti důvěryhodné zóny.

Ujistěte se, že je adresář, kde jsou umístěny směrnice nebo směrnic sestavení v důvěryhodné zóny.Do důvěryhodné zóny pomocí aplikace Internet Explorer můžete přidat síťový adresář.

Více syntaktických chyb, například "Neplatný token" catch"nebo"oboru názvů nemůže obsahovat přímo členy"

Příliš mnoho uzavírací závorkou v kódu šablony.Kompilátor je matoucí je standardní generování kódu.

Zkontrolujte počet zavření závorky a závorky uvnitř oddělovače kódu.

Smyčky nebo podmíněné příkazy není kompilován nebo provedeny správně.Příklad:

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

Tento kód je vždy vyprodukuje výstupní hodnotu i.Pouze "číslo je:" je podmíněna.

V jazyce C# používejte závorky vždy k ohraničení textových bloků, které jsou vloženy v příkazech ovládacího prvku.

Přidáte závorky:

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

"Výraz je příliš složitý" při zpracování návrhu šablony nebo kompilace za běhu (předem zpracovaný) šablony.

Visual Studiopřestane fungovat při pokusu kontrolovat kód generovaný v šabloně za běhu.

Blok textu je příliš dlouhý.T4 Převede výraz zřetězení řetězce, s jeden řetězec literálu pro každý řádek šablony textových bloků.Velmi dlouhé textové bloky lze overstep omezení velikosti kompilátoru.

Rozdělte dlouhý textový blok s blok výraz, jako:

<#= "" #>

Popis upozornění a opravy

Následující tabulka uvádí nejběžnější varování a opravy, pokud je k dispozici.

Upozornění

Description

Řešení

Načítání souboru zahrnout {0} vrátila hodnotu null nebo prázdný řetězec.

Nastane v případě, že šablona obsahuje textový soubor je prázdný.Zpráva obsahuje soubor název začleněného souboru.

Buď odeberte direktivy include nebo zkontrolujte, zda že soubor obsahuje část obsahu.

Kompilace transformace:

Připojí řetězec na všechny chyby nebo varování, které pocházejí z kompilátoru při kompilaci transformace.Tento řetězec znamená, že kompilátor vyvolala chyba nebo varování.

Pokud máte problém najít knihovnu DLL, musíte zadat úplnou cestu nebo úplný silný název, pokud knihovna DLL v mezipaměti GAC.

Parametr {0}' již existuje v direktivě.Duplicitní parametr je ignorován.

Vyvolá se v případě, že parametr je zadán více než jednou ve směrnici.Zpráva obsahuje název parametru a číslo řádku dané směrnice.

Odeberte duplicitní parametr specifikace.

Došlo k chybě při načítání zahrnout soubor {0}.Směrnice zahrnout budou ignorovány.

Vyvolá se v případě, že nelze najít soubor zadaný v include směrnice.Zpráva obsahuje název souboru a číslo řádku dané směrnice.

Přesvědčte se, zda že zahrnout soubor existuje ve stejném adresáři jako původní soubor šablony text nebo v jednom z zahrnout adresáře, které jsou registrovány v systému hostitele.

Byla zadána neplatná základní třídy třídy transformace.Základní třídy musí být odvozena od Microsoft.VisualStudio.TextTemplating.TextTransformation.

Dochází při inherits parametr v směrnice šablony určuje, který nedědí z třídy TextTransformation.Zpráva obsahuje číslo směrnice šablony.

Určete třídu, která pochází z TextTransformation.

V směrnice "šablony" byl zadán neplatný kultury.Jazyková verze musí být ve formátu "xx-XX".Použije invariantní jazykové verze.

Dochází, když je nesprávně zadán parametr culture směrnice šablony.Zpráva obsahuje číslo směrnice šablony.

Změňte parametr culture platné jazykové verze ve formátu "xx-XX".

Směrnice šablony byla zadána hodnota neplatná ladicí {0}.Program debug hodnota musí být "true" nebo "false".Bude použita výchozí hodnota "false".

Dochází při debug je nesprávně zadán parametr směrnice šablony.Zpráva obsahuje číslo směrnice šablony.

Nastavte parametr debug na "hodnotu true" nebo "false".

Směrnice šablony byla zadána neplatná hodnota HostSpecific {0}.HostSpecific hodnota musí být "true" nebo "false".Bude použita výchozí hodnota "false".

Dochází při parametr specifického pro hostitele v template je nesprávně uvedené směrnice.Zpráva obsahuje číslo směrnice šablony.

Nastavte parametr specifického pro hostitele na "true" nebo "false".

Ve směrnici "šablony" byl zadán neplatný jazyk {0}.Jazyk musí být "C#" nebo "VB".Bude použita výchozí hodnota z "C#".

Vyvolá se v případě, že je zadán nepodporovaný jazyk v template směrnice.Pouze "C#" nebo "VB" jsou povoleny (písmen).Zpráva obsahuje číslo směrnice šablony.

Nastavit language parametr v směrnice šablony "C#" nebo "VB".

Několik směrnic výstup nebyly nalezeny v šabloně.Budou ignorovány všechny kromě první.

Vyvolá se při více output směrnic, které jsou uvedeny v souboru šablony.Zpráva obsahuje direktivu výstupu duplicitní číslo řádku.

Odebrat duplicitní output směrnice.

Více směrnice šablony nebyly nalezeny v šabloně.Budou ignorovány všechny kromě první.V rámci jedné šablony směrnice musí být zadáno více parametrů směrnice šablony.

Nastane, pokud zadáte více template směrnic v textovém souboru šablony (včetně zahrnuté soubory).Zpráva obsahuje číslo směrnice duplicitní šablony.

Agregovat různé template směrnic do jednoho template směrnice.

Směrnice s názvem '{0}' byl zadán žádný procesor.Směrnice budou ignorovány.

Nastane, pokud zadáte custom směrnice, ale neposkytují processor atribut.Zpráva obsahuje název směrnice a číslo řádku.

Poskytnout processor atribut s názvem directive procesoru pro tuto směrnici.

Procesor s názvem {0} nebyla nalezena pro směrnici s názvem {1}.Směrnice budou ignorovány.

Vyvolá se v případě, že systém nemůže najít directive procesoru, které jste zadali v rámci custom směrnice.Zpráva obsahuje název směrnice procesoru název a číslo řádku této směrnice.

Nastavit processor atribut v direktivě název směrnice procesoru.

Nebyl nalezen povinný parametr {0}' pro direktivu {1}.Směrnice budou ignorovány.

Dochází, když systém neposkytuje požadovaný parametr směrnice.Zpráva obsahuje název chybějícího parametru Název směrnice a číslo řádku.

Zadejte chybějící parametr.

Procesor s názvem {0} nepodporuje směrnice s názvem {1}.Směrnice budou ignorovány.

Vyvolá se v případě směrnice procesor nepodporuje směrnice.Zpráva obsahuje název a řádku číslo problematický směrnice spolu s názvem směrnice procesoru.

Opravte název této směrnice.

Direktivy include souboru {0} způsobuje nekonečnou smyčku.

Zobrazí v případě, že kruhový direktiv jsou určeny (například soubor obsahuje soubor B, která obsahuje soubor A).

Nezadávejte cyklický direktiv.

Spouštění transformace:

Připojí řetězec na všechny chyby nebo varování, které jsou generovány při běhu transformace.

Nelze použít.

V rámci bloku byl nalezen neočekávaný počáteční nebo koncový tag.Ujistěte se, že nebyla chybně zadána počáteční nebo koncový tag a že nemáte žádné vnořené bloky v šabloně.

Zobrazí, pokud máte neočekávanou <# nebo #>.To znamená pokud máte <# za jiné otevřené tag, který ještě nebyl uzavřen, nebo mít #> po žádné neuzavřený značky otevřít dříve, než.Zpráva obsahuje číslo řádku neodpovídající značky.

Buď odeberte neodpovídající počáteční nebo koncový tag nebo použít znak escape.

Směrnice byl zadán v nesprávném formátu.Směrnice budou ignorovány.Zadejte směrnice ve formátu <#@ název [název parametru = "parametervalue"] * #>

Zobrazí analyzátorem směrnice není-li zadán ve správném formátu.Zpráva obsahuje číslo řádku nesprávná směrnice.

Zkontrolujte všechny směrnice jsou ve formě <#@ název [název parametru = "parametervalue"] * #>.Další informace naleznete v tématu T4 – direktivy textových šablon.

Nepodařilo se načíst sestavení {0}' pro registrované směrnice procesoru {1}.

{2}

Vyvolá se v případě směrnice procesoru nelze načíst hostitel.Zprávy určuje sestavení podle směrnice procesoru a název směrnice procesoru.

Ujistěte se, zda směrnice procesoru je správně zaregistrována a že sestavení existuje.

Nepodařilo se najít typ {0}' v sestavení {1} pro registrované směrnice procesoru {2}

{3}

Dochází, když z jeho sestavení nelze načíst typ směrnice procesoru.Zpráva obsahuje název typu, sestavení a směrnice procesoru.

Vshost najde informace o směrnice procesoru (název sestavení a typu) v registru.Ujistěte se, zda směrnice procesoru je správně zaregistrována a že existuje typ v sestavení.

Došlo k potížím při načítání sestavení {0}.

Vyvolá se v případě, že došlo k potížím při načítání sestavení.Zpráva obsahuje název sestavení.

Můžete určit v načtení sestavení <assembly @# #> směrnic a podle směrnice procesorů.Chybovou zprávu, která následuje řetězec by měla poskytnout další údaje o příčině selhání načtení sestavení.

Došlo k chybě vytvoření a inicializace procesoru směrnice s názvem {1}.Typ procesoru je {0}.Směrnice budou ignorovány.

Dochází, když nelze vytvořit nebo inicializovat směrnice procesoru systému.Zpráva obsahuje název a řádku číslo směrnice a typ procesoru.

Ujistěte se, že používáte správné směrnice procesoru a že směrnice procesoru nemá veřejný výchozí konstruktor.Jinak použijte možnosti ladění zjistit, proč metodu Initialize() směrnice procesoru je chybné.Další informace naleznete v tématu Ladění textové šablony T4.

Došlo k výjimce během zpracování směrnice s názvem {0}.

Vyvolá se v případě směrnice procesoru vyvolá výjimku při zpracování direktivy.

Ujistěte se, zda jsou správné parametry směrnice procesoru.

Hostiteli došlo k výjimce při pokusu o vyřešení odkazu na sestavení {0}.

Vyvolá se v případě, že hostitel vyvolá výjimku při pokusu o odkaz na sestavení řešení.Zpráva obsahuje sestavení odkazovat na řetězec.

Sestavení odkazy pocházejí z <@# assembly #> směrnice a směrnice procesorů.Ujistěte se, zda je správný parametr sestavení podle parametru "název".

Pokusit se určit hodnotu {1} není podporován '{0}' pro směrnice {2}

Způsobeno RequiresProvidesDirectiveProcessor, (vše z něj odvodit naše generované procesory směrnice), zadáte nepodporovaný vyžaduje nebo nabízí argument.

Ujistěte se, že jména v name = "hodnota" podle dvojic vyžaduje a parametry jsou správné.