Ответ 1
System.Management.Automation on Nuget
Обновление: пакет теперь принадлежит команде PowerShell. Ура!
Я начинаю изучать модель PowerShell и оснастку. Первое, что я замечаю, это обратиться к System.management.automation.dll. Однако в Visual Studio вкладка .NET не имеет этой сборки и ни один из них не может просматривать
C:\windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll
чтобы сделать ссылку на файл.
Мне нужно скопировать файл вручную, чтобы сделать легкую ссылку?
System.Management.Automation on Nuget
Обновление: пакет теперь принадлежит команде PowerShell. Ура!
Копия System.Management.Automation.dll устанавливается, когда вы устанавливаете Windows SDK (подходящая, последняя версия, так или иначе). Он должен быть в C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0\
Я не мог правильно установить SDK (некоторые из файлов казались неподписанными, что-то вроде этого). Я нашел другое решение здесь, и это, похоже, работает хорошо для меня. Это не требует установки новых файлов. В основном, что вы делаете:
Отредактируйте файл .csproj в текстовом редакторе и добавьте:
<Reference Include="System.Management.Automation" />
в соответствующий раздел.
Надеюсь, что это поможет.
Если вы не хотите устанавливать Windows SDK, вы можете получить DLL, выполнив следующую команду в powershell:
Copy ([PSObject].Assembly.Location) C:\
если он 64-битный - C:\Program Files (x86)\Ссылочные сборки \Microsoft\WindowsPowerShell ** 3.0 **
и версия может отличаться
В сборке, поставляемой с пакетом Powershell SDK (C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0), не входят специальные типы Powershell 2.
Вручную редактирование файла csproj решило мою проблему.
Я использовал меню ссылки на VS Project и просмотрел: C:\windows\assembly\GAC_MSIL\System.Management.Automation и добавил ссылку для dll и DLL Runspaces.
Мне не нужно было взломать файл .csprj и добавить ссылку, упомянутую выше. У меня не установлен Windows SDK.
Я сделал копию Powershell, упомянутую выше: Копировать ([PSObject].Assembly.Location) C:\
Затем мой тест с помощью команды Get-Process Powershell работал. Я использовал примеры из Powershell для разработчиков главы 5.
Вы также можете использовать nuget: https://www.nuget.org/packages/System.Management.Automation/ Возможно, это лучший вариант.