영어로 읽기

다음을 통해 공유


.NET 5의 호환성이 손상되는 변경

앱을 .NET 5로 마이그레이션하는 경우 여기에 나열된 호환성이 손상되는 변경이 영향을 줄 수 있습니다. 변경 내용은 ASP.NET Core 또는 암호화와 같은 기술 영역별로 그룹화됩니다.

이 문서에서는 각 호환성이 손상되는 변경이 이진 파일 호환인지 또는 원본 호환인지 여부를 나타냅니다.

  • 이진 파일 호환 - 기존 이진 파일은 다시 컴파일 없이 성공적으로 로드 및 실행되며 런타임 동작은 변경되지 않습니다.
  • 원본 호환 - 새 런타임을 대상으로 하거나 새 SDK 또는 구성 요소를 사용할 때 소스 코드는 변경 없이 성공적으로 컴파일됩니다.

ASP.NET Core

타이틀 이진 호환 가능 소스 호환 가능
ASP.NET Core 앱이 따옴표 붙은 숫자를 역직렬화함 ✔️
AzureAD.UI 및 AzureADB2C.UI API가 사용되지 않음 ✔️
BinaryFormatter serialization 메서드가 사용되지 않음 ✔️
엔드포인트 라우팅의 리소스가 HttpContext임 ✔️
Microsoft 접두사가 있는 Azure 통합 패키지가 제거됨 ✔️
Blazor: Blazor 앱에서 경로 우선순위 논리가 변경됨 ✔️
Blazor: 업데이트된 브라우저 지원 ✔️ ✔️
Blazor: 컴파일러에 의해 잘린 무효 공백 ✔️
Blazor: JSObjectReference 및 JSInProcessObjectReference 형식이 internal임 ✔️
Blazor: NuGet 패키지의 대상 프레임워크가 변경됨 ✔️
Blazor: ProtectedBrowserStorage 기능을 공유 프레임워크로 이동함 ✔️
Blazor: RenderTreeFrame 읽기 전용 퍼블릭 필드가 이제 속성임 ✔️
Blazor: 정적 웹 자산에 대한 유효성 검사 논리를 업데이트함 ✔️
브라우저에서 지원되지 않는 암호화 API ✔️
확장: 패키지 참조 변경 ✔️
Kestrel 및 IIS BadHttpRequestException 형식이 사용되지 않음 ✔️
IHttpClientFactory 로그 정수 상태 코드에서 생성된 HttpClient 인스턴스 ✔️
HttpSys: 클라이언트 인증서 재협상을 기본적으로 사용 안 함 ✔️
IIS: UrlRewrite 미들웨어 쿼리 문자열이 유지됨 ✔️
Kestrel: 기본적으로 검색되는 구성 변경 ✔️
Kestrel: 지원되는 기본 TLS 프로토콜 버전 변경됨 ✔️
Kestrel: 호환되지 않는 Windows 버전에서 TLS를 통한 HTTP/2 사용 안 함 ✔️ ✔️
Kestrel: 사용되지 않는 것으로 표시된 Libuv 전송 ✔️
ConsoleLoggerOptions에서 사용되지 않는 속성 ✔️
ResourceManagerWithCultureStringLocalizer 클래스 및 WithCulture 인터페이스 멤버가 제거됨 ✔️
Pubternal API가 제거됨 ✔️
요청 지역화 미들웨어에서 사용되지 않는 생성자가 제거됨 ✔️
미들웨어: 사용되지 않는 것으로 표시된 데이터베이스 오류 페이지 ✔️
예외 처리기 미들웨어가 원래 예외를 throw함 ✔️ ✔️
ObjectModelValidator가 Validate의 새 오버로드를 호출함 ✔️
쿠키 이름 인코딩이 제거됨 ✔️
IdentityModel NuGet 패키지 버전이 업데이트됨 ✔️
SignalR: MessagePack 허브 프로토콜 옵션 형식이 변경됨 ✔️
SignalR: MessagePack 허브 프로토콜이 이동됨 ✔️
UseSignalR 및 UseConnections 메서드가 제거됨 ✔️
CSV 콘텐츠 형식이 표준 규격으로 변경됨 ✔️

코드 분석

타이틀 이진 호환 가능 소스 호환 가능
CA1416 경고 ✔️
CA1417 경고 ✔️
CA1831 경고 ✔️
CA2013 경고 ✔️
CA2014 경고 ✔️
CA2015 경고 ✔️
CA2200 경고 ✔️
CA2247 경고 ✔️

핵심 .NET 라이브러리

타이틀 이진 호환 가능 소스 호환 가능
단일 파일 게시를 위한 어셈블리 관련 API 변경 ✔️
BinaryFormatter serialization 메서드가 사용되지 않음 ✔️
코드 액세스 보안 API가 사용되지 않음 ✔️
CreateCounterSetInstance가 InvalidOperationException을 throw함 ✔️
기본 ActivityIdFormat이 W3C임 ✔️
Environment.OSVersion이 올바른 버전을 반환함 ✔️
FrameworkDescription의 값이 .NET Core가 아니라 .NET임 ✔️
GAC API가 사용되지 않음 ✔️
하드웨어 내장 IsSupported 검사 ✔️
IntPtr 및 UIntPtr에서 IFormattable 구현 ✔️
LastIndexOf가 빈 검색 문자열을 처리함 ✔️
Unix에서 ASCII가 아닌 문자를 포함하는 URI 경로 ✔️
기본이 아닌 진단 ID를 사용하는 API 사용되지 않음 ✔️
ConsoleLoggerOptions에서 사용되지 않는 속성 ✔️
LINQ OrderBy.First의 복잡성 ✔️
OSPlatform 특성이 제거되었거나 특성 이름이 바뀜 ✔️
Microsoft.DotNet.PlatformAbstractions 패키지가 제거됨 ✔️
PrincipalPermissionAttribute가 사용되지 않음 ✔️
미리 보기 버전에서 매개 변수 이름 변경 ✔️
참조 어셈블리의 매개 변수 이름 변경 ✔️
원격 API가 사용되지 않음 ✔️
Activity.Tags 목록의 순서가 반대로 표시됨 ✔️
SSE 및 SSE2 비교 메서드가 NaN을 처리함 ✔️
Thread.Abort는 사용되지 않음 ✔️
Unix에서 UNC 경로의 URI 인식 ✔️
UTF-7 코드 경로가 사용되지 않음 ✔️
Vector2.Lerp 및 Vector4.Lerp의 동작 변경 ✔️
Vector<T>가 NotSupportedException을 throw함 ✔️

암호화

Entity Framework Core

EF Core 5.0의 호환성이 손상되는 변경

전역화

Interop

네트워킹

SDK

보안

직렬화

Windows Forms

WPF

타이틀 이진 호환 가능 소스 호환 가능
OutputType이 WinExe로 설정됨 ✔️
WPF 앱이 Microsoft.NET.Sdk를 사용함 ✔️

참고 항목