앱을 .NET 10으로 마이그레이션하는 경우 여기에 나열된 주요 변경 내용이 영향을 줄 수 있습니다. 변경 내용은 ASP.NET Core 또는 Windows Forms와 같은 기술 영역별로 그룹화됩니다.
이 문서에서는 각 변경 사항을 이진 비호환적인 , 소스 비호환적인 , 혹은 동작 변경 으로 분류합니다.
이진 호환되지 않는 - 새 런타임 또는 구성 요소에 대해 실행하는 경우 기존 이진 파일은 로드 또는 실행 실패와 같은 동작의 호환성이 손상되는 변경이 발생할 수 있으며, 이 경우 다시 컴파일이 필요할 수 있습니다.
소스 호환되지 않는 - 새 SDK 또는 구성 요소를 사용하여 다시 컴파일하거나 새 런타임을 대상으로 하는 경우 기존 소스 코드를 성공적으로 컴파일하려면 소스 변경이 필요할 수 있습니다.
동작 변경 - 기존 코드 및 이진 파일은 런타임에 다르게 동작할 수 있습니다. 새 동작이 바람직하지 않은 경우 기존 코드를 업데이트하고 다시 컴파일해야 합니다.
Note
이 문서는 진행 중인 작업입니다. .NET 10의 주요 변경 내용의 전체 목록은 아닙니다.
ASP.NET Core
| Title | 변경 유형 |
|---|---|
| 알려진 API 엔드포인트에 사용할 수 없는 쿠키 로그인 리디렉션 | 동작 변경 |
| WithOpenApi 확장 메서드 사용 중단 | 원본이 호환되지 않음 |
| TryHandleAsync가 true를 반환할 때 예외 진단이 표시되지 않습니다. | 동작 변경 |
| IActionContextAccessor 및 ActionContextAccessor는 사용되지 않습니다. | 소스 호환 불가/동작 변화 |
| IncludeOpenAPIAnalyzers 속성 및 MVC API 분석기는 더 이상 사용되지 않습니다. | 원본이 호환되지 않음 |
| IPNetwork 및 ForwardedHeadersOptions.KnownNetworks는 더 이상 사용되지 않습니다. | 원본이 호환되지 않음 |
| Microsoft.Extensions.ApiDescription.Client 패키지가 사용되지 않음 | 원본이 호환되지 않음 |
| Razor 런타임 컴파일이 사용되지 않음 | 원본이 호환되지 않음 |
| WebHostBuilder, IWebHost 및 WebHost는 사용되지 않습니다. | 원본이 호환되지 않음 |
Containers
| Title | 변경 유형 |
|---|---|
| 기본 .NET 이미지는 Ubuntu 사용합니다. | 동작 변경 |
핵심 .NET 라이브러리
| Title | 변경 유형 |
|---|---|
| ActivitySource.CreateActivity 및 ActivitySource.StartActivity 동작 변경 | 동작 변경 |
| Arm64 SVE 비장애 로드에는 마스크가 필요합니다. | 이진/소스 호환되지 않음 |
| BufferedStream.WriteByte는 더 이상 암시적 플러시를 수행하지 않습니다. | 동작 변경 |
| 스팬 매개 변수 을 사용한 C# 14 오버로드 해석 | 동작 변경 |
| 제네릭 수학의 일관된 시프트 동작 | 동작 변경 |
| W3C 표준으로 업데이트된 기본 추적 컨텍스트 전파자 | 동작 변경 |
| DriveInfo.DriveFormat은 Linux 파일 시스템 형식을 반환합니다. | 동작 변경 |
| DefaultValueAttribute ctor에서 DynamicallyAccessedMembers 주석 삭제됨 | 이진/소스 호환되지 않음 |
| InlineArray에서 명시적 구조체 크기가 허용되지 않음 | 바이너리 비호환 |
| FilePatternMatch.Stem이 nullable이 아닌 것으로 변경됨 | 소스 호환 불가/동작 변화 |
| GnuTarEntry 및 PaxTarEntry는 기본적으로 atime 및 ctime을 더 이상 포함하지 않습니다. | 동작 변경 |
| LDAP DirectoryControl 구문 분석이 이제 더 엄격해졌습니다 | 동작 변경 |
| MacCatalyst 버전 정규화 | 동작 변경 |
| .NET 런타임은 더 이상 기본 종료 신호 처리기를 제공하지 않습니다. | 동작 변경 |
| System.Linq.AsyncEnumerable는 핵심 라이브러리에 포함되었습니다 | 원본이 호환되지 않음 |
| Type.MakeGenericSignatureType 인수 유효성 검사 | 동작 변경 |
Cryptography
| Title | 변경 유형 |
|---|---|
| CompositeMLDsa가 draft-08로 업데이트됨 | 동작 변경 |
| CoseSigner.Key는 null일 수 있습니다. | 동작/소스 호환되지 않는 변경 |
| MLDsa 및 SlhDsa 'SecretKey' 멤버 이름이 바뀌었습니다. | 원본이 호환되지 않음 |
| OpenSSL 암호화 기본 형식은 macOS에서 지원되지 않습니다. | 동작 변경 |
| Unix에 OpenSSL 1.1.1 이상이 필요합니다. | 동작 변경 |
| X500DistinguishedName의 유효성 검사가 더 엄격해졌습니다 | 동작 변경 |
| X509Certificate 및 PublicKey 키 매개 변수는 null일 수 | 동작/소스 호환되지 않는 변경 |
| 환경 변수 이름이 DOTNET_OPENSSL_VERSION_OVERRIDE로 변경되었습니다 | 동작 변경 |
Entity Framework Core
Extensions
Globalization
| Title | 변경 유형 |
|---|---|
| 환경 변수 이름이 DOTNET_ICU_VERSION_OVERRIDE로 변경되었습니다 | 동작 변경 |
설치 도구
| Title | 변경 유형 |
|---|---|
| VS Code용 dotnet.acquire API가 더 이상 항상 최신 다운로드되지 않음 | 동작 변경 |
Interop
| Title | 변경 유형 |
|---|---|
| IDispatchEx COM 개체를 IReflect로 캐스팅 실패 | 동작 변경 |
| 단일 파일 앱은 더 이상 실행 파일 디렉터리에서 네이티브 라이브러리를 찾지 않습니다. | 동작 변경 |
| DllImportSearchPath.AssemblyDirectory를 지정하면 어셈블리 디렉터리만 검색됩니다. | 동작 변경 |
Networking
| Title | 변경 유형 |
|---|---|
| PublishTrimmed에서 기본적으로 사용하지 않도록 설정된 HTTP/3 지원 | 원본이 호환되지 않음 |
| 브라우저 HTTP 클라이언트에서 기본적으로 사용하도록 설정된 스트리밍 HTTP 응답 | 동작 변경 |
Uri 길이 제한 제거됨 |
동작 변경 |
Reflection
| Title | 변경 유형 | 소개된 버전 |
|---|---|---|
| InvokeMember/FindMembers/DeclaredMembers에서 더 제한된 주석 | 동작/소스 호환되지 않음 |
SDK 및 MSBuild
직렬화
| Title | 변경 유형 |
|---|---|
| System.Text.Json이 속성 이름 충돌을 확인합니다. | 동작 변경 |
| XmlSerializer는 더 이상 ObsoleteAttribute로 표시된 속성을 무시하지 않습니다. | 동작 변경 |
Windows Forms
| Title | 변경 유형 |
|---|---|
| API 사용 중지 | 원본이 호환되지 않음 |
| WPF와 WinForms를 모두 참조하는 애플리케이션은 MenuItem과 ContextMenu 형식을 명확하게 구분해야 합니다. | 원본이 호환되지 않음 |
| HtmlElement.InsertAdjacentElement의 매개변수 이름 변경 | 원본이 호환되지 않음 |
| TreeView 확인란 이미지 잘림 | 동작 변경 |
| StatusStrip은 기본적으로 System RenderMode를 | 동작 변경 |
| System.Drawing OutOfMemoryException이 ExternalException으로 변경됨 | 동작 변경 |
WPF(Windows Presentation Foundation)
| Title | 변경 유형 |
|---|---|
| 빈 ColumnDefinitions 및 RowDefinitions는 허용되지 않습니다. | 원본이 호환되지 않음 |
| DynamicResource를 잘못 사용하면 애플리케이션이 충돌합니다. | 소스 호환 불가/동작 변화 |
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET