다음을 통해 공유


.NET 10의 주요 변경 내용

앱을 .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

EF Core 10의 주요 변경 내용

Extensions

Title 변경 유형
BackgroundService는 모든 ExecuteAsync를 작업으로 실행합니다. 동작 변경
AnyKey를 사용하여 GetKeyedService() 및 GetKeyedServices()의 문제 해결 동작 변경
구성에서 유지되는 Null 값 동작 변경
콘솔 로그 출력에서 메시지가 더 이상 중복되지 않음 동작 변경
ProviderAliasAttribute가 Microsoft.Extensions.Logging.Abstractions 어셈블리로 이동됨 원본이 호환되지 않음
Microsoft.Extensions.Configuration의 트리밍 안전하지 않은 코드에서 DynamicallyAccessedMembers 특성이 제거됨 바이너리 비호환

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 변경 유형
.NET CLI --interactive 는 사용자 시나리오에서 기본값으로 true 설정됩니다. 동작 변경
dotnet CLI 명령은 명령과 관련이 없는 데이터를 stderr에 기록합니다. 동작 변경
.NET 도구 패키징은 RuntimeIdentifier 관련 도구 패키지를 만듭니다. 동작 변경
기본 워크로드 구성을 '느슨한 매니페스트'에서 '워크로드 세트' 모드로 동작 변경
코드 검사 EnableDynamicNativeInstrumentation 기본값은 false입니다. 동작 변경
dnx.ps1 파일은 더 이상 .NET SDK에 포함되지 않습니다. 원본이 호환되지 않음
dotnet new sln 기본값은 SLNX 파일 형식입니다. 동작 변경
dotnet package list 복원 수행 동작 변경
dotnet restore 전이적 패키지 감사 동작 변경
dotnet tool install --local 는 기본적으로 매니페스트를 만듭니다. 동작 변경
dotnet watch 동작 변경
project.json 지원되지 않음 dotnet restore 원본이 호환되지 않음
SHA-1 지문 지원이 중단됨 dotnet nuget sign 동작 변경
MSBUILDCUSTOMBUILDEVENTWARNING 우회 방법 삭제됨 동작 변경
MSBuild 사용자 지정 문화권 리소스 처리 동작 변경
NU1510은 NuGet에 의해 제거된 직접 참조에 대해 발생합니다. 원본이 호환되지 않음
런타임 자산이 없는 NuGet 패키지는 deps.json 원본이 호환되지 않음
버전이 없는 PackageReference에서 오류가 발생함 동작 변경
PrunePackageReference는 직접 정리 가능한 참조를 민영화합니다. 동작 변경
HTTP 경고가 dotnet package listdotnet package search에서 오류로 승격되었습니다 동작/소스 호환되지 않는 변경
NUGET_ENABLE_ENHANCED_HTTP_RETRY 환경 변수 제거됨 동작 변경
NuGet에서 잘못된 패키지 ID에 대한 오류를 기록합니다. 동작 변경
ToolCommandName 도구가 아닌 패키지에 대해 설정되지 않음 원본이 호환되지 않음

직렬화

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를 잘못 사용하면 애플리케이션이 충돌합니다. 소스 호환 불가/동작 변화