Создание файла состояния и создания файла tf не соответствует во время выполнения плана терраобразования

Существует обходное решение. Откройте еще один экземпляр PowerShell:

PS > powershell
PS > [load DLL]
PS > [do work]
PS > exit

После выхода вы вернетесь к экземпляру PowerShell, из которого вы сделали этот вызов (при условии, что вы сделали вызов powershell внутри и экземпляр PowerShell). Вы можете передать любой из обычных аргументов в powershell, чтобы вы могли использовать -Command или -File. Например,

PS > powershell -Command '[load DLL]; [do work]' # Executes a command and exits
PS > powershell -Command '.\myscript.ps1 param1 param2' # Executes the script and exits
PS > powershell -File .\myscript.ps1 param1 param2 # Executes a script and exits.

Когда PowerShell завершает работу, он освободит блокировку DLL, что позволит продолжить работу.

Все это было сделано из интерфейса командной строки PowerShell. Я не проверял, что произойдет, если вы выбросите powershell в середине скрипта или если это работает в ISE. (Я подозреваю, что он работает в ISE.) Даже если это не работает внутри скрипта, это все еще полезно во время разработки.

Изменить:

Проделали некоторые проверки. Так что это, похоже, отлично работает из скриптов и ISE, но в ISE есть оговорка. Из ISE вы не можете читать какие-либо данные от пользователя, когда находитесь внутри отдельного процесса PowerShell. Если вы попробуете, сценарий или команды перестают ждать, но окно ввода не отображается, как обычно, и, конечно же, вы не можете вводить непосредственно в окно вывода в ISE. Поэтому, если вам нужно запросить ввод в середине [do work], запросите перед запуском нового экземпляра PowerShell и передайте его в работу как параметр. Это не проблема, если вы используете обычную командную строку PowerShell.

0
задан Mayank Singh 13 July 2018 в 09:23
поделиться