Entschärfung: Überprüfen von Pfaden auf Doppelpunkte
Für Apps, die gezielt .NET Framework 4.6.2 und höhere Versionen verwenden, wurde eine Reihe von Änderungen vorgenommen, um zuvor nicht unterstützte Pfade zu unterstützen (im Hinblick auf Länge und Format). Insbesondere wurden Prüfungen auf ordnungsgemäße Syntax von Laufwerkstrennzeichen (den Doppelpunkt) strenger definiert.
Auswirkungen
Durch diese Änderungen werden einige URI-Pfade blockiert, die von den Methoden Path.GetDirectoryName und Path.GetPathRoot zuvor unterstützt wurden.
Minderung
Sie können folgendermaßen vorgehen, um das Problem von bisher gültigen Pfaden zu umgehen, die von den Methoden Path.GetDirectoryName und Path.GetPathRoot nicht mehr unterstützt werden:
Entfernen Sie manuell das Schema aus einer URL. Entfernen Sie beispielsweise
file://
aus einer URL.Übergeben Sie den URI an einen Uri-Konstruktor, und rufen Sie den Wert der Eigenschaft Uri.LocalPath ab.
Entscheiden Sie sich gegen die Normalisierung des neuen Pfades, indem Sie den Schalter
Switch.System.IO.UseLegacyPathHandling
AppContextauftrue
festlegen.<runtime> <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=true" /> </runtime>