Path.GetDirectoryName 和 Path.GetPathRoot 不使用 Uri 为目标.NET Framework 4.6.2 时

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 3181958
症状
当您有一个项目明确面向.NET Framework 4.6.2 或这将禁用AppContext开关Switch.System.IO.UseLegacyPathHandlingPath.GetDirectoryName()Path.GetPathRoot()传递 URI (如 http://) 时引发异常路径无效。
原因
出现此问题是因为相同的正确性检查的冒号用于路径 Api 的其余部分被错误地添加到这些两个 Api,正常情况下容许 URI 语法。
解决方案
若要变通解决此问题,请删除的 URI 前缀之前调用这些 Api。或者,设置AppContext开关Switch.System.IO.UseLegacyPathHandling=true

.NET Framework 团队努力提供修复此问题在将来的版本的产品。

有关详细信息,请参阅.NET Framework 4.6.2 已知问题.

更多信息
有关详细信息,请参阅 4.6.2.NET Framework 应用程序的兼容性。

警告:本文已自动翻译

属性

文章 ID:3181958 - 上次审阅时间:08/02/2016 17:39:00 - 修订版本: 1.0

Microsoft .NET Framework 4.6.2

  • kbqfe kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB3181958 KbMtzh
反馈