Visual Studio中的"转到定义"仅显示非项目引用的元数据

nuz*_*ilo 16 c# visual-studio-2010

我有一个C#项目,其中包含对DLL格式的程序集的引用.我有这些DLL文件的PDB信息,包含在同一个文件夹中.当我在引用的成员上按F12时,我想转到该成员的定义.相反,它给了我元数据,当然我不想要.

当VS正在调试时,如果我单步进入该方法,它会转到源代码.但是,如果我在该方法上按F12,它仍会将我带到元数据中.

这里有一个类似的问题,但它只适用于项目引用,并且接受的解决方案与我的问题无关.

Visual Studio中的"转到定义"仅显示元数据

总结一下:

  • 引用的项目是一个DLL
  • 我有PDB信息
  • 调试模式中的单步执行使我获得源代码
  • F12带我到元数据
  • 我希望F12能像调试一样把我带到源代码.

编辑:添加为"项目"不是一个选项,因为它会产生额外的复杂性,因为我们的解决方案文件引用了大约五个其他项目,这些项目都在不同的源控制存储库下.

mkn*_*opf 11

在Visual Studio中展开"引用"部分,选择对相关项目的引用(包含要转换为F12的源代码的项目),右键单击它并选择"删除".

然后通过右键单击"引用"并选择"添加引用",在"项目"选项卡下(如果使用VS 2012)选择(或浏览)要添加引用的项目,然后单击"确定"按钮,将引用添加回项目. .

这将重建引用,您将能够将F12引入引用的项目源代码中.您需要对解决方案中遇到此问题的所有项目执行此操作.

我不知道为什么会这样,但至少问题的解决方案相当简单

  • -1:此问题与"项目"文件不可用且仅存在DLL和PDB文件的引用有关.您的答案需要项目文件和完整来源,不属于此类别. (3认同)

Kla*_*urn 7

如果安装了ReSharper,则应调出ReSharper选项并查找External Sources.在那里,您可以指定相关选项:

在此输入图像描述


nuz*_*ilo 4

看来这个问题已在 Visual Studio 2013 中得到解决。当我使用“转到定义”时,将 PDB 信息与 DLL 放在同一文件夹中可以显示源代码。我没有安装 Reflector 扩展。