Aplica-se A.NET Framework 3.5 Service Pack 1

Sintomas

Considere o seguinte cenário:

  • Executa uma aplicação Microsoft .NET Framework 3.5 Service Pack 1 (SP1) baseada no Windows Presentation Foundation (WPF).

  • A aplicação WPF utiliza o pipeline de composição de hardware.

  • A aplicação carrega e descarrega muitos domínios de aplicação que contêm um ou mais componentes de suplementoS WPF personalizados.

Neste cenário, a aplicação encontra uma exceção System.Runtime.InteropServices.COMException e, em seguida, a aplicação falha.

Resolução

Informações de correção

Está disponível uma correção suportada da Microsoft. No entanto, esta correção destina-se a corrigir apenas o problema descrito neste artigo. Aplique esta correção apenas a sistemas com este problema específico. Esta correção poderá receber testes adicionais. Por conseguinte, se não for gravemente afetado por este problema, recomendamos que aguarde pela próxima atualização de software que contém esta correção. Para transferir esta correção a partir da Galeria de Código do MSDN, visite o seguinte site da Microsoft:

http://code.msdn.microsoft.com/KB2276690Nota A Galeria de Código do MSDN apresenta os idiomas para os quais a correção está disponível. Se não vir o seu idioma listado, é porque a página de recursos da Galeria de Códigos não está disponível para esse idioma. Nota Se ocorrerem problemas adicionais ou se for necessária alguma resolução de problemas, poderá ter de criar um pedido de serviço separado. Os custos de suporte habituais serão aplicados a perguntas e problemas de suporte adicionais que não se qualificam para esta correção específica. Para obter uma lista completa dos números de telefone do Suporte ao Cliente e suporte da Microsoft ou para criar um pedido de serviço separado, visite o seguinte site da Microsoft:

http://support.microsoft.com/contactus/?ws=support

Pré-requisitos

Para aplicar esta correção, tem de ter o .NET Framework 3.5 Service Pack 1 (SP1) instalado. 

Requisito de reinício

Não tem de reiniciar o computador depois de aplicar esta correção.

Informações sobre substituição de correções

Esta correção não substitui qualquer outra correção.

Informações de Ficheiro

A versão inglesa desta correção tem os atributos de ficheiro listados na tabela que se segue (ou atributos de ficheiro posteriores). As datas e horas destes ficheiros estão listadas no formato de Hora Universal Coordenada (UTC). Quando visualizar as informações dos ficheiros, estas serão convertidas na hora local. Para encontrar a diferença entre a hora UTC e a hora local, utilize o separador Fuso Horário no item Data e Hora no Painel de Controlo.

Para todas as versões suportadas baseadas em x86 do Windows Server 2003 e do Windows XP

Nome do ficheiro

Versão do ficheiro

Tamanho do ficheiro

Data

Hora

Plataforma

Presentationcore.dll

3.0.6920.4033

4,218,880

02-Set-2010

01:32

x86

Presentationframework.dll

3.0.6920.4033

5,279,744

02-Set-2010

01:28

x86

Presentationhost.exe

4.0.40305.0

295,264

02-Set-2010

01:28

x86

Presentationhostdll.dll

3.0.6920.4033

130,408

02-Set-2010

01:32

x86

Presentationhostproxy.dll

4.0.31106.0

99,176

02-Set-2010

01:32

x86

Windowsbase.dll

3.0.6920.4033

1,249,280

02-Set-2010

01:32

x86

Para todas as versões suportadas baseadas em x64 do Windows Server 2003 e do Windows XP

Nome do ficheiro

Versão do ficheiro

Tamanho do ficheiro

Data

Hora

Plataforma

Presentationcore.dll

3.0.6920.4033

3,997,696

02-Set-2010

00:53

x64

Presentationframework.dll

3.0.6920.4033

4,636,672

02-Set-2010

00:48

x64

Presentationhost.exe

4.0.31106.0

320,352

02-Set-2010

00:48

x64

Presentationhostdll.dll

3.0.6920.4033

171,368

02-Set-2010

00:53

x64

Presentationhostproxy.dll

4.0.31106.0

109,928

02-Set-2010

00:53

x64

Windowsbase.dll

3.0.6920.4033

1,110,016

02-Set-2010

00:53

x64

Para todas as versões suportadas baseadas em x86 do Windows Vista Service Pack 2 (SP2) e do Windows Server 2008 Service Pack 2 (SP2)

Nome do ficheiro

Versão do ficheiro

Tamanho do ficheiro

Data

Hora

Plataforma

Presentationcore.dll

3.0.6920.4033

4,218,880

09-Set-2010

10:52

x86

Presentationfontcache.exe.config

Não Aplicável

161

03-Abr-2009

21:25

Não Aplicável

Wpfgfx_v0300.dll

3.0.6920.4003

1,736,024

17-Jun-2009

08:03

x86

Presentationframework.dll

3.0.6920.4033

5,279,744

09-Set-2010

10:52

x86

Presentationhostdll.dll

3.0.6920.4033

130,408

09-Set-2010

10:52

x86

Windowsbase.dll

3.0.6920.4033

1,249,280

09-Set-2010

10:52

x86

Para todas as versões suportadas baseadas em x64 do Windows Vista SP2 e do Windows Server 2008 SP2

Nome do ficheiro

Versão do ficheiro

Tamanho do ficheiro

Data

Hora

Plataforma

Presentationcore.dll

3.0.6920.4033

3,997,696

09-Set-2010

10:52

x64

Presentationfontcache.exe.config

Não Aplicável

161

03-Abr-2009

20:58

Não Aplicável

Wpfgfx_v0300.dll

3.0.6920.4003

2,254,168

17-Jun-2009

08:03

x64

Presentationframework.dll

3.0.6920.4033

4,636,672

09-Set-2010

10:52

x64

Presentationhostdll.dll

3.0.6920.4033

171,368

09-Set-2010

10:52

x64

Windowsbase.dll

3.0.6920.4033

1,110,016

09-Set-2010

10:52

x64

Para todas as versões suportadas baseadas em x86 do Windows 7

Nome do ficheiro

Versão do ficheiro

Tamanho do ficheiro

Data

Hora

Plataforma

Presentationcore.dll

3.0.6920.5012

4,218,880

11-Set-2010

01:29

x86

Presentationfontcache.exe.config

Não Aplicável

161

10-Jun-2009

21:14

Não Aplicável

Wpfgfx_v0300.dll

3.0.6920.4902

1,736,536

10-Jun-2009

21:14

x86

Presentationframework.dll

3.0.6920.5012

5,279,744

11-Set-2010

01:29

x86

Presentationhostdll.dll

3.0.6920.5012

130,408

11-Set-2010

01:29

x86

Presentationhost.exe

4.0.31106.0

295,264

11-Set-2010

01:29

x86

Presentationhostproxy.dll

4.0.31106.0

99,176

11-Set-2010

01:29

x86

Windowsbase.dll

3.0.6920.5012

1,253,376

11-Set-2010

01:29

x86

Para todas as versões suportadas baseadas em x64 do Windows 7 e do Windows Server 2008 R2

Nome do ficheiro

Versão do ficheiro

Tamanho do ficheiro

Data

Hora

Plataforma

Presentationcore.dll

3.0.6920.5012

3,997,696

11-Set-2010

01:28

x64

Presentationfontcache.exe.config

Não Aplicável

161

10-Jun-2009

20:30

Não Aplicável

Wpfgfx_v0300.dll

3.0.6920.4902

2,255,176

10-Jun-2009

20:30

x64

Presentationframework.dll

3.0.6920.5012

4,636,672

11-Set-2010

01:28

x64

Presentationhostdll.dll

3.0.6920.5012

171,368

11-Set-2010

01:28

x64

Presentationhost.exe

4.0.31106.0

320,352

11-Set-2010

01:28

x64

Presentationhostproxy.dll

4.0.31106.0

109,928

11-Set-2010

01:28

x64

Windowsbase.dll

3.0.6920.5012

1,114,112

11-Set-2010

01:28

x64

Estado

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

Solução

Para resolver este problema, desative o pipeline de composição de hardware e, em seguida, ative o pipeline de composição de software. Para desativar o pipeline de composição de hardware e ativar o pipeline de composição de software, utilize um dos seguintes métodos:

  • Defina a enumeração System.Windows.Interop.RenderMode.Segue-se um código de exemplo que define a enumeração System.Windows.Interop.RenderMode para ativar o pipeline de composição de software quando uma janela WPF é carregada:

    private void OnLoaded(object sender, EventArgs e){System.Windows.Interop.HwndSource hwndSource = PresentationSource.FromVisual(this) as System.Windows.Interop.HwndSource;System.Windows.Interop.HwndTarget hwndTarget = hwndSource.CompositionTarget; hwndTarget.RenderMode = System.Windows.Interop.RenderMode.SoftwareOnly;}
  • Defina a chave de registo DisableHWAcceleration .Importante Esta secção, método ou tarefa contém passos que lhe indicam como modificar o registo. No entanto, poderão ocorrer problemas graves se modificar o registo de forma incorreta. Por conseguinte, certifique-se de que segue estes passos cuidadosamente. Para maior segurança, faça uma cópia de segurança do registo antes de o modificar. Deste modo, pode restaurar o registo se ocorrer um problema. Para mais informações sobre como fazer uma cópia de segurança e restaurar o registo, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

    322756 Como fazer uma cópia de segurança e restaurar o registo em Aviso do WindowsEste método desativa o pipeline de composição de hardware para todas as aplicações WPF no computador. Por conseguinte, o método não é normalmente encorajado, exceto quando os clientes controlam os ambientes e não se importam com o efeito de todas as aplicações WPF.

    1. Clique em Iniciar, clique em Executar, escreva regedit e, em seguida, prima ENTER.

    2. Localize e, em seguida, clique na seguinte subchave do registo:

      HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics

    3. Defina o valor da entrada de registo DisableHWAcceleration como 1.Nota Se a entrada de registo DisableHWAcceleration não existir, clique com o botão direito do rato na subchave do registo, aponte para Novo e, em seguida, clique em Valor da Cadeia para criar uma nova entrada de registo. Escreva DisableHWAcceleration para o nome da nova entrada de registo, faça duplo clique em DisableHWAcceleration e, em seguida, altere os dados do valor DisableHWAcceleration para 1.

    4. Saia do Editor de Registo.

Mais Informações

Para obter mais informações sobre o pipeline de composição de software, visite o seguinte site da Microsoft Developer Network (MSDN):Informações gerais sobre o pipelinede composição de software Para obter mais informações sobre as definições de registo da composição WPF, visite o seguinte site da MSDN:Informações gerais sobre as definições de registo da composição WPFPara obter mais informações sobre a enumeração System.Windows.Interop.RenderMode, visite o seguinte site da MSDN:Informações gerais sobre a enumeração "System.Windows.Interop.RenderMode"

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.