web-dev-qa-db-ja.com

VSCode C#「定義に移動」(F12)が機能しない

私はVSCode 1.19を使用しており、Visual Studioのように.csファイルで「定義に移動」しようとしていますが、何も実行されません。 .jsファイルではそれはうまく機能し、これにいくつかの回避策があるかどうか私は推測しています。

11
Hiero De Paula

フォルダに複数の「プロジェクト」がある可能性があり、VSCodeが「間違った」プロジェクトを選択しました。

Ctrl-shift-Pを使用して「OmniSharp:Select Project」を選択し、正しいプロジェクト(.slnファイル)を選択します。

「OmniSharp Logs」を選択して出力ウィンドウを開いている場合、csprojを読み取っているのがわかります。 goto定義が完了すると、機能し始めます

4
AndyPook

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 プロジェクトをオンにします。

1
SriDD

私はこのスレッドに遅れていることを知っていますが、omnisharpを再起動してもこの問題は解決しませんでした。問題を修正したのは、「dotnet復元」を実行して、プロジェクトフォルダーを再度開くことでした。

1
Kevin Bell

修正:同じフォルダーに複数のソリューションがある場合

この回答は、@ AndyPookの回答のビジュアルバージョンです。

1。 Crtl+Shift+P

2。検索>OmniSharpenter image description here3。オプションを選択Select Project

4。フォルダ内のソリューションのすべてのリストが表示されます。正しい例を選択してください: enter image description here

5。OmniSharpログを調べて確認します

OmniSharp Logs

0
Abdul Saboor

私は今日同じ問題に直面していますが、自分のVisual Studiodからコードに移動しようとします。私のプロジェクトはMicroservieベースなので、各マイクロサービスに関して複数のソリューションとリポジトリを持っています。CI/ CDをシンプルにするために、ここでVSコードの機能Multipel Root Work Spaceが役立ちます。c#開発者として専門の開発見込み者からVSコードを設定する場合は、以下の手順に従ってください。

  • Node.jsをインストールします。
  • NPMをインストールします。
  • .net Coreをインストールする
  • Gitをインストールします(他のscmでもかまいません)。
  • VSコードをインストールします。
  • OMNI Sharp C#拡張機能をインストールします。これはデバッグに役立ち、統合機能を提供し、定義への移動機能などの機能を提供します(マルチルートワークスペースがあっても、1つのソリューションでのみ実行できる制限が1つあります。そのように軽量のものを維持するために、そのような場合に複数のソリューションを切り替えるには、プロジェクトの切り替えオプションを使用する必要があります enter image description here
  • 私が好きなもう2つの良い拡張子はです。
    • C#IDE(いくつかの新しいニーステンプレートを使用してクラスファイル、インターフェイスオプションを作成するのに役立ちます。私が好きなのは、コンストラクターを作成し、パラメーターショーの候補を表示して、Ctrl +だけでフィールドまたはプロパティを作成することです。)
    • Git履歴をチェックするGit履歴。
  • 複数のTeriminalも素晴らしい機能です。開発時に多くのサービスを実行する必要があるためです。
  • デバッグに必要な個々のプロジェクトごとにlaunch.settingをセットアップできます(手動で行いたくない場合は、最初に各ソリューションフォルダーを1つずつ個別に開いてください。vscヘルプが作成します)
  • WorkSpaceを作成するには、harworkを実行する必要はありません。ワークスペースタブにslnフォルダーを追加するだけです。
  • Crtl + shif + P:ワークスペース:オープン構成ファイルその後、複合起動設定をセットアップして、以下のように複数のslnをデバッグモードで同時に開くことができます: "launch":{"configurations":[

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

    }

0
Mohit

同じ問題がありましたが、TypeScriptプロジェクトフォルダーが原因でした。解決策は、単にフォルダを再び開くことでした。

0
Jenny O'Reilly