Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Символы обратной косой черты допустимы\ в именах каталогов и файлов в Unix. Начиная с .NET 8 собственная среда выполнения CoreCLR больше не преобразует \ символы в разделители каталогов — косая черта (/)) в Unix. Это изменение позволяет приложениям .NET находиться по путям с именами, содержащими символы обратной косой черты. Он также позволяет собственной среде выполнения, dotnet узлу и ilasmildasm средствам получать доступ к файлам на путях, содержащих символы обратной косой черты.
Прежнее поведение
Собственная среда выполнения CoreCLR автоматически преобразует символы обратной косой черты (\) в пути к файлам для переадресации косой черты (/) в Unix.
Новое поведение
Собственная среда выполнения CoreCLR не преобразует символы пути к файлам в Unix.
Представленные версии
.NET 8( предварительная версия 1)
Тип критического изменения
Причина изменения
Без этого изменения приложения .NET, расположенные в каталогах, содержащих символы обратной косой черты, не запускают.
Рекомендуемое действие
- Используйте Path.DirectorySeparatorChar в качестве разделителя каталогов в приложении, а не жесткое кодирование
\/. - Используйте
/в качестве разделителя каталогов в Unix в путях к файлам, которые передаютсяdotnetузлу, размещению API иilasmildasmсредствам. - Используйте
/в качестве разделителя каталогов в 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)