Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Počínaje aplikacemi, které cílí na rozhraní .NET Framework 4.6.2, se normalizace cest v rozhraní .NET Framework změnila.
Co je normalizace cesty?
Normalizace cesty zahrnuje úpravu řetězce, který identifikuje cestu nebo soubor tak, aby odpovídal platné cestě v cílovém operačním systému. Normalizace obvykle zahrnuje:
Kanonizace komponent a oddělovačů adresářů.
Aplikování aktuálního adresáře na relativní cestu
Vyhodnocení relativního adresáře (
.) nebo nadřazeného adresáře (..) v cestěOříznutí zadaných znaků
Změny
Počínaje aplikacemi, které cílí na rozhraní .NET Framework 4.6.2, se normalizace cest změnila následujícími způsoby:
Modul runtime vzdoruje funkci GetFullPathName operačního systému za účelem normalizace cest.
Normalizace už nezahrnuje oříznutí konce segmentů adresáře (například mezeru na konci názvu adresáře).
Podpora syntaxe cesty zařízení v plné důvěře, včetně
\\.\, a pro rozhraní API pro vstupně-výstupní operace souborů v mscorlib.dll,\\?\.Modul runtime neověřuje cesty syntaxe zařízení.
Podporuje se použití syntaxe zařízení pro přístup k alternativním datovým proudům.
Dopad
U aplikací, které cílí na rozhraní .NET Framework 4.6.2 nebo novější, jsou tyto změny ve výchozím nastavení zapnuté. Měly by zlepšit výkon a zároveň umožnit metodám přístup k dříve nepřístupným cestám.
Tyto změny neovlivní aplikace, které cílí na rozhraní .NET Framework 4.6.1 a starší verze, ale jsou spuštěné v rozhraní .NET Framework 4.6.2 nebo novější.
Zmírnění
Aplikace, které cílí na rozhraní .NET Framework 4.6.2 nebo novější, se můžou odhlásit z této změny a používat starší normalizaci přidáním následujícího kódu do <oddílu runtime> konfiguračního souboru aplikace:
<runtime>
<AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=true" />
</runtime>
Aplikace, které cílí na rozhraní .NET Framework 4.6.1 nebo starší, ale jsou spuštěné v rozhraní .NET Framework 4.6.2 nebo novější, můžou povolit změny normalizace cest přidáním následujícího řádku do <oddílu runtime> souboru .configuration aplikace:
<runtime>
<AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false" />
</runtime>