Comparteix a través de


Asignación de barra diagonal inversa en rutas de acceso de archivos Unix

Los caracteres de barra invertida (\) son válidos en nombres de directorio y archivo en Unix. A partir de .NET 8, el entorno de ejecución nativo de CoreCLR ya no convierte caracteres \ en separadores de directorios (barras inclinadas (/)— en Unix. Este cambio permite que las aplicaciones .NET se encuentren en rutas de acceso con nombres que contengan caracteres de barra invertida. También permite que el entorno de ejecución nativo, el host dotnet y las herramientas ilasm y ildasm accedan a los archivos de las rutas de acceso que contienen caracteres de barra invertida.

Comportamiento anterior

El entorno de ejecución de CoreCLR nativo convirtió automáticamente caracteres de barra invertida (\) en rutas de acceso de archivo a barras inclinadas (/) en Unix.

Comportamiento nuevo

El entorno de ejecución de CoreCLR nativo no convierte ningún carácter de ruta de acceso de archivo en Unix.

Versión introducida

.NET 8 Preview 1

Tipo de cambio importante

Este es un cambio de comportamiento.

Motivo del cambio

Sin este cambio, las aplicaciones .NET ubicadas en directorios que contienen caracteres de barra diagonal invertida no se inician.

  • Use Path.DirectorySeparatorChar como separador de directorios en la aplicación en lugar de codificarlo de forma rígida en \ o /.
  • Use / como separador de directorios en Unix en rutas de acceso de archivo que se pasan al host dotnet, las API de hospedaje y las herramientas ilasm y ildasm.
  • Use / como separador de directorios en Unix en rutas de acceso de archivo en diferentes variables de entorno de DOTNET_xxx.

API afectadas