2014-02-13 15 views
0

我试图用这个代码在PowerShell中:但是我得到这个错误PowerShell的 - 缺少System.Collections.Generic在C: WINDOWS 装配 GAC_MSIL

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的文件夹。

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

+1

@凯斯希尔在几分钟前给你答案! – JPBlanc

回答

0

没关系, 不知道为什么这不起作用,但事实证明我不需要它。

我有这个代码,这对于某种原因,没有intially工作,因为它找不到[Collections.Generic.List [字符串],但现在它似乎工作:

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

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

你可以尝试通过更换代码:

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

在PowerShell中它应该工作。

1

没有System.Collections.Generic组件。这是一个命名空间。该名称空间中的大部分类型位于核心库程序集0​​中,Powershell自.NET以来已在Powershell中可用。

请转至MSDN查找名称空间,找到您正在尝试使用的类型,并且您可以看到它所在的程序集,并记住程序集和名称空间之间不一定有一对一的关系。

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

有关更多详细信息,请参见this stackoverflow question