2012-06-06 3 views
2

Пытается использовать командлеты Azure на C#, и все работает, за исключением конкретного «Get-RoleInstanceCount», который является Azure. Azure Командлет ПРОМТ выполните следующее, когда он начинает:Как загрузить модуль PowerShell с использованием C# Runspace

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -NoExit -Command "cd c:\; Import-Module 'C:\Users\me\Documents\WindowsPowerShell\Modules\WAPPSCmdlets\WAPPSCmdlets.dll'" 

Я попытался следующие:

InitialSessionState initialSessionState = InitialSessionState.CreateDefault(); 
initialSessionState.ImportPSModule(new string[] {"C:\\Users\\me\\Documents\\WindowsPowerShell\\Modules\\WAPPSCmdlets\\WAPPSCmdlets.dll"}); 
Runspace runspace = RunspaceFactory.CreateRunspace(initialSessionState); 

И также, как они делают это здесь:

http://msdn.microsoft.com/en-us/library/windows/desktop/ee706596(v=vs.85).aspx

В .dll модуль находится в папке Debug и по указанному выше пути. Но когда я пытаюсь «открыть()» я получаю пространство выполнения следующего исключения:

Не удался загрузить файл или сборку «WAPPSCmdlets» или один из его зависимостей. Определение манифеста размещенной сборки не соответствует ссылочной позиции сборки. (Исключение из HRESULT: 0x80131040)

Что я могу сделать, чтобы загрузить модуль, который позволяет мне запускать команды Azure?

ответ

0

Поскольку командлет не может быть успешно загружен, я не уверен, как могут работать команды, отличные от «Get-RoleInstanceCount». Можете ли вы проверить еще раз, чтобы убедиться, что они работают нормально? Если нет, попробуйте переустановить командлет.

Кроме того, вы можете использовать RESTful Windows Azure Management API напрямую без PowerShell. PowerShell может предоставить упрощенную модель программирования путем инкапсуляции HTTP-запросов в командлеты. Но если это не сработает, у вас всегда есть возможность напрямую использовать REST API.

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