Вызов PowerShell версии 4 и выше из Visual Studio 2008

В моей системе есть сценарии Powershell, для которых требуется как минимум Powershell v4. У меня PowerShell v5, я могу запускать эти скрипты с помощью консоли Powershell.

Но я хочу вызвать эти сценарии из C# -Visual Studio 2008 (.net 3.5). Я ограничен в использовании Visual Studio 2008. Я указал System.Management.Automation в своем решении из пути

"C: \ WINDOWS \ assembly \ GAC_MSIL \ System.Management.Automation \ 1.0.0.0__31bf3856ad364e35 \ System.Management.Automation.dll" Но это поддерживает только Powershell v2.

Я загрузил последнюю версию System.Management.Automation.dll из NuGet, и мое решение не распознает ее. Возможно ли этого добиться?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
213
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Что ж, прошли годы с тех пор, как я даже не видел кого-нибудь с Visual Studio 2008. ; -}

Однако на самом деле это не вопрос о нерабочем коде PowerShell (который мы здесь, чтобы помочь), а вопрос о среде / операционной конфигурации Visual Studio, чтобы вообще запустить PowerShell.

Visual Studio привязана к версии .Net при ее выпуске, как и PowerShell.

Требования Microsoft .NET Framework

Windows PowerShell 5.1 требует полной установки Microsoft .NET Framework 4.5. Windows 8.1 и Windows Server 2012 R2 по умолчанию включают Microsoft .NET Framework 4.5.

Windows PowerShell 5.0 требует полной установки Microsoft .NET Framework 4.5. Windows 8.1 и Windows Server 2012 R2 по умолчанию включают Microsoft .NET Framework 4.5.

Windows PowerShell 4.0 требует полной установки Microsoft .NET Framework 4.5. Windows 8.1 и Windows Server 2012 R2 по умолчанию включают Microsoft .NET Framework 4.5. …

Конечно, поскольку вы говорите, что уже использовали PowerShell v5 в своей системе, значит, у вас есть необходимые DLL-библиотеки .Net, и вам не нужно было загружать DLL-файлы, которые вы делали отдельно. Наконец, каждый из этих System.Management.Automation.dll расположен / зарегистрирован в своих собственных папках.

C:\Windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35 C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0__31bf3856ad364e35 C:\Windows\servicing\LCU\Package_for_RollupFix~31bf3856ad364e35~amd64~~17763.134.1.4\msil_system.management.automation_31bf3856ad364e35_10.0.17763.134_none_3a18c3b5ad9702a0\f C:\Windows\servicing\LCU\Package_for_RollupFix~31bf3856ad364e35~amd64~~17763.134.1.4\msil_system.management.automation_31bf3856ad364e35_10.0.17763.134_none_3a18c3b5ad9702a0\r C:\Windows\servicing\LCU\Package_for_RollupFix~31bf3856ad364e35~amd64~~17763.194.1.5\msil_system.management.automation_31bf3856ad364e35_10.0.17763.134_none_3a18c3b5ad9702a0\f C:\Windows\servicing\LCU\Package_for_RollupFix~31bf3856ad364e35~amd64~~17763.194.1.5\msil_system.management.automation_31bf3856ad364e35_10.0.17763.134_none_3a18c3b5ad9702a0\r C:\Windows\WinSxS\msil_system.management.automation_31bf3856ad364e35_1.0.0.0_none_6340379543bd8a03 C:\Windows\WinSxS\msil_system.management.automation_31bf3856ad364e35_10.0.17763.134_none_3a18c3b5ad9702a0 C:\Windows\WinSxS\msil_system.management.automation_31bf3856ad364e35_10.0.17763.134_none_3a18c3b5ad9702a0\f C:\Windows\WinSxS\msil_system.management.automation_31bf3856ad364e35_10.0.17763.134_none_3a18c3b5ad9702a0\r C:\Windows\WinSxS\msil_system.management.automation_31bf3856ad364e35_10.0.17763.1_none_b60c54e2801db2ff

Вы также не говорите и не показываете, как вы пытались зарегистрировать эту .dll, чтобы Visual Studio 2008 ее увидела. Итак, похоже, это специфическое ограничение Visual Studio 2008, и ваш единственный вариант - независимо выполнить оболочку PowerShell.exe, как и cmd.exe, для запуска ваших файлов .ps1.

Вы уже видели / пробовали следующие подходы / детали?

Visual Studio 2008 PowerShell

Шаблоны PowerShell Visual Studio 2008

Visual Studio 2008 project and item templates for Windows PowerShell including Cmdlet,

Вызов сценария PowerShell из вашего .NET-кода

An article on embedding and/or launching PowerShell scripts from a C# program.

Используйте VSCmdShell для запуска сценария PowerShell из Visual Studio 2008

Другие вопросы по теме