Teilen über


<AppContextSwitchOverrides>-Element

Definiert mindestens eine Option, die von der AppContext-Klasse für die Bereitstellung eines Mechanismus zum Deaktivieren neuer Funktionen verwendet wird.

<configuration>
  <runtime>
    <AppContextSwitchOverrides>

Syntax

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

Attribute und Elemente

In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.

Attribute

Attribut BESCHREIBUNG
value Erforderlich. Definiert mindestens einen Schalternamen und die zugehörigen booleschen Werte.

value-Attribut

Wert BESCHREIBUNG
„name=value“ Ein vordefinierter Schaltername zusammen mit seinem Wert (true oder false). Mehrere Schaltername/-wert-Paare werden durch Semikolons („;“) getrennt. Eine Liste der vordefinierten Schalternamen, die vom .NET Framework unterstützt werden, finden Sie im Abschnitt „Anmerkungen“.

Untergeordnete Elemente

Keine

Übergeordnete Elemente

Element BESCHREIBUNG
configuration Das Stammelement in jeder von den Common Language Runtime- und .NET Framework-Anwendungen verwendeten Konfigurationsdatei.
runtime Enthält Informationen über Laufzeitinitialisierungsoptionen.

Bemerkungen

Ab .NET Framework 4.6 ermöglicht das <AppContextSwitchOverrides>-Element in einer Konfigurationsdatei Aufrufenden einer API, zu bestimmen, ob ihre App neue Funktionen nutzen oder die Kompatibilität mit früheren Versionen einer Bibliothek beibehalten kann. Wenn sich beispielsweise das Verhalten einer API zwischen zwei Versionen einer Bibliothek geändert hat, ermöglicht das <AppContextSwitchOverrides>-Element Aufrufenden dieser API, das neue Verhalten für Versionen der Bibliothek zu deaktivieren, die die neue Funktionalität unterstützen. Für Apps, die APIs im .NET Framework aufrufen, kann das <AppContextSwitchOverrides> Element auch Aufrufenden erlauben, deren Apps auf eine frühere Version von .NET Framework abzielen, sich für neue Funktionen zu entscheiden, wenn ihre App in einer Version von .NET Framework ausgeführt wird, die diese Funktionalität enthält.

Das value-Attribut des <AppContextSwitchOverrides>-Elements besteht aus einer einzelnen Zeichenfolge, die aus mindestens einem bzw. mehreren durch Semikolons getrennten Name-Wert-Paaren besteht. Jeder Name identifiziert einen Kompatibilitätsschalter, und der entsprechende Wert ist ein boolescher Wert (true oder false), der angibt, ob der Schalter festgelegt ist. Standardmäßig ist der Schalter false, und Bibliotheken stellen die neue Funktionalität bereit. Sie stellen die vorherige Funktionalität nur bereit, wenn der Schalter festgelegt ist (d. h. sein Wert ist true). Dadurch können Bibliotheken neues Verhalten für eine vorhandene API bereitstellen, während Aufrufer, die auf das vorherige Verhalten angewiesen sind, die neue Funktionalität deaktivieren können.

.NET Framework unterstützt die folgenden Schalter:

Schaltername BESCHREIBUNG Eingeführt
Switch.MS.Internal.
DoNotApplyLayoutRoundingToMarginsAndBorderThickness
Steuert, ob Windows Presentation Foundation einen älteren Algorithmus für das Steuerelementlayout verwendet. Weitere Informationen finden Sie unter Entschärfung: WPF-Layout. .NET Framework 4.6
Switch.MS.Internal.
UseSha1AsDefaultHashAlgorithmForDigitalSignatures
Steuert, ob der Standardalgorithmus, der zum Signieren von Teilen eines Pakets von PackageDigitalSignatureManager verwendet wird, SHA1 oder SHA256 ist.
Microsoft empfiehlt aufgrund der Konflikte mit SHA1 SHA256.
.NET Framework 4.7.1
Switch.System.Activities.
UseMD5CryptoServiceProviderForWFDebugger
Bei Festlegung auf false ist das Debuggen von XAML-basierten Workflowprojekten mit Visual Studio möglich, wenn FIPS aktiviert ist. Ohne dies wird in Aufrufen von Methoden in der System.Activities-Assembly NullReferenceException ausgelöst. .NET Framework 4.7
Switch.System.Activities.
UseMD5ForWFDebugger
Steuert, ob die Prüfsumme für eine Workflowinstanz im Debugger MD5 oder SHA1 verwendet. .NET Framework 4.7
Switch.System.Activities.
UseSHA1HashForDebuggerSymbols
Steuert, ob Workflowprüfsummen-Hashing den SHA1-Algorithmus verwendet, der in .NET Framework 4.7 (true) als Standard eingeführt wurde, oder ob der SHA256-Standardalgorithmus verwendet wird, der in .NET Framework 4.8 (false) als Standard eingeführt wurde.
Microsoft empfiehlt aufgrund der Konflikte mit SHA1 SHA256.
.NET Framework 4.8
Switch.System.Diagnostics.
IgnorePortablePDBsInStackTraces
Steuert, ob Stapelüberwachungen, die bei der Verwendung portabler PDBs abgerufen werden, Quelldatei- und Zeileninformationen enthalten können. false, um Quelldatei- und Zeileninformationen einzuschließen; andernfalls true. .NET Framework 4.7.2
Switch.System.Drawing.
DontSupportPngFramesInIcons
Steuert, ob die Icon.ToBitmap-Methode eine Ausnahme auslöst, wenn ein Icon-Objekt über PNG-Frames verfügt. Weitere Informationen finden Sie unter Entschärfung: PNG-Bilder in Symbolobjekten. .NET Framework 4.6
Switch.System.Drawing.Text.
DoNotRemoveGdiFontsResourcesFromFontCollection
Bestimmt, ob System.Drawing.Text.PrivateFontCollection-Objekte ordnungsgemäß verworfen werden, wenn sie der Auflistung durch die PrivateFontCollection.AddFontFile(String)-Methode hinzugefügt werden. true, um das Legacyverhalten beizubehalten; false, um alle privaten Schriftartobjekte zu verwerfen. .NET Framework 4.7.2
Switch.System.Drawing.Printing.
OptimizePrintPreview
Steuert, ob die Leistung von PrintPreviewDialog für Netzwerkdrucker optimiert ist. Weitere Informationen finden Sie unter Übersicht über das PrintPreviewDialog-Steuerelement. .NET Framework 4.6
Switch.System.Globalization.EnforceJapaneseEraYearRanges Steuert, ob jahresweite Überprüfungen für japanische Kalenderzeiträume erzwungen werden. true, um Jahresbereichsüberprüfungen zu erzwingen, und false, um sie zu deaktivieren (Standardverhalten). Weitere Informationen finden Sie unter Arbeiten mit Kalendern. .NET Framework 4.6
Switch.System.Globalization.EnforceLegacyJapaneseDateParsing Steuert, ob bei Analysevorgängen nur „1“ als erstes Jahr eines japanischen Kalenderzeitraums erkannt wird. true, um nur „1“ zu erkennen; false, um entweder „1“ oder Gannen (Standardverhalten) zu erkennen. Weitere Informationen finden Sie unter Arbeiten mit Kalendern. .NET Framework 4.6
Switch.System.Globalization.FormatJapaneseFirstYearAsANumber Steuert, ob das erste Jahr eines japanischen Kalenderzeitraums in Formatierungsvorgängen als „1“ oder Gannen dargestellt wird. true, um das erste Jahr des Zeitraums mit „1“ zu formatieren; false, um es als Gannen zu formatieren (Standardverhalten). Weitere Informationen finden Sie unter Arbeiten mit Kalendern. .NET Framework 4.6
Switch.System.Globalization.NoAsyncCurrentCulture Steuert, ob asynchrone Vorgänge nicht aus dem Kontext des aufrufenden Threads fließen. Weitere Informationen finden Sie unter CurrentCulture und CurrentUICulture werden über mehrere Aufgaben übertragen. .NET Framework 4.6
Switch.System.IdentityModel.
DisableMultipleDNSEntriesInSANCertificate
Steuert, ob die X509CertificateClaimSet.FindClaims-Methode versucht, den Anspruchstyp nur mit dem letzten DNS-Eintrag abzugleichen. Weitere Informationen finden Sie unter Entschärfung: X509CertificateClaimSet.FindClaims-Methode. .NET Framework 4.6.1
Switch.System.IdentityModel.
EnableCachedEmptyDefaultAuthorizationContext
Steuert, ob AuthorizationContext.Empty ein veränderliches Objekt zurückgeben darf. .NET Framework 4.6
Switch.System.IO.BlockLongPaths Steuert, ob Pfade, die länger als MAX_PATH (260 Zeichen) sind, eine PathTooLongExceptionauslösen. Weitere Informationen finden Sie unter Unterstützung für lange Pfade. .NET Framework 4.6.2
Switch.System.IO.Compression.
DoNotUseNativeZipLibraryForDecompression
Steuert, ob native Betriebssystemroutinen für die Dekomprimierung von der DeflateStream-Klasse verwendet werden. false zur Verwendung nativer APIs; true, um die DeflateStream-Implementierung zu verwenden. .NET Framework 4.7.2
Switch.System.IO.Compression.ZipFile.
UseBackslash
Verwendet den umgekehrten Schrägstrich („\“) anstelle des Schrägstrichs („/“) als Pfadtrennzeichen in der ZipArchiveEntry.FullName-Eigenschaft. Weitere Informationen finden Sie unter Entschärfung: Pfadtrennzeichen für ZipArchiveEntry.FullName. .NET Framework 4.6.1
Switch.System.IO.Ports.
DoNotCatchSerialStreamThreadExceptions
Steuert, ob Betriebssystemausnahmen, die in Hintergrundthreads ausgelöst werden, die mit SerialPort-Streams erstellt wurden, den Prozess beenden. .NET Framework 4.7.1
Switch.System.IO.
UseLegacyPathHandling
Steuert, ob die Normalisierung von Legacypfaden verwendet wird, und URI-Pfade von den Methoden Path.GetDirectoryName und Path.GetPathRoot unterstützt werden. Weitere Informationen finden Sie unter Entschärfung: Pfadnormalisierung und Entschärfung: Überprüfen von Pfaden auf Doppelpunkte. .NET Framework 4.6.2
Switch.System.
MemberDescriptorEqualsReturnsFalseIfEquivalent
Steuert, ob ein Gleichheitstest die MemberDescriptor.Category-Eigenschaft eines Objekts mit der MemberDescriptor.Description-Eigenschaft des zweiten Objekts vergleicht. Weitere Informationen finden Sie unter Falsche Implementierung von MemberDescriptor.Equals. .NET Framework 4.6.2
Switch.System.Net.
DontCheckCertificateEKUs
Deaktiviert die Überprüfung des Objektbezeichners (Object Identifier, OID) des Zertifikats „Erweiterte Schlüsselverwendung“ (Enhanced Key Usage, EKU). Eine EKU-Erweiterung ist eine Sammlung von OIDs, die Anwendungen kennzeichnen, die den Schlüssel verwenden. .NET Framework 4.6
Switch.System.Net.
DontEnableSchSendAuxRecord
Deaktiviert die Entschärfung von TLS1.0 Browser Exploit Against SSL/TLS (BEAST) durch Deaktivieren der Nutzung von SCH_SEND_AUX_RECORD. .NET Framework 4.6
Switch.System.Net.
DontEnableSchUseStrongCrypto
Steuert, ob die Klassen System.Net.ServicePointManager und System.Net.Security.SslStream das SSL 3.0-Protokoll verwenden können. Weitere Informationen finden Sie unter Entschärfung: TLS-Protokolle. .NET Framework 4.6
Switch.System.Net.
DontEnableSystemDefaultTlsVersions
Deaktiviert die Möglichkeit, SystemDefault-TLS-Versionen auf einen Standardwert von Tls12, Tls11 und Tls zurückzusetzen. .NET Framework 4.7
Switch.System.Net.
DontEnableTlsAlerts
Deaktiviert serverseitige SslStream-TLS-Warnungen. .NET Framework 4.7
Switch.System.Runtime.InteropServices.
DoNotMarshalOutByrefSafeArrayOnInvoke
Steuert, ob ByRef SafeArray-Parameter in COM-Interopereignissen zurück in nativen Code (false) gemarshallt werden, oder ob das Marshalling zurück zum nativen Code deaktiviert ist (true). .NET Framework 4.8
Switch.System.Runtime.Serialization.
DoNotUseECMAScriptV6EscapeControlCharacter
Steuert, ob DataContractJsonSerializer einige Steuerelementzeichen auf den ECMAScript V6- und V8-Standards basierend serialisiert. Weitere Informationen finden Sie unter Entschärfung: Serialisierung von Steuerzeichen mit dem DataContractJsonSerializer .NET Framework 4.7
Switch.System.Runtime.Serialization.
DoNotUseTimeZoneInfo
Steuert, ob DataContractJsonSerializer mehrere Anpassungen oder nur eine einzelne Anpassung für eine Zeitzone unterstützt. Wenn true, wird der TimeZoneInfo-Typ verwendet, um Datums- und Uhrzeitdaten zu serialisieren und zu deserialisieren. Andernfalls wird der TimeZone-Typ verwendet, der nicht mehrere Anpassungsregeln unterstützt. .NET Framework 4.6.2
Switch.System.Runtime.Serialization.UseNewMaxArraySize Steuert, ob System.Runtime.Serialization.ObjectManager während der Serialisierung und Deserialisierung von Objekten eine größere Arraygröße verwendet. Legen Sie diesen Schalter auf true fest, um die Leistung der Serialisierung und Deserialisierung großer Objektgraphen nach Typen wie BinaryFormatter zu verbessern. .NET Framework 4.7.2
Switch.System.Security.ClaimsIdentity.
SetActorAsReferenceWhenCopyingClaimsIdentity
Steuert, ob der ClaimsIdentity(IIdentity)-Konstruktor die Eigenschaft des neuen Objekts ClaimsIdentity.Actor mit einem vorhandenen Objektverweis festlegt. Weitere Informationen finden Sie unter Entschärfung: ClaimsIdentity-Konstruktor. .NET Framework 4.6.2
Switch.System.Security.Cryptography.
AesCryptoServiceProvider.DontCorrectlyResetDecryptor
Steuert, ob der Versuch, eine AesCryptoServiceProvider-Entschlüsselungsmethode wiederzuverwenden, eine CryptographicException auslöst. Weitere Informationen finden Sie unter Die AesCryptoServiceProvider-Entschlüsselungsmethode stellt eine wiederverwendbare Transformation bereit. .NET Framework 4.6.2
Switch.System.Security.Cryptography.
DoNotAddrOfCspParentWindowHandle
Steuert, ob der Wert der CspParameters.ParentWindowHandle-Eigenschaft ein IntPtr ist, der den Speicherort eines Fensterhandles darstellt, oder ob es sich um ein Fensterhandle (ein HWND) handelt. Weitere Informationen finden Sie unter Entschärfung: CspParameters.ParentWindowHandle erwartet ein HWND. .NET Framework 4.7
Switch.System.Security.Cryptography.
UseLegacyFipsThrow
Steuert, ob die Verwendung von verwalteten Kryptografieklassen im FIPS-Modus eine CryptographicException (true) auslöst, oder auf der Implementierung von Systembibliotheken (false) basiert. .NET Framework 4.8
Switch.System.Security.Cryptography.Pkcs.
UseInsecureHashAlgorithms
Bestimmt, ob der Standardwert für einige SignedCMS-Vorgänge SHA1 oder SHA256 ist.
Microsoft empfiehlt aufgrund der Konflikte mit SHA1 SHA256.
.NET Framework 4.7.1
Switch.System.Security.Cryptography.X509Certificates.
ECDsaCertificateExtensions.UseLegacyPublicKeyReader
Steuert, ob die ECDsaCertificateExtensions.GetECDsaPublicKey-Methode alle benannten Kurven ordnungsgemäß verarbeitet, die vom Betriebssystem (false) unterstützt werden, oder ob das Legacyverhalten wiederhergestellt wird. .NET Framework 4.8
Switch.System.Security.Cryptography.Xml.
UseInsecureHashAlgorithms
Bestimmt, ob der Standardwert für einige SignedXML-Vorgänge SHA1 oder SHA256 ist.
Microsoft empfiehlt aufgrund der Konflikte mit SHA1 SHA256.
.NET Framework 4.7.1
Switch.System.ServiceModel.
AllowUnsignedToHeader
Bestimmt, ob der TransportWithMessageCredential-Sicherheitsmodus Nachrichten mit einem nicht signierten „to“-Header zulässt. Dies ist ein Aktivierungsfeature. Weitere Informationen finden Sie unter Änderungen der Runtime in .NET Framework Version 4.6.1. .NET Framework 4.6.1
Switch.System.ServiceModel.
DisableAddressHeaderCollectionValidation>
Steuert, ob der AddressHeaderCollection(IEnumerable<AddressHeader>)-Konstruktor eine ArgumentException auslöst, wenn eines der Elemente den Wert null aufweist. .NET Framework 4.7.1
Switch.System.IdentityModel.
DisableCngCertificates
Bestimmt, ob der Versuch, X509-Zertifikate mit einem CSG-Schlüsselspeicheranbieter zu verwenden, eine Ausnahme auslöst. Weitere Informationen finden Sie unter Unterstützung der WCF-Transportsicherheit für Zertifikate, die mithilfe der CNG gespeichert wurden. .NET Framework 4.6.1
Switch.System.ServiceModel.
DisableExplicitConnectionCloseHeader
Wenn Sie den HTTP-Transport mit einem selbstgehosteten Dienst verwenden, bewirkt das Festlegen dieses Werts auf true, dass WCF eine Anwendung ignoriert, die den Connection: close-Header den Antwortheadern für eine Anforderung hinzufügt. Wenn Sie diesen Wert auf false festlegen, kann der Connection: close-Header den Antwortheadern hinzugefügt werden, was zum Schließen des Anforderungssockets führt, nachdem eine Antwort gesendet wurde. .NET Framework 4.6
Switch.System.ServiceModel.
DisableOperationContextAsyncFlow
Behandelt Deadlocks, die daraus resultieren, dass Instanzen eines eintrittsinvarianten Diensts auf jeweils einen Ausführungsthread beschränkt werden. .NET Framework 4.6.2
Switch.System.ServiceModel.
DisableUsingServicePointManagerSecurityProtocols
Bestimmt zusammen mit Switch.System.Net.DontEnableSchUseStrongCrypto, ob die WCF-Nachrichtensicherheit TLS 1.1 und TLS 1.2 verwendet. .NET Framework 4.7
Switch.System.ServiceModel.
DontEnableSystemDefaultTlsVersions
Ein Wert von false legt die Standardkonfiguration fest, sodass das Protokoll vom Betriebssystem ausgewählt werden kann. Ein Wert von true legt die Standardeinstellung auf das höchste verfügbare Protokoll fest. (Auch im Servicing Branch früherer Frameworkversionen verfügbar) .NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InMsmqEncryptionAlgorithm
Bestimmt, ob der Standardalgorithmus für die Nachrichtensignatur für MSMQ-Nachrichten in WCF SHA1 oder SHA256 ist.
Microsoft empfiehlt aufgrund der Konflikte mit SHA1 SHA256.
.NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InPipeConnectionGetHashAlgorithm
Steuert, ob WCF einen SHA1- oder SHA256-Hash verwendet, um zufällige Namen für Named Pipes zu generieren.
Microsoft empfiehlt aufgrund der Konflikte mit SHA1 SHA256.
.NET Framework 4.7.1
Switch.System.ServiceModel.Internals
IncludeNullExceptionMessageInETWTrace
Steuert, ob eine NullReferenceException ausgelöst wird, wenn die Ausnahmemeldung NULL ist. .NET Framework 4.7
Switch.System.ServiceProcess.
DontThrowExceptionsOnStart
Steuert, ob beim Starten des Diensts ausgelöste Ausnahmen an den Aufrufer der ServiceBase.Run-Methode weitergegeben werden. .NET Framework 4.7.1
Switch.System.Threading.UseNetCoreTimer Steuert, ob Timer-Instanzen Leistungsverbesserungen für Umgebungen mit hoher Skalierung nutzen. Wenn true, sind die Leistungsverbesserungen aktiviert, wenn false (der Standardwert), sind sie deaktiviert. .NET Framework 4.8
Switch.System.Uri.
DontEnableStrictRFC3986ReservedCharacterSets
Bestimmt, ob bestimmte prozentcodierte Zeichen, die manchmal decodiert wurden, jetzt konsistent linkscodiert werden. Wenn true, werden sie decodiert, andernfalls false. .NET Framework 4.7.2
Switch.System.Uri.
DontKeepUnicodeBidiFormattingCharacters
Bestimmt die Behandlung bidirektionaler Unicode-Zeichen in URIs. true , um sie aus URIs zu entfernen; false, um sie beizubehalten und die Prozentcodierung für sie durchzuführen. .NET Framework 4.7.2
Switch.System.Windows.Controls.Grid.
StarDefinitionsCanExceedAvailableSpace
Bestimmt, ob Windows Presentation Foundation einen alten Algorithmus (true) oder einen neuen Algorithmus (false) bei der Zuweisung von Speicherplatz zu *-Spalten anwendet. Weitere Informationen finden Sie unter Entschärfung: Platzzuweisung an mit Stern gekennzeichnete Spalten durch das Rastersteuerelement. .NET Framework 4.7
Switch.System.Windows.Controls.TabControl.
SelectionPropertiesCanLagBehindSelectionChangedEvent
Steuert, ob ein Selektor oder ein Registerkartensteuerelement immer den Wert seiner ausgewählten Werteigenschaft aktualisiert, bevor das Auswahländerungsereignis ausgelöst wird. .NET Framework 4.7.1
Switch.System.Windows.Controls.Text.
UseAdornerForTextboxSelectionRendering
Bestimmt, ob das nicht Adorner-basierte Auswahlrendering für die Steuerelemente TextBox und PasswordBox verfügbar ist, um verstopften Text zu verhindern (false), oder ob Text nur in der Adorner-Ebene gerendert wird (true). .NET Framework 4.7.2
Switch.System.Windows.Data.Binding.
IListIndexerHidesCustomIndexer
Steuert, ob benutzerdefinierte IList-Indexer von der System.Windows.Data.Binding-Klasse falsch (true) oder ordnungsgemäß (false) verwendet werden. .NET Framework 4.8
Switch.System.Windows.DoNotScaleForDpiChanges Bestimmt, ob DPI-Änderungen pro System (ein Wert von false) oder pro Monitor (ein Wert von true) auftreten. .NET Framework 4.6.2
Switch.System.Windows.
DoNotUsePresentationDpiCapabilityTier2OrGreater
Steuert, ob Verbesserungen bei der Größenanpassung von Steuerelementen in einem System.Windows.Interop.HwndHost deaktiviert (true) oder aktiviert (false) sind, wenn WPF im „Pro Monitor“-Modus ausgeführt wird. .NET Framework 4.8
Switch.System.Windows.Forms.
DisconnectUiaProvidersOnWmDestroy
Steuert, ob Anbieter getrennt werden, wenn das entsprechende Steuerungsfenster zerstört wird (true) oder nicht (false). Diese Option bietet eine Opt-In zu einem Leistungskorrektur, um einen Verlust von IRawElementProviderSimple Objekten zu beheben. .NET Framework 4.8
Switch.System.Windows.Forms.
DomainUpDown.UseLegacyScrolling
Bestimmt, ob der Entwickler die DomainUpDown.UpButton()-Aktion speziell behandeln muss, wenn der Steuerelementtext vorhanden ist. true, um die UpButton()-Aktion zu behandeln; false, damit die DomainUpDown.UpButton()- und DomainUpDown.DownButton()-Aktionen ordnungsgemäß synchronisiert werden. .NET Framework 4.7.2
Switch.System.Windows.Forms.
DontSupportReentrantFilterMessage
Deaktiviert den Code, der einer benutzerdefinierten IMessageFilter.PreFilterMessage-Implementierung ermöglicht, Nachrichten sicher zu filtern, ohne eine Ausnahme auszulösen, wenn die Application.FilterMessage-Methode aufgerufen wird. Weitere Informationen finden Sie unter Entschärfung: Benutzerdefinierte IMessageFilter.PreFilterMessage-Implementierungen. .NET Framework 4.6.1
Switch.System.Windows.Forms.
UseLegacyContextMenuStripSourceControlValue
Bestimmt, ob die ContextMenuStrip.SourceControl-Eigenschaft die Quellcodeverwaltung zurückgibt, wenn der Benutzer das Menü über ein geschachteltes ToolStripMenuItem-Steuerelement öffnet. true, um null zurückzugeben, das Legacyverhalten; false, um die Quellcodeverwaltung zurückzugeben. .NET Framework 4.7.2
Switch.System.Windows.Forms.UseLegacyToolTipDisplay Steuert, ob die Unterstützung für den QuickInfo-Aufruf deaktiviert (true) oder aktiviert ist (false). Zum Aktivieren der QuickInfo-Aufrufunterstützung müssen auch ältere Barrierefreiheitsfeatures, die von Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2 und Switch.UseLegacyAccessibilityFeatures.3 definiert sind, alle deaktiviert (auf false festgelegt) werden. .NET Framework 4.8
Switch.System.Windows.Input.Stylus.
EnablePointerSupport
Bestimmt, ob in WPF-Anwendungen ein optionaler Touch-/Eingabestiftstapel auf WM_POINTER-Basis aktiviert ist. Weitere Informationen finden Sie unter Entschärfung: Zeigerbasierte Touch- und Stiftunterstützung. .NET Framework 4.7
Switch.System.Windows.Markup.
DoNotUseSha256ForMarkupCompilerChecksumAlgorithm
Bestimmt, ob für Prüfsummen der Standardhashalgorithmus SHA256 (false) oder SHA1 (true) verwendet wird.
Microsoft empfiehlt aufgrund der Konflikte mit SHA1 SHA256.
.NET Framework 4.7.2
Switch.System.Windows.Media.ImageSourceConverter.
OverrideExceptionWithNullReferenceException
Steuert, ob anstelle der Ausnahme eine ältere NullReferenceException ausgelöst wird, die die Ursache der Ausnahme genauer angibt (z. B. eine DirectoryNotFoundException oder FileNotFoundException). Dies ist für die Verwendung durch Code vorgesehen, der von der Behandlung der NullReferenceException abhängt. .NET Framework 4.7
Switch.System.Workflow.ComponentModel.
UseLegacyHashForXomlFileChecksum
Steuert, ob das Prüfsummenhashing von XOML-Dateien in Workflowprojektbuilds den MD5-Algorithmus (true) verwendet, oder ob der in .NET Framework 4.8 als Standard eingeführte SHA256-Algorithmus verwendet wird.
Microsoft empfiehlt SHA256 aufgrund der Konflikte mit MD5.
.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForSqlTrackingCacheKey
Steuert, ob das Prüfsummenhashing von SqlTrackingService den MD5-Algorithmus (true) für zwischengespeicherte Zeichenfolgen verwendet, oder ob der in .NET Framework 4.8 als Standard eingeführte SHA256-Algorithmus verwendet wird.
Microsoft empfiehlt SHA256 aufgrund der Konflikte mit MD5.
.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForWorkflowDefinitionDispenserCacheKey
Steuert, ob das Prüfsummenhashing der Workflowruntime den MD5-Algorithmus (true) für zwischengespeicherte Workflowdefinitionen verwendet, oder ob der in .NET Framework 4.8 als Standard eingeführte SHA256-Algorithmus verwendet wird.
Microsoft empfiehlt SHA256 aufgrund der Konflikte mit MD5.
.NET Framework 4.8
Switch.UseLegacyAccessibilityFeatures Steuert, ob ab .NET Framework 4.7.1 verfügbare Barrierefreiheitsfeatures aktiviert oder deaktiviert sind. .NET Framework 4.7.1
Switch.UseLegacyAccessibilityFeatures.2 Steuert, ob in .NET Framework 4.7.2 verfügbare Barrierefreiheitsfeatures aktiviert (false) oder deaktiviert (true) sind. Wenn true, muss Switch.UseLegacyAccessibilityFeatures auch true sein, um Barrierefreiheitsfeatures von .NET Framework 4.7.1 zu aktivieren. .NET Framework 4.7.2
Switch.UseLegacyAccessibilityFeatures.3 Steuert, ob in .NET Framework 4.8 eingeführte Barrierefreiheitsfeatures aktiviert (false) oder deaktiviert (true) sind. Wenn true, müssen Switch.UseLegacyAccessibilityFeatures und Switch.UseLegacyAccessibilityFeatures.2 ebenfalls true sein. .NET Framework 4.8
Switch.UseLegacyToolTipDisplay Steuert, ob QuickInfos angezeigt werden, wenn Benutzer*innen den Mauszeiger über ein WPF-Steuerelement bewegen (true), oder ob sie sowohl im Tastaturfokus als auch über die Tastenkombination (false, Standardverhalten) angezeigt werden. Für Anwendungen, die unter .NET Framework 4.8 ausgeführt werden, aber auf frühere Versionen von .NET Framework ausgerichtet sind, erfordert die Aktivierung von Tastaturfokus und Tastenkombinationsunterstützung, dass Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2 und Switch.UseLegacyAccessibilityFeatures.3 alle auf false festgelegt sind. .NET Framework 4.8
Switch.System.Xml.
IgnoreEmptyKeySequences
Steuert, ob leere Schlüsselsequenzen in zusammengesetzten Schlüsseln von der XSD-Schemaüberprüfung ignoriert werden. Weitere Informationen finden Sie unter Entschärfung: XML-Schemavalidierung. .NET Framework 4.6

Hinweis

Anstatt einer Anwendungskonfigurationsdatei ein AppContextSwitchOverrides-Element hinzuzufügen, können Sie die Schalter auch programmgesteuert festlegen, indem Sie die AppContext.SetSwitch-Methode aufrufen.

Bibliotheksentwickler können auch benutzerdefinierte Schalter definieren, damit Aufrufer die in späteren Versionen ihrer Bibliotheken eingeführten geänderten Funktionen deaktivieren können. Weitere Informationen finden Sie in den Ausführungen zur AppContext-Klasse.

Schalter in ASP.NET-Apps

Sie können eine ASP.NET-Anwendung für die Verwendung von Kompatibilitätseinstellungen konfigurieren, indem Sie dem Abschnitt <appSettings> der web.config-Datei ein <Add>-Element hinzufügen.

Im folgenden Beispiel wird das <add>-Element verwendet, um dem <appSettings>-Abschnitt einer web.config-Datei zwei Einstellungen hinzuzufügen:

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

Beispiel

Im folgenden Beispiel wird das AppContextSwitchOverrides-Element verwendet, um einen einzelnen Anwendungskompatibilitätsschalter (Switch.System.Globalization.NoAsyncCurrentCulture) zu definieren, der einen threadsübergreifenden Kulturfluss in asynchronen Methodenaufrufen verhindert.

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

Im folgenden Beispiel wird das AppContextSwitchOverrides-Element verwendet, um die beiden Anwendungskompatibilitätsschalter Switch.System.Globalization.NoAsyncCurrentCulture und Switch.System.IO.BlockLongPaths zu definieren. Ein Semikolon trennt die beiden Name-Wert-Paare.

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

Siehe auch