删除了旧版 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
更改没有引入其他 bug,所以删除了兼容性模式及其附带的所有旧版代码,降低了代码库的维护难度。
建议的操作
如果当前使用开关(或 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()