类成员类型的Powershell添加类型参考

时间:2019-02-08 20:48:44

标签: powershell

我正在尝试向我的profile.ps1添加一些代码,以使我可以与充满xml文件的一些zip文件进行交互。我可以在外壳中手动执行此操作,不需要阅读过程方面的帮助,但是在我的profile.ps1中不起作用。

Add-Type -AssemblyName "System.IO.Compression","System.IO.Compression.FileSystem"

class DataPair
{
    [System.IO.Compression.ZipArchive]$archive
    [System.Xml.XmlDocument]$xmldoc
}

这在我的profile.ps1的最上方,因此我可以与命名的archive和xml文档共享一个DataPair对象,因为某些帮助函数引用了原始归档文件中的其他xml。

当我在命令提示符外壳或打开Powershell ISE进行加载时,出现此错误。

At C:\Users\rrobertson\Documents\WindowsPowerShell\profile.ps1:5 char:6
+     [System.IO.Compression.ZipArchive]$archive
+      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unable to find type [System.IO.Compression.ZipArchive].
    + CategoryInfo          : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : TypeNotFound

如何解决此参考?另外,是否有一个非类选项可以让我以简单的引用格式将这两个值存储在一起?

1 个答案:

答案 0 :(得分:0)

显然,这是Powershell解析器中的一个已知错误。解析器不会读取由Add-Typeusing assembly加载的程序集,但是我能够使用[System.IO.Compression.ZipArchive, System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKey=b77a5c561934e089]中的完全程序集限定类型名称来满足解析器。

这还将程序集添加到AppDomain中,因此现在是一种解决方法。