Вызов пользовательского командлета не работает? - PullRequest
4 голосов
/ 09 ноября 2010

Я довольно новичок в powershell.Я создал пользовательский командлет.Я уже зарегистрировал его в powershell, но я хотел протестировать его до того, как начал использовать командлет.Так что я добавил простой testapp к своему решению.Я пытаюсь вызвать свой пользовательский командлет следующим образом:

        var deploy = new DeployCommand();
        deploy.BranchDir = @"";
        deploy.DevDir = @"d:\sandbox\testdeploy";
        deploy.Invoke();

Я устанавливаю точку останова в своем командлете, и когда я выполняю .invoke, он никогда ничего не делает.Единственный метод, который я переопределяю в моем командлете, это «ProcessRecord», но когда я вызываю invoke, он никогда ничего не делает.Я уверен, что это что-то простое.Кто-нибудь знает, что я делаю не так?

1 Ответ

6 голосов
/ 09 ноября 2010

Вызов .Invoke () возвращает IEnumerator ... вы должны выполнить его итерацию (например, вызвать MoveNext ()), чтобы командлет действительно был вызван.См. Замечания на странице Документы MSDN

...