É muito bom como você pode abrir um projeto que deve ser construído no Linux dentro do WSL2 via VSCode. Mas o terminal está se comportando diferente se eu executar os mesmos comandos no WSL2. Estas são as etapas que faço para replicar meu problema:
- Abra o Ubuntu WSL2. Isso apenas abre um terminal que está executando o Ubuntu
- Navegue até o projeto que quero abrir
cd ~/myapp
- Abra esse projeto com vscode
code .
vscode abre em um ambiente linux. No canto inferior esquerdo mostra "WSL:Ubuntu". É muito legal como eu posso abrir projetos no linux como se eu estivesse usando um computador linux. - Eu abro o terminal e executo este comando
powershell.exe 'echo "hello-world"'
. Estou tendo o erro a seguir:
<3>init: (5450) ERRO: UtilConnectToInteropServer:300: falha na conexão 2
Se eu abrir o WSL2 e executar o mesmo comando powershell.exe 'echo "hello-world"'
, funciona. Ele simplesmente não funciona se estiver usando o terminal vscode. O estranho é que costumava funcionar. Se eu reiniciar meu computador, ele começa a funcionar no vscode e, eventualmente, para de funcionar. A solução é usar um terminal WSL2 separado. Mas seria bom se eu pudesse usar o terminal integrado vscode.
Outra solução será não usar o powershell. Mas preciso usar o powershell porque o WSL2 não tem suporte para USB. Estou construindo um projeto esp32. Uma vez compilado, preciso fazer o flash do código no meu microcontrolador. Eu tenho que fazer isso via windows e essa é a razão pela qual eu uso o powershell. Eu também poderia construir meu projeto no windows mas já tenho todos os projetos configurados para compilar e intellisense trabalhando no linux.
Finalmente deu certo. Eu adicionei isso ao
~/.zshrc
. Se você estiver usando bash, adicione-o a~/.bashrc
Se ele parar de funcionar, eu apenas chamo essa função.
Eu obtive essa solução neste link: https://github.com/microsoft/WSL/issues/5065
Um equivalente à correção bash/zsh do @tono-nam para
pwsh
: