![](/img/trans.png)
[英]I got error when press F12 Go to definition in Visual Studio 2015 / C#
[英]VSCode C# "go to definition" (F12) not working
我正在使用 VSCode 1.19 並嘗試在 C# 文件中“轉到>轉到定義”,就像在 Visual Studio 中一樣,它什么也沒做。 在 a.js 文件中它運行良好,我猜是否有一些解決方法。
文件夾中可能有多個“項目”,而 VSCode 選擇了“錯誤”的一個。 (在 VSCode 術語中,“項目”是指 sln 文件)
使用 ctrl-shift-P 並選擇“OmniSharp:選擇項目”以選擇正確的項目(.sln 文件)。
如果您打開輸出窗口並選擇“OmniSharp Logs”,您將看到它正在讀取您的 csproj。 完成后,您的 goto 定義將開始工作
正如@AndyPook 回答的評論中所寫,另一種可能的解決方案是重新啟動 OmniSharp。
CTRL + SHIFT + P -> OmniSharp: Restart OmniSharp
“去定義”為我工作了很長時間,但最近停止工作。 我的解決方案是:
我在 VSCode(多個項目 Web API 和 Angular MVC)中遇到了同樣的問題,並通過創建一個新的sln
文件來解決。 請執行以下步驟:
第一步:創建項目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打開項目。
我解決了
OniSharp 錯誤:找到 dotnet 版本 5.0.201。 最低要求版本為 6.0.100
對於使用 C# 擴展並在 2022 年 5 月 24 日之后來到這里的任何人:擴展的 1.25.0版禁用了對一些事情的支持
根據GeirS 的回答,您可以按照該鏈接上的說明使其與 1.25.0 一起使用,或者您可以回滾到 1.24.4 版本
我有同樣的問題,但有一個 TypeScript 項目文件夾。 解決方案是簡單地重新打開文件夾。
我知道我遲到了這個線程,但是重新啟動 omnisharp 並沒有為我解決這個問題。 解決問題的是運行“dotnet restore”並再次打開項目文件夾。
如果安裝了所有必需的擴展,請嘗試使用 Shift+Fn+F12 取決於您的系統配置
就我而言,@Abdul Saboor 的回答讓我朝着正確的方向前進。 我檢查了日志,結果發現此功能需要 .NET 6。
我今天面臨同樣的問題,嘗試將我的自我從 Visual Studiod 轉移到代碼,因為我的項目是基於微服務的,對於每個微服務,我有多個解決方案和存儲庫,為了使 CI/CD 變得簡單,現在 VS 代碼功能Multipel Root Work Space 對我有幫助,所以如果您作為 c# 開發人員從專業開發前景設置 VS Code,請按照以下步驟操作,
Crtl+shif+P : Workspace:open 配置文件之后你也可以設置復合啟動設置,在調試模式下同時打開多個sln,如下所示: "launch": { "configurations": [
], "compounds": [ { "name": "Launch Server & Client", "configurations": [ "CMSAPI",// Each indivisual sln launch setting unique name "Core" ] } ]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.