Oprava: Chybová zpráva při dvakrát volání metody "System.Xml.Xsl.XslTransform.Transform" v aplikaci založené na rozhraní .NET Framework 2.0: "Cyklický odkaz v definici proměnné < název proměnné >"

Překlady článku Překlady článku
ID článku: 937320 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

V Microsoft aplikace založené na rozhraní .NET Framework 2.0 volání metody System.Xml.Xsl.XslTransform.Transform k transformaci dat XML z šablony stylů. Při volání této metody znovu, můžete obdržet následující chybovou zprávu:
System.Xml.Xsl.XsltException: Cyklický odkaz v definici proměnné variable name
K tomuto problému dochází, když šablona stylů obsahuje dopředný odkaz na globální proměnnou.

Řešení

Informace o opravě hotfix

Má nyní od společnosti Microsoft k dispozici podporovanou opravu hotfix. Že je však určena pouze problém popsaný v tomto článku. Použijte ji pouze v systémech, ve kterých dochází k tomuto konkrétnímu problému. Tato oprava hotfix může být dále testována. Proto pokud je přísně neohrožuje tento problém, doporučujeme počkat na další aktualizaci service pack pro rozhraní .NET Framework 2.0, která bude tuto opravu hotfix obsahovat.

Potřebujete-li odstranit tento problém okamžitě, obraťte se na technickou podporu společnosti Microsoft, kde můžete tuto opravu hotfix získat. Úplný seznam telefonních čísel služeb technické podpory společnosti Microsoft a informace o cenách podpory naleznete na následujícím webu společnosti Microsoft:
http://support.microsoft.com/contactus/?ws=support
Poznámka: Ve zvláštních případech mohou být poplatky za poskytnutí telefonické podpory účtovány stornovány, jestliže pracovník technické podpory společnosti Microsoft určí, že konkrétní aktualizace vyřeší váš problém. Výdaje na podporu se obvykle týkají dalších otázek a problémů, které se netýkají této zvláštní opravy.

Požadavky

Je nutné nainstalovat tuto opravu hotfix po instalaci rozhraní .NET Framework 2.0.

Požadavek na restartování

Není nutné po instalaci této opravy hotfix restartovat počítač.

Informace o nahrazení opravy hotfix

Tato oprava hotfix nenahrazuje žádné další opravy hotfix.

Informace o souboru

Anglická verze této opravy hotfix má atributy souborů (nebo vyšší atributy souborů), jsou uvedeny v následující tabulce. Data a časy těchto souborů jsou uvedeny v koordinovaný světový čas (UTC). Při zobrazení informací o souboru, bude převedena na na místní čas. Rozdíl mezi místním časem a UTC časem kartě časové pásmo v položce datum a čas v Ovládacích panelech.
Rozhraní .NET Framework 2.0, verze x 86
Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
System.data.SQLXML.dll2.0.50727.883716,80015. Května 200719: 47x 86
Rozhraní .NET Framework 2.0, verze x 64
Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
System.data.SQLXML.dll2.0.50727.883716,80015. Května 200719: 20x 64
System.data.SQLXML.dll2.0.50727.883716,80015. Května 200719: 47x 86

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části „ platí.

Další informace

Další informace o terminologii aktualizace softwaru naleznete následující článku znalostní báze Microsoft Knowledge Base:
824684Popis standardní terminologie používané k popisu aktualizací softwaru společnosti Microsoft

Kroky pro reprodukci problému

  1. Spustit Microsoft Visual Studio 2005.
  2. V nabídce soubor klepněte na příkaz Nový projekt.
  3. V části typy projektu klepněte na položku Visual C#.
  4. V části šablony klepněte na možnost Aplikace konzoly.
  5. Zadejte název projektu a poté klepněte na tlačítko OK.
  6. V souboru Program.cs, nahraďte existující kód následující kód.
    using System.Xml.Xsl;
    
    class Repro {
        static void Main(string[] args) {
            XslTransform trans = new XslTransform();
            trans.Load("repro.xsl");
            trans.Transform("repro.xsl", "repro1.out");
            trans.Transform("repro.xsl", "repro.out");
        }
    }
    
  7. Vytvoří šablonu stylů, která obsahuje následující kód.
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:variable name="variable1" select="$variable2"/>
      <xsl:variable name="variable2"/>
    </xsl:stylesheet>
  8. Uložit šablony stylů, která jste vytvořili v kroku 7 jako Frame.htm.
  9. Uložit šablony stylů do následující složky:
    ProjectName\Bin\Debug
  10. Spusťte aplikaci.

Informační zásobník volání

Unhandled Exception: System.Xml.Xsl.XsltException: Circular reference in the definition of variable 'variable2'.
   at System.Xml.Xsl.XsltOld.Processor.GetVariableValue(VariableAction variable)
   at System.Xml.Xsl.XsltOld.XsltCompileContext.EvaluateVariable(VariableAction variable)
   at System.Xml.Xsl.XsltOld.VariableAction.System.Xml.Xsl.IXsltContextVariable.Evaluate(XsltContext xsltContext)
   at MS.Internal.Xml.XPath.VariableQuery.Evaluate(XPathNodeIterator nodeIterator)
   at System.Xml.Xsl.XsltOld.Processor.RunQuery(ActionFrame context, Int32 key)
   at System.Xml.Xsl.XsltOld.VariableAction.Execute(Processor processor, ActionFrame frame)
   at System.Xml.Xsl.XsltOld.ActionFrame.Execute(Processor processor)
   at System.Xml.Xsl.XsltOld.Processor.Execute()
   at System.Xml.Xsl.XsltOld.Processor.Execute(Stream stream)
   at System.Xml.Xsl.XslTransform.Transform(XPathNavigator input, XsltArgumentList args, Stream output, XmlResolver resolver)
   at System.Xml.Xsl.XslTransform.Transform(String inputfile, String outputfile, XmlResolver resolver)
   at System.Xml.Xsl.XslTransform.Transform(String inputfile, String outputfile)
   at Repro.Main(String[] args)

Vlastnosti

ID článku: 937320 - Poslední aktualizace: 3. prosince 2007 - Revize: 1.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft .NET Framework 2.0
Klíčová slova: 
kbmt kbexpertiseadvanced kbfix kbpubtypekc kbqfe kbhotfixserver KB937320 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:937320

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com