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