System.Uri中不包含名为“new”的方法。

7

[System.Uri]::new('http://www.stackoverflow.com')出现错误信息

[System.Uri]不包含名称为'new'的方法

然而我能够在另一台计算机上找到这个方法,并且运行良好。

如何查找PowerShell加载的System对象之间的差异?


你可以运行 $PSVersionTable 并验证两个环境的细节吗? - Randi Ratnayake
1个回答

11

若要使用.NET类的.ctor,您需要Powershell 5或更高版本。 在较旧的Powershell版本中,您将需要使用New-Object来实现此目的。


@wOxxOm:刚在Server2012R2机器(PS4)上测试了一下,新的构造函数在那里不起作用。 - bluuf
这很有趣。显然,WPF5升级了整个PS环境,因此这些构造函数也适用于powershell -version 3会话。如果我没记错,在安装PS5之前,我已经成功地在PS4中使用了::new(),所以它可能与.NET框架有关。无论如何,它似乎不是PowerShell 5本身的功能,否则它不应该在-version 3会话中工作(或者这是一个错误?)。 - wOxxOm
1
@wOxxOm 在安装了 WMF 5 的计算机上运行 powershell -version 3 是一种幻觉 :-) 请查看 $PSVersionTable - Mathias R. Jessen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接