<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 を呼び出すアプリの場合、 <AppContextSwitchOverrides>
要素を使用すると、以前のバージョンの .NET Framework を対象とするアプリの呼び出し元が、その機能を含む .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 を使用する場合は false 、DeflateStream の実装を使用する場合は true 。 |
.NET Framework 4.7.2 |
Switch.System.IO.Compression.ZipFile. UseBackslash |
ZipArchiveEntry.FullName プロパティのパス区切り記号として、スラッシュ ("/") ではなく円記号 ("\") を使用します。 詳細については、「Mitigation: ZipArchiveEntry.FullName Path Separator (軽減策: 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.IdentityModel. 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. DisconnectUiaProvidersOnWmDestroy |
対応するコントロール ウィンドウが破棄された (true )、またはされなかった (false ) ときに、プロバイダーを切断するかどうかを制御します。 このスイッチは、 IRawElementProviderSimple オブジェクトのリークに対処するためのパフォーマンス修正プログラムへのオプトインを提供します。 |
.NET Framework 4.8 |
Switch.System.Windows.Forms. DomainUpDown.UseLegacyScrolling |
コントロール テキストが存在する場合に、開発者が DomainUpDown.UpButton() アクションを特別に処理する必要があるかどうかを決定します。 UpButton() アクションを処理する場合は true 、DomainUpDown.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.UseLegacyAccessibilityFeatures 、Switch.UseLegacyAccessibilityFeatures.2 、Switch.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 |
例外の原因をより具体的に示す例外 (DirectoryNotFoundException や FileNotFoundException など) の代わりに、従来の 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.UseLegacyAccessibilityFeatures も true にして .NET Framework 4.7.1 のユーザー補助機能を有効にする必要があります。 |
.NET Framework 4.7.2 |
Switch.UseLegacyAccessibilityFeatures.3 |
.NET Framework 4.8 で導入されたユーザー補助機能を有効にするか (false ) 無効にするか (true ) を制御します。 true の場合は、Switch.UseLegacyAccessibilityFeatures および Switch.UseLegacyAccessibilityFeatures.2 も true にする必要があります。 |
.NET Framework 4.8 |
Switch.UseLegacyToolTipDisplay |
ツールヒントを、WPF コントロールの上にマウス カーソルを置いたときに表示するか (true )、キーボード フォーカスとキーボード ショートカット キーの両方で表示するか (false 、既定の動作) を制御します。 .NET Framework 4.8 で実行されているが、以前のバージョンの .NET Framework を対象としているアプリケーションでは、キーボード フォーカスとショートカット キーのサポートの両方を有効にするには、Switch.UseLegacyAccessibilityFeatures 、Switch.UseLegacyAccessibilityFeatures.2 、Switch.UseLegacyAccessibilityFeatures.3 をすべて false に設定する必要があります。 |
.NET Framework 4.8 |
Switch.System.Xml. IgnoreEmptyKeySequences |
複合キーの空のキー シーケンスが XSD スキーマ検証で無視されるかどうかを制御します。 詳細については、「軽減策: XML スキーマ検証」を参照してください。 | .NET Framework 4.6 |
Note
アプリケーション構成ファイルに AppContextSwitchOverrides
要素を追加する代わりに、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.NoAsyncCurrentCulture
と Switch.System.IO.BlockLongPaths
という 2 つのアプリケーション互換性スイッチを定義します。 2 つの名前と値のペアはセミコロンで区切られています。
<configuration>
<runtime>
<AppContextSwitchOverrides
value="Switch.System.Globalization.NoAsyncCurrentCulture=true;Switch.System.IO.BlockLongPaths=true" />
</runtime>
</configuration>
関連項目
.NET