Unix 파일 경로의 백슬래시 매핑
백슬래시(\
) 문자는 Unix의 디렉터리 및 파일 이름에 유효합니다. .NET 8부터 네이티브 CoreCLR 런타임은 Unix에서 더 이상 \
문자를 디렉터리 구분 기호(슬래시(/
))로 변환하지 않습니다. 이 변경으로 인해 백슬래시 문자가 포함된 이름을 가진 경로에 .NET 애플리케이션을 찾을 수 있습니다. 또한 네이티브 런타임, dotnet
호스트, ilasm
및 ildasm
도구가 백슬래시 문자가 포함된 경로의 파일에 액세스할 수 있습니다.
이전 동작
네이티브 CoreCLR 런타임은 파일 경로의 백슬래시(\
) 문자를 Unix의 슬래시(/
)로 자동 변환했습니다.
새 동작
네이티브 CoreCLR 런타임은 Unix에서 파일 경로 문자를 변환하지 않습니다.
도입된 버전
.NET 8 미리 보기 1
호환성이 손상되는 변경의 형식
이 변경 사항은 동작 변경입니다.
변경 이유
이렇게 변경하지 않으면 백슬래시 문자가 포함된 디렉터리에 있는 .NET 앱이 시작되지 않습니다.
권장 작업
\
또는/
으로 하드코딩하는 대신 Path.DirectorySeparatorChar를 앱의 디렉터리 구분 기호로 사용합니다.dotnet
호스트, 호스팅 API,ilasm
및ildasm
도구에 전달하는 파일 경로에서 Unix의 디렉터리 구분 기호로/
을 사용합니다.- 다양한
DOTNET_xxx
환경 변수의 파일 경로에서 Unix의 디렉터리 구분 기호로/
을 사용합니다.
영향을 받는 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)
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET