缓解:路径冒号检查

自面向 .NET Framework 4.6.2 的应用起,为了支持以前不受支持的路径,执行了大量更改(无论是在长度方面还是在格式方面)。 特别是,能够更加准确地检查驱动器分隔符语法(冒号)的用法是否正确。

影响

这些更改阻止了 Path.GetDirectoryNamePath.GetPathRoot 方法以前支持的一些 URI 路径。

缓解

若要解决 Path.GetDirectoryNamePath.GetPathRoot 方法不再支持以前可接受的路径的问题,可执行以下操作:

  • 从 URL 中手动删除协议。 例如,从 URL 中删除 file://

  • 将 URI 传递到 Uri 构造函数,并检索 Uri.LocalPath 属性的值。

  • 通过将 Switch.System.IO.UseLegacyPathHandlingAppContext 开关设置为 true 来选择禁用新的路径规范化。

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

请参阅