Atténuation : Vérifications des signes deux-points dans les chemins d’accès
À compter des applications qui ciblent .NET Framework 4.6.2, plusieurs modifications ont été apportées pour prendre en charge les chemins d’accès non pris en charge précédemment (à la fois en termes de longueur et de format). En particulier, les vérifications de bonne syntaxe de séparateur de lecteur (le signe deux-points) ont été rendues plus correctes.
Impact
Ces modifications bloquent certains chemins d’URI que les méthodes Path.GetDirectoryName et Path.GetPathRoot prenaient précédemment en charge.
Limitation des risques
Pour contourner le problème d’un chemin précédemment acceptable qui n’est plus pris en charge par les méthodes Path.GetDirectoryName et Path.GetPathRoot, effectuez les étapes suivantes :
Supprimez manuellement le schéma à partir d’une URL. Par exemple, supprimez
file://
à partir d’une URL.Passez l’URI à un constructeur Uri et récupérez la valeur de la propriété Uri.LocalPath.
Refusez la nouvelle normalisation de chemin d’accès en affectant à
Switch.System.IO.UseLegacyPathHandling
AppContext la valeurtrue
.<runtime> <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=true" /> </runtime>