Hiero De Paula
Hiero De Paula

Reputation: 867

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.

Upvotes: 69

Views: 88843

Answers (14)

Kevin Parker
Kevin Parker

Reputation: 17216

Although this is probably not the solution for most, our project had about 3 million files in one of the directories, not part of the PyLint exclude list.

Upvotes: 0

Rahul Gupta
Rahul Gupta

Reputation: 1

It may be issue of some extension in Visual Studio. I disabled "JetBrains ReSharper 2021.3.3" extension from "Manage Extensions". After it, "Go to Definition" (F12) started working. (Extensions --> Manage Extensions)

Visual Studio Extension

Upvotes: -1

Joe Plumb
Joe Plumb

Reputation: 499

I created a new project folder on the command line which led to this error.

My solution was to add the new project folder to the solution explorer in VSCode by right-clicking on the solution and selecting "Add Existing Project..."

Screenshot of the SOLUTION EXPLORER section on VSCode. The solution has been right-clicked on, and the mouse is hovering over "Add Existing Project..."

Upvotes: 0

AndyPook
AndyPook

Reputation: 2889

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

Upvotes: 95

GeirS
GeirS

Reputation: 139

"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

EDIT: It is better to follow Kyle Challis' suggestions!

Upvotes: 13

123
123

Reputation: 1065

For anyone using the C# extension and coming here after May 24, 2022: version 1.25.0 of the extension disabled support for a few things

You can follow instructions at that link to get it working with 1.25.0, or you can rollback to version 1.24.4, per GeirS' answer

Upvotes: 5

Ligerking
Ligerking

Reputation: 31

I resolved by

  1. check error on omnisharp log omnisharp log

OniSharp Error: Found dotnet version 5.0.201. Minimum required version is 6.0.100

  1. set "omnisharp.useModernNet": false on C# extension user/workspace

unchecked .net 6

  1. open source code folder and reload vscode

Upvotes: 3

Pankaj Pahuja
Pankaj Pahuja

Reputation: 11

Try Using Shift+Fn+F12 if all required extension are installed depends on your system config

Upvotes: 0

Abdul Saboor
Abdul Saboor

Reputation: 4127

Fix: When multiple solutions in same folder

This answer is visual version of @AndyPook's answer.

1. Crtl+Shift+P

2. Search >OmniSharpenter image description here 3. Choose option Select Project

4. It will show all the list of solutions in your folder. select the correct e.g:enter image description here

5. Verify it by looking into OmniSharp Logs

OmniSharp Logs

Upvotes: 17

SriDD
SriDD

Reputation: 19

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.

Upvotes: 1

jawsofdoom
jawsofdoom

Reputation: 297

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.

Upvotes: 1

Yngvar Kristiansen
Yngvar Kristiansen

Reputation: 1462

As written in the comments for @AndyPook's answer, another possible solution is to just restart OmniSharp.

CTRL + SHIFT + P -> OmniSharp: Restart OmniSharp

Upvotes: 21

Krisztián Balla
Krisztián Balla

Reputation: 20391

I had the same problem, but with a TypeScript project folder. The solution was to simply reopen the folder.

Upvotes: 1

Mohit
Mohit

Reputation: 311

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. enter image description here )
  • 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"
            ]
        }
    
    ]
    

    }

Upvotes: -1

Related Questions