c# - 如何强制不优化 ASP.NET Core 5 源代码

标签 c# visual-studio-debugging asp.net-core-5.0

我正在尝试调试 ASP.NET Core 5 框架中的 Antiforgery 代码。
我已经使用 https://github.com/dotnet/aspnetcore/blob/master/docs/BuildFromSource.md 中的说明成功构建了代码使用调试配置。
我已将源代码项目添加到我的测试项目中并引用它。
我检查了配置是否设置为调试。
我确保已选中“抑制 JIT 优化”。
项目属性 -> 构建中的“优化代码”对于两个项目都未选中。
两个项目的“高级选项”(在“构建”选项卡下)中的“调试信息”下拉菜单已设置为“完整”。
但是,当我在 DefaultAntiforgeryTokenSerializer.Serialize() 中遇到断点时,在 Watch 窗口中查看方法的本地变量时,它给了我这个错误:

Cannot obtain value of local or argument as it is not available at this instruction pointer, possibly because it has been optimized away


enter image description here
如何强制不优化代码?
我使用的是 Visual Studio Enterprise 2019 v16.8.3。

最佳答案

将 Antiforgery 源代码项目添加到我的解决方案后,我没有添加对 .csproj 文件的项目引用,而是必须引用 C:\aspnetcore\artifacts\bin\Microsoft.AspNetCore.Antiforgery\Debug\net5.0 中的 dll。 .
我现在可以在 Watch 窗口中查看本地变量的值。

关于c# - 如何强制不优化 ASP.NET Core 5 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65264454/

相关文章:

c# - 请帮助我加快此 LINQ 查询的速度?

asp.net - 调试后自动终止IIS Express进程(VS Express 2013 Web)

c# - 应用程序仅在附加调试器时崩溃

c# - 如何在 ASP.NET Core 5 Blazor 服务器模式下要求通过重定向登录进行身份验证

c# - 为什么 RhinoMocks 有义务明确地重新定义 ToString() 以便能够对其设置期望?

c# - 不着色,但 "Colorize" Sprite

c# - 显示没有断点的当前调用堆栈

c# - 请求参数为空?

asp.net-core - 无法使用 Serilog 和 .Net Core 5 捕获实例化错误

c# - 如何验证证书是由特定证书颁发机构创建的?