Mapování zpětného lomítka v cestách k souborům unix
Znaky zpětného lomítka (\
) jsou platné v názvech adresářů a souborů v unixovém systému. Od verze .NET 8 už nativní modul runtime CoreCLR nepřevádí \
znaky na oddělovače adresářů – lomítka (/
)) v unixu. Tato změna umožňuje, aby aplikace .NET byly umístěny na cestách s názvy, které obsahují znaky zpětného lomítka. Umožňuje také nativní modul runtime, dotnet
hostitele a ilasm
ildasm
nástroje přistupovat k souborům na cestách, které obsahují znaky zpětného lomítka.
Předchozí chování
Nativní modul runtime CoreCLR automaticky převedl zpětné lomítko (\
) v cestách k souborům na lomítka (/
) v unixu.
Nové chování
Nativní modul runtime CoreCLR nepřevádí žádné znaky cesty k souboru v systému Unix.
Zavedená verze
.NET 8 Preview 1
Typ zásadní změny
Tato změna je změna chování.
Důvod změny
Bez této změny se nespustí aplikace .NET umístěné v adresářích, které obsahují znaky zpětného lomítka.
Doporučená akce
- Používejte Path.DirectorySeparatorChar jako oddělovač adresářů v aplikaci místo jeho pevně zakódování na
\
nebo/
. - V cestách k souborům, které předáváte hostiteli
dotnet
, hostitelským rozhraním API aildasm
ilasm
nástrojům, použijte/
jako oddělovač adresářů v unixových cestách. - Slouží
/
jako oddělovač adresářů v unixových cestách k souborům v různýchDOTNET_xxx
proměnných prostředí.
Ovlivněná rozhraní API
- Hostování rozhraní 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)