Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在引用的解决方案中逐步执行代码_C#_Visual Studio_Asp.net Core_Visual Studio 2017_Nuget Package - Fatal编程技术网

C# 在引用的解决方案中逐步执行代码

C# 在引用的解决方案中逐步执行代码,c#,visual-studio,asp.net-core,visual-studio-2017,nuget-package,C#,Visual Studio,Asp.net Core,Visual Studio 2017,Nuget Package,通常,当我想调试nuget包时,我会下载源代码并将.csproj文件添加到我的解决方案中,然后添加一个项目引用,而不是使用nuget包。这使我能够逐步了解代码,并了解live项目的进展情况 我有一个要调试的nuget包,但它非常大。我下载了源代码,解决方案中有大约20个项目。我试着只添加了其中的一些,但最终出现了很多依赖性问题 有没有一种方法可以告诉VisualStudio nuget包的源代码存在于我的HD中,这样我就可以逐步完成它,而不必向当前解决方案中添加20个项目?或者,也许可以通过某种

通常,当我想调试nuget包时,我会下载源代码并将.csproj文件添加到我的解决方案中,然后添加一个项目引用,而不是使用nuget包。这使我能够逐步了解代码,并了解live项目的进展情况

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

有没有一种方法可以告诉VisualStudio nuget包的源代码存在于我的HD中,这样我就可以逐步完成它,而不必向当前解决方案中添加20个项目?或者,也许可以通过某种方式添加对整个解决方案的引用

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

假设应用程序是.NET 4.7.2。您可以尝试dnSpy,它允许您调试和编辑构建的可执行文件/dll

GitHub页面:

最新版本:

一旦下载

  • 为64位应用程序启动dnSpy.exe,或为32位应用程序启动dnSpy-x86.exe
  • 使用文件->打开查找exe和dll文件
  • 在dnSpy中应用断点
  • 在VisualStudio中按开始键

    • Emcrank有一个非常有趣的解决方案,它没有源代码,但它不适合我


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

      作为旁白,可以进入反编译引用并在代码中设置断点,而无需下载源代码。它是显示原始源代码还是从IL工作?我相信它显示了源代码。我添加了一个界面截图。正如您所看到的源代码所示。阅读该页面看起来很酷,感谢您的建议,但它是一个反编译器。我有原始源代码,希望使用原始源代码,这样我可以进行编辑,然后进行PR。我认为这样做很难。不太清楚PR是什么意思,但是您也可以在dnSpy中编辑代码并重新编译,只需使用“编辑”菜单或右键单击代码文件中的任意位置,然后使用提供的选项即可。