Mitigación: comprobaciones de dos puntos en las rutas de acceso
A partir de las aplicaciones que tienen como destino .NET Framework 4.6.2, se han realizado una serie de cambios para admitir rutas de acceso que anteriormente no se admitían (en términos de longitud y formato). En concreto, las comprobaciones de la sintaxis de separador de la unidad correspondiente (dos puntos) se realizan de manera más correcta.
Impacto
Estos cambios bloquean algunas rutas del identificador URI que los métodos Path.GetDirectoryName y Path.GetPathRoot admitían anteriormente.
Mitigación
Para solucionar el problema de una ruta de acceso anteriormente aceptable que ya no es compatible con los métodos Path.GetDirectoryName y Path.GetPathRoot, puede llevar a cabo el procedimiento siguiente:
Quitar manualmente el esquema de una dirección URL. Por ejemplo, quitar
file://
de una dirección URL.Pasar el constructor Uri y recuperar el valor de la propiedad Uri.LocalPath.
Rechazar la nueva normalización de la ruta de acceso mediante el establecimiento del conmutador
Switch.System.IO.UseLegacyPathHandling
AppContext entrue
.<runtime> <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=true" /> </runtime>