Entschärfung: Überprüfung von Pfaden auf DoppelpunkteMitigation: Path Colon Checks

Von Apps für die Zielplattform .NET Framework 4.6.2.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).Starting with apps that target the .NET Framework 4.6.2.NET Framework 4.6.2, a number of changes were made to support previously unsupported paths (both in terms of length and format). Insbesondere wurden Prüfungen auf ordnungsgemäße Syntax von Laufwerkstrennzeichen (den Doppelpunkt) strenger definiert.In particular, checks for the proper drive separator syntax (the colon) were made more correct.

AuswirkungenImpact

Durch diese Änderungen werden einige URI-Pfade blockiert, die von den Methoden Path.GetDirectoryName und Path.GetPathRoot zuvor unterstützt wurden.These changes block some URI paths the Path.GetDirectoryName and Path.GetPathRoot methods previously supported.

MinderungMitigation

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:To work around the problem of a previously acceptable path that is no longer supported by the Path.GetDirectoryName and Path.GetPathRoot methods, you can do the following:

  • Entfernen Sie manuell das Schema aus einer URL.Manually remove the scheme from a URL. Entfernen Sie beispielsweise file:// aus einer URL.For example, remove file:// from a URL.

  • Übergeben Sie den URI an einen Uri-Konstruktor, und rufen Sie den Wert der Uri.LocalPath-Eigenschaft ab.Pass the URI to a Uri constructor, and retrieve the value of the Uri.LocalPath property.

  • Entscheiden Sie sich gegen die Normalisierung des neuen Pfades, indem Sie den Schalter Switch.System.IO.UseLegacyPathHandlingAppContextauf true festlegen.Opt out of the new path normalization by setting the Switch.System.IO.UseLegacyPathHandlingAppContext switch to true.

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

Siehe auchSee Also

NeuausrichtungsänderungenRetargeting Changes