C# VisualStudio中的“转到定义”仅显示非项目引用的元数据

C# VisualStudio中的“转到定义”仅显示非项目引用的元数据,c#,visual-studio-2010,C#,Visual Studio 2010,我有一个C项目,其中包含对DLL格式程序集的引用。我有这些DLL文件的PDB信息,包含在同一个文件夹中。在引用的成员上按F12键时,我想转到该成员的定义。相反,它给了我元数据,这当然是我不想要的 当VS调试时,如果我单步进入该方法,它确实会转到源代码。但如果我在该方法上按F12键,它仍然会将我带到元数据 这里有一个类似的问题,但它只适用于项目参考,而公认的解决方案与我的问题无关 总结如下: 引用的项目是一个DLL 我有PDB信息 调试模式下的单步执行将使我了解源代码 F12带我到元数据 我希望F

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

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

这里有一个类似的问题,但它只适用于项目参考,而公认的解决方案与我的问题无关

总结如下:

引用的项目是一个DLL 我有PDB信息 调试模式下的单步执行将使我了解源代码 F12带我到元数据 我希望F12能像调试一样让我了解源代码。
编辑:添加为项目不是一个选项,因为它会增加复杂性,因为我们的解决方案文件引用了其他五个项目,它们都在单独的源代码管理存储库中

引用的DLL是您的解决方案中的项目吗?我发现当我有了项目的源代码,并且它在我的解决方案中时,VisualStudio能够更容易地链接到这些代码。没有显示元数据

此外,请确保在“引用”弹出窗口中按项目添加引用

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

希望这有帮助


PS.PDB文件通常只用于本地和远程调试,不用于以您试图使用它的方式读取源代码。转到定义

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


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

在Visual Studio中展开“引用”部分,选择对您的相关项目的引用—其中包含您要导入的源代码—右键单击该项目并选择“删除”

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

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


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

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


这就解决了我的问题

如果您安装了ReSharper,您应该打开ReSharper选项,并查找外部源。您可以在此处指定相关选项:


我还使用添加参考作为一个项目,我的问题已经解决,它的工作非常好。事实上,我在这一点上被困了很长时间,最后我解决了这个问题

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


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

对不起,这不是一个选项。我正在寻找解决办法,而不是一个乐队。很遗憾听到这个。无论你选择做什么,祝你好运。然而,这并不是一种创可贴。在你们这种情况下,很多人总是这样做来解决他们的问题。我在问题中说,相关问题的答案与我的问题无关。这个答案与你给出的答案基本相同。这是一个不同的问题。-1:这个问题是关于项目文件不可用且仅存在DLL和PDB文件的引用。您的答案需要项目文件和完整来源,但不属于此类别。@JosephWhite您要找的问题在这里,请向上投票该答案,向下投票该分类错误的答案。当相似但不同的问题被同等对待时,该网站就变得不那么有用了。Nice one bro Y为meFYI工作:我在VS 2017中遇到了同样的问题,这解决了它。这可能是最简单的解决方案,尽管它将花费美元。反射器的VS附加组件允许您将F12插入任何引用的DLL,而不管是否有源代码