缓解:路径冒号检查
自面向 .NET Framework 4.6.2 的应用起,为了支持以前不受支持的路径,执行了大量更改(无论是在长度方面还是在格式方面)。 特别是,能够更加准确地检查驱动器分隔符语法(冒号)的用法是否正确。
影响
这些更改阻止了 Path.GetDirectoryName 和 Path.GetPathRoot 方法以前支持的一些 URI 路径。
缓解
若要解决 Path.GetDirectoryName 和 Path.GetPathRoot 方法不再支持以前可接受的路径的问题,可执行以下操作:
从 URL 中手动删除协议。 例如,从 URL 中删除
file://
。将 URI 传递到 Uri 构造函数,并检索 Uri.LocalPath 属性的值。
通过将
Switch.System.IO.UseLegacyPathHandling
AppContext 开关设置为true
来选择禁用新的路径规范化。<runtime> <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=true" /> </runtime>