【发布时间】:2020-04-04 00:08:57
【问题描述】:
我正在尝试在 PowerShell 中使用 C# 库,其中一个库方法需要 [System.Collections.Generic.Dictionary`2[System.String,System.String]] 类型的参数。
这应该很简单
$var = [System.Collections.Generic.Dictionary`2[System.String,System.String]]::new()
在我的 Win7 开发盒上...但是当我部署到我的 Win2012R2 服务器时,会引发以下错误:
Method invocation failed because [System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]] does not contain a method named 'new'.
老实说,我不确定这是否是 PowerShell、C#、.NET、Windows 内核或它们的某种组合的问题。我怀疑它甚至可能是隐藏一些其他错误的误报(仅在这个项目中不会是第一个这样的案例)。
【问题讨论】:
-
::new()是一个较新的设施。旧版本不支持它(不确定是哪个版本在我脑海中引入了它)。您应该能够将服务器上的版本升级到支持它的版本,因为它与您的开发盒是同一代 Windows。 -
谢谢,@madreflection!当您说“版本”时,您是指 .NET 框架的版本还是其他版本?
-
好像是introduced in PowerShell 5。在 Win2012R2 服务器上安装 PowerShell 5。
-
成功了!再次感谢!!!
标签: c# .net windows powershell