【问题标题】:Cannot debug PowerShell scripts in Visual Studio Code无法在 Visual Studio Code 中调试 PowerShell 脚本
【发布时间】: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”文件。在您的系统中搜索以供审核。

标签: powershell visual-studio-code vscode-debugger


【解决方案1】:

在按 F5 之前关闭所有打开的 PowerShell 窗口为我解决了这个问题。

您可能还需要确保没有此会话退出警告:

如果这样做,请单击“重新启动当前会话”,然后再次尝试按 F5。

这是在 launch.json 中的以下配置(在 Windows 10 机器上):

{
    "name": "PowerShell: Launch script.ps1",
    "type": "PowerShell",
    "request": "launch",
    "script": ".\\script.ps1",
    "cwd": "${workspaceFolder}"
}

【讨论】:

    【解决方案2】:

    要解决此问题,您可以尝试通过以下方式重新启动当前的 PowerShell 会话:

    1. 打开命令托盘 (command+shift+p)
    2. 搜索重新启动当前会话并选择它
    3. 再次按下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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-12-18
          • 1970-01-01
          • 1970-01-01
          • 2021-03-05
          • 1970-01-01
          • 2022-10-22
          • 2015-10-04
          相关资源
          最近更新 更多