我目前在Visual Studio Code中使用PowerShell扩展的版本为0.10.0。过去,每次运行脚本时都会重置运行空间,因此如果对模块进行更改,则更新后的模块将被导入到脚本中。
然而,由于某种原因,PowerShell运行空间不再被重置,因此在下一次运行期间不会检测到模块的更改。
是否有PowerShell扩展内的一个设置可以确保在每次运行脚本之间重置运行空间?
我目前在Visual Studio Code中使用PowerShell扩展的版本为0.10.0。过去,每次运行脚本时都会重置运行空间,因此如果对模块进行更改,则更新后的模块将被导入到脚本中。
然而,由于某种原因,PowerShell运行空间不再被重置,因此在下一次运行期间不会检测到模块的更改。
是否有PowerShell扩展内的一个设置可以确保在每次运行脚本之间重置运行空间?
现在在Visual Studio Code的PowerShell插件中可用的设置powershell.debugging.createTemporaryIntegratedConsole
解决了我的问题。
该设置默认为false,因此必须启用才能正常工作。
当它设置为true时,每次尝试通过脚本进行调试时,PowerShell会话都会被重置。这意味着:
可以通过将以下行添加到用户设置JSON文件来启用它
"powershell.debugging.createTemporaryIntegratedConsole": true
或者在文件-> 首选项-> 设置下启用它,并搜索创建临时集成控制台
我对此仍没有一个很好的答案,但这是我在开发过程中采取的缓解问题的方法。
我注意到 VS Code 在每次运行脚本时缓存变量,并且有效地以 REPL 的方式运行脚本。
由于 PowerShell 作用域的性质,您可以将代码包装在 Invoke-Command -ScriptBlock {}
中,由于变量不可在其脚本块之外访问,因此您可以重新运行代码而不必担心在 VS Code 中留下对象。