JetBrains WebStorm 未偵測到已安裝的 Linux 適用的 Windows 子系統的 Linux 發行版

JetBrains WebStorm 未偵測到已安裝的 Linux 適用的 Windows 子系統的 Linux 發行版

我正在嘗試使用安裝在適用於 Linux 的 Windows 子系統上的 Ubuntu 或 Debian Linux 發行版上的 WebStorm 中提供的偵錯功能來偵錯 nodejs 程式碼。

我按照下面網站上列出的說明進行操作,但我的 WebStorm 安裝拒絕檢測我在系統上安裝的 Linux 發行版,並且我已經使用 wslconfig.exe 設定了預設發行版。

來自 wslconfig.exe 的已安裝 distor 列表

此外,我似乎沒有辦法手動告訴 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-0,https://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 商店以預設方式安裝了 Linux 發行版,JetBrians 幾乎會立即選擇它。

相關內容