[英]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.