Mapeamento de barra invertida em caminhos de arquivo UNIX

Caracteres de barra invertida (\) são válidos em diretórios e nomes de arquivo no Unix. Começando no .NET 8, o runtime nativo do CoreCLR não converte mais caracteres \ em separadores de diretório — barras (/)— no Unix. Essa alteração permite que aplicativos .NET sejam localizados em caminhos com nomes que contêm caracteres de barra invertida. Também permite que o runtime nativo, o host dotnet e as ferramentas ilasm e ildasm acessem arquivos em caminhos que contêm caracteres de barra invertida.

Comportamento anterior

O runtime do CoreCLR nativo convertia automaticamente caracteres de barra invertida (\) nos caminhos de arquivo em barras (/) no Unix.

Novo comportamento

O runtime do CoreCLR nativo não converte caracteres de caminho de arquivo no Unix.

Versão introduzida

.NET 8 versão prévia 1

Tipo de alteração interruptiva

Esta é uma alteração comportamental.

Motivo da alteração

Sem essa alteração, aplicativos .NET em diretórios que contêm caracteres de barra invertida não são iniciados.

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

APIs afetadas