.NET 9의 호환성이 손상되는 변경
앱을 .NET 9로 마이그레이션하는 경우 여기에 나열된 호환성이 손상되는 변경이 영향을 줄 수 있습니다. 변경 내용은 ASP.NET Core 또는 Windows Forms와 같은 기술 영역별로 그룹화됩니다.
이 문서에서는 각 호환성이 손상되는 변경을 이진 파일 비호환, 원본 비호환 또는 동작 변경으로 분류합니다.
이진 파일 비호환 - 새 런타임이나 구성 요소에 대해 실행할 때 기존 이진 파일의 동작이 크게 변경될 수 있습니다(예: 로드 또는 실행 실패). 그런 경우 다시 컴파일이 필요합니다.
원본 비호환 - 새 SDK 또는 구성 요소를 사용하여 다시 컴파일하거나 새 런타임을 대상으로 하는 경우 기존 소스 코드를 성공적으로 컴파일하려면 원본을 변경해야 할 수도 있습니다.
동작 변경 - 기존 코드와 이진 파일은 런타임 시 다르게 동작할 수 있습니다. 새로운 동작이 바람직하지 않은 경우 기존 코드를 업데이트하고 다시 컴파일해야 합니다.
참고 항목
이 문서는 작성 중입니다. .NET 9의 호환성이 손상되는 변경의 완전한 목록이 아닙니다. 여전히 게시 보류 중인 호환성이 손상되는 변경을 쿼리하려면 .NET의 문제를 참조하세요.
ASP.NET Core
타이틀 | 변경 형식 | 도입된 버전 |
---|---|---|
DefaultKeyResolution.ShouldGenerateNewKey의 의미가 변경되었습니다. | 동작 변경 | 미리 보기 3 |
HostBuilder는 개발 환경에서 ValidateOnBuild/ValidateScopes를 사용하도록 설정함 | 동작 변경 | 미리 보기 7 |
컨테이너
타이틀 | 변경 형식 | 도입된 버전 |
---|---|---|
.NET 9 컨테이너 이미지는 더 이상 zlib를 설치하지 않음 | 동작 변경 | 미리 보기 7 |
핵심 .NET 라이브러리
타이틀 | 변경 형식 | 도입된 버전 |
---|---|---|
CompressionLevel을 사용하여 ZipArchiveEntry를 추가하면 ZIP 중앙 디렉터리 헤더 범용 비트 플래그가 설정됨 | 동작 변경 | 미리 보기 5 |
비개방형 제네릭에 대한 UnsafeAccessor 지원이 변경됨 | 동작 변경 | 미리 보기 6 |
사용자 지정 진단 ID를 사용한 API 폐기 | 원본이 호환되지 않음 | (다중) |
BigInteger 최대 길이 | 동작 변경 | 미리 보기 6 |
BinaryReader.GetString()은 잘못된 형식의 시퀀스에서 "\uFFFD"를 반환합니다. | 동작 변경 | 미리 보기 7 |
System.Void 배열 형식을 만들 수 없음 | 동작 변경 | 미리 보기 1 |
다음으로 표시된 형식에 대한 기본 Equals() 및 GetHashCode() throw InlineArrayAttribute |
동작 변경 | 미리 보기 6 |
EnumConverter는 등록된 형식이 열거형이 되도록 유효성을 검사합니다. | 동작 변경 | 미리 보기 7 |
FromKeyedServicesAttribute는 키가 지정되지 않은 매개 변수를 더 이상 삽입하지 않음 | 동작 변경 | RC 1 |
IncrementingPollingCounter 초기 콜백은 비동기적임 | 동작 변경 | RC 1 |
인라인 배열 구조체 크기 제한이 적용됨 | 동작 변경 | 미리 보기 1 |
InMemoryDirectoryInfo는 파일 앞에 rootDir을 추가 | 동작 변경 | 미리 보기 1 |
정수를 가지는 New TimeSpan.From*() 오버로드 | 원본이 호환되지 않음 | 미리 보기 3 |
RuntimeHelpers.GetSubArray가 다른 형식을 반환함 | 동작 변경 | 미리 보기 1 |
String.Trim(params ReadOnlySpan<char>) 오버로드가 제거됨 | 원본/이진 파일 비호환 | GA |
빈 환경 변수에 대한 지원 | 동작 변경 | 미리 보기 6 |
ZipArchiveEntry 이름 및 주석은 UTF8 플래그를 따름 | 동작 변경 | RC 1 |
암호화
타이틀 | 변경 형식 | 도입된 버전 |
---|---|---|
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 workload 명령 출력 변경 |
동작 변경 | 미리 보기 1 |
installer 리포지토리 버전이 더 이상 문서화되지 않음 |
동작 변경 | 미리 보기 5 |
터미널 로거가 기본값임 | 동작 변경 | 미리 보기 1 |
.NET Standard 1.x에 대해 내보낸 경고 | 원본이 호환되지 않음 | 미리 보기 6 |
직렬화
타이틀 | 변경 형식 | 도입된 버전 |
---|---|---|
BinaryFormatter는 항상 throw함 | 동작 변경 | 미리 보기 6 |
Windows Forms
타이틀 | 변경 형식 | 도입된 버전 |
---|---|---|
BindingSource.SortDescriptions가 null을 반환하지 않음 | 동작 변경 | 미리 보기 1 |
Null 허용 여부 주석 변경 내용 | 원본이 호환되지 않음 | 미리 보기 1 |
ComponentDesigner.Initialize가 ArgumentNullException을 throw함 | 동작 변경 | 미리 보기 1 |
DataGridViewRowAccessibleObject.Name 시작 행 인덱스 | 동작 변경 | 미리 보기 1 |
IMsoComponent 지원 옵트인 | 동작 변경 | Preview 2 |
새 보안 분석기 | 원본이 호환되지 않음 | RC 1 |
DataGridView가 null인 경우 예외 없음 | 동작 변경 | 미리 보기 1 |
PictureBox에서 HttpClient 예외 발생 | 동작 변경 | 미리 보기 6 |
WPF
타이틀 | 변경 형식 | 도입된 버전 |
---|---|---|
GetXmlNamespaceMaps 형식 변경 |
동작 변경/원본 비호환 | 미리 보기 3 |
참고 항목
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET