2014-02-13 3 views
0

Что такое полное имя для сборки, где хранится System.Collections.Generic?System.Collections.Generic Полностью квалифицированное имя

У меня есть этот код:

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

Linq добавляется штраф, но я получаю эту ошибку для System.Collections.Generic:

Add-Type : Cannot add type. The assembly 'System.Collections.Generic' could not be found. 

How do I use Add-Type to load Microsoft.Web.Deployment? говорит использовать полное имя, например, :

Add-Type -AssemblyName ('Microsoft.Web.Deployment, Version=7.1.0.0, ' + 
         'Culture=neutral, PublicKeyToken=31bf3856ad364e35') 

Как я могу узнать, что такое полное имя?

ответ

2

Типы в пространстве имен System.Collections.Generic в основном находятся в файле mscorlib.dll, который автоматически загружается в PowerShell. Вам не нужно добавлять тип, чтобы использовать большинство общих коллекций. Вы должны проверить тип конкретной коллекции, которую хотите использовать, чтобы убедиться. Dictionary предоставляется mscorlib.dll.

Чтобы узнать полное имя, используйте документы MSDN, чтобы узнать, какая сборка содержит этот тип. Затем посмотрите в C: \ windows \ assembly \ GAC_MSIL в PowerShell. Найдите сборку по имени, и поддиректор перечислит версию и маркер pubkey.

+0

Что делать, если мне нужно запустить скрипт на разных компьютерах? Будет ли токен паблик иным? –

+0

Я вижу, что C: \ Windows \ assembly \ GAC_MSIL не имеет папки для System.Collections.Generic. Нужно ли мне скачать эту библиотеку? –

+0

Вам не хватает взгляда на интересующее пространство имен в Bing или Google. Выберите тип, который вы используете - скажем, словарь . Эта ссылка выше в моем ответе. Прямо в верхней части темы будет сказано «Сборка:» и укажет, какая сборка имеет тип. Если это mscorlib.dll, System.dll или System.Core.dll, вам не нужно ничего делать, поскольку эти сборки всегда будет загружаться PowerShell. –

Смежные вопросы