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: