<AppContextSwitchOverrides> 要素

AppContext クラスで使用される、新機能に対するオプトアウト メカニズムを指定するスイッチを 1 つまたは複数定義します。

<configuration>
  <runtime>
    <AppContextSwitchOverrides>

構文

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

属性および要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性 説明
value 必須の属性です。

1 つ以上のスイッチ名とそれに関連付けられたブール値を定義します。

value 属性

[値] 説明
"name=value" 定義済みのスイッチ名とその値 (true または false)。 複数のスイッチ名と値のペアを指定する場合は、セミコロン (";") で区切ります。 .NET Framework でサポートされている定義済みスイッチ名の一覧については、「解説」セクションを参照してください。

子要素

なし。

親要素

要素 説明
configuration 共通言語ランタイムおよび .NET Framework アプリケーションで使用されるすべての構成ファイルのルート要素です。
runtime ランタイム初期化オプションに関する情報を含んでいます。

解説

.NET Framework 4.6 以降では、構成ファイルの <AppContextSwitchOverrides> 要素を使用すると、API の呼び出し元でアプリが新しい機能を利用できるか、ライブラリの以前のバージョンとの互換性を維持するかを決定できます。 たとえば、API の動作がライブラリの 2 つのバージョン間で変更されている場合、<AppContextSwitchOverrides> 要素を使用すると、その API の呼び出し元では、新しい機能をサポートするライブラリのバージョンで新しい動作を無効にすることができます。 .NET Framework で API を呼び出すアプリでは、アプリがその機能を含むバージョンの .NET Framework で実行されている場合に、<AppContextSwitchOverrides> 要素を使用して、以前のバージョンの .NET Framework をターゲットにしているアプリの呼び出し元で新しい機能をオプトインできるようにすることもできます。

<AppContextSwitchOverrides> 要素の value 属性は、セミコロンで区切られた 1 つ以上の名前と値のペアで構成される 1 つの文字列で構成されます。 各名前は互換性スイッチを識別し、対応する値はスイッチが設定されているかどうかを示すブール値 (true または false) です。 既定では、スイッチは false で、ライブラリは新しい機能を提供します。 スイッチが設定されている場合 (つまり、値が true である場合) にのみ、以前の機能が提供されます。 これにより、ライブラリは既存の API に新しい動作を提供できるようになり、以前の動作に依存する呼び出し元は新しい機能を無効にすることができます。

.NET Framework では次のスイッチがサポートされています。

スイッチ名 説明 導入時期
Switch.MS.Internal.
DoNotApplyLayoutRoundingToMarginsAndBorderThickness
コントロールのレイアウトのために Windows Presentation Foundation でレガシ アルゴリズムを使用するかどうかを制御します。 詳細については、「軽減策: WPF レイアウト」を参照してください。 .NET Framework 4.6
Switch.MS.Internal.
UseSha1AsDefaultHashAlgorithmForDigitalSignatures
PackageDigitalSignatureManager によってパッケージの一部に署名するために使用される既定のアルゴリズムが SHA1 と SHA256 のどちらであるかを制御します。
SHA1 との競合問題のため、Microsoft では SHA256 を推奨しています。
.NET Framework 4.7.1
Switch.System.Activities.
UseMD5CryptoServiceProviderForWFDebugger
false に設定すると、FIPS が有効になっている場合に、Visual Studio で XAML ベースのワークフロー プロジェクトをデバッグできるようになります。 これを使用しない場合、System.Activities アセンブリ内のメソッドの呼び出しで NullReferenceException がスローされます。 .NET Framework 4.7
Switch.System.Activities.
UseMD5ForWFDebugger
デバッガーのワークフロー インスタンスのチェックサムで MD5 と SHA1 のどちらを使用するかを制御します。 .NET Framework 4.7
Switch.System.Activities.
UseSHA1HashForDebuggerSymbols
ワークフロー チェックサムのハッシュで、.NET Framework 4.7 の既定値として導入された SHA1 アルゴリズムを使用するか (true)、.NET Framework 4.8 で既定値として導入された既定の SHA256 アルゴリズムを使用するか (false) を制御します。
SHA1 との競合問題のため、Microsoft では SHA256 を推奨しています。
.NET Framework 4.8
Switch.System.Diagnostics.
IgnorePortablePDBsInStackTraces
ポータブル PDB の使用時に取得されるスタック トレースに、ソース ファイルと行情報を含めることができるかどうかを制御します。 ソース ファイルと行情報を含める場合は false、それ以外の場合は true .NET Framework 4.7.2
Switch.System.Drawing.
DontSupportPngFramesInIcons
Icon オブジェクトに PNG フレームが含まれている場合に、Icon.ToBitmap メソッドが例外をスローするかどうかを制御します。 詳細については、「軽減策: Icon オブジェクトの PNG フレーム」を参照してください。 .NET Framework 4.6
Switch.System.Drawing.Text.
DoNotRemoveGdiFontsResourcesFromFontCollection
PrivateFontCollection.AddFontFile(String) メソッドによってコレクションに追加されたときに System.Drawing.Text.PrivateFontCollection オブジェクトが正しく破棄されるかどうかを決定します。 従来の動作を維持する場合は true、すべてのプライベート フォント オブジェクトを破棄する場合は false .NET Framework 4.7.2
Switch.System.Drawing.Printing.
OptimizePrintPreview
PrintPreviewDialog のパフォーマンスをネットワーク プリンター用に最適化するかどうかを制御します。 詳細については、「PrintPreviewDialog コントロールの概要」を参照してください。 .NET Framework 4.6
Switch.System.Globalization.EnforceJapaneseEraYearRanges 日本の年号の年範囲をチェックするかどうかを制御します。 年範囲のチェックを実行する場合は true、それを無効にする場合は false (既定の動作)。 詳細については、「カレンダーの使用」を参照してください。 .NET Framework 4.6
Switch.System.Globalization.EnforceLegacyJapaneseDateParsing 解析操作で、日本の年号の最初の年として "1" だけを認識するかどうかを制御します。 "1" だけを認識する場合は true、"1" または "元年" のいずれかを認識する場合は false (既定の動作)。 詳細については、「カレンダーの使用」を参照してください。 .NET Framework 4.6
Switch.System.Globalization.FormatJapaneseFirstYearAsANumber 書式設定操作で、日本の年号の最初の年を "1" と表示するか "元年" と表示するかを制御します。 年号の最初の年を "1" として書式設定する場合は true、"元年" として書式設定する場合は false (既定の動作)。 詳細については、「カレンダーの使用」を参照してください。 .NET Framework 4.6
Switch.System.Globalization.NoAsyncCurrentCulture 非同期操作が呼び出し元スレッドのコンテキストからフローしないかどうかを制御します。 詳細については、「タスク全体の CurrentCulture と CurrentUICulture のフロー」を参照してください。 .NET Framework 4.6
Switch.System.IdentityModel.
DisableMultipleDNSEntriesInSANCertificate
X509CertificateClaimSet.FindClaims メソッドで要求の種類と最後の DNS エントリのみを照合するかどうかを制御します。 詳細については、「軽減策: X509CertificateClaimSet.FindClaims メソッド」を参照してください。 .NET Framework 4.6.1
Switch.System.IdentityModel.
EnableCachedEmptyDefaultAuthorizationContext
AuthorizationContext.Empty で変更可能なオブジェクトを返すことができるかどうかを制御します。 .NET Framework 4.6
Switch.System.IO.BlockLongPaths MAX_PATH (260 文字) よりも長いパスによって PathTooLongException がスローされるかどうかを制御します。 詳細については、「長いパスのサポート」を参照してください。 .NET Framework 4.6.2
Switch.System.IO.Compression.
DoNotUseNativeZipLibraryForDecompression
DeflateStream クラスによる展開にネイティブ OS ルーチンを使用するかどうかを制御します。 ネイティブ API を使用する場合は falseDeflateStream の実装を使用する場合は true .NET Framework 4.7.2
Switch.System.IO.Compression.ZipFile.
UseBackslash
ZipArchiveEntry.FullName プロパティのパス区切り記号として、スラッシュ ("/") ではなく円記号 ("\") を使用します。 詳細については、「軽減策: ZipArchiveEntry.FullName パスの区切り文字」を参照してください。 .NET Framework 4.6.1
Switch.System.IO.Ports.
DoNotCatchSerialStreamThreadExceptions
SerialPort ストリームで作成されたバックグラウンド スレッドでスローされるオペレーティング システムの例外によってプロセスを終了するかどうかを制御します。 .NET Framework 4.7.1
Switch.System.IO.
UseLegacyPathHandling
従来のパスの正規化を使用するかどうか、および Path.GetDirectoryName メソッドと Path.GetPathRoot メソッドで URI パスをサポートするかどうかを制御します。 詳細については、「軽減策: パスの正規化」と「軽減策: パスのコロン チェック」を参照してください。 .NET Framework 4.6.2
Switch.System.
MemberDescriptorEqualsReturnsFalseIfEquivalent
等しいかどうかのテストで、1 つのオブジェクトの MemberDescriptor.Category プロパティを 2 番目のオブジェクトの MemberDescriptor.Description プロパティと比較するかどうかを制御します。 詳細については、「MemberDescriptor.Equals の不適切な実装」を参照してください。 .NET Framework 4.6.2
Switch.System.Net.
DontCheckCertificateEKUs
証明書の EKU (拡張キー使用法) のオブジェクト識別子 (OID) の検証を無効にします。 EKU (拡張キー使用法) 拡張は、キーを使用するアプリケーションを示すオブジェクト識別子 (OID) の集まりです。 .NET Framework 4.6
Switch.System.Net.
DontEnableSchSendAuxRecord
SCH_SEND_AUX_RECORD の使用を無効にすることで、SSL/TLS (BEAST) の軽減策に対する TLS1.0 ブラウザーの悪用を無効にします。 .NET Framework 4.6
Switch.System.Net.
DontEnableSchUseStrongCrypto
System.Net.ServicePointManager クラスおよび System.Net.Security.SslStream クラスで SSL 3.0 プロトコルを使用できるかどうかを制御します。 詳細については、「軽減策: TLS プロトコル」を参照してください。 .NET Framework 4.6
Switch.System.Net.
DontEnableSystemDefaultTlsVersions
既定の Tls12、Tls11、Tls に戻す SystemDefault TLS のバージョンを無効にします。 .NET Framework 4.7
Switch.System.Net.
DontEnableTlsAlerts
SslStream TLS サーバー側アラートを無効にします。 .NET Framework 4.7
Switch.System.Runtime.InteropServices.
DoNotMarshalOutByrefSafeArrayOnInvoke
COM 相互運用イベントの ByRef SafeArray パラメーターがネイティブ コードにマーシャリングされるか (false)、またはネイティブ コードへのマーシャリングが無効になるか (true) を制御します。 .NET Framework 4.8
Switch.System.Runtime.Serialization.
DoNotUseECMAScriptV6EscapeControlCharacter
DataContractJsonSerializer で ECMAScript V6 と V8 の標準に基づいて一部の制御文字をシリアル化するかどうかを制御します。 詳細については、「軽減策: DataContractJsonSerializer での制御文字のシリアル化」を参照してください。 .NET Framework 4.7
Switch.System.Runtime.Serialization.
DoNotUseTimeZoneInfo
DataContractJsonSerializer でタイム ゾーンに対して複数の調整をサポートするか、1 つの調整のみをサポートするかを制御します。 true の場合、TimeZoneInfo 型を使用して日付と時刻のデータをシリアル化および逆シリアル化します。それ以外の場合は、複数の調整規則をサポートしていない TimeZone 型を使用します。 .NET Framework 4.6.2
Switch.System.Runtime.Serialization.UseNewMaxArraySize System.Runtime.Serialization.ObjectManager で、オブジェクトのシリアル化と逆シリアル化の間に、より大きな配列サイズを使用するかどうかを制御します。 BinaryFormatter などの型による大きなオブジェクト グラフのシリアル化と逆シリアル化のパフォーマンスを向上させるには、このスイッチを true に設定します。 .NET Framework 4.7.2
Switch.System.Security.ClaimsIdentity.
SetActorAsReferenceWhenCopyingClaimsIdentity
ClaimsIdentity(IIdentity) コンストラクターで新しいオブジェクトの ClaimsIdentity.Actor プロパティに既存のオブジェクト参照を設定するかどうかを制御します。 詳細については、「軽減策: ClaimsIdentity コンストラクター」を参照してください。 .NET Framework 4.6.2
Switch.System.Security.Cryptography.
AesCryptoServiceProvider.DontCorrectlyResetDecryptor
AesCryptoServiceProvider 復号化を再利用しようとすると CryptographicException がスローされるかどうかを制御します。 詳細については、「AesCryptoServiceProvider の復号で変換が再利用可能に」を参照してください。 .NET Framework 4.6.2
Switch.System.Security.Cryptography.
DoNotAddrOfCspParentWindowHandle
CspParameters.ParentWindowHandle プロパティの値が、ウィンドウ ハンドルのメモリ位置を表す IntPtr であるか、またはウィンドウ ハンドル (HWND) であるかを制御します。 詳細については、「Mitigation: CspParameters.ParentWindowHandle Expects an HWND」 (軽減策: CspParameters.ParentWindowHandle で HWND を受け取る) を参照してください。 .NET Framework 4.7
Switch.System.Security.Cryptography.
UseLegacyFipsThrow
FIPS モードでマネージド暗号クラスを使用すると CryptographicException がスローされるか (true)、またはシステム ライブラリの実装に依存するか (false) を制御します。 .NET Framework 4.8
Switch.System.Security.Cryptography.Pkcs.
UseInsecureHashAlgorithms
一部の SignedCMS 操作の既定値が SHA1 か SHA256 かを決定します。
SHA1 との競合問題のため、Microsoft では SHA256 を推奨しています。
.NET Framework 4.7.1
Switch.System.Security.Cryptography.X509Certificates.
ECDsaCertificateExtensions.UseLegacyPublicKeyReader
ECDsaCertificateExtensions.GetECDsaPublicKey メソッドについて、オペレーティング システムでサポートされているすべての名前付き曲線を正しく処理するか (false)、従来の動作に戻すかを制御します。 .NET Framework 4.8
Switch.System.Security.Cryptography.Xml.
UseInsecureHashAlgorithms
一部の SignedXML 操作の既定値が SHA1 か SHA256 かを決定します。
SHA1 との競合問題のため、Microsoft では SHA256 を推奨しています。
.NET Framework 4.7.1
Switch.System.ServiceModel.
AllowUnsignedToHeader
TransportWithMessageCredential セキュリティ モードで、署名されていない "to" ヘッダーを持つメッセージを許可するかどうかを決定します。 これはオプトイン スイッチです。 詳細については、「.NET Framework 4.6.1 におけるランタイムの変更点」を参照してください。 .NET Framework 4.6.1
Switch.System.ServiceModel.
DisableAddressHeaderCollectionValidation>
要素のいずれかが null の場合、AddressHeaderCollection(IEnumerable<AddressHeader>) コンストラクターで ArgumentException がスローされるかどうかを制御します。 .NET Framework 4.7.1
Switch.System.ServiceModel.
DisableCngCertificates
CSG キー ストレージ プロバイダーによる X509 証明書を使用しようとすると例外がスローされるかどうかを決定します。 詳細については、「WCF トランスポート セキュリティで CNG を使用して格納される証明書をサポート」を参照してください。 .NET Framework 4.6.1
Switch.System.ServiceModel.
DisableExplicitConnectionCloseHeader
自己ホスト型サービスで HTTP トランスポートを使用する場合、この値を true に設定すると、要求の応答ヘッダーに Connection: close ヘッダーを追加するアプリケーションが WCF によって無視されます。 この値を false に設定すると、応答ヘッダーに Connection: close ヘッダーを追加できるようになります。これにより、応答の送信後に要求ソケットが閉じられます。 .NET Framework 4.6
Switch.System.ServiceModel.
DisableOperationContextAsyncFlow
再入可能サービスのインスタンスを一度に 1 つの実行スレッドに制限することによって発生するデッドロックを処理します。 .NET Framework 4.6.2
Switch.System.ServiceModel.
DisableUsingServicePointManagerSecurityProtocols
Switch.System.Net.DontEnableSchUseStrongCrypto と共に使用して、WCF メッセージ セキュリティで TLS 1.1 と TLS 1.2 を使用するかどうかを決定します。 .NET Framework 4.7
Switch.System.ServiceModel.
DontEnableSystemDefaultTlsVersions
値が false の場合、オペレーティング システムによるプロトコルの選択を許可するように既定の構成が設定されます。 値が true のときは、利用可能な最も高いプロトコルに既定値が設定されます (以前のバージョンのフレームワークのサービス ブランチでも利用可能)。 .NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InMsmqEncryptionAlgorithm
WCF の MSMQ メッセージの既定のメッセージ署名アルゴリズムが SHA1 であるか SHA256 であるかを決定します。
SHA1 との競合問題のため、Microsoft では SHA256 を推奨しています。
.NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InPipeConnectionGetHashAlgorithm
WCF で名前付きパイプのランダムな名前を生成するために SHA1 ハッシュを使用するか SHA256 ハッシュを使用するかを制御します。
SHA1 との競合問題のため、Microsoft では SHA256 を推奨しています。
.NET Framework 4.7.1
Switch.System.ServiceModel.Internals
IncludeNullExceptionMessageInETWTrace
例外メッセージが null の場合に NullReferenceException をスローするかどうかを制御します。 .NET Framework 4.7
Switch.System.ServiceProcess.
DontThrowExceptionsOnStart
サービスの起動時にスローされる例外が ServiceBase.Run メソッドの呼び出し元に伝達されるかどうかを制御します。 .NET Framework 4.7.1
Switch.System.Threading.UseNetCoreTimer Timer インスタンスで大規模環境用のパフォーマンスの向上を利用できるかどうかを制御します。 true の場合、パフォーマンスの向上が有効になります。false (既定値) の場合は無効になります。 .NET Framework 4.8
Switch.System.Uri.
DontEnableStrictRFC3986ReservedCharacterSets
場合によってはデコードされていたパーセント エンコードされた特定の文字の状態が常に保たれるかどうかを決定します。 true の場合はデコードされます。それ以外の場合は false です。 .NET Framework 4.7.2
Switch.System.Uri.
DontKeepUnicodeBidiFormattingCharacters
URI での Unicode の双方向文字の処理を決定します。 URI から削除する場合は true、保持してパーセント エンコードする場合は false .NET Framework 4.7.2
Switch.System.Windows.Controls.Grid.
StarDefinitionsCanExceedAvailableSpace
Windows Presentation Foundation で *-column へのディスク領域の割り当てに古いアルゴリズムを適用するか (true)、または新しいアルゴリズムを適用するか (false) を決定します。 詳細については、「Mitigation: Grid Control's Space Allocation to Star-columns」 (軽減策: グリッド コントロールの *-column へのディスク領域の割り当て) を参照してください。 .NET Framework 4.7
Switch.System.Windows.Controls.TabControl.
SelectionPropertiesCanLagBehindSelectionChangedEvent
選択変更イベントを発生させる前に、セレクターまたはタブ コントロールによって、選択した値プロパティの値が常に更新されるかどうかを制御します。 .NET Framework 4.7.1
Switch.System.Windows.Controls.Text.
UseAdornerForTextboxSelectionRendering
TextBox コントロールおよび PasswordBox コントロールで閉塞テキストを防ぐために、非装飾ベースの選択レンダリングを使用できるか (false)、またはテキストを装飾層でのみ表示するか (true) を決定します。 .NET Framework 4.7.2
Switch.System.Windows.Data.Binding.
IListIndexerHidesCustomIndexer
System.Windows.Data.Binding クラスでカスタム IList インデクサーを正しく使用しないか (true)、または正しく使用するか (false) を制御します。 .NET Framework 4.8
Switch.System.Windows.DoNotScaleForDpiChanges DPI の変更がシステムごと (false の値) またはモニターごと (true の値) のどちらで行われるかを決定します。 .NET Framework 4.6.2
Switch.System.Windows.
DoNotUsePresentationDpiCapabilityTier2OrGreater
WPF がモニターごとの認識モードで実行されるときに、System.Windows.Interop.HwndHost 内のコントロールのサイズ変更の改善を無効にするか (true)、有効にするか (false) を制御します。 .NET Framework 4.8
Switch.System.Windows.Forms.
DomainUpDown.UseLegacyScrolling
コントロール テキストが存在する場合に、開発者が DomainUpDown.UpButton() アクションを特別に処理する必要があるかどうかを決定します。 UpButton() アクションを処理する場合は trueDomainUpDown.UpButton() アクションと DomainUpDown.DownButton() アクションが適切に同期される場合は false .NET Framework 4.7.2
Switch.System.Windows.Forms.
DontSupportReentrantFilterMessage
カスタム IMessageFilter.PreFilterMessage の実装で、Application.FilterMessage メソッドが呼び出されたときに例外がスローされることなく、メッセージを安全にフィルター処理できるようにするコードを無効にします。 詳細については、「軽減策: カスタムの IMessageFilter.PreFilterMessage 実装」を参照してください。 .NET Framework 4.6.1
Switch.System.Windows.Forms.
UseLegacyContextMenuStripSourceControlValue
ユーザーが入れ子になった ToolStripMenuItem コントロールからメニューを開いたときに、ContextMenuStrip.SourceControl プロパティがソース管理を返すかどうかを決定します。 null を返す場合は true (従来の動作)、ソース管理を返す場合は false .NET Framework 4.7.2
Switch.System.Windows.Forms.UseLegacyToolTipDisplay ツールヒントの呼び出しサポートを無効にするか (true)、または有効にするか (false) を制御します。 ツールヒントの呼び出しサポートを有効にするには、Switch.UseLegacyAccessibilityFeaturesSwitch.UseLegacyAccessibilityFeatures.2Switch.UseLegacyAccessibilityFeatures.3 で定義されている従来のユーザー補助機能もすべて無効にする必要があります (false に設定)。 .NET Framework 4.8
Switch.System.Windows.Input.Stylus.
EnablePointerSupport
WPF アプリケーションでオプションの WM_POINTER ベースのタッチ/スタイラス スタックを有効にするかどうかを決定します。 詳細については、「軽減策: ポインター ベースのタッチおよびスタイラスのサポート」を参照してください。 .NET Framework 4.7
Switch.System.Windows.Markup.
DoNotUseSha256ForMarkupCompilerChecksumAlgorithm
チェックサムに使用される既定のハッシュ アルゴリズムが SHA256 (false) か SHA1 (true) かを決定します。
SHA1 との競合問題のため、Microsoft では SHA256 を推奨しています。
.NET Framework 4.7.2
Switch.System.Windows.Media.ImageSourceConverter.
OverrideExceptionWithNullReferenceException
例外の原因をより具体的に示す例外 (DirectoryNotFoundExceptionFileNotFoundException など) の代わりに、従来の NullReferenceException をスローするかどうかを制御します。 これは、NullReferenceException の処理に依存するコードで使用することを意図しています。 .NET Framework 4.7
Switch.System.Workflow.ComponentModel.
UseLegacyHashForXomlFileChecksum
ワークフロー プロジェクト ビルド内の XOML ファイルのチェックサム ハッシュに、MD5 アルゴリズムを使用するか (true)、または .NET Framework 4.8 で既定値として導入された SHA256 アルゴリズムを使用するかを制御します。
MD5 との競合問題のため、Microsoft では SHA256 を推奨しています。
.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForSqlTrackingCacheKey
SqlTrackingService によるチェックサム ハッシュで、キャッシュされた文字列に MD5 アルゴリズムを使用するか (true)、または .NET Framework 4.8 で既定値として導入された SHA256 アルゴリズムを使用するかを制御します。
MD5 との競合問題のため、Microsoft では SHA256 を推奨しています。
.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForWorkflowDefinitionDispenserCacheKey
ワークフロー ランタイムによるチェックサム ハッシュで、キャッシュされたワークフロー定義に MD5 アルゴリズムを使用するか (true)、または .NET Framework 4.8 で既定値として導入された SHA256 アルゴリズムを使用するかを制御します。
MD5 との競合問題のため、Microsoft では SHA256 を推奨しています。
.NET Framework 4.8
Switch.UseLegacyAccessibilityFeatures .NET Framework 4.7.1 以降で使用できるユーザー補助機能を有効にするか無効にするかを制御します。 .NET Framework 4.7.1
Switch.UseLegacyAccessibilityFeatures.2 .NET Framework 4.7.2 で使用できるユーザー補助機能を有効にするか (false) 無効にするか (true) を制御します。 true の場合は、Switch.UseLegacyAccessibilityFeaturestrue にして .NET Framework 4.7.1 のユーザー補助機能を有効にする必要があります。 .NET Framework 4.7.2
Switch.UseLegacyAccessibilityFeatures.3 .NET Framework 4.8 で導入されたユーザー補助機能を有効にするか (false) 無効にするか (true) を制御します。 true の場合は、Switch.UseLegacyAccessibilityFeatures および Switch.UseLegacyAccessibilityFeatures.2true にする必要があります。 .NET Framework 4.8
Switch.UseLegacyToolTipDisplay ツールヒントを、WPF コントロールの上にマウス カーソルを置いたときに表示するか (true)、キーボード フォーカスとキーボード ショートカット キーの両方で表示するか (false、既定の動作) を制御します。 .NET Framework 4.8 で実行されているが、以前のバージョンの .NET Framework を対象としているアプリケーションでは、キーボード フォーカスとショートカット キーのサポートの両方を有効にするには、Switch.UseLegacyAccessibilityFeaturesSwitch.UseLegacyAccessibilityFeatures.2Switch.UseLegacyAccessibilityFeatures.3 をすべて false に設定する必要があります。 .NET Framework 4.8
Switch.System.Xml.
IgnoreEmptyKeySequences
複合キーの空のキー シーケンスが XSD スキーマ検証で無視されるかどうかを制御します。 詳細については、「軽減策: XML スキーマ検証」を参照してください。 .NET Framework 4.6

注意

アプリケーション構成ファイルに AppContextSwitchOverrides 要素を追加する代わりに、static (C# の場合) または Shared (Visual Basic の場合) AppContext.SetSwitch メソッドを呼び出して、スイッチをプログラムで設定することもできます。

ライブラリ開発者は、カスタム スイッチを定義して、新しいバージョンのライブラリで導入された機能の変更を呼び出し元が無効にできるようにすることもできます。 詳細については、AppContext クラスを参照してください。

ASP.NET アプリのスイッチ

web.config ファイルの <appSettings> セクションに <Add> 要素を追加すると、互換性設定を使用するように ASP.NET アプリケーションを構成できます。

次の例では、<add> 要素を使用して、web.config ファイルの <appSettings> セクションに 2 つの設定を追加します。

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

次の例では、AppContextSwitchOverrides 要素を使用して単一のアプリケーション互換性スイッチ Switch.System.Globalization.NoAsyncCurrentCulture を定義します。これにより、非同期メソッド呼び出しでカルチャがスレッド間をフローできなくなります。

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

次の例では、AppContextSwitchOverrides 要素を使用して、Switch.System.Globalization.NoAsyncCurrentCultureSwitch.System.IO.BlockLongPaths という 2 つのアプリケーション互換性スイッチを定義します。 2 つの名前と値のペアはセミコロンで区切られています。

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

関連項目