<AppContextSwitchOverrides > elemento<AppContextSwitchOverrides> Element

Define uma ou mais opções usadas pela classe AppContext para fornecer um mecanismo de recusa de uma nova funcionalidade.Defines one or more switches used by the AppContext class to provide an opt-out mechanism for new functionality.

<configuration><configuration>
<runtime><runtime>
<AppContextSwitchOverrides><AppContextSwitchOverrides>

SintaxeSyntax

<AppContextSwitchOverrides value="name1=value1[[;name2=value2];...]" />  

Atributos e elementosAttributes and Elements

As seções a seguir descrevem atributos, elementos filho e elementos pai.The following sections describe attributes, child elements, and parent elements.

AtributosAttributes

AtributoAttribute DescriçãoDescription
value Atributo obrigatório.Required attribute.

Define um ou mais nomes de comutador e seus valores associados de boolianos.Defines one or more switch names and their associated Boolean values.

valor de atributovalue Attribute

ValorValue DescriçãoDescription
"name=value""name=value" Um nome de comutador predefinidos, juntamente com seu valor (true ou false).A predefined switch name along with its value (true or false). Vários pares de nome/valor de opção são separados por ponto e vírgula (";").Multiple switch name/value pairs are separated by semicolons (";"). Para obter uma lista de nomes de comutador predefinidas compatíveis com o .NET Framework, consulte a seção comentários.For a list of predefined switch names supported by the .NET Framework, see the Remarks section.

Elementos filhoChild Elements

nenhuma.None.

Elementos paiParent Elements

ElementoElement DescriçãoDescription
configuration O elemento raiz em cada arquivo de configuração usado pelos aplicativos do Common Language Runtime e .NET Framework.The root element in every configuration file used by the common language runtime and .NET Framework applications.
runtime Contém informações sobre opções de inicialização do tempo de execução.Contains information about runtime initialization options.

ComentáriosRemarks

Começando com o .NET Framework 4.6, o <AppContextSwitchOverrides> elemento em um arquivo de configuração permite que os chamadores de uma API para determinar se o seu aplicativo pode tirar proveito da nova funcionalidade ou preservar a compatibilidade com versões anteriores de uma biblioteca.Starting with the .NET Framework 4.6, the <AppContextSwitchOverrides> element in a configuration file allows callers of an API to determine whether their app can take advantage of new functionality or preserve compatibility with previous versions of a library. Por exemplo, se o comportamento de uma API foi alterado entre duas versões de uma biblioteca, o <AppContextSwitchOverrides> elemento permite que os chamadores dessa API para recusar o novo comportamento em versões da biblioteca que dão suporte a nova funcionalidade.For example, if the behavior of an API has changed between two versions of a library, the <AppContextSwitchOverrides> element allows callers of that API to opt out of the new behavior on versions of the library that support the new functionality. Para aplicativos que chamam as APIs no .NET Framework, o <AppContextSwitchOverrides> elemento também pode permitir que os chamadores cujos aplicativos direcionam uma versão anterior do .NET Framework para aceitar novas funcionalidades se seu aplicativo estiver em execução em uma versão do .NET Framework que inclui que funcionalidade.For apps that call APIs in the .NET Framework, the <AppContextSwitchOverrides> element can also allow callers whose apps target an earlier version of the .NET Framework to opt into new functionality if their app is running on a version of the .NET Framework that includes that functionality.

O value atributo do <AppContextSwitchOverrides> elemento consiste em uma única cadeia de caracteres que consiste em um ou mais pares de nome/valor delimitados por ponto e vírgula.The value attribute of the <AppContextSwitchOverrides> element consists of a single string that consists of one or more semicolon-delimited name/value pairs. Cada nome identifica uma opção de compatibilidade e seu valor correspondente é um valor booliano (true ou false) que indica se a opção estiver definida.Each name identifies a compatibility switch, and its corresponding value is a Boolean (true or false) that indicates whether the switch is set. Por padrão, o comutador é false, e as bibliotecas fornecem a nova funcionalidade.By default, the switch is false, and libraries provide the new functionality. Eles só fornecem a funcionalidade anterior se a opção é definida (isto é, seu valor é true).They only provide the previous functionality if the switch is set (that is, its value is true). Isso permite que as bibliotecas fornecer o novo comportamento para uma API existente, permitindo que os chamadores que dependem do comportamento anterior para recusar a nova funcionalidade.This allows libraries to provide new behavior for an existing API while allowing callers who depend on the previous behavior to opt out of the new functionality.

O .NET Framework suporta as seguintes opções:The .NET Framework supports the following switches:

Nome do comutadorSwitch name DescriçãoDescription IntroduzidoIntroduced
Switch.MS.Internal.
DoNotApplyLayoutRoundingToMarginsAndBorderThickness
Controla se o Windows Presentation Foundation usa herdado de um algoritmo para controlar o layout.Controls whether Windows Presentation Foundation uses legacy a algorithm for control layout. Para obter mais informações, confira Mitigação: Layout de WPF.For more information, see Mitigation: WPF Layout. .NET Framework 4.6.NET Framework 4.6
Switch.MS.Internal.
UseSha1AsDefaultHashAlgorithmForDigitalSignatures
Controla se o algoritmo padrão usado para assinar partes de um pacote por PackageDigitalSignatureManager é SHA1 ou SHA256.Controls whether the default algorithm used for signing parts of a package by PackageDigitalSignatureManager is SHA1 or SHA256.
Em razão de problemas de colisão com SHA1, a Microsoft recomenda SHA256.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.Activities.
UseMD5CryptoServiceProviderForWFDebugger
Quando definido como false, permite a depuração de projetos de fluxo de trabalho baseado em XAML com o Visual Studio quando o FIPS está habilitado.When set to false, allows debugging of XAML-based workflow projects with Visual Studio when FIPS is enabled. Sem ele, um NullReferenceException é gerada em chamadas para métodos no assembly System. Activities.Without it, a NullReferenceException is thrown in calls to methods in the System.Activities assembly. .NET Framework 4.7.NET Framework 4.7
Switch.System.Activities.
UseMD5ForWFDebugger
Controla se a soma de verificação para uma instância de fluxo de trabalho no depurador usa MD5 ou SHA1.Controls whether the checksum for a workflow instance in the debugger uses MD5 or SHA1. .NET Framework 4.7.NET Framework 4.7
Switch.System.Activities.
UseSHA1HashForDebuggerSymbols
Controla se o hash de soma de verificação de fluxo de trabalho usa o algoritmo SHA1 introduzido como padrão no .NET Framework 4.7 (true), ou se ele usa o algoritmo padrão de SHA256 introduzido como padrão no .NET Framework 4.8 (false).Controls whether workflow checksum hashing uses the SHA1 algorithm introduced as the default in .NET Framework 4.7 (true), or whether it uses the default SHA256 algorithm introduced as the default in .NET Framework 4.8 (false).
Em razão de problemas de colisão com SHA1, a Microsoft recomenda SHA256.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.8.NET Framework 4.8
Switch.System.Diagnostics.
IgnorePortablePDBsInStackTraces
Controla se os rastreamentos de pilha obtém ao usar PDBs portáteis pode incluir informações de arquivo e de linha de código-fonte.Controls whether stack traces obtain when using portable PDBs can include source file and line information. false para incluir informações de arquivo e de linha de código-fonte; Caso contrário, true.false to include source file and line information; otherwise, true. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Drawing.
DontSupportPngFramesInIcons
Controles se o Icon.ToBitmap método gera uma exceção quando um Icon objeto tiver quadros PNG.Controls whether the Icon.ToBitmap method throws an exception when an Icon object has PNG frames. Para obter mais informações, confira Mitigação: Quadros PNG em objetos de ícone.For more information, see Mitigation: PNG Frames in Icon Objects. .NET Framework 4.6.NET Framework 4.6
Switch.System.Drawing.Text.
DoNotRemoveGdiFontsResourcesFromFontCollection
Determina se System.Drawing.Text.PrivateFontCollection objetos sejam descartados corretamente quando adicionado à coleção, o PrivateFontCollection.AddFontFile(String) método.Determines whether System.Drawing.Text.PrivateFontCollection objects are properly disposed when added to the collection by the PrivateFontCollection.AddFontFile(String) method. true para manter o comportamento herdado; false para descartar todos os objetos de fontes privadas.true to maintain the legacy behavior; false to dispose of all private font objects. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Drawing.Printing.
OptimizePrintPreview
Controles se o desempenho do PrintPreviewDialog é otimizado para impressoras de rede.Controls whether the performance of the PrintPreviewDialog is optimized for network printers. Para obter mais informações, consulte visão geral do controle PrintPreviewDialog.For more information, see PrintPreviewDialog control overview. .NET Framework 4.6.NET Framework 4.6
Switch.System.Globalization.EnforceJapaneseEraYearRanges Controla se o intervalo de anos verifica para o calendário japonês eras são impostas.Controls whether year range checks for Japanese calendar eras are enforced. true para impor o intervalo de ano verifica, e false desabilitá-los (o comportamento padrão).true to enforce year range checks, and false to disable them (the default behavior). Para obter mais informações, consulte trabalhando com calendários.For more information, see Working with calendars. .NET Framework 4.6.NET Framework 4.6
Switch.System.Globalization.EnforceLegacyJapaneseDateParsing Controla se apenas "1" é reconhecido como o primeiro ano da era calendário japonês em operações de análise.Controls whether only "1" is recognized as the first year of a Japanese calendar era in parsing operations. true para reconhecer apenas de "1"; false reconhecer Gannen (o comportamento padrão) ou "1".true to recognize only "1"; false to recognize either "1" or Gannen (the default behavior). Para obter mais informações, consulte trabalhando com calendários.For more information, see Working with calendars. .NET Framework 4.6.NET Framework 4.6
Switch.System.Globalization.FormatJapaneseFirstYearAsANumber Controla se o primeiro ano da era calendário japonês é representado como "1" ou Gannen em operações de formatação.Controls whether the first year of a Japanese calendar era is represented as "1" or Gannen in formatting operations. true Para formatar o primeiro ano do era como "1"; false formatá-lo como Gannen (o comportamento padrão).true to format the era's first year as "1"; false to format it as Gannen (the default behavior). Para obter mais informações, consulte trabalhando com calendários.For more information, see Working with calendars. .NET Framework 4.6.NET Framework 4.6
Switch.System.Globalization.NoAsyncCurrentCulture Controla se as operações assíncronas não fluem do contexto do thread de chamada.Controls whether asynchronous operations do not flow from the calling thread's context. Para obter mais informações, consulte fluxo CurrentCulture e CurrentUICulture entre tarefas.For more information, see CurrentCulture and CurrentUICulture flow across tasks. .NET Framework 4.6.NET Framework 4.6
Switch.System.IdentityModel.
DisableMultipleDNSEntriesInSANCertificate
Controles se o X509CertificateClaimSet.FindClaims método tentará corresponder o tipo de declaração apenas com a última entrada DNS.Controls whether the X509CertificateClaimSet.FindClaims method attempts to match the claim type only with the last DNS entry. Para obter mais informações, confira Mitigação: Método X509CertificateClaimSet.FindClaims.For more information, see Mitigation: X509CertificateClaimSet.FindClaims Method. .NET Framework 4.6.1.NET Framework 4.6.1
Switch.System.IdentityModel.
EnableCachedEmptyDefaultAuthorizationContext
Controla se deve permitir AuthorizationContext.Empty retornar um objeto mutável.Controls whether to allow AuthorizationContext.Empty to return a mutable object. .NET Framework 4.6.NET Framework 4.6
Switch.System.IO.BlockLongPaths Controles se caminhos com mais de MAX_PATH (260 caracteres) lançar um PathTooLongException.Controls whether paths longer than MAX_PATH (260 characters) throw a PathTooLongException. Para obter mais informações, consulte suporte de caminho longo.For more information, see Long Path Support. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.IO.Compression.
DoNotUseNativeZipLibraryForDecompression
Controla se as rotinas nativas do sistema operacional são usadas para descompactação pelo DeflateStream classe.Controls whether native OS routines are used for decompression by the DeflateStream class. false usar APIs nativas; true para usar o DeflateStream implementação.false to use native APIs; true to use the DeflateStream implementation. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.IO.Compression.ZipFile.
UseBackslash
Usa a barra invertida ("\") em vez de barra invertida ("/") como separador de caminho no ZipArchiveEntry.FullName propriedade.Uses the backslash ("\") rather than the forward slash ("/") as the path separator in the ZipArchiveEntry.FullName property. Para obter mais informações, consulte atenuação: Separador de caminho ziparchiveentry. FullName.For more information, see Mitigation: ZipArchiveEntry.FullName Path Separator. .NET Framework 4.6.1.NET Framework 4.6.1
Switch.System.IO.Ports.
DoNotCatchSerialStreamThreadExceptions
Controla se o operando de exceções do sistema que são geradas em threads em segundo plano criados com SerialPort fluxos encerram o processo.Controls whether operating system exceptions that are thrown on background threads created with SerialPort streams terminate the process. .NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.IO.
UseLegacyPathHandling
Controla se a normalização do caminho herdado é usada e caminhos de URI são compatíveis com o Path.GetDirectoryName e Path.GetPathRoot métodos.Controls whether legacy path normalization is used and URI paths are supported by the Path.GetDirectoryName and Path.GetPathRoot methods. Para obter mais informações, confira Mitigação: Normalização de caminho e atenuação: Verificações de dois-pontos no caminho.For more information, see Mitigation: Path Normalization and Mitigation: Path Colon Checks. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.
MemberDescriptorEqualsReturnsFalseIfEquivalent
Controla se um teste de igualdade compara os MemberDescriptor.Category propriedade de um objeto com o MemberDescriptor.Description propriedade do segundo objeto.Controls whether a test for equality compares the MemberDescriptor.Category property of one object with the MemberDescriptor.Description property of the second object. Para obter mais informações, consulte implementação incorreta de memberdescriptor. Equals.For more information, see Incorrect implementation of MemberDescriptor.Equals. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.Net.
DontCheckCertificateEKUs
Desabilita a validação de OID (identificador) do objeto de uso avançado de chave (EKU) do certificado.Disables certificate enhanced key usage (EKU) object identifier (OID) validation. Uma extensão de EKU (uso avançado de chave) é uma coleção de OIDs (identificadores de objeto) que indicam os aplicativos que usam a chave.An enhanced key usage (EKU) extension is a collection of object identifiers (OIDs) that indicate the applications that use the key. .NET Framework 4.6.NET Framework 4.6
Switch.System.Net.
DontEnableSchSendAuxRecord
Desabilita a atenuação TLS1.0 navegador explorar contra SSL/TLS (FERA) desabilitando o uso de SCH_SEND_AUX_RECORD.Disables TLS1.0 Browser Exploit Against SSL/TLS (BEAST) mitigation by disabling the use of SCH_SEND_AUX_RECORD. .NET Framework 4.6.NET Framework 4.6
Switch.System.Net.
DontEnableSchUseStrongCrypto
Controles se o System.Net.ServicePointManager e System.Net.Security.SslStream classes podem usar o protocolo SSL 3.0.Controls whether the System.Net.ServicePointManager and System.Net.Security.SslStream classes can use the SSL 3.0 protocol. Para obter mais informações, confira Mitigação: protocolos TLS.For more information, see Mitigation: TLS Protocols. .NET Framework 4.6.NET Framework 4.6
Switch.System.Net.
DontEnableSystemDefaultTlsVersions
Desabilita as versões do TLS SystemDefault reverter para um padrão de Tls, Tls11, Tls12.Disables SystemDefault TLS versions reverting back to a default of Tls12, Tls11, Tls. .NET Framework 4.7.NET Framework 4.7
Switch.System.Net.
DontEnableTlsAlerts
Desabilita os alertas do lado do servidor TLS SslStream.Disables SslStream TLS server-side Alerts. .NET Framework 4.7.NET Framework 4.7
Switch.System.Runtime.InteropServices.
DoNotMarshalOutByrefSafeArrayOnInvoke
Controla se marshaling de parâmetros ByRef SafeArray em eventos de interoperabilidade de COM para código nativo (false) ou se o marshaling de volta para o código nativo está desabilitado (true).Controls whether ByRef SafeArray parameters on COM interop events marshal back to native code (false) or whether marshaling back to native code is disabled (true). .NET Framework 4.8.NET Framework 4.8
Switch.System.Runtime.Serialization.
DoNotUseECMAScriptV6EscapeControlCharacter
Controles se o DataContractJsonSerializer serializa alguns caracteres de controle com base nos padrões ECMAScript V6 e V8.Controls whether the DataContractJsonSerializer serializes some control characters based on the ECMAScript V6 and V8 standards. Para obter mais informações, confira Mitigação: Serialização de caracteres de controle com o DataContractJsonSerializerFor more information, see Mitigation: Serialization of Control Characters with the DataContractJsonSerializer .NET Framework 4.7.NET Framework 4.7
Switch.System.Runtime.Serialization.
DoNotUseTimeZoneInfo
Controles se o DataContractJsonSerializer dá suporte a vários ajustes ou apenas um único ajuste para um fuso horário.Controls whether the DataContractJsonSerializer supports multiple adjustments or only a single adjustment for a time zone. Se true, ele usa o TimeZoneInfo de tipo para serializar e desserializar dados de data e hora; caso contrário, ele usa o TimeZone tipo, que não oferece suporte a várias regras de ajuste.If true, it uses the TimeZoneInfo type to serialize and deserialize date and time data; otherwise, it uses the TimeZone type, which does not support multiple adjustment rules. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.Runtime.Serialization.UseNewMaxArraySize Controles se System.Runtime.Serialization.ObjectManager usa um tamanho de matriz maior durante a serialização de objeto e a desserialização.Controls whether System.Runtime.Serialization.ObjectManager uses a larger array size during object serialization and deserialization. Definir essa opção como true para melhorar o desempenho de serialização e desserialização de grafos de objeto grande por tipos como BinaryFormatter.Set this switch to true to improve the performance of serialization and deserialization of large object graphs by types such as BinaryFormatter. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Security.ClaimsIdentity.
SetActorAsReferenceWhenCopyingClaimsIdentity
Controles se o ClaimsIdentity.ClaimsIdentity(IIdentity) construtor define o novo objeto ClaimsIdentity.Actor propriedade com uma referência de objeto existente.Controls whether the ClaimsIdentity.ClaimsIdentity(IIdentity) constructor sets the new object's ClaimsIdentity.Actor property with an existing object reference. Para obter mais informações, confira Mitigação: Construtor ClaimsIdentity.For more information, see Mitigation: ClaimsIdentity Constructor. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.Security.Cryptography.
AesCryptoServiceProvider.DontCorrectlyResetDecryptor
Controles se a tentativa de reutilizar um AesCryptoServiceProvider descriptografador lança um CryptographicException.Controls whether the attempt to reuse an AesCryptoServiceProvider decryptor throws a CryptographicException. Para obter mais informações, consulte descriptografador AesCryptoServiceProvider fornece uma transformação reutilizável.For more information, see AesCryptoServiceProvider decryptor provides a reusable transform. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.Security.Cryptography.
DoNotAddrOfCspParentWindowHandle
Controles se o valor da cspParameters. Parentwindowhandle propriedade é um IntPtr que tratar do representa o local da memória de uma janela, ou se é um identificador de janela (HWND).Controls whether the value of the CspParameters.ParentWindowHandle property is an IntPtr that represents the memory location of a window handle, or whether it is a window handle (an HWND). Para obter mais informações, confira Mitigação: CspParameters. Parentwindowhandle espera um HWND.For more information, see Mitigation: CspParameters.ParentWindowHandle Expects an HWND. .NET Framework 4.7.NET Framework 4.7
Switch.System.Security.Cryptography.
UseLegacyFipsThrow
Controla se o uso de criptografia gerenciadas as classes em FIPS modo lança um CryptographicException (true) ou se baseia na implementação de bibliotecas do sistema (false).Controls whether the use of managed cryptography classes in FIPS mode throws a CryptographicException (true) or relies on the implementation of system libraries (false). .NET Framework 4.8.NET Framework 4.8
Switch.System.Security.Cryptography.Pkcs.
UseInsecureHashAlgorithms
Determina se o padrão para algumas operações do SignedCMS é SHA1 ou SHA256.Determines whether the default for some SignedCMS operations is SHA1 or SHA256.
Em razão de problemas de colisão com SHA1, a Microsoft recomenda SHA256.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.Security.Cryptography.X509Certificates.
ECDsaCertificateExtensions.UseLegacyPublicKeyReader
Controles se o ECDsaCertificateExtensions.GetECDsaPublicKey método trata corretamente as curvas todas nomeadas com suporte pelo sistema operacional (false) ou reverte para o comportamento herdado.Controls whether the ECDsaCertificateExtensions.GetECDsaPublicKey method correctly handles all named curves supported by the operating system (false) or reverts to legacy behavior. .NET Framework 4.8.NET Framework 4.8
Switch.System.Security.Cryptography.Xml.
UseInsecureHashAlgorithms
Determina se o padrão para algumas operações SignedXML é SHA1 ou SHA256.Determines whether the default for some SignedXML operations is SHA1 or SHA256.
Em razão de problemas de colisão com SHA1, a Microsoft recomenda SHA256.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.ServiceModel.
AllowUnsignedToHeader
Determina se o TransportWithMessageCredential modo de segurança permite que as mensagens com um unsigned "cabeçalho para".Determines whether the TransportWithMessageCredential security mode allows messages with an unsigned "to" header. Isso é uma opção de aceitação.This is an opt-in switch. Para obter mais informações, consulte alterações de tempo de execução no .NET Framework 4.6.1.For more information, see Runtime Changes in the .NET Framework 4.6.1. .NET Framework 4.6.1.NET Framework 4.6.1
Switch.System.ServiceModel.
DisableAddressHeaderCollectionValidation>
Controles se o AddressHeaderCollection(IEnumerable<AddressHeader>) construtor lança um ArgumentException se um dos elementos é null.Controls whether the AddressHeaderCollection(IEnumerable<AddressHeader>) constructor throws an ArgumentException if one of the elements is null. .NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.ServiceModel.
DisableCngCertificates
Determina que se a tentativa de usar X509 certificados com um provedor de armazenamento de chaves CSG gera uma exceção.Determines whether the attempt to use X509 certificates with a CSG key storage provider throws an exception. Para obter mais informações, consulte segurança do transporte WCF dá suporte a certificados armazenados usando CNG.For more information, see WCF transport security supports certificates stored using CNG. .NET Framework 4.6.1.NET Framework 4.6.1
Switch.System.ServiceModel.
DisableExplicitConnectionCloseHeader
Ao usar o transporte HTTP com um serviço auto-hospedado, definir esse valor como true faz com que o WCF ignorar a um aplicativo adicionando o Connection: close cabeçalho para os cabeçalhos de resposta para uma solicitação.When using the HTTP transport with a self-hosted service, setting this value to true causes WCF to ignore an application adding the Connection: close header to the response headers for a request. Definir esse valor como false permite adicionar o Connection: close cabeçalho para os cabeçalhos de resposta, o que resulta no fechamento de soquete de solicitação depois que uma resposta foi enviada.Setting this value to false enables adding the Connection: close header to the response headers, which results in closing the request socket after a response has been sent. .NET Framework 4.6.NET Framework 4.6
Switch.System.ServiceModel.
DisableOperationContextAsyncFlow
Lida com deadlocks que resultam de restrição de instâncias de um serviço reentrante a um único thread de execução em um horário.Handles deadlocks that result from restricting instances of a reentrant service to a single thread of execution at a time. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.ServiceModel.
DisableUsingServicePointManagerSecurityProtocols
Juntamente com Switch.System.Net.DontEnableSchUseStrongCrypto, determina se a segurança de mensagem do WCF usa TLS 1.1 e TLS 1.2.Along with Switch.System.Net.DontEnableSchUseStrongCrypto, determines whether WCF message security uses TLS 1.1 and TLS 1.2. .NET Framework 4.7.NET Framework 4.7
Switch.System.ServiceModel.
DontEnableSystemDefaultTlsVersions
Um valor de false define a configuração padrão para permitir que o sistema operacional escolha o protocolo.A value of false sets the default configuration to allow the operating system to choose the protocol. Um valor de true define o padrão para o maior protocolo disponível.A value of true sets the default to the highest protocol available. (Também disponível no branch de versões anteriores do framework de manutenção)(Also available on servicing branch of previous framework versions) .NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InMsmqEncryptionAlgorithm
Determina se a mensagem padrão do algoritmo para mensagens MSMQ do WCF de assinatura é SHA1 ou SHA256.Determines whether the default message signing algorithm for MSMQ messages in WCF is SHA1 or SHA256.
Em razão de problemas de colisão com SHA1, a Microsoft recomenda SHA256.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InPipeConnectionGetHashAlgorithm
Controla se WCF usa um SHA1 ou hash SHA256 para gerar nomes aleatórios para pipes nomeados.Controls whether WCF uses a SHA1 or a SHA256 hash to generate random names for named pipes.
Em razão de problemas de colisão com SHA1, a Microsoft recomenda SHA256.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.ServiceModel.Internals
IncludeNullExceptionMessageInETWTrace
Controla se deve lançar uma NullReferenceException quando a mensagem de exceção é nula.Controls whether to throw a NullReferenceException when the exception message is null. .NET Framework 4.7.NET Framework 4.7
Switch.System.ServiceProcess.
DontThrowExceptionsOnStart
Controla se as exceções geradas na inicialização do serviço são propagadas para o chamador do ServiceBase.Run método.Controls whether exceptions thrown on service startup are propagated to the caller of the ServiceBase.Run method. .NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.Threading.UseNetCoreTimer Controles se Timer instâncias tirar proveito dos aprimoramentos de desempenho para ambientes de grande escala.Controls whether Timer instances take advantage of performance improvements for high-scale environments. Se true, as melhorias de desempenho estão habilitadas; se false (o valor padrão), eles são desabilitados.If true, the performance improvements are enabled; if false (the default value), they are disabled. .NET Framework 4.8.NET Framework 4.8
Switch.System.Uri.
DontEnableStrictRFC3986ReservedCharacterSets
Determina se determinados caracteres codificados por porcentagem que, às vezes, eram decodificados agora são codificados consistentemente à esquerda.Determines whether certain percent-encoded characters that were sometimes decoded are now consistently left encoded. Se true, eles são decodificados; caso contrário, false.If true, they are decoded; otherwise, false. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Uri.
DontKeepUnicodeBidiFormattingCharacters
Determina a manipulação de caracteres de bidirecionais Unicode em URIs.Determines the handling of Unicode bidirectional characters in URIs. true para removê-los dos URIs; false preservar e porcentagem-codificá-los.true to strip them from URIs; false to preserve and percent-encode them. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Windows.Controls.Grid.
StarDefinitionsCanExceedAvailableSpace
Determina se o Windows Presentation Foundation se aplica um algoritmo antigo (true) ou um novo algoritmo (false) na alocação de espaço para *-colunas.Determines whether Windows Presentation Foundation applies an old algorithm (true) or a new algorithm (false) in allocating space to *-columns. Para obter mais informações, confira Mitigação: Alocação de espaço do controle de grade para colunas de estrela.For more information, see Mitigation: Grid Control's Space Allocation to Star-columns. .NET Framework 4.7.NET Framework 4.7
Switch.System.Windows.Controls.TabControl.
SelectionPropertiesCanLagBehindSelectionChangedEvent
Se um seletor ou uma guia de controle sempre atualiza o valor de sua propriedade de valor selecionado antes de acionar a seleção de controles de evento de alteração.Controls whether a selector or a tab control always updates the value of its selected value property before raising the selection changed event. .NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.Windows.Controls.Text.
UseAdornerForTextboxSelectionRendering
Determina se a renderização de não-adorno de seleção com base está disponível para o TextBox e PasswordBox controles para impedir que o texto obstruído (false), ou se o texto é renderizado apenas na camada de adorno (true).Determines whether non-Adorner based selection rendering is available for the TextBox and PasswordBox controls to prevent occluded text (false), or whether text is rendered only in the Adorner layer (true). .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Windows.Data.Binding.
IListIndexerHidesCustomIndexer
Controla se os indexadores de IList personalizados são usados incorretamente (false) ou corretamente (true), o System.Windows.Data.Binding classe.Controls whether custom IList indexers are used incorrectly (false) or correctly (true) by the System.Windows.Data.Binding class. .NET Framework 4.8.NET Framework 4.8
Switch.System.Windows.DoNotScaleForDpiChanges Determina se as alterações DPI ocorrerem em por sistema (um valor de false) ou com base em monitor (um valor de true).Determines whether DPI changes occur on a per-system (a value of false) or per-monitor basis (a value of true). .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.Windows.
DoNotUsePresentationDpiCapabilityTier2OrGreater
Controles se melhorias no dimensionamento dos controles em uma System.Windows.Interop.HwndHost quando o WPF é executado no modo de reconhecimento por monitor estão desabilitadas (true) ou habilitado (false).Controls whether improvements in sizing of controls in a System.Windows.Interop.HwndHost when WPF is run in per-monitor aware mode are disabled (true) or enabled (false). .NET Framework 4.8.NET Framework 4.8
Switch.System.Windows.Forms.
DomainUpDown.UseLegacyScrolling
Determina se o desenvolvedor precisa manipular especialmente o DomainUpDown.UpButton() ação quando o texto do controle está presente.Determines whether the developer needs to specially handle the DomainUpDown.UpButton() action when control text is present. true para lidar com o UpButton() ação; false para o DomainUpDown.UpButton() e DomainUpDown.DownButton() ações a serem corretamente em sincronia.true to handle the UpButton() action; false for the DomainUpDown.UpButton() and DomainUpDown.DownButton() actions to be properly in sync. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Windows.Forms.
DontSupportReentrantFilterMessage
Opte por não usar o código que permite que um personalizado IMessageFilter.PreFilterMessage implementação para filtrar mensagens com segurança sem gerar uma exceção quando o Application.FilterMessage método é chamado.Opts out of the code that allows a custom IMessageFilter.PreFilterMessage implementation to safely filter messages without throwing an exception when the Application.FilterMessage method is called. Para obter mais informações, confira Mitigação: Implementações personalizadas de IMessageFilter. PreFilterMessage.For more information, see Mitigation: Custom IMessageFilter.PreFilterMessage Implementations. .NET Framework 4.6.1.NET Framework 4.6.1
Switch.System.Windows.Forms.
UseLegacyContextMenuStripSourceControlValue
Determina se o ContextMenuStrip.SourceControl propriedade retorna o controle do código-fonte quando o usuário abre o menu de aninhado ToolStripMenuItem controle.Determines whether the ContextMenuStrip.SourceControl property returns the source control when the user opens the menu from a nested ToolStripMenuItem control. true para retornar null, o comportamento herdado; false para retornar o controle do código-fonte.true to return null, the legacy behavior; false to return the source control. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Windows.Forms.UseLegacyToolTipDisplay Controla se o suporte de invocação de dica de ferramenta está desabilitado (true) ou habilitado (false).Controls whether tooltip invocation support is disabled (true) or enabled (false). Habilitando o suporte de invocação de dica de ferramenta também requer recursos de acessibilidade herdados definidos pela Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2, e Switch.UseLegacyAccessibilityFeatures.3 todas ser desabilitada (definida como false).Enabling tooltip invocation support also requires legacy accessibility features defined by Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2, and Switch.UseLegacyAccessibilityFeatures.3 all be disabled (set to false). .NET Framework 4.8.NET Framework 4.8
Switch.System.Windows.Input.Stylus.
EnablePointerSupport
Determina se um recurso opcional WM_POINTER-pilha de toque/caneta com base está habilitado em aplicativos WPF.Determines whether an optional WM_POINTER-based touch/stylus stack is enabled in WPF applications. Para obter mais informações, confira Mitigação: Com base em ponteiro suporte a toque e canetaFor more information, see Mitigation: Pointer-based Touch and Stylus Support .NET Framework 4.7.NET Framework 4.7
Switch.System.Windows.Markup.
DoNotUseSha256ForMarkupCompilerChecksumAlgorithm
Determina se o algoritmo de hash padrão usado para as somas de verificação é SHA256 (false) ou SHA1 (true).Determines whether the default hash algorithm used for checksums is SHA256 (false) or SHA1 (true).
Em razão de problemas de colisão com SHA1, a Microsoft recomenda SHA256.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Windows.Media.ImageSourceConverter.
OverrideExceptionWithNullReferenceException
Controla se um herdado NullReferenceException será lançada em vez da exceção que indica mais especificamente a causa da exceção (como um DirectoryNotFoundException ou uma FileNotFoundException.Controls whether a legacy NullReferenceException is thrown instead of the exception that more specifically indicates the cause of the exception (such as a DirectoryNotFoundException or a FileNotFoundException. Ele destina para uso pelo código que dependa da identificação de NullReferenceException.It is intended for use by code that depends on handling the NullReferenceException. .NET Framework 4.7.NET Framework 4.7
Switch.System.Workflow.ComponentModel.
UseLegacyHashForXomlFileChecksum
Os controles se compilações de soma de verificação de hash dos arquivos XOML no projeto de fluxo de trabalho usam o algoritmo MD5 (true), ou se usar o algoritmo SHA256 introduzido como padrão no .NET Framework 4.8.Controls whether checksum hashing of XOML files in workflow project builds use the MD5 algorithm (true), or whether they use the SHA256 algorithm introduced as the default in .NET Framework 4.8.
Devido a problemas de colisão com MD5, a Microsoft recomenda SHA256.Due to collision problems with MD5, Microsoft recommends SHA256.
.NET Framework 4.8.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForSqlTrackingCacheKey
Controla se a soma de verificação de hash pelo SqlTrackingService usa o algoritmo MD5 (true) para cadeias de caracteres armazenados em cache, ou se ele usa o algoritmo SHA256 introduzido como padrão no .NET Framework 4.8.Controls whether checksum hashing by the SqlTrackingService uses the MD5 algorithm (true) for cached strings, or whether it uses the SHA256 algorithm introduced as the default in .NET Framework 4.8.
Devido a problemas de colisão com MD5, a Microsoft recomenda SHA256.Due to collision problems with MD5, Microsoft recommends SHA256.
.NET Framework 4.8.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForWorkflowDefinitionDispenserCacheKey
Controla se a soma de verificação de hash e o tempo de execução do fluxo de trabalho usa o algoritmo MD5 (true) para obter definições de fluxo de trabalho em cache, ou se ele usa o algoritmo SHA256 introduzido como padrão no .NET Framework 4.8.Controls whether checksum hashing by the Workflow Runtime uses the MD5 algorithm (true) for cached workflow definitions, or whether it uses the SHA256 algorithm introduced as the default in .NET Framework 4.8.
Devido a problemas de colisão com MD5, a Microsoft recomenda SHA256.Due to collision problems with MD5, Microsoft recommends SHA256.
.NET Framework 4.8.NET Framework 4.8
Switch.UseLegacyAccessibilityFeatures Controla se os recursos de acessibilidade disponíveis a partir do .NET Framework 4.7.1 é habilitada ou desabilitada.Controls whether accessibility features available starting with .NET Framework 4.7.1 are enabled or disabled. .NET Framework 4.7.1.NET Framework 4.7.1
Switch.UseLegacyAccessibilityFeatures.2 Os controles se recursos disponíveis no .NET Framework 4.7.2 de acessibilidade são habilitadas (false) ou desabilitado (true).Controls whether accessibility features available in .NET Framework 4.7.2 are enabled (false) or disabled (true). Se true, Switch.UseLegacyAccessibilityFeatures também deve ser true para habilitar os recursos de acessibilidade do .NET Framework 4.7.1.If true, Switch.UseLegacyAccessibilityFeatures must also be true to enable .NET Framework 4.7.1 accessibility features. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.UseLegacyAccessibilityFeatures.3 Os controles se os recursos de acessibilidade introduzido no .NET Framework 4.8 estão habilitados (false) ou desabilitado (true).Controls whether accessibility features introduced in .NET Framework 4.8 are enabled (false) or disabled (true). Se true, Switch.UseLegacyAccessibilityFeatures e Switch.UseLegacyAccessibilityFeatures.2 também deve ser true.If true, Switch.UseLegacyAccessibilityFeatures and Switch.UseLegacyAccessibilityFeatures.2 must also be true. .NET Framework 4.8.NET Framework 4.8
Switch.UseLegacyToolTipDisplay Controles se as dicas de ferramenta são exibidas quando um usuário passa o cursor do mouse sobre um controle WPF (true), ou se eles são exibidos em foco do teclado e por meio da tecla de atalho de teclado (false, o comportamento padrão).Controls whether tooltips are displayed when a user hovers the mouse cursor over a WPF control (true), or whether they are displayed both on keyboard focus and via keyboard shortcut key (false, the default behavior). Para aplicativos em execução no .NET Framework 4.8 mas destinados a versões anteriores do .NET Framework, permitindo que ambos o foco de teclado e suporte a chaves atalho requer que Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2, e Switch.UseLegacyAccessibilityFeatures.3 todas definidas para false.For applications running on .NET Framework 4.8 but targeting previous versions of the .NET Framework, enabling both keyboard focus and shortcut key support requires that Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2, and Switch.UseLegacyAccessibilityFeatures.3 all be set to false. .NET Framework 4.8.NET Framework 4.8
System.Xml.

IgnoreEmptyKeySequences
Controla se as sequências de chaves vazias em chaves compostas são ignoradas pela validação de esquema XSD.Controls whether empty key sequences in compound keys are ignored by XSD schema validation. Para obter mais informações, confira Mitigação: Validação de esquema XML.For more information, see Mitigation: XML Schema Validation. .NET Framework 4.6.NET Framework 4.6

Observação

Em vez de adicionar um AppContextSwitchOverrides elemento para um arquivo de configuração de aplicativo, você também pode definir as opções programaticamente, chamando o static (em c#) ou Shared (no Visual Basic) AppContext.SetSwitch método.Instead of adding an AppContextSwitchOverrides element to an application configuration file, you can also set the switches programmatically by calling the static (in C#) or Shared (in Visual Basic) AppContext.SetSwitch method.

Os desenvolvedores de biblioteca também podem definir opções personalizadas para permitir que os chamadores recusar alterada funcionalidade introduzida em versões posteriores de suas bibliotecas.Library developers can also define custom switches to allow callers to opt out of changed functionality introduced in later versions of their libraries. Para obter mais informações, consulte a classe AppContext.For more information, see the AppContext class.

Comutadores nos aplicativos ASP.NETSwitches in ASP.NET applications

Você pode configurar um aplicativo ASP.NET para usar configurações de compatibilidade com a adição de um <Adicionar > elemento para o <appSettings > seção do arquivo Web. config.You can configure an ASP.NET application to use compatibility settings by adding an <Add> element to the <appSettings> section of the web.config file.

O exemplo a seguir usa o <add> elemento para adicionar duas configurações para o <appSettings> seção de um arquivo Web. config:The following example uses the <add> element to add two settings to the <appSettings> section of a web.config file:

<appSettings>
  <add key="AppContext.SetSwitch:Switch.System.Globalization.NoAsyncCurrentCulture" value="true" />
  <add key="AppContext.SetSwitch:Switch.System.Uri.DontEnableStrictRFC3986ReservedCharacterSets" value="true" />
</appSettings>

ExemploExample

O exemplo a seguir usa o AppContextSwitchOverrides elemento para definir uma opção de compatibilidade de aplicativo único, Switch.System.Globalization.NoAsyncCurrentCulture, que impede a cultura que fluem entre threads em chamadas de método assíncrono.The following example uses the AppContextSwitchOverrides element to define a single application compatibility switch, Switch.System.Globalization.NoAsyncCurrentCulture, that prevents culture from flowing across threads in asynchronous method calls.

<configuration>  
   <runtime>  
      <AppContextSwitchOverrides value="Switch.System.Globalization.NoAsyncCurrentCulture=true" />  
   </runtime>  
</configuration>  

O exemplo a seguir usa o AppContextSwitchOverrides elemento para definir duas opções de compatibilidade de aplicativo, Switch.System.Globalization.NoAsyncCurrentCulture e Switch.System.IO.BlockLongPaths.The following example uses the AppContextSwitchOverrides element to define two application compatibility switches, Switch.System.Globalization.NoAsyncCurrentCulture and Switch.System.IO.BlockLongPaths. Observe que um ponto e vírgula separa os dois pares de nome/valor.Note that a semicolon separates the two name/value pairs.

<configuration>  
    <runtime>  
       <AppContextSwitchOverrides   
          value="Switch.System.Globalization.NoAsyncCurrentCulture=true;Switch.System.IO.BlockLongPaths=true" />  
    </runtime>  
</configuration>  

Consulte tambémSee also