Nota
- Data de Lançamento:
31 de Julho de 2020 - Versão:
.NET Framework 3.5 e 4.8
A atualização de 31 de julho de 2020 para Windows 10 Versão 2004 inclui melhoramentos de fiabilidade cumulativa no .NET 3.5 e 4.8. Recomendamos que aplique esta atualização como parte das suas rotinas de manutenção regulares. Antes de instalar esta atualização, veja as secções Pré-requisitos e Requisitos de reinício .
Melhorias de qualidade e fiabilidade
| CLR1 | - Uma alteração no .NET Framework 4.8 regrediu determinados cenários enterpriseServices em que um objeto de apartamento de thread único pode ser tratado como um apartamento multi-thread e levar a uma falha de bloqueio. Esta alteração identifica corretamente objetos de apartamento de thread único como tal e evita esta falha. - Resolve um problema em assemblagens com dados de perfil IBC que faz com que os processos de trabalho da Ngen falhem e revertam para imagens nativas completas. - Resolve falhas raras que podem ocorrer durante a entrega do thread abortado. |
|---|---|
| SQL | - SqlBulkCopy.WriteToServer pode fazer com que as transações em tabelas SQL dentro da memória falhem. O cliente pode ver uma exceção com a mensagem "Tempo Limite de Execução Expirado. O período de tempo limite decorrido antes da conclusão da operação ou o servidor não está a responder." SqlBulkCopy.WriteToServer estava a enviar um token de Atenção (mensagem de cancelamento) depois de enviar dados para o Sql Server, fazendo com que o servidor abortasse a transação para tabelas dentro da memória. |
| ASP.NET | - Utilize hashes compatíveis com FIPS no ASP.Net dados telemétricos. - Resolve um problema em que "Não especificado" não era um valor permitido na configuração do atributo "cookieSameSite" das secções de autenticação de formulários e configuração do estado da sessão. |
| WPF2 | - Resolve um problema quando a verificação ortográfica está ativada na Caixa de Texto WPF ou no RichTextBox, palavras como "etc.", "por exemplo". são identificados como erros ortográficos incorretamente. - Resolve um problema em que algumas aplicações WPF com Suporte para Per-Monitor executadas no .NET 4.8 podem ocasionalmente encontrar uma falha com exceptionSystem.ComponentModel.Win32Exception. - Resolve um problema em que o TextBlock se refluxa (toma diferentes decisões de quebra de linha) durante a composição e o hit-test, vs. durante a medida. Os sintomas incluem texto em falta e FailFast falha durante o processamento de texto programático. - Resolve um problema com uma falha de thread de composição causada pelo HostVisual ao desligar o destino no thread errado. - Resolve um problema com um bloqueio ao deslocar uma TreeView cuja árvore não é uniforme, no sentido em que uma criança do nó governa subárvores cujos tamanhos são bastante diferentes. - Resolve um problema com uma falha que pode ocorrer ao fechar uma descrição que é fechada novamente por código de utilizador. - Quando um HwndHost sai da árvore visual, é criado um rastreio de pilha. Isto é caro e, normalmente, desnecessário. A lógica é agora alterada para criar o rastreio de pilha apenas quando ocorre a condição anómalo. - Resolve uma fuga de memória em System.Speech.SpeechSynthesizer. - O comando Copiar do DataGrid gera uma exceção se a área de transferência do sistema estiver bloqueada por outro processo. Isto falha, uma vez que normalmente não existe nenhum código de aplicação na pilha para detetar a exceção. O comportamento da Caixa de Texto (e de outras aplicações, como o Bloco de Notas, Word, browsers) nesta situação é falhar silenciosamente – nada é copiado para a área de transferência, mas não há exceção. Uma aplicação WPF pode agora optar ativamente por participar neste comportamento ao definir <appSettings<>add key="ShouldThrowOnDataGridCopyOrCutFailure" value="false"/></appSettings no respetivo>ficheiro de app.config. - Resolve um problema na construção do modelo interno de um documento de Página Fixa. Alguns textos eram apresentados na ordem errada para efeitos de operações de edição, como seleção e cópia/colagem. |
| WCF3 | - Ao utilizar um nome de utilizador upn do Windows com o formato semelhante a username@dns.domain na propriedade de nome de utilizador de um NetworkCredential ao utilizar NetTcpBinding ou NetNamedPipeBinding, o WCF dividiria incorretamente o nome de utilizador e dns.domain colocando-os nas propriedades UserName e Domain. Isto é inválido em alguns cenários e resultaria na falha da autenticação. Esta correção remove a modificação de credenciais ao utilizar um nome de utilizador UPN. A modificação pode ser reativada ao definir appSetting "wcf:enableLegacyUpnUsernameFix" como verdadeiro. |
| Bibliotecas Net | - Resolve uma fuga de memória em HttpListener. |
| Winforms | - Resolve um problema com o estado de acessibilidade IsReadOnlyaccessibility do DataGridView: o Narrador e outra ferramenta acessível anunciam o estado da célula só de leitura em conformidade. - Resolve uma regressão no .NET Framework 4.8 quando as aplicações que utilizam o tipo de célula dataGridView ComboBox e optaram pela Acessibilidade de Nível 3 podem ocorrer falhas intermitentes ao editar a célula. - Resolve um problema em ClickOnce RFC3161 código de verificação de carimbo de data/hora. |
| Melhoramentos de Acessibilidade do Winforms | Nesta versão, estamos a adicionar novas melhorias de acessibilidade nas quais a sua aplicação pode optar ativamente por participar. Por predefinição, estas alterações estão desativadas. As aplicações que optam por participar nas funcionalidades de acessibilidade introduzidas no .NET 4.8 e anteriores podem adicionar o seguinte compatibilidade ao ficheiro de configuração da aplicação:"Switch.UseLegacyAccessibilityFeatures.4=false"Especificamente, se uma aplicação tiver como destino .NET 4.8, adicione a seguinte secção AppContextSwitchOverrides: <?xml version="1.0" encoding+"utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Versionv4.8"/> </startup> <runtime> <!-- AppContextSwitchOverrides value attribute is in the form of key1=true\|false;key2=true\|false --> <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures.4=false" /> </runtime> </configuration>Se uma aplicação tiver como destino uma versão anterior da arquitetura e optar ativamente por participar nos conjuntos de funcionalidades de acessibilidade anteriormente lançados, adicione um único "Switch.UseLegacyAccessibilityFeatures.4=false" comutador à secção existente AppContextSwitchOverrides :<?xml version="1.0" encoding+"utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Versionv4.7"/> </startup> <runtime> <!-- AppContextSwitchOverrides value attribute is in the form of key1=true\|false;key2=true\|false --> <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false\|Switch.UseLegacyAccessibilityFeatures.2=false\|Switch.UseLegacyAccessibilityFeatures.3=false\|Switch.UseLegacyAccessibilityFeatures.4=false"/> </runtime> </configuration>As melhorias de acessibilidade do Winforms incluídas nesta versão são:- Resolve um problema com o anúncio de itens de controlo PropertyGrid e categorias expandidas/fechadas pelos Leitores de Ecrã. - Atualizou os padrões acessíveis do controlo Grelha de Propriedades e os respetivos elementos internos. - Foram atualizados os nomes acessíveis dos elementos internos de controlo da Grelha de Propriedades para os anunciar corretamente pelo leitor de ecrã. - Corrige as propriedades acessíveis do retângulo delimitador para os controlos PropertyGridView - Permite que os leitores de ecrã anunciem corretamente o estado expandido/fechado da célula do DataGridView ComboBox. |
1 Common Language Runtime (CLR)
2 Windows Presentation Foundation (WPF)
3 Windows Communication Foundation
Problemas conhecidos nesta atualização
As aplicações WPF (Windows Presentation Framework) que utilizam dois ou mais elementos HostVisual pertencentes a um thread comum, em que ambos os elementos HostVisual são convidados a desligarem-se do respetivo destino visual aproximadamente ao mesmo tempo, o correio falha com o seguinte erro:
Tipo de exceção: System.COMException
Mensagem: UCEERR_RENDERTHREADFAILURE (0x88980406 HRESULT)
Pilha de chamadas: a moldura superior é System.Windows.Media.Composition.DUCE+Channel.SyncFlush()
Soluções
Pode desativar a correção problemática ao definir o comutador AppContext "Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread" como verdadeiro, utilizando um dos métodos descritos aqui. Esta ação expõe a sua aplicação ao erro original, pelo que deve remover o comutador assim que uma correção for publicada através de uma atualização futura.
Solução 1
• Adicione a seguinte entrada ao ficheiro app.config para desativar a correção problemática numa única aplicação.
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
</runtime>
Tenha em atenção que se a configuração da aplicação já tiver uma entrada para <AppContextSwitchOverrides>, terá de adicionar a nova definição nessa entrada, separada de outros comutadores por ponto e vírgula:
<AppContextSwitchOverrides value="Switch.SomeOtherSwitch=true; Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
Solução 2
• Aplique a seguinte subchave de registo para desativar a correção problemática para todas as aplicações WPF no computador.
Aviso
Podem ocorrer problemas graves se modificar o registo incorretamente através do Editor de Registo ou de outro método. Estes problemas podem exigir que reinstale o sistema operativo. A Microsoft não pode garantir que estes problemas possam ser resolvidos. Modificar o registo por sua conta e risco.
Localização: HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContext\
Nome: Switch.System.Media.HostVisual.DisconnectsOnWrongThread
Tipo: Cadeia
Valor: verdadeiro
Tenha em atenção que nos sistemas operativos de 64 bits, também tem de aplicar uma subchave de registo com o mesmo nome, tipo e valor na localização: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\AppContext\
Resolução
Estamos a trabalhar numa resolução e iremos fornecer uma atualização numa versão futura.
Como obter e instalar a atualização
Instalar esta atualização
| Via de Lançamento | Disponível | Passo Seguinte |
|---|---|---|
| Windows Update e Microsoft Update | Sim | Para transferir e instalar esta atualização, aceda a Definições>Atualização & Segurança>Windows Update e, em seguida, selecione Procurar atualizações. |
| Catálogo Microsoft Update | Sim | Para obter o pacote autónomo para esta atualização, aceda ao site do Catálogo Microsoft Update. |
| Windows Server Update Services (WSUS) | Não | Pode importar manualmente esta atualização para o WSUS. Consulte o Catálogo Microsoft Update para obter instruções. |
Informações de ficheiro
Para obter uma lista dos ficheiros incluídos nesta atualização, transfira as informações de ficheiro para a atualização cumulativa.
Pré-requisitos
Para aplicar esta atualização, tem de ter .NET Framework 3.5 ou 4.8 instalado.
Requisito de reinício
Tem de reiniciar o computador depois de aplicar esta atualização se estiverem a ser utilizados ficheiros afetados. Recomendamos que saia de todas as aplicações baseadas em .NET Framework antes de aplicar esta atualização.
Como obter ajuda e suporte para esta atualização
- Ajuda para instalar atualizações: WINDOWS UPDATE FAQ
- Proteja-se online e em casa: Segurança do Windows suporte
- Suporte local de acordo com o seu país: Suporte Internacional