无法在 Visual Studio Code 中调试 PowerShell 脚本
Posted
技术标签:
【中文标题】无法在 Visual Studio Code 中调试 PowerShell 脚本【英文标题】:Cannot debug PowerShell scripts in Visual Studio Code 【发布时间】:2021-02-01 10:13:30 【问题描述】:我将使用 F5 在 Visual Studio Code 中运行 PowerShell 脚本。
我的 Visual Studio Code 版本是 1.50.1,提交时间为 d2e414d9e42
我收到以下错误消息:
在 PowerShell 会话开始之前,无法调试或运行 PowerShell 脚本。等待 PowerShell 会话完成启动并重试。
我安装了官方的 Microsoft PowerShell 扩展,并且我的 launch.json 包含以下内容:
"name": "PowerShell: Launch Script",
"type": "PowerShell",
"request": "launch",
"script": "countcharacters.ps1",
"cwd": "$workspaceFolder"
如何使用 F5 进行调试?
【问题讨论】:
我也有同样的问题。你试过this吗? 查看取消选中“PowerShell:启用配置文件加载”(“powershell.enableProfileLoading”:false)是否有帮助。如果没有,请检查可能注入到您的 Code.exe 和 Powershell.exe 进程中的任何非 Microsoft 进程挂钩。根据我的经验,Avecto Privilege Guard 挂钩 (PGHook.dll) 是 VS Code PowerShell 问题的臭名昭著的罪犯。 我认为等待一会儿是行不通的,而且每次都会发生这种情况?只是偶尔检查一下,如果我尝试在窗口完成加载之前运行脚本,它将在会话的其余部分中断,或者直到我从命令面板运行“重新启动 PowerShell 会话”。 @marsze 查看 Windows 挂钩超出了本主题的范围,但您可以使用 sysinternals "Process Explorer" 查看正在运行的 Windows 进程的加载模块。如果您在进程中看到一个非 Microsoft DLL,那么很可能它是一个钩子。同样,您之前提供的链接也没有提及“powershell.enableProfileLoading”:false。对不起。 F5 是调试运行的 OOBE(开箱即用体验)VSCode 默认值。 IT 在“运行”菜单选项中将其显示为第一个选择。在左侧图标菜单中,这是要单击以进行运行的调试图标。安装扩展后,您仍然需要为所需的首选项(用户和工作区)配置设置。 VSCode 详细说明了这一点,以及 Youtube 上的许多视频。只需搜索“VSCode PowerShell 设置”和“VSCode PowerShell 调试”。在您的系统上的多个位置创建了多个“launch.json”文件。在您的系统中搜索以供审核。 【参考方案1】:在按 F5 之前关闭所有打开的 PowerShell 窗口为我解决了这个问题。
您可能还需要确保没有此会话退出警告:
如果这样做,请单击“重新启动当前会话”,然后再次尝试按 F5。
这是在 launch.json 中的以下配置(在 Windows 10 机器上):
"name": "PowerShell: Launch script.ps1",
"type": "PowerShell",
"request": "launch",
"script": ".\\script.ps1",
"cwd": "$workspaceFolder"
【讨论】:
【参考方案2】:要解决此问题,您可以尝试通过以下方式重新启动当前的 PowerShell 会话:
-
打开命令托盘 (
command
+shift
+p
)
搜索重新启动当前会话并选择它
再次按下F5
按钮
您可能会再次看到问题弹出,但只需再次按F5
,您应该会看到事情开始执行。
【讨论】:
【参考方案3】:如果您的 PackageManagement 模块不是最新的,则可能会弹出此错误消息,VSCode 会对此进行处理,并在屏幕右下方显示一个弹出窗口,询问您是否要更新并且不考虑 Powershell开始直到它被解雇。
【讨论】:
【参考方案4】:安装最新版本的包管理,然后重新启动 PowerShell 会话或 VSCode 解决了该问题。
Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Install-Module -Name PackageManagement -Force -MinimumVersion 1.4.6 -Scope CurrentUser -AllowClobber -Repository PSGallery
【讨论】:
以上是关于无法在 Visual Studio Code 中调试 PowerShell 脚本的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Visual Studio Code 中加载文档的 TSLint 库
无法将 GitLab 与 Visual Studio Code 连接
“代码 。”命令无法从 mac 终端打开 Visual Studio Code 运算符