【问题标题】:System.Uri does not contain a method named 'new'System.Uri 不包含名为“新”的方法
【发布时间】:2017-09-15 06:33:36
【问题描述】:

[System.Uri]::new('http://www.stackoverflow.com') 失败并显示错误消息

[System.Uri] 不包含名为“new”的方法

但是我可以在另一个盒子上找到这个方法。并且运行良好。

如何判断PowerShell下加载的System对象是否有差异

【问题讨论】:

  • 您能运行 $PSVersionTable 并验证两个环境的详细信息吗?

标签: powershell system


【解决方案1】:

您需要 Powershell 5 或更高版本才能使用 .NET 类的 .ctor。 在旧版本的 Powershell 中,您必须使用 New-Object 来执行此操作。

【讨论】:

  • @wOxxOm :刚刚在 Server2012R2 机器(PS4)上测试过,新的构造函数在那里不起作用。
  • 这很有趣。显然 WPF5 升级了整个 PS 环境,因此这些构造函数也可以在 powershell -version 3 会话中工作。 IIRC 在我安装 PS5 之前,我已经在 PS4 中成功使用了::new(),所以它可能与 .NET 框架相关。无论如何,它似乎不是 PowerShell 5 本身的功能,否则它不应该在 -version 3 会话中工作(或者它是一个错误?)。
  • @wOxxOm powershell -version 3 在带有 WMF 5 的盒子上是一种错觉 :-) 看看 $PSVersionTable
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多