.net core 为什么dotnet core 3.1中的新Uri(“/”)在*nix和windows中的表现不同?

.net core 为什么dotnet core 3.1中的新Uri(“/”)在*nix和windows中的表现不同?,.net-core,.net Core,下面的代码在*nix中工作,但在Windows中抛出invalidoOperationException var res = new Uri("/"); 我想这与文件有关:-分隔符(\用于windows,而/用于*nix)。但是如何/为什么?问题到底是什么?Uri构造函数将隐式文件Uri转换为显式文件Uri(file://...). /是unix中的隐式文件uri。在windows中不是。无论如何,你不应该硬编码IO路径字符。使用Path.Combine或System.IO

下面的代码在*nix中工作,但在Windows中抛出
invalidoOperationException

var res = new Uri("/");

我想这与文件有关:-分隔符(
\
用于windows,而
/
用于*nix)。但是如何/为什么?

问题到底是什么?Uri构造函数将隐式文件Uri转换为显式文件Uri(file://...).
/
是unix中的隐式文件uri。在windows中不是。无论如何,你不应该硬编码IO路径字符。使用
Path.Combine
System.IO.Path.directoryseportorchar
@Morse dotnet是否依赖于作为文件系统一部分的Uri?MSDN说了一些关于“隐式文件路径”的东西,但当它被认为是这样的时候,就没有提到。也许是没有计划的?