У меня возникли проблемы с открытием кода визуальной студии.
Сценарий заключается в том, что у меня есть серверная файловая система, смонтированная на моем локальном компьютере (UBUNTU WSL) с использованием SSHFS.
В обычных случаях я могу открыть файл с помощью кода Visual Studio, используя команду code
.
Однако, когда я нахожусь в каталоге файловой системы сервера и пытаюсь использовать эту команду, я получаю сообщение об ошибке
/mnt/c/Users/kurti/AppData/Local/Programs/Microsoft VS Code/Code.exe: Invalid arguments
Удивительно, но я могу использовать gedit таким же образом без каких-либо проблем, например gedit <имя файла>
.
Тогда странно то, что я могу использовать код для открытия файла/каталога в файловой системе сервера, когда я являюсь любой папкой в своей локальной файловой системе. При этом я могу легко открыть файл сервера, используя код .
Это возможная ошибка в коде Visual Studio или проблема с моей системой?
Редактировать: Я создал новую обходную функцию/команду, которая
имя команды: vcode
#!/bin/bash
fpath=$(realpath $1)
(cd $HOME; code fpath)
Обновление: Я сообщил об этом на странице github WSL как о проблеме https://github.com/microsoft/WSL/issues/7890
Более подробные сведения приведены ниже
В терминале WSL
sshfs -C
/home/k /smith_server/
cd /home/k/smith_server
code .
Ожидаемое поведение заключается в том, что Visual Studio откроет каталог/файл независимо от текущего рабочего каталога.
Фактическое поведение заключается в том, что когда текущий рабочий каталог находится внутри смонтированной файловой системы сервера, запуск команды code .
или код <имя файла>
приведет к ошибке код .
/mnt/c/Users/kurti/AppData/Local/Programs/Microsoft VS Code/Code.exe: недопустимый аргумент
Некоторые примеры, которые работают,
. Код
или
работает нормально.код /home/k/smith_server
может успешно открыть файл/каталог без проблем.gedit
работает нормально$HOME
также вызывает ошибку.Вывод с моей стороны состоит в том, что при вызове команды code внутри смонтированной файловой системы сервера возникают проблемы. Кроме того, этого не происходит при использовании gedit. Однако за пределами смонтированной файловой системы сервера можно вызвать команду code
, а также получить доступ к смонтированной файловой системе, используя полный путь. Возможно, что-то происходит при отслеживании файла Code.exe. Программное обеспечение на основе Linux, такое как gedit, не затрагивается, но, возможно, затронуто программное обеспечение на основе Windows, такое как Code.exe, которое только подключается?