【问题标题】:“Go To Definition” in Visual Studio only brings up the Metadata for Non-Project referencesVisual Studio 中的“转到定义”仅显示非项目引用的元数据
【发布时间】:2012-11-02 21:34:03
【问题描述】:

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

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

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

"Go To Definition" in Visual Studio only brings up the Metadata

总结一下:

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

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

【问题讨论】:

    标签: c# visual-studio-2010


    【解决方案1】:

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

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

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

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

    【讨论】:

    • -1:此问题与“项目”文件不可用且仅存在 DLL 和 PDB 文件的引用有关。您的答案需要项目文件和完整源代码,它们不属于此类别。
    • @JosephWhite 您正在寻找的问题就在这里,stackoverflow.com/questions/837037/… 请对这个答案投赞成票,对这个分类错误的答案投反对票。当类似(但不同)的问题得到同等对待时,该网站的用处就会降低。
    • 好兄弟(Y)为我工作
    • 仅供参考:我在 VS 2017 中遇到了同样的问题,这解决了它。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        另外,请务必在引用弹出窗口中通过“项目”添加引用。

        当我遇到这个问题时,我通常会这样做

        希望这会有所帮助!

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

        【讨论】:

        • 这不是一个选项,抱歉。我正在寻找解决方案,而不是创可贴。
        • 很抱歉听到这个消息。祝你好运,无论你选择做什么。然而,这不是创可贴。很多像你这样的人一直这样做是为了解决他们的问题。
        • 我在问题中说,链接问题中的答案与我的问题无关。该答案与您给出的答案基本相同。这是一个不同的问题。
        【解决方案5】:

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

        http://www.reflector.net/

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

        【讨论】:

        • 这可能是最简单的解决方案,尽管它会花费 $。 Reflector 的 VS 插件允许您 F12 进入任何引用的 DLL,无论是否有源代码
        【解决方案6】:

        将引用添加为项目而不是 ..\bin\Debug\referenceFile.dll

        这解决了我的问题

        【讨论】:

          【解决方案7】:

          我还使用了添加引用作为项目,我的问题已经解决并且运行良好。其实我卡在这个点上很久了,终于解决了这个问题。

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

          【讨论】:

            猜你喜欢
            • 2010-10-24
            • 2017-07-18
            • 1970-01-01
            • 1970-01-01
            • 2016-05-21
            • 1970-01-01
            • 2011-11-30
            • 1970-01-01
            相关资源
            最近更新 更多