如何调试 .Net Core 或 Base class 库 (coreFx) 的源代码?
How can I debug the source code of .Net Core or the Base class libraries (coreFx)?
我正在使用 .NET Core 1.0
和 Visual Studio 2015 Update 3
制作一个简单的 Asp.Net Core MVC 网站。
如何调试我的应用程序和 "Step Into" GitHub 上可用的 .NET Core source code?
具体来说,我正在尝试解决从 NuGet 获取的 Microsoft.AspNetCore.Authentication.Facebook
1.0.0 程序集的一个问题。
我在 1 年多前写了 this article 所以有点过时了,但思路还是一样的:
- 您从 GitHub 同步到正确的标签。在你的情况下,你可能想要同步到 tag 1.0.0
- 通过 运行
build.cmd
或 build.sh
构建该存储库
- 将
src
文件夹路径添加到应用程序的 global.json
文件中。例如,如果您在 D:\Security
中克隆了 Security
,那么您将 D:/Security/src
添加到 projects
属性 中的 global.json
。
- 重建一切,它应该工作。
PS:如果您使用 VS 并且没有立即看到新代码,请尝试重新启动它。这是一个已知问题,有时它不会接收对 global.json
的更改
还要确保在解决方案级别,您的项目 "configration" 设置为调试。见截图。
。
。
(要显示解决方案属性,请在解决方案资源管理器中右键单击 .sln。)
更新以适应新的 VS 2017
2017 年 Visual Studio 15.3.5 及更高版本
我们可以使用 SourceLink 支持来调试 .NET Core 和 ASP.NET Core 源代码。
要启用源 link 支持,只需禁用 仅启用我的代码 并启用 启用源 Link 支持 。
然后启用 Microsoft 符号服务器。
Victors 的答案与 vs 2015.For 一些人正在寻找 vs 2017 的解决方案,
在 vs 2017 中,没有 global.json availble.So 而不是在 global.json 中添加文件夹路径,必须添加并重建项目引用。
Victors 文章中提到的所有其他人与 2015 年的工作方式相同。
git hub 标签和 nuget 包匹配具有相同的版本很重要。
如果您之前使用以前版本的 .NET 调试过应用程序,请删除 %TEMP%/SymbolCache
目录,因为它可能包含过时的旧 PDB。每 Debug .NET and ASP.NET Core source code
我正在使用 .NET Core 1.0
和 Visual Studio 2015 Update 3
制作一个简单的 Asp.Net Core MVC 网站。
如何调试我的应用程序和 "Step Into" GitHub 上可用的 .NET Core source code?
具体来说,我正在尝试解决从 NuGet 获取的 Microsoft.AspNetCore.Authentication.Facebook
1.0.0 程序集的一个问题。
我在 1 年多前写了 this article 所以有点过时了,但思路还是一样的:
- 您从 GitHub 同步到正确的标签。在你的情况下,你可能想要同步到 tag 1.0.0
- 通过 运行
build.cmd
或build.sh
构建该存储库
- 将
src
文件夹路径添加到应用程序的global.json
文件中。例如,如果您在D:\Security
中克隆了Security
,那么您将D:/Security/src
添加到projects
属性 中的global.json
。 - 重建一切,它应该工作。
PS:如果您使用 VS 并且没有立即看到新代码,请尝试重新启动它。这是一个已知问题,有时它不会接收对 global.json
还要确保在解决方案级别,您的项目 "configration" 设置为调试。见截图。
。
(要显示解决方案属性,请在解决方案资源管理器中右键单击 .sln。)
更新以适应新的 VS 2017
2017 年 Visual Studio 15.3.5 及更高版本
我们可以使用 SourceLink 支持来调试 .NET Core 和 ASP.NET Core 源代码。
Victors 的答案与 vs 2015.For 一些人正在寻找 vs 2017 的解决方案,
在 vs 2017 中,没有 global.json availble.So 而不是在 global.json 中添加文件夹路径,必须添加并重建项目引用。
Victors 文章中提到的所有其他人与 2015 年的工作方式相同。
git hub 标签和 nuget 包匹配具有相同的版本很重要。
如果您之前使用以前版本的 .NET 调试过应用程序,请删除 %TEMP%/SymbolCache
目录,因为它可能包含过时的旧 PDB。每 Debug .NET and ASP.NET Core source code