Сопоставление обратной косой черты в путях к файлам Unix

Символы обратной косой черты допустимы\ в именах каталогов и файлов в Unix. Начиная с .NET 8 собственная среда выполнения CoreCLR больше не преобразует \ символы в разделители каталогов — косая черта (/)) в Unix. Это изменение позволяет приложениям .NET находиться по путям с именами, содержащими символы обратной косой черты. Он также позволяет собственной среде выполнения, dotnet узлу и ilasm ildasm средствам получать доступ к файлам на путях, содержащих символы обратной косой черты.

Прежнее поведение

Собственная среда выполнения CoreCLR автоматически преобразует символы обратной косой черты (\) в пути к файлам для переадресации косой черты (/) в Unix.

Новое поведение

Собственная среда выполнения CoreCLR не преобразует символы пути к файлам в Unix.

Представленные версии

.NET 8( предварительная версия 1)

Тип критического изменения

Это изменение поведения.

Причина изменения

Без этого изменения приложения .NET, расположенные в каталогах, содержащих символы обратной косой черты, не запускают.

  • Используйте Path.DirectorySeparatorChar в качестве разделителя каталогов в приложении, а не жесткое кодирование \ /.
  • Используйте / в качестве разделителя каталогов в Unix в путях к файлам, которые передаются dotnet узлу, размещению API и ilasm ildasm средствам.
  • Используйте / в качестве разделителя каталогов в Unix пути к файлам в различных DOTNET_xxx переменных среды.

Затронутые API