Partilhar via


Mapeamento de barra invertida em caminhos de arquivo Unix

Os caracteres Backslash (\) são válidos em nomes de diretórios e arquivos no Unix. A partir do .NET 8, o tempo de execução nativo do CoreCLR não converte \ mais caracteres em separadores de diretório — barras/ () — no Unix. Essa alteração permite que os aplicativos .NET sejam localizados em caminhos com nomes que contêm caracteres de barra invertida. Ele também permite que o tempo de execução nativo, dotnet o host e as ilasm ferramentas e ildasm acessem arquivos em caminhos que contêm caracteres de barra invertida.

Comportamento anterior

O tempo de execução nativo do CoreCLR converteu automaticamente caracteres de barra invertida (\) em caminhos de arquivo para adiantar barras (/) no Unix.

Novo comportamento

O tempo de execução nativo do CoreCLR não converte nenhum caractere de caminho de arquivo no Unix.

Versão introduzida

.NET 8 Visualização 1

Tipo de mudança de rutura

Esta mudança é uma mudança comportamental.

Razão para a alteração

Sem essa alteração, os aplicativos .NET localizados em diretórios que contêm caracteres de barra invertida falham ao iniciar.

  • Use Path.DirectorySeparatorChar como um separador de diretório em seu aplicativo em vez de codificá-lo para \ ou /.
  • Use / como um separador de diretório no Unix em caminhos de arquivo que você passa para o dotnet host, APIs de ildasm hospedagem e ilasm ferramentas.
  • Use / como um separador de diretório no Unix em caminhos de arquivo em várias DOTNET_xxx variáveis de ambiente.

APIs afetadas