FileStream-Legacystrategie entfernt
Der AppContext
-Schalter System.IO.UseNet5CompatFileStream
und die Möglichkeit, die Legacyimplementierung von FileStream zu verwenden, wurden entfernt.
Vorheriges Verhalten
Die Legacyimplementierung von FileStream
war verfügbar, und Sie konnten sie mithilfe des Schalters UseNet5CompatFileStream
oder der Umgebungsvariable DOTNET_SYSTEM_IO_USENET5COMPATFILESTREAM
auswählen.
Neues Verhalten
Ab .NET 7 können Sie die Legacyimplementierung von FileStream
nicht mehr verwenden.
Eingeführt in Version
.NET 7 Preview 1
Typ des Breaking Changes
Diese Änderung kann sich auf die binäre Kompatibilität auswirken.
Grund für die Änderung
Der Schalter UseNet5CompatFileStream
und die Umgebungsvariable DOTNET_SYSTEM_IO_USENET5COMPATFILESTREAM
waren in .NET 6 für den Fall enthalten, dass die neue Implementierung zu Breaking Changes führt. Alle Breaking Changes wurden jetzt behoben. Da die Änderungen von FileStream
zu keinen weiteren Fehlern führen, wurden der Kompatibilitätsmodus und damit der gesamte Legacycode entfernt, wodurch die Verwaltung der Codebasis erleichtert wird.
Empfohlene Maßnahme
Wenn Sie derzeit den Schalter (oder die Umgebungsvariable DOTNET_SYSTEM_IO_USENET5COMPATFILESTREAM
) verwenden, um Legacycode zu nutzen, und ein Upgrade auf .NET 7 durchführen, hat der Schalter keine Auswirkungen mehr und sollte entfernt werden.
Betroffene APIs
- 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()