Visual Studio中的"转到定义"(F12)打开了对象浏览器而不是代码视图

22

我正在使用VS2005,当我右键点击一个对象并选择“转到定义”时,它会带我去对象浏览器而不是实际代码。

有什么设置可以更改来解决这个问题吗?注意:对于C#解决方案,它可以正常工作,但我在Basic中遇到了这个问题。


现在是Visual Studio 2022,我报告说下面的4个答案都不能解决我的问题。我的解决方法是使用代码搜索而不是转到定义,并选择对我来说通常是第二个匹配项(第一个匹配项是对象浏览器)。 - undefined
4个回答

14

我通常在将库添加为“二进制”引用而不是“项目”引用时会看到这种情况。您可能需要从“项目”选项卡中删除该引用,然后重新添加它。


是的,它是引用到一个dll中。这是在VB.NET中引用C#编写的内容的唯一方式吗? - Kevin
1
你应该能够将C#和VB.NET项目添加到一个解决方案中,并且应该能够从VB项目访问C#项目的代码,反之亦然。但是你不能在一个项目中混合使用C#和VB.NET。 - Partha Choudhury
你不能使用Visual Studio的Go to Definition(F12)在单个解决方案中浏览vb.net和c#代码,为此你需要像resharper这样的工具。 - Giulio Caccin
@ParthaChoudhury - 在阅读了您的评论后,我尝试自己做了一下 - 我可以确认它并没有起作用。在C#和VB.NET之间跳转到定义是无效的。 - BornToCode

14

这也可能是由于高级编译选项中的 .Net Framework 版本不匹配引起的。

http://blogs.msdn.com/blogfiles/bethmassi/WindowsLiveWriter/MigratinganOutlookClienttoVisualStudio20_CB9A/image_4.png

我发现我的一个项目设置为 .net 3.5,而另一个则为 .net 4.0。

当我在 .net 4.0 项目上点击 转到定义 (f12)时,.net 3.5 项目中的代码仅在对象浏览器中显示。

幸运的是,我可以将两者都更改为相同的版本而没有任何问题,但那些有已建立的代码库的人在更改 .net 版本时需要注意。


3

我在使用 Visual Studio 2015 的 C/C++ 原生项目时,切换不同的 Git 分支后也遇到了这个问题。解决方案是关闭 VS,进入 $(SolutionDir) 并删除 .sdf 文件,然后重新打开解决方案。


我也遇到了VS2015 Update 2 C/C++本地项目的这个问题。我按照你的解决方案操作,但没有找到任何.sdf文件。不过,我删除了.db文件和ipch文件夹,问题得以解决。 - ajcaruana

0

我不确定为什么,但当我遇到这个问题时,我的解决方案处于发布模式。当我将解决方案切换到调试模式时,调试/导航正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接