다음을 통해 공유


<AppContextSwitchOverrides> 요소

AppContext 클래스에 사용되는 스위치를 하나 이상 정의하여 새 기능의 옵트아웃 메커니즘을 제공합니다.

<configuration>
  <runtime>
    <AppContextSwitchOverrides>

구문

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

특성 및 요소

다음의 섹션은 특성, 자식 요소 및 부모 요소에 대해 설명합니다.

특성

특성 설명
value 필수입니다. 하나 이상의 스위치 이름 및 연결된 부울 값을 정의합니다.

value 특성

설명
"name=value" 해당 값(true 또는 false)과 함께 미리 정의된 스위치 이름입니다. 여러 스위치 이름/값 쌍은 세미콜론(";")으로 구분됩니다. .NET Framework에서 지원하는 미리 정의된 스위치 이름 목록은 설명 섹션을 참조하세요.

자식 요소

없음

부모 요소

요소 설명
configuration 공용 언어 런타임 및 .NET Framework 애플리케이션에서 사용하는 모든 구성 파일의 루트 요소입니다.
runtime 런타임 초기화 옵션에 대한 정보를 포함합니다.

설명

.NET Framework 4.6부터 구성 파일의 <AppContextSwitchOverrides> 요소를 사용하면 API 호출자가 앱이 새로운 기능을 활용할 수 있는지 또는 이전 버전의 라이브러리와의 호환성을 유지할 수 있는지 결정할 수 있습니다. 예를 들어 API의 동작이 라이브러리의 두 버전 간에 변경된 경우 <AppContextSwitchOverrides> 요소를 사용하면 해당 API의 호출자가 새 기능을 지원하는 라이브러리 버전에서 새 동작을 옵트아웃할 수 있습니다. .NET Framework <AppContextSwitchOverrides> 에서 API를 호출하는 앱의 경우 해당 앱이 해당 기능을 포함하는 .NET Framework 버전에서 실행되는 경우 앱이 이전 버전의 .NET Framework를 대상으로 하는 호출자가 새 기능을 옵트인하도록 허용할 수도 있습니다.

<AppContextSwitchOverrides> 요소의 value 특성은 하나 이상의 세미콜론으로 구분된 이름/값 쌍으로 구성된 단일 문자열로 구성됩니다. 각 이름은 호환성 스위치를 식별하고 해당 값은 스위치가 설정되었는지 여부를 나타내는 부울(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 관련 충돌 문제로 인해 SHA256을 사용하는 것이 좋습니다.
.NET Framework 4.7.1
Switch.System.Activities.
UseMD5CryptoServiceProviderForWFDebugger
false로 설정하면 FIPS가 사용하도록 설정된 경우 Visual Studio를 사용하여 XAML 기반 워크플로 프로젝트를 디버깅할 수 있습니다. 이를 사용하지 않으면 System.Activities 어셈블리의 메서드 호출에서 NullReferenceException이 throw됩니다. .NET Framework 4.7
Switch.System.Activities.
UseMD5ForWFDebugger
디버거의 워크플로 인스턴스에 대한 체크섬이 MD5 또는 SHA1을 사용할지 여부를 제어합니다. .NET Framework 4.7
Switch.System.Activities.
UseSHA1HashForDebuggerSymbols
워크플로 체크섬 해싱이 .NET Framework 4.7(true)에서 기본값으로 도입된 SHA1 알고리즘을 사용할지 또는 .NET Framework 4.8(false)에서 기본값으로 도입된 기본 SHA256 알고리즘을 사용할지 여부를 제어합니다.
SHA1 관련 충돌 문제로 인해 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 메서드에서 예외가 throw될지 여부를 제어합니다. 자세한 내용은 완화: 아이콘 개체의 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" 또는 Gannen를 인식하려면 false입니다(기본 동작). 자세한 내용은 캘린더 사용을 참조하세요. .NET Framework 4.6
Switch.System.Globalization.FormatJapaneseFirstYearAsANumber 일본 달력의 첫 번째 연도를 형식 지정 작업에서 "1" 또는 Gannen으로 표시할지 여부를 제어합니다. 첫 번째 연도의 형식을 "1"로 지정하려면 true, Gannen로 지정하려면 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이 throw될지 여부를 제어합니다. 자세한 내용은 긴 경로 지원을 참조하세요. .NET Framework 4.6.2
Switch.System.IO.Compression.
DoNotUseNativeZipLibraryForDecompression
네이티브 OS 루틴이 DeflateStream 클래스의 압축 해제에 사용될지 여부를 제어합니다. 네이티브 API를 사용하려면 false, DeflateStream 구현을 사용하려면 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 스트림으로 만들어진 백그라운드 스레드에서 throw된 운영 체제 예외가 프로세스를 종료할지 여부를 제어합니다. .NET Framework 4.7.1
Switch.System.IO.
UseLegacyPathHandling
레거시 경로 정규화가 사용되는지 여부와 URI 경로가 Path.GetDirectoryNamePath.GetPathRoot 메서드에서 지원될지 여부를 제어합니다. 자세한 내용은 완화: 경로 정규화완화: 경로 콜론 검사를 참조하세요. .NET Framework 4.6.2
Switch.System.
MemberDescriptorEqualsReturnsFalseIfEquivalent
동일성 테스트가 한 개체의 MemberDescriptor.Category 속성을 두 번째 개체의 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.ServicePointManagerSystem.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 interop 이벤트의 ByRef SafeArray 매개 변수가 네이티브 코드로 다시 마샬링할지(false) 또는 네이티브 코드로 다시 마샬링하지 않을지(true) 제어합니다. .NET Framework 4.8
Switch.System.Runtime.Serialization.
DoNotUseECMAScriptV6EscapeControlCharacter
DataContractJsonSerializer가 ECMAScript V6 및 V8 표준을 기반으로 일부 제어 문자를 직렬화할지 여부를 제어합니다. 자세한 내용은 완화: DataContractJsonSerializer로 제어 문자 serialization을 참조하세요. .NET Framework 4.7
Switch.System.Runtime.Serialization.
DoNotUseTimeZoneInfo
DataContractJsonSerializer가 표준 시간대에 대해 여러 조정 또는 단일 조정만 지원할지 여부를 제어합니다. 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이 throw될지 여부를 제어합니다. 자세한 내용은 AesCryptoServiceProvider 암호 해독기가 재사용 가능한 변환을 제공을 참조하세요. .NET Framework 4.6.2
Switch.System.Security.Cryptography.
DoNotAddrOfCspParentWindowHandle
CspParameters.ParentWindowHandle 속성 값이 창 핸들의 메모리 위치를 나타내는 IntPtr인지 또는 창 핸들(HWND)인지 여부를 제어합니다. 자세한 내용은 완화: CspParameters.ParentWindowHandle에 HWND 필요를 참조하세요. .NET Framework 4.7
Switch.System.Security.Cryptography.
UseLegacyFipsThrow
FIPS 모드에서 관리되는 암호화 클래스를 사용하면 CryptographicException(true)이 throw될지 여부를 제어하거나 시스템 라이브러리(false) 구현에 따라 다릅니다. .NET Framework 4.8
Switch.System.Security.Cryptography.Pkcs.
UseInsecureHashAlgorithms
일부 SignedCMS 작업의 기본값이 SHA1인지 SHA256인지 확인합니다.
SHA1 관련 충돌 문제로 인해 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 관련 충돌 문제로 인해 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을 throw할지 여부를 제어합니다. .NET Framework 4.7.1
Switch.System.IdentityModel.
DisableCngCertificates
CSG 키 스토리지 공급자와 함께 X509 인증서를 사용하려고 하면 예외가 throw될지 여부를 확인합니다. 자세한 내용은 WCF 전송 보안에서 CNG를 사용하여 저장된 인증서 지원을 참조하세요. .NET Framework 4.6.1
Switch.System.ServiceModel.
DisableExplicitConnectionCloseHeader
자체 호스티드 서비스와 함께 HTTP 전송을 사용할 때 이 값을 true로 설정하면 WCF가 요청에 대한 응답 헤더에 Connection: close 헤더를 추가하는 애플리케이션을 무시합니다. 이 값을 false로 설정하면 응답 헤더에 Connection: close 헤더를 추가할 수 있으므로 응답이 전송된 후 요청 소켓이 닫힙니다. .NET Framework 4.6
Switch.System.ServiceModel.
DisableOperationContextAsyncFlow
재진입 서비스의 인스턴스를 한 번에 단일 실행 스레드로 제한하여 발생하는 교착 상태를 처리합니다. .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 관련 충돌 문제로 인해 SHA256을 사용하는 것이 좋습니다.
.NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InPipeConnectionGetHashAlgorithm
WCF에서 SHA1 또는 SHA256 해시를 사용하여 명명된 파이프의 임의 이름을 생성할지 여부를 제어합니다.
SHA1 관련 충돌 문제로 인해 SHA256을 사용하는 것이 좋습니다.
.NET Framework 4.7.1
Switch.System.ServiceModel.Internals
IncludeNullExceptionMessageInETWTrace
예외 메시지가 null인 경우 NullReferenceException을 throw할지 여부를 제어합니다. .NET Framework 4.7
Switch.System.ServiceProcess.
DontThrowExceptionsOnStart
서비스 시작 시 throw된 예외가 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에서 유니코드 양방향 문자 처리를 확인합니다. URI에서 제거하려면 true, 보존하고 백분율로 인코딩하려면 false입니다. .NET Framework 4.7.2
Switch.System.Windows.Controls.Grid.
StarDefinitionsCanExceedAvailableSpace
Windows Presentation Foundation이 *-열에 공간을 할당할 때 이전 알고리즘(true) 또는 새 알고리즘(false)을 적용할지 여부를 확인합니다. 자세한 내용은 완화: Grid 컨트롤의 별 열 공간 할당을 참조하세요. .NET Framework 4.7
Switch.System.Windows.Controls.TabControl.
SelectionPropertiesCanLagBehindSelectionChangedEvent
선택기 또는 탭 컨트롤이 선택 변경 이벤트를 발생시키기 전에 항상 선택된 값 속성의 값을 업데이트할지 여부를 제어합니다. .NET Framework 4.7.1
Switch.System.Windows.Controls.Text.
UseAdornerForTextboxSelectionRendering
가려진 텍스트(false)를 방지하기 위해 TextBoxPasswordBox 컨트롤에 비 Adorner 기반 선택 렌더링을 사용할 수 있는지 또는 텍스트가 Adorner 계층(true)에서만 렌더링될지 확인합니다. .NET Framework 4.7.2
Switch.System.Windows.Data.Binding.
IListIndexerHidesCustomIndexer
사용자 지정 IList 인덱서가 System.Windows.Data.Binding 클래스에서 잘못 사용되는지(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 메서드가 호출될 때 예외를 throw하지 않고 메시지를 안전하게 필터링할 수 있도록 하는 코드를 선택 해제합니다. 자세한 내용은 완화: 사용자 지정 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.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 관련 충돌 문제로 인해 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 관련 충돌 문제로 인해 SHA256을 사용하는 것이 좋습니다.
.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForSqlTrackingCacheKey
SqlTrackingService에 의한 체크섬 해싱이 캐시된 문자열에 대해 MD5 알고리즘(true)을 사용할지 또는 .NET Framework 4.8에서 기본값으로 도입된 SHA256 알고리즘을 사용할지 여부를 제어합니다.
MD5 관련 충돌 문제로 인해 SHA256을 사용하는 것이 좋습니다.
.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForWorkflowDefinitionDispenserCacheKey
Workflow Runtime의 체크섬 해싱이 캐시된 워크플로 정의에 MD5 알고리즘(true)을 사용할지 또는 .NET Framework 4.8에서 기본값으로 도입된 SHA256 알고리즘을 사용할지 여부를 제어합니다.
MD5 관련 충돌 문제로 인해 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인 경우 .NET Framework 4.7.1 접근성 기능을 사용하려면 Switch.UseLegacyAccessibilityFeaturestrue여야 합니다. .NET Framework 4.7.2
Switch.UseLegacyAccessibilityFeatures.3 .NET Framework 4.8에 도입된 접근성 기능을 사용하도록 설정할지(false) 또는 사용하지 않도록 설정할지(true) 제어합니다. true인 경우 Switch.UseLegacyAccessibilityFeaturesSwitch.UseLegacyAccessibilityFeatures.2true여야 합니다. .NET Framework 4.8
Switch.UseLegacyToolTipDisplay 사용자가 WPF 컨트롤(true) 위로 마우스 커서를 가져갈 때 도구 설명이 표시될지 또는 도구 설명이 키보드 포커스와 바로 가기 키(false, 기본 동작)를 통해 표시될지 제어합니다. .NET Framework 4.8에서 실행되지만 이전 버전의 .NET Framework를 대상으로 하는 애플리케이션의 경우 키보드 포커스와 바로 가기 키 지원을 모두 사용하도록 설정하려면 Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2Switch.UseLegacyAccessibilityFeatures.3을 모두 false로 설정해야 합니다. .NET Framework 4.8
Switch.System.Xml.
IgnoreEmptyKeySequences
복합 키의 빈 키 시퀀스가 XSD 스키마 유효성 검사에서 무시될지 여부를 제어합니다. 자세한 내용은 완화: XML 스키마 유효성 검사를 참조하세요. .NET Framework 4.6

참고 항목

애플리케이션 구성 파일에 AppContextSwitchOverrides 요소를 추가하는 대신 AppContext.SetSwitch 메서드를 호출하여 프로그래밍 방식으로 스위치를 설정할 수도 있습니다.

라이브러리 개발자는 호출자가 라이브러리의 이후 버전에 도입된 변경된 기능을 옵트아웃할 수 있도록 사용자 지정 스위치를 정의할 수도 있습니다. 자세한 내용은 AppContext 클래스를 참조하세요.

ASP.NET 앱의 스위치

web.config 파일의 <appSettings> 섹션에 <Add> 요소를 추가하여 호환성 설정을 사용하도록 ASP.NET 애플리케이션을 구성할 수 있습니다.

다음 예에서는 <add> 요소를 사용하여 web.config 파일의 <appSettings> 섹션에 두 가지 설정을 추가합니다.

<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를 정의합니다. 세미콜론은 두 개의 이름/값 쌍을 구분합니다.

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

참고 항목