В моей компании есть модуль .NET Powershell, написанный на C #, чтобы позволить опытным пользователям автоматизировать задачи в нашем продукте. В настоящее время он нацелен на Powershell 5 с использованием .NET 4.6.1. Мы хотели бы позволить клиентам, использующим другие операционные системы, также использовать его, и, поскольку он не имеет кода, специфичного для ОС, переносить его было несложно.
Однако я не могу найти документацию по рабочему процессу отладки, которому следует следовать. В стандартной .NET Powershell это было довольно просто и требовало одноразовой процедуры настройки:
- Настройте исполняемый файл отладки как путь к Powershell
- Задайте в качестве аргументов отладки короткий сценарий, который загружает модуль и, при необходимости, выполняет тестируемую функцию.
- Нажмите F5
Однако это не работает для Powershell Core. Поскольку проект зависит от пакетов NuGet, регистрация модуля завершается ошибкой зависимости. Мне удалось придумать другой рабочий процесс, но он немного более тупой:
- Перейдите в каталог проекта
- Выполнить
dotnet publish -f netstandard2.0 -c debug
- Выполнить
Import-Module ./bin/Debug/netstandard2.0/publish/MyModule.dll
- Выполните
$pid
, чтобы найти PID. - Присоединение к PID через Присоединение к процессу в Visual Studio
Это работает, и я отладил несколько проблем с этим методом, но это не самый приятный или эффективный способ сделать это. Я считаю, что должен быть лучший способ, который просто плохо документирован.