Entschärfung: Unterstützung für lange Pfade

Von Apps für die Zielplattform .NET Framework 4.6.2 an lösen E/A-Methoden des Dateisystems nicht mehr automatisch eine PathTooLongException aus, wenn ein Pfad oder ein vollqualifizierter Dateiname 260 (oder MAX_PATH) Zeichen überschreitet. Stattdessen werden lange Pfade mit bis zu 32.000 Zeichen unterstützt.

Auswirkungen

Für die Zielplattform .NET Framework 4.6.2 neu kompilierte Anwendungen, die zuvor automatisch eine PathTooLongException-Ausnahme auslösten, wenn ein Pfad die Länge von 260 Zeichen überschritt, lösen jetzt nur unter den folgenden Bedingungen eine PathTooLongException aus:

  • Die Länge des Pfads umfasst mehr als Int16.MaxValue (32.767) Zeichen.

  • Das Betriebssystem gibt COR_E_PATHTOOLONG oder einen dazu äquivalenten Wert zurück.

Das Legacyverhalten für Apps mit der Zielplattform .NET Framework 4.6.1 und früher ist, dass die Runtime automatisch eine PathTooLongException auslöst, wenn ein Pfad die Länge von 260 Zeichen überschreitet.

Problemumgehung

Für Apps mit der Zielplattform .NET Framework 4.6.2 können Sie sich gegen die Unterstützung von langen Pfaden entscheiden, wenn sie nicht erwünscht ist, indem Sie Folgendes zum Abschnitt <runtime> Ihrer app.config-Datei hinzufügen:

<runtime>   
   <AppContextSwitchOverrides value="Switch.System.IO.BlockLongPaths=true" />   
</runtime>  

Anwendungen, die für frühere Versionen von .NET Framework vorgesehen sind, aber unter .NET Framework 4.6.2 oder höher ausgeführt werden, erlauben die Entscheidung für die Unterstützung von langen Pfaden, indem Folgendes zum Abschnitt <runtime> der app.config-Datei hinzugefügt wird:

<runtime>   
   <AppContextSwitchOverrides value="Switch.System.IO.BlockLongPaths=false" />   
</runtime>  

Siehe auch

Neuausrichtungsänderungen