다음을 통해 공유


.NET 9의 호환성을 깨뜨리는 변경 사항

앱을 .NET 9로 마이그레이션하는 경우, 여기에 나열된 호환성을 깨뜨리는 변경 사항이 영향을 미칠 수 있습니다. 변경 내용은 ASP.NET Core 또는 Windows Forms와 같은 기술 영역별로 그룹화됩니다.

이 문서에서는 각 호환성이 손상되는 변경을 이진 파일 비호환, 원본 비호환 또는 동작 변경으로 분류합니다.

  • 이진 파일 비호환 - 새 런타임이나 구성 요소에 대해 실행할 때 기존 이진 파일의 동작이 크게 변경될 수 있습니다(예: 로드 또는 실행 실패). 그런 경우 다시 컴파일이 필요합니다.

  • 원본 비호환 - 새 SDK 또는 구성 요소를 사용하여 다시 컴파일하거나 새 런타임을 대상으로 하는 경우 기존 소스 코드를 성공적으로 컴파일하려면 원본을 변경해야 할 수도 있습니다.

  • 동작 변경 - 기존 코드와 이진 파일은 런타임 시 다르게 동작할 수 있습니다. 새로운 동작이 바람직하지 않은 경우 기존 코드를 업데이트하고 다시 컴파일해야 합니다.

ASP.NET Core

타이틀 변경 형식 소개된 버전
DefaultKeyResolution.ShouldGenerateNewKey의 의미가 변경되었습니다. 동작 변경 미리 보기 3
Dev cert 내보내기가 더 이상 폴더를 만들지 않음 동작 변경 RC 1
HostBuilder는 개발 환경에서 ValidateOnBuild/ValidateScopes를 사용하도록 설정함 동작 변경 미리 보기 7
레거시 Mono 및 Emscripten API가 전역 네임스페이스로 내보내지 않습니다 원본이 호환되지 않음 미국 조지아주
여러 생성자가 있는 미들웨어 형식 동작 변경 RC 1

컨테이너

타이틀 변경 형식 소개된 버전
컨테이너 이미지는 더 이상 zlib을 설치하지 않습니다. 동작 변경 미리 보기 7
.NET Monitor 이미지가 버전 전용 태그로 간소화됨 동작 변경 미리 보기 5

핵심 .NET 라이브러리

타이틀 변경 형식 소개된 버전
CompressionLevel을 사용하여 ZipArchiveEntry를 추가하면 ZIP 중앙 디렉터리 헤더 범용 비트 플래그가 설정됨 동작 변경 미리 보기 5
비개방형 제네릭에 대한 UnsafeAccessor 지원이 변경됨 동작 변경 미리 보기 6
사용자 지정 진단 ID를 사용한 API 폐기 원본이 호환되지 않음 (다중)
StringValues 암시적 연산자에 영향을 미치는 모호한 오버로드 해석 원본이 호환되지 않음 미국 조지아주
BigInteger 최대 길이 동작 변경 미리 보기 6
BinaryReader.GetString()은 잘못된 형식의 시퀀스에서 "\uFFFD"를 반환합니다. 동작 변경 미리 보기 7
C# 오버로드 결정은 params 범위 형식 오버로드를 선호합니다 원본이 호환되지 않음
System.Void 배열 형식을 만들 수 없음 동작 변경 미리 보기 1
Equals()로 표시된 형식의 기본 GetHashCode()InlineArrayAttribute throw 동작 변경 미리 보기 6
EnumConverter는 등록된 형식이 열거형이 되도록 유효성을 검사합니다. 동작 변경 미리 보기 7
FromKeyedServicesAttribute는 키가 지정되지 않은 매개 변수를 더 이상 삽입하지 않음 동작 변경 RC 1
IncrementingPollingCounter 초기 콜백은 비동기적임 동작 변경 RC 1
인라인 배열 구조체 크기 제한이 적용됨 동작 변경 미리 보기 1
InMemoryDirectoryInfo는 파일 앞에 rootDir을 추가 동작 변경 미리 보기 1
정수를 사용하는 새로운 TimeSpan.From*() 오버로드 원본이 호환되지 않음 미리 보기 3
일부 OOB 패키지의 새 버전 원본이 호환되지 않음 미리 보기 5
RuntimeHelpers.GetSubArray가 다른 형식을 반환함 동작 변경 미리 보기 1
String.Trim(params ReadOnlySpan<char>) 오버로드가 제거됨 원본/이진 파일 비호환 미국 조지아주
빈 환경 변수에 대한 지원 동작 변경 미리 보기 6
ZipArchiveEntry 이름 및 주석은 UTF8 플래그를 따름 동작 변경 RC 1

암호화

타이틀 변경 형식 소개된 버전
API가 System.Security.Cryptography.Pkcs netstandard2.0에서 제거되었습니다 원본이 호환되지 않음 미국 조지아주
SafeEvpPKeyHandle.DuplicateHandle은 핸들의 참조를 증가시킴 동작 변경 미리 보기 7
일부 X509Certificate2 및 X509Certificate 생성자는 사용되지 않음 원본이 호환되지 않음 미리 보기 7
Windows 프라이빗 키 수명 단순화 동작 변경 미리 보기 7

배포

타이틀 변경 형식 소개된 버전
사용 중단된 데스크톱 Windows/macOS/Linux MonoVM 런타임 패키지 원본이 호환되지 않음 미리 보기 7

Interop

타이틀 변경 형식 소개된 버전
기본적으로 지원되는 CET 바이너리 비호환 미리 보기 6

JIT 컴파일러

타이틀 변경 형식 소개된 버전
부동 소수점에서 정수로의 변환이 포화 상태입니다 동작 변경 미리 보기 4
일부 SVE API가 제거됨 원본이 호환되지 않음 RC 2

네트워킹

타이틀 변경 형식 소개된 버전
API 사용 중단 원본이 호환되지 않음 미리 보기 6
HttpClient 메트릭은 무조건 보고 server.port 합니다. 동작 변경 미리 보기 7
HttpClientFactory 로깅은 기본적으로 헤더 값을 수정함 동작 변경 RC 1
HttpClientFactory는 SocketsHttpHandler를 기본 처리기로 사용합니다. 동작 변경 미리 보기 6
HttpListenerRequest.UserAgent가 null 허용임 원본이 호환되지 않음 미리 보기 1
HttpClient EventSource 이벤트의 URI 쿼리 수정 동작 변경 미리 보기 7
IHttpClientFactory 로그에서 URI 쿼리 수정 동작 변경 미리 보기 7

SDK 및 MSBuild

타이틀 변경 형식 소개된 버전
dotnet sln add 잘못된 파일 이름 허용하지 않습니다. 동작 변경 9.0.2xx
dotnet watch이전 프레임워크에 대한 핫 다시 로드 호환되지 않음 동작 변경 RC 1
dotnet workload 명령 출력 변경 동작 변경 미리 보기 1
installer 리포지토리 버전이 더 이상 문서화되지 않음 동작 변경 미리 보기 5
MSBuild 사용자 지정 문화권 리소스 처리 동작 변경 9.0.200/9.0.300
새 기본 RID는 .NET Framework 대상으로 지정할 때 사용됩니다. 원본이 호환되지 않음 미국 조지아주
터미널 로거가 기본값임 동작 변경 미리 보기 1
.NET 9 SDK에 대한 버전 요구 사항 원본이 호환되지 않음 미국 조지아주
.NET Standard 1.x 대상에 대해 내보낸 경고 원본이 호환되지 않음 미리 보기 6
.NET 7 대상에 대해 내보낸 경고 원본이 호환되지 않음 미국 조지아주

직렬화

타이틀 변경 형식 소개된 버전
BinaryFormatter는 항상 throw함 동작 변경 미리 보기 6
Nullable JsonDocument 속성은 JsonValueKind.Null로 역직렬화됩니다. 동작 변경 미리 보기 1
System.Text.Json 메타데이터 판독기가 이제 메타데이터 속성 이름의 이스케이프를 해제합니다 동작 변경 미국 조지아주

윈도우 폼즈 (Windows Forms)

타이틀 변경 형식 소개된 버전
BindingSource.SortDescriptions가 null을 반환하지 않음 동작 변경 미리 보기 1
null 가능성 어노테이션 변경 원본이 호환되지 않음 미리 보기 1
ComponentDesigner.Initialize가 ArgumentNullException을 throw함 동작 변경 미리 보기 1
DataGridViewRowAccessibleObject.Name 시작 행 인덱스 동작 변경 미리 보기 1
IMsoComponent 지원은 선택 사항입니다 동작 변경 미리 보기 2
새 보안 분석기 원본이 호환되지 않음 RC 1
DataGridView가 null인 경우 예외 없음 동작 변경 미리 보기 1
PictureBox에서 HttpClient 예외 발생 동작 변경 미리 보기 6
StatusStrip은 다른 기본 렌더러 사용합니다. 동작 변경 미국 조지아주

WPF (Windows 프레젠테이션 파운데이션)

타이틀 변경 형식 소개된 버전
GetXmlNamespaceMaps 형식 변경 동작 변경/원본 비호환 미리 보기 3

참조