Короче говоря, проблема заключалась в том, что, хотя на моем компьютере был установлен Mono, у меня не было DNX Mono. Установка его через DNVM локально (dnvm upgrade -r mono
) устранила проблему, и теперь у меня есть хорошая поддержка IntelliSense в Visual Studio Code.
Теперь длинный рассказ.
Visual Studio Code использует OmniSharp для обеспечения поддержки IntelliSense. OmniSharp - это набор инструментов, который предоставляет услуги анализа кода C # через веб-API на основе Nancy, который работает на вашем компьютере (отличные сообщения об этом здесь и здесь).
Я не получил IntelliSense, потому что OmniSharp работал с ошибками, которые я мог бы легко обнаружить, если бы уделил больше внимания окну вывода кода Visual Studio (Cmd+L
L
на Mac). Журнал OmniSharp (см. Ниже) показывает, что он пытался использовать dnx-mono.1.0.0-rc1-update1
среду выполнения, а затем выдал исключение, потому что его там не было.
Насколько я понимаю, OmniSharp не может использовать DNX CoreCLR (, потому что он не поддерживает сокеты?) и для работы требуется DNX Mono. Эта тема обсуждается в репозитории VS Code на GitHub.
Запуск dnvm upgrade -r mono
и перезапуск Visual Studio Code устранили проблему. Моя настроенная DNVM теперь выглядит так: ![введите описание изображения здесь](https: //i.stack.imgur .com / dZCPu.png )
Обратите внимание, что вам не обязательно использовать DNX Mono для разработки, чтобы IntelliSense заработал. Вам просто нужно установить его.
Журнал OmniSharp
[ИНФОРМАЦИЯ] Запуск OmniSharp в APP_PATH ...
[ИНФОРМАЦИЯ] OmniSharp запущен из '/ Applications / Visual Studio Code.app/Contents/Resources/app/extensions/jrieken.vscode-omnisharp/bin/omnisharp' с идентификатором процесса 34893 ...
[ИНФОРМАЦИЯ: OmniSharp.Startup] Сервер Omnisharp работает с использованием stdio в местоположении APP_PATH на хосте 34884.
[ИНФОРМАЦИЯ: OmniSharp.Dnx.DnxProjectSystem] Сканирование APP_PATH для проектов DNX
[ИНФОРМАЦИЯ: OmniSharp.Dnx.DnxPaths] Использование среды выполнения '/Users/nsamteladze/.dnx/runtimes/dnx-coreclr-darwin-x64.1.0.0-rc1-update1'.
[ИНФОРМАЦИЯ: OmniSharp.Dnx.DnxProjectSystem] Найден проект APP_PATH / project.json.
[ИНФОРМАЦИЯ: OmniSharp.Dnx.DesignTimeHostManager] Использование '/Users/nsamteladze/.dnx/runtimes/dnx-mono.1.0.0-rc1-update1' для узла времени разработки.
[ОШИБКА: OmniSharp.Startup] Система проектов «DnxProjectSystem» выдала исключение. System.InvalidOperationException: имя файла не было задано в System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] в: 0 в System.Diagnostics.Process.Start () [ 0x00000] в: 0 в (удаленное взаимодействие-вызов-с-проверкой оболочки) System.Diagnostics.Process: Start () в OmniSharp.Dnx.DesignTimeHostManager.Start (System.String hostId, System.Action`1 onConnected) [0x00000] в : 0 в OmniSharp.Dnx.DnxProjectSystem.Initalize (конфигурация IConfiguration) [0x00000] в: 0 в OmniSharp.Startup.Configure (приложение IApplicationBuilder, IServiceProvider serviceProvider, диспетчер ILibraryManager, параметры IOmnisOharpEnvironment писателя IOmnisOharpEnvironment, log [0x00000] в: 0
[ИНФОРМАЦИЯ: OmniSharp.MSBuild.MSBuildProjectSystem] В APP_PATH файлы решения не найдены.
[ИНФОРМАЦИЯ: OmniSharp.ScriptCs.ScriptCsProjectSystem] Обнаружение файлов CSX в APP_PATH.
[ИНФОРМАЦИЯ: OmniSharp.ScriptCs.ScriptCsProjectSystem] Не удалось найти файлы CSX.
[ИНФОРМАЦИЯ: OmniSharp.Startup] Решение завершено.
person
Nikolai Samteladze
schedule
26.12.2015