CORRECÇÃO: Mensagem de erro quando você chama o método "System.Xml.Xsl.XslTransform.Transform" duas vezes em um aplicativo baseado no .NET Framework 2.0: "Referência circular na definição de variável < nome da variável >"

Traduções deste artigo Traduções deste artigo
ID do artigo: 937320 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Em um aplicativo baseado no .NET Framework 2.0 no Microsoft, você chama o método System.Xml.Xsl.XslTransform.Transform para transformar dados XML de uma folha de estilos. Quando você chamar esse método novamente, você receberá a seguinte mensagem de erro:
System.Xml.Xsl.XsltException: Referência circular na definição de variável variable name
Esse problema ocorre quando a folha de estilos contém uma referência direta a uma variável global.

Resolução

Informações sobre o hotfix

Um hotfix com suporte foi disponibilizada pela Microsoft. No entanto, destina-se a corrigir o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico. Esta correcção poderá submetida a testes adicionais. Portanto, se você não tiver sido gravemente afetado por esse problema, recomendamos que você aguarde o próximo service pack do .NET Framework 2.0 que contém esse hotfix.

Para resolver esse problema imediatamente, contate o Microsoft Customer Atendimento para obter o hotfix. Para obter uma lista completa de telefones do serviço de suporte a clientes da Microsoft e informações sobre os custos de suporte, visite o seguinte site:
http://support.microsoft.com/contactus/?ws=support
Observação Em alguns casos, as taxas cobradas pelas ligações para chamadas de suporte podem ser canceladas se um profissional de suporte da Microsoft determinar que uma atualização específica resolverá o problema. Os custos normais de suporte serão aplicados a questões e problemas que não se qualificam à atualização específica em questão de suporte adicionais.

Pré-requisitos

Você deve ter o .NET Framework 2.0 instalado para aplicar esse hotfix.

Requisitos de reinicialização

Não é necessário reiniciar o computador após aplicar esse hotfix.

Informações sobre a substituição do hotfix

Esse hotfix não substitui outros hotfixes.

Informações sobre o arquivo

A versão em inglês deste hotfix tem atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas no horário de universal coordenado (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário no item Data e hora no painel de controle.
O .NET Framework 2.0, versões com base em 86 x
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataforma
System.Data.SQLXML.dll2.0.50727.883716,80015 De maio de 200719: 47x 86
O .NET Framework 2.0, versões com base em 64 x
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataforma
System.Data.SQLXML.dll2.0.50727.883716,80015 De maio de 200719: 20x 64
System.Data.SQLXML.dll2.0.50727.883716,80015 De maio de 200719: 47x 86

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais Informações

Para obter mais informações sobre terminologia de atualização de software, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684Descrição da terminologia padrão que é usada para descrever as atualizações de software

Etapas para reproduzir o problema

  1. Inicie o Microsoft Visual Studio 2005.
  2. No menu arquivo , clique em New Project .
  3. Em Project types , clique em translation from VPE for Csharp Visual .
  4. Em modelos , clique em Aplicativo de console .
  5. Digite um nome de projeto e, em seguida, clique em OK .
  6. No arquivo Program.cs, substitua o código existente com o código a seguir.
    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. Cria uma folha de estilos que contém o seguinte código.
    <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. Salve a folha de estilos que você criou na etapa 7 como Frame.htm.
  9. Salvar a folha de estilos na seguinte pasta:
    ProjectName\Bin\Debug
  10. Execute o aplicativo.

Informações de pilha de chamada

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)

Propriedades

ID do artigo: 937320 - Última revisão: segunda-feira, 3 de dezembro de 2007 - Revisão: 1.1
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 2.0
Palavras-chave: 
kbmt kbexpertiseadvanced kbfix kbpubtypekc kbqfe kbhotfixserver KB937320 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 937320

Submeter comentários

 

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