Atualizações para o .NET Framework 2.0 Service Pack 2, o .NET Framework 3.0 Service Pack 2 ou o .NET Framework 3.5 Service Pack 1 podem não atualizar corretamente os ficheiros mesmo quando a instalação da atualização é concluída com êxito

Aplica-se A
.NET Framework 3.5 Service Pack 1 Microsoft Windows XP Professional x64 Edition Microsoft Windows XP Professional x64 Edition Microsoft Windows XP Professional x64 Edition

Sintomas

Quando instala determinadas atualizações para o .NET Framework 2.0 Service Pack 2, o .NET Framework 3.0 Service Pack 2 ou o .NET Framework 3.5 Service Pack 1, a actualização poderá ser instalada com êxito. No entanto, os ficheiros podem não ser atualizados. Portanto, a atualização pode ser oferecida novamente no Windows Update.

Causa

Este cenário pode ocorrer por várias razões que incluem determinados problemas de falha de instalação relacionados com a manutenção de ramo duplo. Entre janeiro de 2009 e julho de 2009, vários hotfixes para o .NET Framework 2.0 Service Pack 2, o .NET Framework 3.0 Service Pack 2 e o .NET Framework 3.5 Service Pack 1 foram lançados com um defeito. Quando os hotfixes que têm esse defeito são instalados e, em seguida, uma atualização de segurança é instalada, a presença do hotfix impede que os arquivos de carga na atualização de segurança sejam atualizados corretamente. Em certos casos, esse problema também pode se manifestar na forma do erro descrito no seguinte artigo da Base de Dados de Conhecimento Microsoft:

2262911 erro de exceção "Não foi possível carregar o tipo 'System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy'" depois de instalar a atualização 982167 ou atualização 982168 A Microsoft removeu todos os hotfixes que incluíam esse defeito e substituiu-os por novos hotfixes que não têm o defeito. Os artigos da Base de Dados de Conhecimento Microsoft para os hotfixes defeituosos foram atualizados e eles listam os hotfixes de substituição sem o defeito. Se você tiver instalado um dos hotfixes defeituosos listados aqui, aplique a solução descrita na seção "Solução alternativa" deste artigo para resolver o problema. Se não aplicar a solução, existe a possibilidade de os ficheiros no payload de uma atualização de segurança não serem atualizados corretamente, deixando o computador num estado inconsistente e possivelmente vulnerável.

Lista de hotfixes defeituosos

          

946411 CORRECÇÃO: Quando você imprime um arquivo XPS em um computador baseado no Windows XP Service Pack 2 ou Service Pack 3, os caracteres no arquivo XPS imprimir incorretamente
952883 IX: O tipo de retorno ou o argumento out de um método de serviço ASMX que inclui uma propriedade que tem um setter interno não pode ser serializado em um computador que tenha o .NET Framework instalado
958090 CORREÇÃO: A exceção System.EnterpriseServices.TransactionProxyException não pode ser detectada de outros domínios de aplicativo quando ele é acionado durante a conclusão de uma transação
958252 CORRECÇÃO: Quando você usa a ferramenta personalizada Msdatasetgenerator no .NET Framework 2.0 Service Pack 1 (SP1), o valor de escala e o valor de precisão no código gerado para um provedor de dados .NET de terceiros diferem dos valores que você define
960442 CORRECÇÃO: Recebe uma mensagem de erro de excepção quando utiliza o objecto BinaryFormatter para serializar e anular a serialização de um tipo genérico num assembly no .NET Framework 2.0 Service Pack 2 ou no .NET Framework 3.5 Service Pack 1
960754 CORREÇÃO: Você recebe a exceção ObjectDisposedException quando você se refere ao objeto Transaction.Current.TransactionInformation
961847 CORRECÇÃO: Mensagem de erro quando visualiza uma página no modo de estrutura depois de recompilar um projecto baseado no .NET Framework 3.5 Service Pack 1: "Erro ao criar controlo – 'ControlInstanceName [texto]' não foi possível definir na propriedade 'PropertyName'"
961864 CORRECÇÃO: Clientes Web podem ter vários problemas quando você acessa um site habilitado para ASP.NET 2.0 AJAX
961870 CORRECÇÃO: Um vazamento de memória ocorre quando você executa um aplicativo que requer o CLR para carregar um assembly de modo misto no .NET Framework 2.0 Service Pack 2
961881 CORRECÇÃO: Uma violação de acesso ocorre quando você inicia um aplicativo que é executado no CLR
961884 CORRECÇÃO: Você enfrenta um desempenho muito lento em uma solicitação inicial para um site ASP.NET depois de alterar a pasta App_Code, a pasta bin ou o arquivo Global.asax
961885 CORRECÇÃO: Você recebe um erro de violação de acesso quando você executa um aplicativo CLR que chama o método XslCompiledTransform.Transform
961901 CORRECÇÃO: O modo IME específico que definiu para um campo Editar pode desaparecer quando regressa ao campo Editar de um formulário do Windows baseado no .NET Framework 2.0 SP2CORRECÇÃO: O modo IME específico que definiu para um campo Editar pode desaparecer quando regressa ao campo Editar de um formulário do Windows baseado no .NET Framework 2.0 SP2
961902 CORRECÇÃO: Mensagem de erro quando você compila um projeto ASP.NET que contém muitos arquivos de recurso do aplicativo: "Uma exceção de primeira chance do tipo 'System.ArgumentException' ocorreu no mscorlib.dll"
962351 CORRECÇÃO: Os menus pop-out não são exibidos quando você usa o Internet Explorer 8.0 no modo padrões para exibir uma página da Web ASP.NET que tem menus dinâmicos
962890 CORRECÇÃO: Mensagem de erro quando um aplicativo baseado em .NET Framework 2.0 chama a função XmlTextReader.Read repetidamente: "'Permission' start tag on line 171 does not corresponde the end tag of 'PermissionRead'"
963676 CORRECÇÃO: O CLR falha com um erro fatal do mecanismo de execução e uma falha ocorre quando você executa um aplicativo usando o .NET Framework 2.0 Service Pack 2
967114 CORRECÇÃO: Mensagem de erro quando você usa o método System.Data.DataTable.InsertRow ou qualquer outro método de sobrecarga em um aplicativo baseado em .NET Framework 2.0 para inserir linhas em uma tabela: "Operação aritmética resultou em um estouro"
967613 CORRECÇÃO: Um aplicativo que monitora entradas de log de eventos falha quando chama o método Dispose da classe System.Diagnostics.EventLog
967615 CORRECÇÃO: Um aplicativo baseado em .NET Framework 2.0 SP2 ou um aplicativo baseado em .NET Framework 3.5 SP1 não descarta corretamente objetos de identificador seguro que foram criados pelo objeto WindowsIdentity
967812 Está disponível uma correção que atualiza algumas propriedades na classe System.Globalization.RegionInfo para a Eslováquia, a Eslovénia e para Türkiye
968108 CORRECÇÃO: Os clientes Web falham ou você enfrenta um comportamento inesperado ao acessar um site habilitado para ASP.NET 2.0 AJAX que é implantado em uma Web farm
968249 CORRECÇÃO: Um tamanho de instância incorreto é gerado quando você usa o exportador de biblioteca de tipos para gerar uma biblioteca de tipos de um assembly CLR no .NET Framework 2.0 Service Pack 2
968392 Mensagem de erro e o controle de hiperlink não é renderizado se a propriedade ImageUrl estiver definida no Visual Studio 2005 ou Visual Studio 2008 depois de instalar o .NET Framework 2.0 SP2 ou .NET Framework 3.5 SP1:"Object reference not set to an instance of an object"
968432 CORRECÇÃO: Uma exceção System.InvalidOperationException ocorre quando você executa um aplicativo Web baseado no .NET Framework 2.0 SP2 ou no .NET Framework 3.5 SP1
968556 CORRECÇÃO: O método XslCompiledTransform.Transform não tem um método de sobrecarga que aceita os objetos XPathNavigator e XmlResolver como argumentos no .NET Framework 2.0
968760 Um aplicativo gerenciado tem um alto número de identificadores de thread e de identificadores de eventos no Microsoft .NET Framework 2.0
969364 CORRECÇÃO: Blocos de código incorporados em uma página da Web ASP.NET 2.0 desaparecem quando você usa a ferramenta Gerar recurso local no Visual Web Developer para gerar um arquivo de recurso local
969612 Descrição do pacote cumulativo de hotfix para ASP.NET 2.0: abril de 2009
969722 CORRECÇÃO: Contador de desempenho "ASP.NET Apps v2.0.50727(__Total__)\Sessions Active" mostra um valor excessivamente alto após a instalação do Microsoft .NET Framework 3.5 Service Pack 1
969836 CORRECÇÃO: Um thread de trabalho em um aplicativo de Windows Forms baseado em .NET Framework 2.0 pode ser bloqueado quando ele chama o método Control.Invoke mesmo se o thread GUI está ocioso
970350 CORRECÇÃO: Mensagem de erro de exceção quando um objeto System.Drawing.FontConverter invoca a propriedade FontFamily.Families no .NET Framework 2.0 SP2 ou no .NET Framework 3.5 SP1: "Memória insuficiente"
970510 CORRECÇÃO: Uma exceção TypeLoadException ocorre quando você executa um aplicativo baseado no .NET Framework 3.5 SP1
970924 CORRECÇÃO: O desempenho de aplicativos que usam o método CreateType diminui à medida que você adiciona mais objetos de tipo a um módulo de assembly dinâmico no .NET Framework 2.0 SP2
971030 CORRECÇÃO: Uma violação de acesso ocorre quando você executa um aplicativo baseado em .NET Framework 2.0 que tem uma chamada virtual a interface IList<T>, IEnumerable<T> ou ICollection<T> em um método LCG
971169 CORRECÇÃO: Mensagem de erro quando executa uma aplicação Web ASP.NET 2.0 se o nome de ficheiro de recurso global contém o nome de cultura "zh-Hant"
971601 CORRECÇÃO: Os contadores de desempenho que monitoram um aplicativo param de responder quando o aplicativo sai e reinicia e você recebe a exceção System.InvalidOperationException em um computador que esteja executando o .NET Framework 2.0
971988 CORRECÇÃO: O uso da CPU aumenta significativamente quando você executa um aplicativo Multi-AppDomain baseado em .NET Framework 2.0 que usa objetos cujos finalizadores iniciam métodos ThreadPool
971993 Descrição do hotfix que permite que ASP.NET aplicativos Web ofereçam suporte a identidades baseadas em declarações quando você usa provedores de associação
972259 CORRECÇÃO: Os threads de um programa baseado em .NET Framework 2.0 SP2 pausam por um tempo muito longo quando a coleta de lixo simultânea está habilitada
972848 CORRECÇÃO: Uma geração de arquivo minidump é lenta e o tamanho do arquivo é maior do que o esperado quando as informações que o arquivo coleta não é do tipo MiniDumpWithFullMemory no .NET Framework 2.0

Para obter mais informações sobre serviços de ramificação dupla, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:

960043 Dual Branch Servicing para o .NET Framework 2.0 Service Pack 2, o .NET Framework 3.0 Service Pack 2 e o .NET Framework 3.5 Service Pack 1

Solução

Para contornar este problema, siga estes passos.

Passo 1

Instale o hotfix 975954. Para transferir as atualizações MSI, visite a seguinte página Web da MSDN:

http://code.msdn.microsoft.com/KB975954/Release/ProjectReleases.aspx?ReleaseId=3839
          

Passo 2

Execute uma reparação do produto. Podemos reparar o produto automaticamente ou pode repará-lo sozinho.

Executar a reparação automaticamente

Para executar uma reparação do produto automaticamente, clique no botão Corrigir . Em seguida, clique em Executar na caixa de diálogo Download de arquivoe siga as etapas no assistente de correção.

Observação Este assistente está apenas em inglês. No entanto, a correção automática também funciona para versões do Windows noutros idiomas.

Observação Se você não estiver no computador que tem o problema, você pode salvar a correção automática em uma unidade flash ou um CD para que você possa executá-lo no computador que tem o problema.

Deixe-me reparar eu mesmo

Para reparar o produto manualmente, escreva as seguintes linhas de comandos apropriadas a partir de uma linha de comandos elevada:

  • Se tiver apenas o .NET Framework 2.0 Service Pack 2 instalado, execute o seguinte comando:
    msiexec /f {C09FB3CD-3D0C-3F2D-899A-6A1D67F2073F}Este comando repara as camadas de produto do .NET Framework 2.0 SP2.

  • Se tiver o .NET Framework 3.0 Service Pack 2 instalado, execute os seguintes comandos:
    msiexec /f {C09FB3CD-3D0C-3F2D-899A-6A1D67F2073F}

    msiexec /f {A3051CD0-2F64-3813-A88D-B8DCCDE8F8C7}Estes comandos reparam as camadas de produto do .NET Framework 2.0 SP2 e do .NET Framework 3.0 SP2.

  • Se tiver o .NET Framework 3.5 Service Pack 1 instalado, execute os seguintes comandos:
    msiexec /f {C09FB3CD-3D0C-3F2D-899A-6A1D67F2073F}

    msiexec /f {A3051CD0-2F64-3813-A88D-B8DCCDE8F8C7}

    msiexec /f {CE2CDD62-0124-36CA-84D3-9F4DCF5C5BD9}Estes comandos reparam as camadas de produto do .NET Framework 2.0 SP2, do .NET Framework 3.0 SP2 e do .NET Framework 3.5 SP1.

Quando você repara as camadas do produto executando esses comandos, isso faz com que todos os recursos nessa camada de produto (o .NET Framework 2.0 SP2, o .NET Framework 3.0 SP2 e o .NET Framework 3.0 SP1) reavaliem seu estado de instalação.

Isto resolve o problema causado pelo linha de base incorreta e permite que a atualização aplique a respetiva carga com êxito.

Para mais informações sobre como executar um comando que utilize permissões elevadas, visite a seguinte página Web da Microsoft:

http://windows.microsoft.com/en-US/windows7/Command-Prompt-frequently-asked-questions
              

3º passo

Poderá ter de reinstalar uma correção que foi atualizada e substituída conforme mencionado na secção "Causa". Para determinar se você precisa reinstalar esse hotfix atualizado, examine a seção "Informações de substituição de hotfix" no artigo da Base de dados de Conhecimento para o hotfix que você instalou.

Mais Informações

Para obter mais informações sobre as opções de linha de comando que são suportadas pelo Windows Installer, visite a seguinte página da Web MSDN:

Opções da linha de comandos Para mais informações sobre o Windows Installer, visite a seguinte página Web da MSDN:

Acerca do Windows Installer