Ссылка типа добавления Powershell для типа члена класса - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь добавить некоторый код в мой profile.ps1, который позволяет мне взаимодействовать с некоторыми файлами zip, полными XML-файлов.Я могу сделать это в оболочке вручную, и мне не нужна помощь с процессом чтения, но это не работает в моем 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 чтобы я мог поделиться объектом DataPair с именованным архивом и документом xml, потому что некоторые вспомогательные функции ссылаются на другие 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 голосов
/ 11 февраля 2019

Так что, очевидно, это известная ошибка в анализаторе Powershell.Синтаксический анализатор не читает сборки, загруженные Add-Type или using assembly, но мне удалось удовлетворить синтаксический анализатор, используя полностью определенное имя типа, как в [System.IO.Compression.ZipArchive, System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKey=b77a5c561934e089].

. Это также добавляет сборку кAppDomain, так что пока это обходной путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...