Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo lista os problemas de compatibilidade do aplicativo que foram introduzidos no .NET Framework 4.8 e 4.8.1.
.NET Framework 4.8
Núcleo
As classes de criptografia gerenciadas não lançam uma CryptographyException no modo FIPS
Detalhes
No .NET Framework 4.7.2 e versões anteriores, classes de provedor criptográfico gerenciadas, como SHA256Managed geram um CryptographicException quando as bibliotecas criptográficas do sistema são configuradas no modo FIPS. Essas exceções são geradas porque as versões gerenciadas não foram submetidas à certificação FIPS (Federal Information Processing Standards) 140-2, bem como para bloquear algoritmos criptográficos que não foram considerados aprovados com base nas regras FIPS. Como poucos desenvolvedores têm seus computadores de desenvolvimento no modo FIPS, essas exceções são frequentemente lançadas apenas em sistemas de produção. Os aplicativos destinados ao .NET Framework 4.8 e versões posteriores alternam automaticamente para a política mais recente e descontraída, de modo que um CryptographicException não seja mais gerado por padrão nesses casos. Em vez disso, as classes de criptografia gerenciadas redirecionam operações criptográficas para uma biblioteca de criptografia do sistema. Essa alteração de política remove efetivamente uma diferença potencialmente confusa entre os ambientes de desenvolvedor e os ambientes de produção e faz com que componentes nativos e componentes gerenciados operem na mesma política criptográfica.
Sugestão
Se esse comportamento for indesejável, você poderá recusar e restaurar o comportamento anterior para que um CryptographicException seja lançado no modo FIPS adicionando a seguinte configuração AppContextSwitchOverrides à <seção de runtime> do arquivo de configuração do aplicativo:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Security.Cryptography.UseLegacyFipsThrow=true" />
</runtime>
Se o aplicativo for direcionado ao .NET Framework 4.7.2 ou anterior, você também poderá aceitar essa alteração adicionando a seguinte configuração appContextSwitchOverrides à <seção de runtime> do arquivo de configuração do aplicativo:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Security.Cryptography.UseLegacyFipsThrow=false" />
</runtime>
| Nome | Valor |
|---|---|
| Escopo | Microsoft Edge |
| Versão | 4.8 |
| Tipo | Redirecionamento |
APIs afetadas
- System.Security.Cryptography.AesManaged
- System.Security.Cryptography.MD5Cng
- System.Security.Cryptography.MD5CryptoServiceProvider
- System.Security.Cryptography.RC2CryptoServiceProvider
- System.Security.Cryptography.RijndaelManaged
- System.Security.Cryptography.RIPEMD160Managed
- System.Security.Cryptography.SHA1Managed
- System.Security.Cryptography.SHA256Managed
Windows Forms
Melhorias de acessibilidade nos controles do Windows Forms para .NET 4.8
Detalhes
O Windows Forms Framework continua a melhorar o funcionamento com tecnologias de acessibilidade para dar melhor suporte aos clientes do Windows Forms. Elas incluem as seguintes alterações:
- Alterações para melhorar a exibição durante o modo de Alto Contraste.
- Alterações na interação com o Narrador.
- Alterações na hierarquia acessível (melhorando a navegação por meio da árvore de Automação da Interface do Usuário).
Sugestão
Como aceitar ou desativar essas alterações Para que o aplicativo se beneficie dessas alterações, ele deve ser executado no .NET Framework 4.8. O aplicativo pode aceitar essas alterações de qualquer uma das seguintes maneiras:
- Ele é recompilado para ser compatível com o .NET Framework 4.8. Essas alterações de acessibilidade são habilitadas por padrão em aplicativos do Windows Forms direcionados ao .NET Framework 4.8.
- Ele tem como destino o .NET Framework 4.7.2 ou versão anterior e opta por não usar os comportamentos de acessibilidade herdados ao adicionar a seguinte opção AppContext à seção
<runtime>do arquivo de configuração do aplicativo e definir a seçãofalsecomo mostrado no exemplo a seguir.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.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" />
</runtime>
</configuration>
Observe que, para aceitar os recursos de acessibilidade adicionados no .NET Framework 4.8, você também deve optar pelos recursos de acessibilidade do .NET Framework 4.7.1 e 4.7.2. Aplicativos direcionados ao .NET Framework 4.8 e que desejam preservar o comportamento de acessibilidade herdado podem optar pelo uso de recursos de acessibilidade herdados definindo explicitamente essa opção AppContext como true. Habilitar o suporte à invocação tooltip do teclado requer adicionar a Switch.System.Windows.Forms.UseLegacyToolTipDisplay=false linha ao valor AppContextSwitchOverrides:
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false;Switch.System.Windows.Forms.UseLegacyToolTipDisplay=false" />
Observe que habilitar esse recurso requer aceitar os recursos de acessibilidade mencionados acima do .NET Framework 4.7.1 – 4.8. Além disso, se nenhum recurso de acessibilidade for aceito, mas o recurso de exibição da dica de ferramenta for aceito, o NotSupportedException do runtime será gerado no primeiro acesso a esses recursos. A mensagem de exceção indica que os ToolTips do teclado exigem melhorias de acessibilidade de nível 3 para que sejam habilitadas.
uso de cores definidas pelo sistema operacional em temas de Alto Contraste
- Temas aprimorados de alto contraste.
Aprimoramento do suporte do Narrador
- Agora o narrador anuncia a direção de classificação do DataGridViewColumn ao anunciar um nome acessível de um DataGridViewCell.
Suporte aprimorado de acessibilidade para CheckedListBox
- Melhoria no suporte ao Narrador do controle CheckedListBox. Ao navegar até o controle CheckedListBox usando o teclado, o Narrador foca no item CheckedListBox e o anuncia.
- Um controle CheckedListBox vazio agora tem um retângulo de foco desenhado para um primeiro item virtual quando o controle fica focado.
Suporte aprimorado à acessibilidade do ComboBox
Habilitação do suporte à Automação de interface do usuário para o controle ComboBox, com a capacidade de usar notificações de Automação de interface do usuário e outros recursos de automação de interface do usuário. suporte aprimorado à acessibilidade do DataGridView
Habilitação do suporte à Automação de interface do usuário para o controle DataGridView, com a capacidade de usar notificações de Automação de interface do usuário e outros recursos de automação de interface do usuário.
O elemento de Automação da Interface do Usuário que corresponde ao DataGridViewComboBoxEditingControl ou DataGridViewTextBoxEditingControl agora é filho da célula de edição correspondente.
Suporte aprimorado à Acessibilidade do LinkLabel
- Acessibilidade aprimorada do controle LinkLabel: o narrador anuncia o estado desabilitado do link se o controle LinkLabel correspondente está desabilitado.
Suporte aprimorado à Acessibilidade do ProgressBar
- Habilitação do suporte à Automação de interface do usuário para o controle ProgressBar, com a capacidade de usar notificações de Automação de interface do usuário e outros recursos de automação de interface do usuário. Os desenvolvedores agora podem usar notificações de Automação da Interface do Usuário que o Narrador pode anunciar para indicar o progresso. Para obter uma visão geral da visão geral dos eventos de automação da interface do usuário, incluindo eventos de notificação de automação da interface do usuário, consulte a Visão geral de eventos de automação da interface do usuário.
Suporte aprimorado à Acessibilidade do PropertyGrid
- Habilitação do suporte à Automação de interface do usuário para o controle PropertyGrid, com a capacidade de usar notificações de Automação de interface do usuário e outros recursos de automação de interface do usuário.
- O elemento de Automação de interface do usuário que corresponde à propriedade editada no momento agora é um filho do elemento de Automação da interface do usuário do item de propriedade correspondente.
- O elemento de item de propriedade de Automação de interface do usuário agora será um filho do elemento de categoria correspondente se o controle PropertyGrid pai estiver definido como modo de exibição de categoria.
Suporte aprimorado ao ToolStrip
- Habilitação do suporte à Automação de interface do usuário para o controle ToolStrip, com a capacidade de usar notificações de Automação de interface do usuário e outros recursos de automação de interface do usuário.
- Melhoria da navegação por meio de itens ToolStrip.
- No modo de itens, o foco do Narrador não desaparece e não vai para itens ocultos.
Melhoria das Indicações visuais
- Um controle vazio CheckedListBox agora exibe um indicador de foco quando recebe o foco. Observação: o suporte à automação da interface do usuário está habilitado para controles em runtime, mas não é usado em tempos de design. Para obter uma visão geral da automação da interface do usuário, consulte a visão geral da automação da interface do usuário.
Invocação de dicas de ferramenta de controles com um teclado
- A dica de ferramenta do controle agora pode ser invocada focalizando o controle com o teclado. Esse recurso precisa ser habilitado explicitamente para o aplicativo (consulte a seção "Como aceitar ou sair dessas alterações")
| Nome | Valor |
|---|---|
| Escopo | Principal |
| Versão | 4.8 |
| Tipo | Redirecionamento |
Windows Presentation Foundation (WPF)
Melhorias de acessibilidade no WPF
Detalhes
Melhorias de Alto Contraste
- Agora, o foco do controle Expander é visível. Nas versões anteriores do .NET Framework, não era.
- O texto em controles CheckBox e RadioButton quando eles são selecionados agora é mais fácil de ver do que nas versões anteriores do .NET Framework.
- A borda de um ComboBox desabilitado agora é a mesma cor do texto desabilitado. Nas versões anteriores do .NET Framework, não era.
- Botões desabilitados e com foco usam a cor de tema correta. Nas versões anteriores do .NET Framework, isso não acontecia.
- O botão suspenso agora fica visível quando um estilo do controle ComboBox é definido como ToolBar.ComboBoxStyleKey. Nas versões anteriores do .NET Framework, não era.
- A seta de indicação de classificação em um controle DataGrid agora usa cores do tema. Em versões anteriores do .NET Framework, não.
- O estilo de hiperlink padrão agora muda para a cor correta do tema quando se passa o mouse sobre ele. Em versões anteriores do .NET Framework, não.
- O foco do teclado em botões de opção agora fica visível. Nas versões anteriores do .NET Framework, não era.
- A coluna da caixa de seleção do controle DataGrid usa as cores esperadas para o feedback de foco do teclado. Em versões anteriores do .NET Framework, não.
- os visuais de foco do teclado agora estão visíveis nos controles ComboBox e ListBox. Nas versões anteriores do .NET Framework, não era.
melhorias de interação do leitor de tela
- Agora, os controles Expander são anunciados corretamente como grupos (expandir/recolher) por leitores de tela.
- Agora, os controles DataGridCell são anunciados corretamente como uma célula de grade de dados (localizada) por leitores de tela.
- Leitores de tela agora anunciam o nome de um ComboBox editável.
- Os controles PasswordBox não são mais anunciados como "nenhum item em exibição" por leitores de tela.
Suporte para LiveRegion
Leitores de tela, como o Narrador, ajudam as pessoas a entender a interface do usuário de um aplicativo, geralmente descrevendo o elemento de interface do usuário que atualmente tem foco. No entanto, se um elemento de interface do usuário for alterado em algum lugar da tela e não tiver o foco, o usuário poderá não ser informado e perder informações importantes. As LiveRegions são destinadas a resolver esse problema. Um desenvolvedor pode usá-los para informar o leitor de tela ou qualquer outro cliente de automação de interface do usuário que uma alteração importante foi feita em um elemento de interface do usuário. O leitor de tela pode decidir como e quando informar o usuário sobre essa alteração. A propriedade LiveSetting também permite que o leitor de tela saiba o quanto é importante informar o usuário sobre a alteração feita na interface do usuário.
Sugestão
Como aceitar ou sair dessas alterações
Para que o aplicativo se beneficie dessas alterações, ele deve ser executado no .NET Framework 4.7.1 ou posterior. O aplicativo pode se beneficiar dessas alterações de qualquer uma das seguintes maneiras:
Defina o .NET Framework 4.7.1 como destino. Essa é a abordagem recomendada. Essas alterações de acessibilidade são habilitadas por padrão em aplicativos WPF destinados ao .NET Framework 4.7.1 ou posterior.
Recusar os comportamentos de acessibilidade herdados adicionando a seguinte Opção de AppContext à seção
<runtime>do arquivo de configuração de aplicativo e configurando-a comofalse, como mostra o exemplo a seguir.<?xml version="1.0" encoding="utf-8"?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/> </startup> <runtime> <!-- AppContextSwitchOverrides value attribute is in the form of 'key1=true/false;key2=true/false' --> <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false" /> </runtime> </configuration>
Aplicativos direcionados ao .NET Framework 4.7.1 ou posterior e que desejam preservar o comportamento de acessibilidade herdado podem optar pelo uso de recursos de acessibilidade herdados definindo explicitamente essa opção AppContext como true.
Para obter uma visão geral da automação da interface do usuário, consulte Visão geral da automação da interface do usuário.
| Nome | Valor |
|---|---|
| Escopo | Principal |
| Versão | 4.7.1 |
| Tipo | Redirecionamento |
APIs afetadas
- AutomationElementIdentifiers.LiveSettingProperty
- AutomationElementIdentifiers.LiveRegionChangedEvent
- System.Windows.Automation.AutomationLiveSetting
- AutomationProperties.LiveSettingProperty
- AutomationProperties.SetLiveSetting(DependencyObject, AutomationLiveSetting)
- AutomationProperties.GetLiveSetting(DependencyObject)
- AutomationPeer.GetLiveSettingCore()
Adicionar a propriedade pública SelectionTextBrush à seleção não baseada em adorno TextBox/PasswordBox
Detalhes
Em aplicativos WPF que usam a seleção de texto não baseada em adorno para TextBox e PasswordBox, agora, os desenvolvedores podem definir a propriedade SelectionTextBrush recém-adicionada para alterar a renderização do texto selecionado. Por padrão, essa cor muda com HighlightTextBrushKey. Se a seleção de texto não baseada em adorno não estiver habilitada, essa propriedade não fará nada.
Sugestão
Depois que a seleção de texto não baseada em adorno estiver habilitada, você poderá usar as propriedades PasswordBox.SelectionTextBrush e SelectionTextBrush para alterar a aparência do texto selecionado. Isso pode ser feito usando XAML:
<TextBox SelectionBrush="Red" SelectionTextBrush="White" SelectionOpacity="0.5"
Foreground="Blue" CaretBrush="Blue">
This is some text.
</TextBox>
| Nome | Valor |
|---|---|
| Escopo | Principal |
| Versão | 4.8 |
| Tipo | Redirecionamento |
APIs afetadas
- TextBoxBase.SelectionTextBrushProperty
- TextBoxBase.SelectionTextBrush
- System.Windows.Controls.TextBox
- System.Windows.Controls.PasswordBox
O HwndHost agora redimensiona corretamente o child-HWND durante as alterações de DPI
Detalhes
No .NET Framework 4.7.2 e versões anteriores, quando o WPF estava sendo executado no modo Com reconhecimento por monitor, os controles hospedados em HwndHost não foram dimensionados corretamente após alterações de DPI, por exemplo, ao migrar aplicativos de um monitor para outro. Essa correção garante que os controles hospedados sejam dimensionados adequadamente.
Sugestão
Para que o aplicativo se beneficie dessas alterações, ele deve ser executado no .NET Framework 4.7.2 ou posterior e deve aderir a este comportamento definindo o seguinte AppContext Switch na seção <runtime> do arquivo de configuração do aplicativo para false conforme mostrado no exemplo a seguir.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/>
</startup>
<runtime>
<!-- AppContextSwitchOverrides value attribute is in the form of 'key1=true/false;key2=true/false -->
<AppContextSwitchOverrides value="Switch.System.Windows.DoNotUsePresentationDpiCapabilityTier2OrGreater=false" />
</runtime>
</configuration>
| Nome | Valor |
|---|---|
| Escopo | Principal |
| Versão | 4.8 |
| Tipo | Redirecionamento |
Windows Workflow Foundation (WF)
Melhorias de acessibilidade no designer de fluxo de trabalho do Windows Workflow Foundation (WF)
Detalhes
O designer de fluxo de trabalho do WF (Windows Workflow Foundation) está melhorando a maneira como ele funciona com tecnologias de acessibilidade. Essas melhorias incluem as seguintes alterações:
- A ordem de tabulação é alterada para a esquerda para a direita e de cima para baixo em alguns controles:
- A janela de inicialização de correlação para definir dados de correlação para a atividade InitializeCorrelation
- A janela de definição de conteúdo para as atividades Receive, Send, SendReplye ReceiveReply
- Mais funções estão disponíveis por meio do teclado:
- Ao editar as propriedades de uma atividade, grupos de propriedades podem ser recolhidos pelo teclado na primeira vez em que são colocados em foco.
- Os ícones de aviso agora estão acessíveis por teclado.
- O botão Mais Propriedades na janela Propriedades agora está acessível pelo teclado.
- Os usuários de teclado agora podem acessar os itens de cabeçalho nos painéis Argumentos e Variáveis do Designer de Fluxo de Trabalho.
- Aperfeiçoamento na visibilidade de itens em foco, como quando:
- Adicionando linhas a grades de dados usadas pelo Designer de Fluxo de Trabalho e designers de atividades.
- Percorrer campos nas atividades ReceiveReply e SendReply.
- Definindo valores padrão para variáveis ou argumentos
- Os leitores de tela agora podem reconhecer corretamente:
- Pontos de interrupção definidos no designer de fluxo de trabalho.
- As atividades FlowSwitch<T>, FlowDecision e CorrelationScope.
- O conteúdo da atividade Receive.
- O Tipo de Destino da atividade InvokeMethod.
- A caixa de combinação Exceção e a seção Finalmente na atividade TryCatch.
- A caixa de combinação Tipo de Mensagem, o divisor na janela Adicionar Inicializadores de Correlação, a janela Definição de Conteúdo e a janela de Definição de CorrelatesOn nas atividades de mensagens (Receive, Send, SendReply e ReceiveReply).
- Transições de máquinas de estado e destinos de transição.
- Anotações e conectores em atividades FlowDecision.
- Os menus de contexto (clique com o botão direito do mouse) para atividades.
- Os editores de valor de propriedade, o botão Limpar Pesquisa, os botões de classificação Por Categoria e Ordem Alfabética e a caixa de diálogo Editor de Expressão na grade de propriedades.
- A porcentagem de zoom no Designer de Fluxo de Trabalho.
- O separador nas atividades Parallel e Pick.
- A atividade InvokeDelegate.
- A janela Selecionar Tipos para atividades de dicionário (
Microsoft.Activities.AddToDictionary<TKey,TValue>,Microsoft.Activities.RemoveFromDictionary<TKey,TValue>, etc.). - A janela Procurar e Selecionar um Tipo .NET.
- Trilhas de navegação no Designer de Fluxo de Trabalho.
- Os usuários que escolherem temas de Alto Contraste verão muitas melhorias na visibilidade do Designer de Fluxo de Trabalho e seus controles, como melhores proporções de contraste entre elementos e caixas de seleção mais perceptíveis usadas para elementos de foco.
Sugestão
Se você tiver um aplicativo com um designer de fluxo de trabalho hospedado novamente, seu aplicativo poderá se beneficiar dessas alterações executando uma destas ações:
- Recompile seu aplicativo para direcionar o .NET Framework 4.7.1. Essas alterações de acessibilidade são habilitadas por padrão.
- Se seu aplicativo for destinado ao .NET Framework 4.7 ou anterior, mas estiver em execução no .NET Framework 4.7.1, você poderá recusar esses comportamentos de acessibilidade herdados adicionando a seguinte opção de AppContext à seção
<runtime>do arquivo app.config e definindo-a comofalse, como mostra o exemplo a seguir.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/>
</startup>
<runtime>
<!-- AppContextSwitchOverrides value attribute is in the form of 'key1=true/false;key2=true/false -->
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false" />
</runtime>
</configuration>
Aplicativos direcionados ao .NET Framework 4.7.1 ou posterior e que desejam preservar o comportamento de acessibilidade herdado podem optar pelo uso de recursos de acessibilidade herdados definindo explicitamente essa opção AppContext como true.
| Nome | Valor |
|---|---|
| Escopo | Menor |
| Versão | 4.7.1 |
| Tipo | Redirecionamento |
As somas de verificação XAML do Fluxo de Trabalho para símbolos mudaram de SHA1 para SHA256
Detalhes
Para compatibilidade com a depuração com o Visual Studio, o runtime de fluxo de trabalho gera uma soma de verificação para um arquivo XAML do fluxo de trabalho usando um algoritmo de hash. No .NET Framework 4.6.2 e versões anteriores, o hash de soma de verificação do fluxo de trabalho usava o algoritmo MD5, o que causou problemas em sistemas habilitados para FIPS. A partir do .NET Framework 4.7, o algoritmo padrão foi alterado para SHA1. A partir do .NET Framework 4.8, o algoritmo padrão foi alterado para SHA256.
Sugestão
Se o código não conseguir carregar instâncias do fluxo de trabalho ou encontrar símbolos adequados devido a uma falha na soma de verificação, tente definir a opção "Switch.System.Activities.UseSHA1HashForDebuggerSymbols" de AppContext como true. No código:
System.AppContext.SetSwitch("Switch.System.Activities.UseSHA1HashForDebuggerSymbols", true);
Ou em nossa configuração:
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Activities.UseSHA1HashForDebuggerSymbols=true" />
</runtime>
</configuration>
| Nome | Valor |
|---|---|
| Escopo | Menor |
| Versão | 4.8 |
| Tipo | Redirecionamento |
A definição XOML do fluxo de trabalho e as chaves de cache do SqlTrackingService foram alteradas de MD5 para SHA256.
Detalhes
O Workflow Runtime mantém um cache de definições de fluxo de trabalho definidas em XOML. O SqlTrackingService também mantém um cache que é chaveado por cadeias de caracteres. Esses caches são inseridos por valores que incluem o valor de hash da soma de verificação. No .NET Framework 4.7.2 e versões anteriores, esse hash de soma de verificação usou o algoritmo MD5, o que causou problemas em sistemas habilitados para FIPS. A partir do .NET Framework 4.8, o algoritmo usado é SHA256. Não deve haver um problema de compatibilidade com essa alteração porque os valores são recalculados sempre que o Workflow Runtime e o SqlTrackingService são iniciados. No entanto, fornecemos quirks para permitir que os clientes revertam para o uso do algoritmo de hash herdado, se necessário.
Sugestão
Se essa alteração apresentar um problema ao executar fluxos de trabalho, tente definir uma ou ambas as opções AppContext :
- "Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey" como true.
- "Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKey" como true. No código:
System.AppContext.SetSwitch("Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey", true);
System.AppContext.SetSwitch("Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKey", true);
Ou no arquivo de configuração (isso precisa estar no arquivo de configuração do aplicativo que está criando o WorkflowRuntime objeto):
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey=true" />
<AppContextSwitchOverrides value="Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKeytrue" />
</runtime>
</configuration>
| Nome | Valor |
|---|---|
| Escopo | Menor |
| Versão | 4.8 |
| Tipo | Redirecionamento |
Somas de verificação do arquivo XOML de fluxo de trabalho alteradas de MD5 para SHA256
Detalhes
Para oferecer suporte à depuração de fluxos de trabalho baseados em XOML com o Visual Studio, quando projetos de fluxo de trabalho que contêm arquivos XOML são criados, uma soma de verificação do conteúdo do arquivo XOML é incluída no código gerado como um valor WorkflowMarkupSourceAttribute.MD5Digest. No .NET Framework 4.7.2 e versões anteriores, esse hash de soma de verificação usou o algoritmo MD5, o que causou problemas em sistemas habilitados para FIPS. A partir do .NET Framework 4.8, o algoritmo usado é SHA256. Para ser compatível com o WorkflowMarkupSourceAttribute.MD5Digest, somente os primeiros 16 bytes da soma de verificação gerada são usados. Isso pode causar problemas durante a depuração. Talvez seja necessário compilar novamente seu projeto.
Sugestão
Se uma nova compilação do projeto não resolver o problema, tente definir a opção "Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum" de AppContext como true no seguinte código:
System.AppContext.SetSwitch("Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum", true);
Ou em um arquivo de configuração (isso precisa estar em MSBuild.exe.config para o MSBuild.exe que você está usando):
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum=true" />
</runtime>
</configuration>
| Nome | Valor |
|---|---|
| Escopo | Menor |
| Versão | 4.8 |
| Tipo | Redirecionamento |
.NET Framework 4.8.1
Nenhum problema de compatibilidade de aplicativo foi introduzido no .NET Framework 4.8.1.