Я использую VSCode 1.19 и пытаюсь перейти к определению в файле C #, как в Visual Studio, и ничего не делает. В файле .js он работает хорошо, и я предполагаю, что есть какой-то обходной путь.
VSCode С# перейти к определению (F12) не работает
Ответы (7)
В папке может быть несколько «проектов», и VSCode выбрал «неправильный». (в терминах VSCode «проект» означает файл sln)
Используйте Ctrl-Shift-P и выберите «OmniSharp: Выберите проект», чтобы выбрать правильный проект (файл .sln).
Если у вас открыто окно «Вывод» с выбранным «OmniSharp Logs», вы увидите, что оно читает ваш файл csproj. После того, как вы закончите, ваше определение goto начнет работать.
Как написано в комментариях к ответу @AndyPook, другое возможное решение — просто перезапустить OmniSharp.
CTRL + SHIFT + P -> OmniSharp: Restart OmniSharp
Исправлено: несколько решений в одной папке
Этот ответ является визуальной версией ответа @AndyPook.
1. Crtl+Shift+P
2. Поиск >OmniSharp
3. Выберите вариант
Select Project
4. Он покажет весь список решений в вашей папке. выберите правильный, например:
5. Проверьте это, просмотрев журналы OmniSharp.
У меня была такая же проблема в VSCode (несколько проектов Web API и Angular MVC), и она была решена путем создания нового файла sln
. Пожалуйста, выполните следующие действия:
Шаг 1. Создайте файл проекта sln
. ( пример: MyApp.sln
)
Шаг 2. Откройте файл sln
и вставьте этот код:
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26124.0
MinimumVisualStudioVersion = 15.0.26124.0
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyApp", "MyApp\MyApp.csproj", "{BC407A9C-4BD2-4086-9862-6E5A547D1DD8}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{BC407A9C-4BD2-4086-9862-6E5A547D1DD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BC407A9C-4BD2-4086-9862-6E5A547D1DD8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BC407A9C-4BD2-4086-9862-6E5A547D1DD8}.Debug|x64.ActiveCfg = Debug|Any CPU
{BC407A9C-4BD2-4086-9862-6E5A547D1DD8}.Debug|x64.Build.0 = Debug|Any CPU
{BC407A9C-4BD2-4086-9862-6E5A547D1DD8}.Debug|x86.ActiveCfg = Debug|Any CPU
{BC407A9C-4BD2-4086-9862-6E5A547D1DD8}.Debug|x86.Build.0 = Debug|Any CPU
{BC407A9C-4BD2-4086-9862-6E5A547D1DD8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BC407A9C-4BD2-4086-9862-6E5A547D1DD8}.Release|Any CPU.Build.0 = Release|Any CPU
{BC407A9C-4BD2-4086-9862-6E5A547D1DD8}.Release|x64.ActiveCfg = Release|Any CPU
{BC407A9C-4BD2-4086-9862-6E5A547D1DD8}.Release|x64.Build.0 = Release|Any CPU
{BC407A9C-4BD2-4086-9862-6E5A547D1DD8}.Release|x86.ActiveCfg = Release|Any CPU
{BC407A9C-4BD2-4086-9862-6E5A547D1DD8}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
Шаг 3: Crtl+Shift+P, чтобы включить проект.
У меня была такая же проблема, но с папкой проекта TypeScript. Решение состояло в том, чтобы просто снова открыть папку.
Я знаю, что опаздываю на эту тему, но перезапуск omnisharp не решил эту проблему для меня. Что действительно решило проблему, так это запуск «восстановления dotnet» и повторное открытие папки проекта.
Сегодня я сталкиваюсь с той же проблемой, пытаюсь переместить себя из Visual Studiod в код. Поскольку мой проект основан на микросервисе, у меня есть несколько решений и репозиториев по отношению к каждому микросервису, чтобы упростить CI / CD. Теперь, где функция кода VS Multipel Root Work Space помогает мне, поэтому, пожалуйста, следуйте шагу ниже, если вы настраиваете VS Code с точки зрения профессионального развития в качестве разработчика C #,
- Установите Node.js,
- Установите НПМ.
- Установите .net ядро
- Установите git (это может быть и другой scm)
- Теперь установите VS Code,
- Установите расширение OMNI Sharp C#, это поможет вам в отладке, а также обеспечит интеллигентность и предоставит такие функции, как функция перехода к определению (у нее есть одно ограничение, когда она может работать только в одном решении, даже если у вас есть рабочее пространство с несколькими корнями, я думаю, они сохранят его таким образом, чтобы сохранить легкий вес, чтобы переключаться между несколькими решениями, в таком случае вам нужно использовать опцию переключения проекта. nofollow noreferrer">
)
- two more good extension i like is
- C# IDE(help you with few new nice template to create a Class File,Inferface option, the one i like is , when you create costructor and pull parameter show suggestion to create filed or proeperty for them just by Ctrl+.)
- Git History, чтобы проверить историю Git.
- Множественный терминал также является хорошей функцией, так как мне приходится запускать множество сервисов во время разработки.
- Вы можете настроить launch.setting для каждого отдельного проекта, необходимого для отладки (если вы не хотите делать это вручную, сначала откройте каждую папку решения индивидуально одну за другой, vsc help создаст для вас)
- Чтобы создать WorkSpace, не нужно ничего делать, просто начните добавлять папку sln на вкладку рабочей области,
Ctrl+shif+P : Рабочая область: открыть Файл конфигурации, после которого вы также можете настроить составной запуск, чтобы одновременно открывать несколько sln в режиме отладки, как показано ниже: «launch»: { «configurations»: [
], "compounds": [ { "name": "Launch Server & Client", "configurations": [ "CMSAPI",// Each indivisual sln launch setting unique name "Core" ] } ]
}
"http.proxy": "http://username:password@ipaddress:port"
в свои пользовательские настройки VSCode. Замените имя пользователя, пароль, IP-адрес и порт в соответствии с аутентификацией, которую вы предоставили для своей учетной записи. Если ваш пароль содержит@
, добавьте имя пользователя@пароль в кавычки - person boop_the_snoot   schedule 28.12.2017