Você está offline; aguardando reconexão

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 >"

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
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: 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
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
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)

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 937320 - Última Revisão: 12/03/2007 18:55:51 - Revisão: 1.1

Microsoft .NET Framework 2.0

  • kbmt kbexpertiseadvanced kbfix kbpubtypekc kbqfe kbhotfixserver KB937320 KbMtpt
Comentários