앱을 .NET 8로 마이그레이션하는 경우 여기에 나열된 호환성이 손상되는 변경이 영향을 줄 수 있습니다. 변경 내용은 ASP.NET Core 또는 Windows Forms와 같은 기술 영역별로 그룹화됩니다.
이 문서에서는 각 호환성이 손상되는 변경을 이진 파일 비호환, 원본 비호환 또는 동작 변경으로 분류합니다.
이진 파일 비호환 - 새 런타임이나 구성 요소에 대해 실행할 때 기존 이진 파일의 동작이 크게 변경될 수 있습니다(예: 로드 또는 실행 실패). 그런 경우 다시 컴파일이 필요합니다.
원본 비호환 - 새 SDK 또는 구성 요소를 사용하여 다시 컴파일하거나 새 런타임을 대상으로 하는 경우 기존 소스 코드를 성공적으로 컴파일하려면 원본을 변경해야 할 수도 있습니다.
동작 변경 - 기존 코드 및 이진 파일은 런타임에 다르게 동작할 수 있습니다. 새로운 동작이 바람직하지 않은 경우 기존 코드를 업데이트하고 다시 컴파일해야 합니다.
ASP.NET Core
컨테이너
| 타이틀 | 변경 형식 |
|---|---|
| Alpine 이미지에서 제거된 'ca-certificates' 패키지 | 이진 파일 비호환 |
| Debian 12로 업그레이드된 Debian 컨테이너 이미지 | 이진 파일 비호환/동작 변경 |
| 기본 ASP.NET Core 포트가 8080으로 변경됨 | 동작 변경 |
| Alpine 및 Debian 이미지에서 제거된 Kerberos 패키지 | 이진 파일 비호환 |
| Alpine 이미지에서 ‘libintl’ 패키지가 제거됨 | 동작 변경 |
| 다중 플랫폼 컨테이너 태그는 Linux 전용임 | 동작 변경 |
| Linux 이미지의 새로운 '앱' 사용자 | 동작 변경 |
핵심 .NET 라이브러리
암호화
| 타이틀 | 변경 형식 | 도입 |
|---|---|---|
| macOS의 AesGcm 인증 태그 크기 | 동작 변경 | 미리 보기 1 |
| RSA.EncryptValue 및 RSA.DecryptValue는 더 이상 사용되지 않음 | 원본 비호환 | 미리 보기 1 |
배포
| 타이틀 | 변경 형식 |
|---|---|
| 호스트가 RID 관련 자산을 결정함 | 이진 파일 비호환/동작 변경 |
| .NET 모니터에는 distroless 이미지만 포함됨 | 동작 변경 |
| StripSymbols의 기본값은 true임 | 동작 변경 |
Entity Framework Core (엔티티 프레임워크 코어)
확장
전역화
| 타이틀 | 변경 형식 |
|---|---|
| 날짜 및 시간 변환기가 문화권 인수 적용 | 동작 변경 |
| TwoDigitYearMax 기본값은 2049임 | 동작 변경 |
Interop
| 타이틀 | 변경 형식 |
|---|---|
| CreateObjectFlags.Unwrap은 대상 인스턴스에서만 래핑 해제됨 | 동작 변경 |
| 사용자 지정 마샬러에 추가 멤버 필요 | 원본 비호환 |
| IDispatchImplAttribute API가 제거되었습니다. | 이진 파일 비호환 |
| JSFunctionBinding 암시적 공용 기본 생성자가 제거됨 | 이진 파일 비호환 |
| SafeHandle 형식에는 공용 생성자가 있어야 함 | 원본 비호환 |
Linux 네이티브 라이브러리 해상도는 더 이상 사용하지 않습니다. netcoredeps |
동작 변경 |
네트워킹
| 타이틀 | 변경 형식 |
|---|---|
| SendFile이 연결 없는 소켓에 대해 NotSupportedException을 throw함 | 동작 변경 |
mailto: URI의 사용자 정보를 비교합니다 |
동작 변경 |
반영
| 타이틀 | 변경 형식 |
|---|---|
| 함수 포인터 형식에 더 이상 IntPtr이 사용되지 않음 | 동작 변경 |
SDK (소프트웨어 개발 키트)
| 타이틀 | 변경 형식 |
|---|---|
| CLI 콘솔 출력에서는 UTF-8을 사용함 | 동작 변경/원본 및 이진 파일 비호환 |
| 완료 후 콘솔 인코딩이 UTF-8이 아님 | 동작 변경/이진 파일 비호환 |
| 컨테이너는 기본적으로 '최신' 태그를 사용함 | 동작 변경 |
| 'dotnet pack'은 릴리스 구성을 사용합니다. | 동작 변경/원본 비호환 |
| 'dotnet publish'는 릴리스 구성을 사용합니다. | 동작 변경/원본 비호환 |
| -getItem, -getProperty 및 -getTargetResult에 대한 중복 출력 | 동작 변경 |
System.Net.Http에 대한 암시적 using이 더 이상 추가되지 않음 |
동작 변경/원본 비호환 |
| MSBuild 사용자 지정 파생 빌드 이벤트가 더 이상 사용되지 않음 | 동작 변경 |
| MSBuild는 DOTNET_CLI_UI_LANGUAGE를 준수함 | 동작 변경 |
| 자체 포함되지 않은 런타임 관련 앱 | 원본/이진 파일 비호환 |
| --arch 옵션이 독립형을 의미하지 않음 | 동작 변경 |
| 'dotnet restore'는 보안 취약성 경고를 생성함 | 동작 변경 |
| 원본이 취약성 데이터를 제공하지 않는 경우 'dotnet list package'가 경고합니다. | 동작 변경 |
| SDK는 더 작은 RID 그래프를 사용함 | 동작 변경/원본 비호환 |
| DebugSymbols를 false로 설정하면 PDB 생성이 사용하지 않도록 설정됨 | 동작 변경 |
| .NET SDK에 포함된 소스 링크 | 원본 비호환 |
| .NET Standard 또는 .NET Framework에서는 트리밍을 사용할 수 없음 | 동작 변경 |
| .NET 도구에 대해 목록에 없는 패키지는 기본적으로 설치되지 않음 | 동작 변경 |
| 외부 빌드에서 가져온 .user 파일 | 동작 변경 |
| .NET 8 SDK의 버전 요구 사항 | 원본 비호환 |
직렬화
| 타이틀 | 변경 형식 |
|---|---|
| 대부분의 프로젝트에서 BinaryFormatter가 사용하지 않도록 설정됨 | 동작 변경 |
| PublishedTrimmed 프로젝트가 반사 기반 직렬화에 실패함 | 동작 변경 |
| 반사 기반 역직렬 변환기는 메타데이터를 적극적으로 확인함 | 동작 변경 |
윈도우 폼즈 (Windows Forms)
참고 항목
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET