Вызов PowerShell v4 и выше из Visual Studio 2008 - PullRequest
0 голосов
/ 17 декабря 2018

В моей системе есть скрипты 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, и мое решение не распознает ее.Можно ли этого достичь?

1 Ответ

0 голосов
/ 17 декабря 2018

Ну вот, прошли годы, с тех пор как я видел кого-то с 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 в своей системе, у вас есть необходимые .Net dll, и вам не нужно было загружать 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 \ msgid_set_setup.0.17763.134_none_3a18c3b5ad9702a0 \ е C: \ Windows \ обслуживание \ БУЛ \ Package_for_RollupFix ~ 31bf3856ad364e35 ~ amd64 ~~ 17763.134.1.4 \ msil_system.management.automation_31bf3856ad364e35_10.0.17763.134_none_3a18c3b5ad9702a0 \ т C: \ Windows \ обслуживание \ БУЛ \ Package_for_RollupFix ~ 31bf3856ad364e35 ~amd64 ~~ 17763.194.1.5 \ msil_system.management.automation_31bf3856ad364e35_10.0.17763.134_none_3a18c3b5ad9702a0 \ F C: \ Windows \ обслуживание \ БУЛ \ Package_for_RollupFix ~ 31bf3856ad364e35 ~ amd64 ~~ 17763.194.1.5 \ msil_system.management.automation_31bf3856ad364e35_10.0.17763.134_none_3a18c3b5ad9702a0 \ г 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 \ е 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.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 для Windows PowerShell, включая командлет,

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

Статьявстраивание и / или запуск сценариев PowerShell из программы на C #.

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

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