JetBrains WebStorm 未检测到已安装的适用于 Windows Subsystem for Linux 的 Linux 发行版

JetBrains WebStorm 未检测到已安装的适用于 Windows Subsystem for Linux 的 Linux 发行版

我正在尝试使用安装在 Windows Subsystem for Linux 上的 Ubuntu 或 Debian Linux 发行版上的 WebStorm 中提供的调试功能来调试 nodejs 代码。

我按照以下网站上列出的说明进行操作,但我的 WebStorm 安装拒绝检测我系统上安装的 Linux 发行版,并且我已经使用 wslconfig.exe 设置了默认发行版。

来自 wslconfig.exe 的已安装 distors 列表

此外,我似乎没有办法手动告诉 WebStorm 我的系统上安装了 Linux 发行版。

请参阅下面的截图: WebStorm WSL 发行版 nodejs 选择界面截图

问题:

  1. 关于 WebStorm 检测 WSL 分发检测,我是否缺少某个配置设置?
  2. 如何让 WebStorm 检测我的 Linux 发行版?

请注意:这是为了使用 WebStorm 的中断调试功能,而不仅仅是终端使用。我能够让终端毫无问题地运行,但需要 WebStorm 中提供的调试功能。

答案1

您可以尝试手动添加您的发行版~\.WebStorm2019.1\config\options\wsl.distributions.xml。请参阅https://youtrack.jetbrains.com/issue/PY-32424#focus=streamItem-27-3332472.0-0https://www.jetbrains.com/help/ruby/configuring-remote-interpreters-using-wsl.html#custom_wsl了解更多信息。请注意,您需要指定可执行文件的完整路径。短名称仅适用于默认安装根目录。

答案2

如果您运行的 WSL 版本不是使用 Windows 应用商店安装的,则可能会出现问题。JetBrains 有一个官方修复程序,但如果您想要以其他方式以默认方式安装 Linux 发行版,您可以在 PowerShell 中运行以下代码:

$REGKEY="HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
$REGITEM = "DoNotConnectToWindowsUpdateInternetLocations"

function Set-RegistryItem {
    param (
        # Registry key to set
        [Parameter(Mandatory=$true)]
        [string]
        $RegistryKey,

        # Registry item to set
        [Parameter(Mandatory=$true)]
        [string]
        $RegistryItem,

        # Value to Set
        [Parameter(Mandatory=$true)]
        [string]
        $Value,

        # Value type to Set
        [Parameter(Mandatory=$true)]
        [string]
        $Type
    )

    if ($(Get-ItemProperty -Path Registry::$RegistryKey -Name $RegistryItem)) {
        New-ItemProperty -Path Registry::$RegistryKey -Name $RegistryItem -PropertyType $Type -Value $Value -Confirm -Force
    }
}

Set-RegistryItem `
    -RegistryKey "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" `
    -RegistryItem DoNotConnectToWindowsUpdateInternetLocations `
    -Value 0 `
    -Type DWord

Set-RegistryItem `
    -RegistryKey HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsStore `
    -RegistryItem AutoDownload `
    -Value 4 `
    -Type DWord

Set-RegistryItem `
    -RegistryKey HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsStore `
    -RegistryItem RemoveWindowsStore `
    -Value 0 `
    -Type DWord

这将暂时启用 Windows 商店并允许您安装您可能需要的程序(Linux 发行版)。如果您的组策略阻止执行 PowerShell,那么您就倒霉了。

此外,如果组策略禁用 Windows 应用商店,则在您重新启动计算机时,Windows 应用商店也将被禁用。

一旦通过 Windows 商店以默认方式安装了 Linux 发行版,JetBrians 几乎会立即选择它。

相关内容