Entschärfung: Überprüfung von Pfaden auf Doppelpunkte

Von Apps für die Zielplattform .NET Framework 4.6.2 an 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 <xref:System.IO.Path.GetDirectoryName%2A?displayProperty=fullName> und <xref:System.IO.Path.GetPathRoot%2A?displayProperty=fullName> zuvor unterstützt wurden.

Problemumgehung

Sie können folgendermaßen vorgehen, um das Problem von bisher gültigen Pfaden zu umgehen, die von den Methoden <xref:System.IO.Path.GetDirectoryName%2A?displayProperty=fullName> und <xref:System.IO.Path.GetPathRoot%2A?displayProperty=fullName> 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 <xref:System.Uri>-Konstruktor, und rufen Sie den Wert der <xref:System.Uri.LocalPath%2A?displayProperty=fullName>-Eigenschaft ab.

  • Entscheiden Sie sich gegen die Normalisierung des neuen Pfades, indem Sie den Schalter Switch.System.IO.UseLegacyPathHandling<xref:System.AppContext>auf true festlegen.

    <runtime>  
        <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=true" />    
    </runtime>  
    

Siehe auch

Neuausrichtungsänderungen