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

时间:2018-09-21 10:39:14

标签: c# visual-studio asp.net-core visual-studio-2017 nuget-package

通常,当我要调试nuget程序包时,我下载源代码并将.csproj文件添加到解决方案中,并添加项目引用,而不使用nuget程序包。这样一来,我就可以逐步遍历代码,并查看正在进行的项目中发生了什么。

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

是否可以通过某种方式告诉Visual Studio HD上存在nuget软件包的源代码,这样就可以逐步执行它而不必在当前解决方案中添加20个项目?或以某种方式添加对整个解决方案的引用?

我在这里的目标是能够设置断点,以便当第三方编译的代码执行时,我可以逐步执行它,看看发生了什么。最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

enter image description here假定应用程序是.NET 4.7.2。您可以尝试使用dnSpy,它可以调试和编辑内置的可执行文件/ dll。

  

GitHub页面:https://github.com/0xd4d/dnSpy

     

最新版本:https://github.com/0xd4d/dnSpy/releases/download/v5.0.0/dnSpy.zip

一旦下载

  • 为64位启动dnSpy.exe,为32位应用启动dnSpy-x86.exe。
  • 使用File-> Open来找到您的exe和dll文件。
  • 在dnSpy中应用断点。
  • 像在Visual Studio中一样开始启动

答案 1 :(得分:0)

Emcrank有一个非常有趣的解决方案,因为它没有源代码,但对我来说不合适。

对我来说,答案实际上非常简单。当要添加现有项目时,您可以更改下拉列表以添加.sln文件。我创建了一个文件夹,然后向其中添加了解决方案,它通过一次交易即可将所有内容提取到其中,现在我可以轻松调试所有代码了。