Сопоставление обратной косой черты в путях к файлам 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
- Размещение API
- System.Runtime.InteropServices.DllImportAttribute.Value
- System.Runtime.InteropServices.NativeLibrary.Load
- System.Runtime.InteropServices.NativeLibrary.TryLoad
- System.Reflection.Assembly.LoadFrom
- System.Reflection.Assembly.LoadFile
- System.Reflection.Assembly.UnsafeLoadFrom(String)
- System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String)
- System.Runtime.Loader.AssemblyLoadContext.LoadFromNativeImagePath(String, String)
- System.Runtime.Loader.AssemblyLoadContext.LoadUnmanagedDllFromPath(String)