单步执行引用解决方案中的代码

Step through code in a referenced solution

通常当我想调试 nuget 包时,我会下载源代码并将 .csproj 文件添加到我的解决方案并添加项目引用而不是使用 nuget 包。这让我可以单步执行代码,看看我的实时项目发生了什么。

我有一个要调试的 nuget 包,但它非常大。我下载了源代码,解决方案中有大约 20 个项目。我尝试只添加其中的一些,但最终出现了很多依赖性问题。

有什么方法可以告诉 visual studio nuget 包的源代码存在于我的 HD 上,这样我就可以单步执行它而不必向我当前的解决方案添加 20 个项目?或者也许可以通过某种方式添加对整个解决方案的引用?

我的目标是能够设置断点,这样当第三方编译的代码执行时,我可以单步执行它并查看发生了什么。执行此操作的最佳方法是什么?

假设应用程序是 .NET 4.7.2。您可以尝试 dnSpy,它允许您调试和编辑内置的 executable/dll.

GitHub Page: https://github.com/0xd4d/dnSpy

Latest Release:https://github.com/0xd4d/dnSpy/releases/download/v5.0.0/dnSpy.zip

下载一次

  • 为 64 位应用程序启动 dnSpy.exe 或为 32 位应用程序启动 dnSpy-x86.exe。
  • 使用“文件”->“打开”找到您的 exe 和 dll 文件。
  • 在 dnSpy 中应用您的断点。
  • 像在 Visual Studio
  • 中一样点击开始

Emcrank 针对没有源代码的问题提供了非常有趣的解决方案,但它不适合我。

我的答案其实很简单。要添加现有项目时,您可以更改下拉列表以添加 .sln 文件。我创建了一个文件夹,然后向其中添加了解决方案,它通过单个事务将所有内容都拉入其中,现在我可以轻松调试所有代码。