我正在尝试向我的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
如何解决此参考?另外,是否有一个非类选项可以让我以简单的引用格式将这两个值存储在一起?
答案 0 :(得分:0)
显然,这是Powershell解析器中的一个已知错误。解析器不会读取由Add-Type
或using assembly
加载的程序集,但是我能够使用[System.IO.Compression.ZipArchive, System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKey=b77a5c561934e089]
中的完全程序集限定类型名称来满足解析器。
这还将程序集添加到AppDomain中,因此现在是一种解决方法。