Powershell - 在C:\ windows \ assembly \ GAC_MSIL中缺少System.Collections.Generic

时间:2014-02-13 04:06:15

标签: powershell

我正在尝试在Powershell中使用此代码:

Add-Type -AssemblyName "System.Collections.Generic"

但是我收到了这个错误:

Add-Type : Cannot add type. One or more required assemblies are missing.

我查看了C:\ windows \ assembly \ GAC_MSIL,可以看到没有名为System.Collections.Generic的文件夹。

我是否需要下载此库,如果是这样的话?

3 个答案:

答案 0 :(得分:1)

没有System.Collections.Generic集会。这是一个命名空间。该命名空间中的大部分类型都在核心库程序集mscorlib.dll中,因为Powershell是.Net,所以它已经在Powershell中可用。

转到MSDN获取命名空间,找到您尝试使用的类型,然后可以看到它所在的程序集,并记住程序集和命名空间之间不一定存在一对一的关系。

使用泛型类型在Powershell中有点涉及,可以依赖于使用反射或格式化复杂类型名称。

有关详细信息,请参阅this stackoverflow question

答案 1 :(得分:0)

没关系, 不知道为什么不起作用,但结果我不需要它。

我有这个代码由于某种原因无法正常工作,因为它无法找到[Collections.Generic.List [String]],但现在它似乎有效:

[string[]] $csvUserInfo = @([IO.File]::ReadAllLines($script:EmailListCsvFile))
[Collections.Generic.List[String]]$x = $csvUserInfo

答案 2 :(得分:0)

我会回答另一个问题,你为什么需要这个集会?

您可以尝试通过以下方式替换代码:

$x = [IO.File]::ReadAllLines($script:EmailListCsvFile)

在PowerShell中它应该可以工作。