如何在 Visual Studio 中将源附加到引用的程序集

Posted

技术标签:

【中文标题】如何在 Visual Studio 中将源附加到引用的程序集【英文标题】:How to attach sources to referenced assembly in Visual Studio 【发布时间】:2011-07-19 02:42:45 【问题描述】:

我是 Visual Studio 的新手,来自 Eclipse 上的 Java 开发。我非常怀念 Eclipse 的其他功能之一是查看二进制程序集源代码的能力。

在 Eclipse 中,我可以为引用的 jar 附加对源代码的引用,之后导航到源代码、添加断点和调试它们就变得非常容易,就好像我的工作区中有库一样。

到目前为止,我还没有设法将源代码附加到程序集引用。

有可能吗?我该怎么做(鉴于我确实可以访问该库的源代码)?

【问题讨论】:

【参考方案1】:

使用 VS2010 - 您首先需要使用调试符号编译引用的程序集。

那么有几个选项:

    在对象浏览器中查找要调试的对象。右键单击 -> 导航至 -> 来自符号文件的源。 单步执行代码,直到单步执行引用的程序集。此时会弹出一个对话框,询问源文件在哪里。如果没有,或者您取消了它,那么右侧将出现“浏览以查找源”。如果它显示为灰色,则可能是因为您引用的是发布程序集。

【讨论】:

我没有看到来自符号文件的来源。我相信这是 Resharper 的一项功能。【参考方案2】:

如果您使用ReSharper,您可以通过转到 ReSharper / Options / External Sources 来启用它,然后将“来自符号文件的源”上移。然后在“来自符号文件的源”选项卡中,单击“高级”,您可以在其中映射源文件夹。

这是答案here 的副本,但我想将其包含在此处,因此如果您,读者,偶然发现了此链接,您也有答案。

【讨论】:

ReSharper 配置中的 sourcetarget 文件夹是什么意思?【参考方案3】:

最快的方法: 如果您有这些程序集的源代码。将该源代码作为新项目添加到您当前的解决方案中,以便组装项目和您的引用项目成为单个解决方案的一部分。

现在从添加引用添加对程序集项目中的程序集的引用,然后选择'Projects'选项卡。

在您的汇编源代码中放置断点,然后开始调试并享受乐趣!

使用 'step into' 或 F11,在源代码中引用时会触发断点。

【讨论】:

谢谢,但这不行。我仍然需要从二进制程序集中定义我的依赖关系,而不是源代码(我已经使用 NuGet 包管理器进行了依赖)。我拥有源代码这一事实应该只是对我的调试和代码考古需求的帮助...... 此外 - 我使用 CI 服务器来构建我的解决方案,并且拥有大多数外部依赖项的源项目将不必要地增加我的解决方案的构建时间。

以上是关于如何在 Visual Studio 中将源附加到引用的程序集的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio c++ 项目中将 Eigen 外部库放在哪里?

如何从 Visual Studio 调试输出窗口中读取文本

如何使用visual studio 2017编写一个C++程序

如何在 Visual Studio 中将此 SQL 查询转换为 Elasticsearch 查询?

如何在 Visual Studio 2017 中将包添加到 python

如何在 Visual Studio 2010 中将数据保存到本地数据库?