Перезагрузка измененного класса в Powershell

У меня есть файл сценария, содержащий определение класса. Использование нового синтаксиса V5 Powershell. У меня есть еще один файл сценария, который использует класс и использует его. Я тестирую этот файл в консоли.

При чистом запуске консоли он правильно загрузит класс. Затем я вношу некоторые изменения в класс и сохраняю их обратно в файл. Повторный запуск сценария не приводит к изменениям. Как будто после загрузки в консоль класс становится неизменяемым и не будет анализироваться и перезагружаться.

Это очень мешало при разработке, так как мне приходилось раскручивать новую консоль после любого изменения класса.

Есть ли способ заставить Powershell перезагружать классы каждый раз, когда он их видит?

Это происходит в коде, отлаживаемом как в Powershell ISE, так и в консоли Powershell (с использованием vscode).


person Dov Reshef    schedule 30.11.2016    source источник
comment
Связано: заголовок stackoverflow.com/questions/36804102/   -  person David Brabant    schedule 30.11.2016
comment
Любое решение? Я не смог получить его по ссылке от Дэвида   -  person MrCalvin    schedule 11.01.2018


Ответы (1)


Это известная проблема с классами в Powershell, и похоже, проблема остается нерешенной на данный момент.

Чтобы обойти это сегодня, вам нужно либо начать новый интерактивный сеанс (чего вы не хотите делать), либо загрузить свой класс разработки в дочерний экземпляр Powershell:

powershell.exe -Command { Your-Code }

# Alternatively, write a script to test your newly updated class
powershell.exe -File \path\to\Test-ClassScript.ps1
person Bender the Greatest    schedule 13.07.2018