Запуск и отладка модулей Powershell в Visual Studio 2017 - PullRequest
0 голосов
/ 17 мая 2018

Я разрабатываю модуль Powershell в C #, в Visual Studio 2017. Я немного удивлен тем, что опыт разработки настолько плох с точки зрения запуска и отладки, что я пытаюсь здесь попытаться.

Теперь у меня все работает так:

  1. Реализация модуля
  2. Compile
  3. Запустить новое окно Powershell
  4. Перейдите в папку bin / debug
  5. импорт скомпилированной DLL (import-module)
  6. Выполнить команды
  7. Закройте окно Powershell (иначе я не могу перестроить проект, так как файл DLL заблокирован)
  8. Исправьте ошибки и вернитесь к шагу # 2

В случае, если мне нужно отладить код, я использую присоединение VS2017 для обработки и отладки кода (после шага № 5).

Это не идеально с точки зрения DX, и я хотел бы иметь что-то лучше, как можно ближе к этому:

  1. Реализация модуля
  2. Compile
  3. Нажмите F5 (start)
  4. Открывается окно Powershell с загруженным модулем
  5. Выполнить команды
  6. Нажатие на точки останова останавливает программу, как мы привыкли

Как мне этого добиться?

1 Ответ

0 голосов
/ 07 ноября 2018

Мне удалось получить эту работу с помощью приведенного выше комментария от @Glenn:

  • Начать отладку с помощью внешней программы

    C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    
  • и строка параметров

    -NoExit -command "Import-Module '<path to your module>'; " 
    

Теперь вы можете начать с F5 -> получить окно powershell с уже загруженным модулем, и отладчик подключен к этому процессу.

Но вы должны быть осторожны, если ваш двоичный модуль записан для цели .NET Standard .В этом случае кажется, что отладчик (VS2017 15.8.9) не может определить, какие модули времени выполнения загрузить.Таким образом, в этом сценарии нет никаких точек останова!Мой быстрый обходной путь - добавить другой проект с консольным приложением для .NET Framework 4.xy и использовать этот другой проект в качестве начального проекта с указанными выше настройками.Теперь мой рабочий процесс точно отражает вашу вторую последовательность (1-6).Выгрузка DLL не является проблемой, потому что остановка отладки завершает процесс.

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