Сбой OmniSharp, если какой-либо путь в хранилище недоступен - PullRequest
0 голосов
/ 17 марта 2020

У меня есть небольшая проблема с кодом Visual Studio и OmniSharp для этого конкретного проекта. Проект состоит из нескольких компонентов, одним из которых является приложение C#. NET Core 3.1. Каждый из компонентов находится в папке на верхнем уровне хранилища:

myrepository/component1 # this is the C# project
myrepository/component2 # this is another component in a different technology
[...]
myrepository/foo # this contains some folders that are mounted in docker containers

Проблема в папке «foo» в хранилище. В этой папке несколько каталогов, которые монтируются внутри контейнеров docker. Существует определенная папка, в которой это приводит к странным разрешениям, установленным для нее, в результате чего с хоста эта папка доступна только root.

Проблема в том, что OmniSharp действительно не нравится, когда он не может получить доступ к папке. Если я открываю только подпапку "component1" в VSCode, OmniSharp работает отлично. Если я открою весь репозиторий в VSCode, OmniSharp не будет работать, и я не получу никакого полезного IntelliSense, автозаполнения или чего-либо еще, что обрабатывается им. Глядя на журнал OmniSharp, я вижу следующее сообщение об ошибке:

[fail]: OmniSharp.WorkspaceInitializer
        The project system 'OmniSharp.Script.ScriptProjectSystem' threw exception during initialization.
System.UnauthorizedAccessException: Access to the path '/myrepository/foo/bar' is denied. ---> System.IO.IOException: Permission denied
   --- End of inner exception stack trace ---

Насколько я могу судить, это причина того, что OmniSharp не работает в этом случае.

Я попытался найти параметр, ограничивающий OmniSharp, чтобы он просматривал только подпапку "component1", но пока ничего не смог найти. Как я могу изменить свой VSCode и / или конфигурацию OmniSharp, чтобы OmniSharp работал только на самой папке C# и не раздражался от внешних вещей?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...