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

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

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

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

ASP.NET Core

타이틀 이진 호환 가능 소스 호환 가능
API 컨트롤러 작업은 DI에서 매개 변수를 유추하려고 시도함 ✔️
ASPNET 접두사 환경 변수 우선 순위 ✔️ ✔️
원격 인증 공급자에 대한 AuthenticateAsync ✔️
WebAssembly 앱의 인증 ✔️
기본 인증 체계 ✔️
일부 Microsoft.AspNetCore.Mvc.Core 로그 메시지의 이벤트 ID가 변경됨 ✔️
대체 파일 엔드포인트 ✔️
IHubClients 및 IHubCallerClients는 멤버 숨기기 ✔️
Kestrel: 기본 HTTPS 바인딩이 제거됨 ✔️
Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv 및 libuv.dll이 제거됨
Microsoft.Data.SqlClient가 4.0.1로 업데이트됨 ✔️
미들웨어는 더 이상 null 요청 대리자가 있는 엔드포인트를 따르지 않음 ✔️
MVC의 모델 바인딩에서 빈 본문 검색이 변경됨 ✔️
출력 캐싱 API 변경
SignalR Hub 메서드는 DI에서 매개 변수를 확인하려고 시도함 ✔️

핵심 .NET 라이브러리

타이틀 이진 호환 가능 소스 호환 가능
기본 진단 ID를 사용하는 API 사용되지 않음 ✔️
기본이 아닌 진단 ID를 사용하는 API 사용되지 않음 ✔️
BinaryFormatter serialization API에서 컴파일러 오류를 생성 ✔️
BrotliStream은 정의되지 않은 CompressionLevel 값을 더 이상 허용하지 않음 ✔️
Visual Studio의 C++/CLI 프로젝트 ✔️
리플렉션 호출 API 예외에 대한 변경 내용 ✔️
수집 불가능한 AssemblyLoadContext의 수집 가능한 어셈블리 ✔️
DateTime 추가 메서드 정밀도 변경 ✔️ ✔️
NaN에 대한 메서드 동작 변경과 동일 ✔️
EventSource 콜백 동작 ✔️ ✔️
PatternContext<T>에 대한 제네릭 형식 제약 조건
레거시 FileStream 전략이 제거됨 ✔️
이전 프레임워크에 대한 라이브러리 지원
숫자 형식 문자열의 최대 전체 자릿수 ✔️
범위가 수정된 정규식 패턴 ✔️ ✔️
SerializationFormat.Binary는 사용되지 않습니다
System. Drawing.Common 구성 스위치가 제거됨 ✔️ ✔️
System.Runtime.CompilerServices.Unsafe NuGet 패키지 ✔️ ✔️
기호 링크의 시간 필드 ✔️
연결된 캐시 항목 추적 ✔️
BrotliStream에 대한 CompressionLevel 유효성 검사 ✔️

구성

타이틀 이진 호환 가능 소스 호환 가능
app.config의 System.diagnostics 항목 ✔️

암호화

타이틀 이진 호환 가능 소스 호환 가능
EnvelopedCms 암호 해독은 래핑을 두 번 해제하지 않음 ✔️
동적 X509ChainPolicy 검증 시간 ✔️
식별 이름의 X500DistinguishedName 구문 분석 ✔️

배포

타이틀 이진 호환 가능 소스 호환 가능
기본적으로 모든 어셈블리가 잘림 ✔️
다단계 조회가 사용하지 않도록 설정됨 ✔️
64비트 Windows의 x86 호스트 경로 ✔️ ✔️
TrimmerDefaultAction 더 이상 사용되지 않음 ✔️

Entity Framework Core

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

확장

타이틀 이진 호환 가능 소스 호환 가능
구성을 사전에 바인딩하면 값이 확장됨 ✔️ ✔️
Windows Shell에서 시작되는 앱에 대한 ContentRootPath ✔️
환경 변수 접두사 ✔️

전역화

타이틀 이진 호환 가능 소스 호환 가능
Windows Server에서 세계화 API가 ICU 라이브러리 사용 ✔️

Interop

타이틀 이진 호환 가능 소스 호환 가능
에뮬레이션의 동안의 RuntimeInformation.OSArchitecture ✔️

.NET MAUI

타이틀 이진 호환 가능 소스 호환 가능
생성자가 구체적 형식 대신 기본 인터페이스 허용 ✔️
흐름 방향 도우미 메서드가 제거됨
새 UpdateBackground 매개 변수 ✔️
ScrollToRequest 속성 이름이 변경됨
일부 Windows API가 제거됨

네트워킹

타이틀 이진 호환 가능 소스 호환 가능
AllowRenegotiation 기본값은 false임
Linux의 사용자 지정 ping 페이로드 ✔️
Socket.End 메서드가 ObjectDisposedException을 throw하지 않음 ✔️

SDK 및 MSBuild

타이틀 이진 호환 가능 소스 호환 가능
특정 프로젝트에 대한 자동 RuntimeIdentifier ✔️
게시 전용 자동 RuntimeIdentifier
CLI 콘솔 출력에서는 UTF-8을 사용함
완료 후 콘솔 인코딩이 UTF-8이 아님 ✔️
.NET 7에서사용자 지정 형식의 MSBuild serialization
병렬 SDK 설치
루트 폴더의 도구 매니페스트 ✔️ ✔️
.NET 7 SDK의 버전 요구 사항 ✔️ ✔️
dotnet test: -a--test-adapter-path 대신 별칭 --arch로 전환
dotnet test: -r--results-dir 대신 별칭 --runtime으로 전환
--output 옵션이 더 이상 솔루션 수준 명령에 유효하지 않음
SDK는 더 이상 ResolvePackageDependencies를 호출하지 않음 ✔️

직렬화

타이틀 이진 호환 가능 소스 호환 가능
DataContractSerializer는 -0을 역직렬화할 때 기호를 유지 ✔️
선행 또는 후행 공백을 가진 버전 형식 역직렬화 ✔️
JsonSerializerOptions 복사 생성자에 JsonSerializerContext가 포함됨 ✔️
개체 형식에 대한 다형 serialization ✔️
System.Text.Json 원본 생성기 대체 ✔️

Windows Forms

타이틀 이진 호환 가능 소스 호환 가능
폐기 및 경고 ✔️
일부 API가 ArgumentNullException을 throw함 ✔️

XML 및 XSLT

타이틀 이진 호환 가능 소스 호환 가능
XmlSecureResolver는 사용되지 않음

참고 항목