'VSCode C# "go to definition" (F12) not working
I'm using VSCode 1.19 and trying to "Go>Go to definition" in a C# file like in Visual Studio and it does nothing. In a .js file it works well and i'm guessing if there is some workaround this.
Solution 1:[1]
There may be multiple "projects" in the folder and VSCode has selected the "wrong" one. (in VSCode terms "project" means the sln file)
Use ctrl-shift-P and select "OmniSharp: Select Project" to select the correct project (a .sln file).
If you have the Output window open with "OmniSharp Logs" selected, you will see it reading your csproj's. Once finished your goto definition will start to work
Solution 2:[2]
As written in the comments for @AndyPook's answer, another possible solution is to just restart OmniSharp.
CTRL + SHIFT + P -> OmniSharp: Restart OmniSharp
Solution 3:[3]
Fix: When multiple solutions in same folder
This answer is visual version of @AndyPook's answer.
1. Crtl+Shift+P
2. Search >OmniSharp
3. Choose option Select Project
4. It will show all the list of solutions in your folder. select the correct e.g:
5. Verify it by looking into OmniSharp Logs
Solution 4:[4]
I had the same problem, but with a TypeScript project folder. The solution was to simply reopen the folder.
Solution 5:[5]
I know that I am late to this thread, but restarting omnisharp did not fix this problem for me. What did fix the problem was running 'dotnet restore' and opening the project folder again.
Solution 6:[6]
I had the same problem in VSCode (multiple projects Web API and Angular MVC) and resolved by creating a new sln file. Please do the following steps:
Step 1: Create the project sln file. ( ex: MyApp.sln )
Step 2: Open the sln file and paste this code:
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
Step 3: Crtl+Shift+P to switch on the project.
Solution 7:[7]
Try Using Shift+Fn+F12 if all required extension are installed depends on your system config
Solution 8:[8]
"Go to definition" was working for me for a long time, but recently stopped working. My solution was:
- Go to Extensions
- Find the C# extension (version 1.25.0 in my case)
- Click the cogwheel
- Select "Install Another Version..."
- Select one of the previous versions (version 1.24.4 fixed the problem for me)
- Press "Reload Required" when the selected version has been installed
Solution 9:[9]
I resolved by
- check error on omnisharp log omnisharp log
OniSharp Error: Found dotnet version 5.0.201. Minimum required version is 6.0.100
- set "omnisharp.useModernNet": false on C# extension user/workspace
- open source code folder and reload vscode
Solution 10:[10]
I face same probleam today, try to move my self from Visual Studiod to Code, As My porject is Microservie based , i have multiple Solution and repos with respect to each microservice , for make CI/CD simple, Now where the VS code Feature of Multipel Root Work Space helping me, So please follow below step if you are Setting up VS Code from professional developement prospect as c# developer,
- Install Node.js,
- Install NPM.
- Install .net Core
- Install git.(it can be other scm as well )
- Now Install VS Code,
- Install OMNI Sharp C# extension, this will help you in debug as well provide intllisence and provide feature like Go To Defination feature(it have one limittation at time it can run only on one solution even you have multi root workspace, I think they keep it like that way to keep the thing light weight ,to switch between multiple solution in such case you have to use switch project option.
) - 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 to Check Git History.
- Multiple Teriminal is also nice feature as i have to run to many services at development time.
- You Can Setup launch.setting for each indivisual project required for debug(if donot want to do manually , first open each solution folder indivisually one by one, vsc help will create for you )
- To create WorkSpace, no need to do harwork just Start adding your sln folder to workspace tab,
Crtl+shif+P : Workspace:open Configuration file you can setup compound launch setting as well after that, to open multiple sln in debug mode at same time, like below one: "launch": { "configurations": [
], "compounds": [ { "name": "Launch Server & Client", "configurations": [ "CMSAPI",// Each indivisual sln launch setting unique name "Core" ] } ]}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | Yngvar Kristiansen |
| Solution 3 | |
| Solution 4 | Krisztián Balla |
| Solution 5 | jawsofdoom |
| Solution 6 | |
| Solution 7 | Pankaj Pahuja |
| Solution 8 | GeirS |
| Solution 9 | |
| Solution 10 |

