web-dev-qa-db-fra.com

VSCode C # "aller à la définition" (F12) ne fonctionne pas

J'utilise VSCode 1.19 et j'essaie de "Aller> Aller à la définition" dans un fichier .cs comme dans Visual Studio et cela ne fait rien. Dans un fichier .js, cela fonctionne bien et je suppose qu'il existe une solution de contournement.

11
Hiero De Paula

Il peut y avoir plusieurs "projets" dans le dossier et VSCode a sélectionné le "mauvais".

Utilisez ctrl-shift-P et sélectionnez "OmniSharp: Select Project" pour sélectionner le projet correct (un fichier .sln).

Si vous avez la fenêtre Sortie ouverte avec "Journaux OmniSharp" sélectionné, vous la verrez en train de lire vos csproj. Une fois terminée, votre définition goto commencera à fonctionner

4
AndyPook

J'ai eu le même problème dans VSCode (API Web pour plusieurs projets et Angular MVC) et résolu en créant un nouveau fichier sln. Veuillez suivre les étapes suivantes:

Étape 1: Créez le fichier de projet sln. (ex: MyApp.sln)

Étape 2: Ouvrez le fichier sln et collez ce 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

Étape 3: Crtl+Shift+P pour activer le projet.

1
SriDD

Je sais que je suis en retard sur ce sujet, mais le redémarrage d'omnisharp n'a pas résolu ce problème pour moi. Ce qui a résolu le problème était d'exécuter la "restauration dotnet" et d'ouvrir à nouveau le dossier du projet.

1
Kevin Bell

Correction: lorsque plusieurs solutions dans le même dossier

Cette réponse est une version visuelle de la réponse de @ AndyPook.

1.  Crtl+Shift+P

2. Rechercher >OmniSharpenter image description here 3.. Choisissez l'option Select Project

4. Il affichera toute la liste des solutions dans votre dossier. sélectionnez le bon exemple: enter image description here

5. Vérifiez-le en consultant les journaux OmniSharp

OmniSharp Logs

0
Abdul Saboor

Je suis confronté au même problème aujourd'hui, essayez de passer de Visual Studiod à Code, car mon projet est basé sur Microservie, j'ai plusieurs solutions et référentiels pour chaque microservice, pour rendre CI/CD simple, maintenant où le code VS Multipel Root Work Space m'aide, veuillez donc suivre l'étape ci-dessous si vous configurez VS Code à partir d'un prospect de développement professionnel en tant que développeur c #,

  • Installez Node.js,
  • Installez NPM.
  • Installer .net Core
  • Installez git. (Il peut aussi s'agir d'autres scm)
  • Maintenant, installez VS Code,
  • Installez l'extension OMNI Sharp C #, cela vous aidera dans le débogage et fournira également une fonctionnalité comme la fonctionnalité Aller à la définition (elle a une limitation à la fois, elle ne peut fonctionner que sur une seule solution même si vous avez un espace de travail multi-racine, je pense qu'ils la gardent comme cette façon de garder la chose légère, pour basculer entre plusieurs solutions dans ce cas, vous devez utiliser l'option de changement de projet. enter image description here )
  • deux autres bonnes extensions que j'aime est
    • C # IDE (aidez-vous avec quelques nouveaux modèles Nice pour créer un fichier de classe, l'option Inferface, celle que j'aime, lorsque vous créez un costructor et tirez la suggestion de paramètre pour créer un fichier ou une propriété pour eux juste par Ctrl +.)
    • Historique Git pour vérifier l'historique Git.
  • Multiple Teriminal est également une fonctionnalité intéressante car je dois exécuter de nombreux services au moment du développement.
  • Vous pouvez configurer launch.setting pour chaque projet individuel requis pour le débogage (si vous ne voulez pas le faire manuellement, ouvrez d'abord chaque dossier de solution individuellement un par un, l'aide de vsc créera pour vous)
  • Pour créer WorkSpace, pas besoin de travailler dur Commencez simplement à ajouter votre dossier sln à l'onglet de l'espace de travail,
  • Crtl + shif + P: Workspace: ouvrez le fichier de configuration, vous pouvez également configurer le paramètre de lancement composé pour ouvrir plusieurs sln en mode débogage en même temps, comme ci-dessous: "launch": {"configurations": [

    ],
    "compounds": [
        {
            "name": "Launch Server & Client",
            "configurations": [
              "CMSAPI",// Each indivisual sln launch setting unique name
              "Core"
            ]
        }
    
    ]
    

    }

0
Mohit

J'ai eu le même problème, mais avec un dossier de projet TypeScript. La solution était de simplement rouvrir le dossier.

0
Jenny O'Reilly