레거시 FileStream 전략이 제거됨
AppContext
스위치 System.IO.UseNet5CompatFileStream
및 레거시 FileStream 구현을 사용하는 기능이 제거되었습니다.
이전 동작
레거시 FileStream
구현을 사용할 수 있었고 UseNet5CompatFileStream
스위치 또는 DOTNET_SYSTEM_IO_USENET5COMPATFILESTREAM
환경 변수를 사용하여 옵트인할 수 있었습니다.
새 동작
.NET 7부터는 더 이상 레거시 FileStream
구현을 사용하도록 옵트인할 수 없습니다.
도입된 버전
.NET 7 미리 보기 1
호환성이 손상되는 변경의 형식
이 변경은 이진 호환성에 영향을 줄 수 있습니다.
변경 이유
새 구현으로 인해 호환성이 손상되는 변경이 발생하는 경우 UseNet5CompatFileStream
스위치 및 DOTNET_SYSTEM_IO_USENET5COMPATFILESTREAM
환경 변수는 .NET 6에 포함되었습니다. 이제 호환성이 손상되는 변경이 수정되었습니다. FileStream
변경에 의해 도입된 버그가 더 이상 없으므로 호환성 모드와 모든 레거시 코드가 제거되어 코드베이스를 더 쉽게 유지 관리할 수 있습니다.
권장 조치
현재 스위치(또는 DOTNET_SYSTEM_IO_USENET5COMPATFILESTREAM
환경 변수)를 사용하여 레거시 코드를 옵트인하고 .NET 7로 업그레이드하는 경우 스위치는 더 이상 영향을 주지 않으며 제거해야 합니다.
영향을 받는 API
- System.IO.FileStream
- System.IO.File.Create(String)
- System.IO.File.Create(String, Int32)
- System.IO.File.Create(String, Int32, FileOptions)
- System.IO.File.Create(String, Int32, FileOptions, FileSecurity)
- System.IO.File.Open(String, FileMode)
- System.IO.File.Open(String, FileStreamOptions)
- System.IO.File.Open(String, FileMode, FileAccess)
- System.IO.File.Open(String, FileMode, FileAccess, FileShare)
- System.IO.File.OpenRead(String)
- System.IO.File.OpenWrite(String)
- System.IO.FileSystemAclExtensions.Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)
- System.IO.FileInfo.Create()
- System.IO.FileInfo.Open
- System.IO.FileInfo.OpenRead()
- System.IO.FileInfo.OpenWrite()
참고 항목
.NET