19

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

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

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

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

总结一下:

  • 引用的项目是一个 DLL
  • 我有 PDB 信息
  • 单步调试模式将我带到源代码
  • F12 将我带到元数据
  • 我希望 F12 像调试一样将我带到源代码。

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

4

7 回答 7

12

在 Visual Studio 中展开“引用”部分,选择对相关项目的引用(包含要 F12 进入的源代码的项目)右键单击它并选择“删除”。

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

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

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

于 2013-03-05T16:49:37.170 回答
8

如果您安装了 ReSharper,您应该调出 ReSharper 选项,然后查找External Sources. 您可以在此处指定相关选项:

在此处输入图像描述

于 2015-02-25T08:14:17.940 回答
4

看来这个问题已经在 Visual Studio 2013 中解决了。当我使用 Go To Definition 时,将 PDB 信息与 DLL 放在同一个文件夹中会向我显示源代码。我没有安装反射器扩展。

于 2015-10-27T00:48:22.377 回答
2

引用的 DLL 是您解决方案中的项目吗?我发现当我拥有项目的源代码并且它在我的解决方案中时,Visual Studio 能够更轻松地链接到此代码。(不显示元数据)。

此外,请务必在“参考”弹出窗口中通过“项目”添加参考。

当我遇到这个问题时,这通常是我所做的

希望这可以帮助!

PS。PDB 文件通常仅用于调试(本地和远程),不用于以您尝试使用它的方式读取源代码。(“转到定义”)

于 2012-11-02T21:44:25.263 回答
1

此问题的一种解决方案是使用 .NET Reflector、VS 或 VSPro 版本。该程序将修改 Visual Studio 以提供所需的功能。

http://www.reflector.net/

不幸的是,它的价格为 135 到 195 美元,这不是每个人都可以选择的。

于 2012-11-03T00:01:05.260 回答
-1

Add the reference as a project instead of ..\bin\Debug\referenceFile.dll

That solved my issue

于 2014-12-16T16:39:18.483 回答
-1

我还使用添加引用作为项目,我的问题已经解决并且运行良好。实际上我很长一段时间都被困在这一点上,最后我解决了这个问题。

参考 -> 添加参考 -> 解决方案 -> 项目 -> 选择参考

在此处输入图像描述

于 2015-10-17T12:47:12.227 回答