我尝试调试一个 blazor Webassembly 应用程序,该应用程序引用了一个名为 Test.Shared 的共享项目。我一直在尝试在该项目代码中设置断点,但没有任何帮助 - 断点只是没有命中。
当我尝试在调用代码中设置断点然后单步进入"Test.Shared"源时 - 它似乎只是逐步完成底层代码(我必须多次点击"向前步"才能继续调试下一行,并且当我减少/增加基础方法代码中的行数时,点击次数会发生变化(,但它没有显示在调试器窗口。
因此,经过一些调查,我发现当我丢弃Test.Shared中的所有代码并只留下一个简单的测试静态方法时,可以使调试器工作。基于这一事实,我想有一些特定类型的 C# 代码会导致整个包含库对调试无效。 任何建议这种代码类型可能是什么?
我使用的环境:
- Visual Studio Enterprise 2019 16.6.2
- NET 标准 2.1 作为 Blazor 应用和共享库的目标平台
- NET Core 3.1 作为托管 Web 应用的目标平台,该应用提供 Web 程序集应用包
- Microsoft.组件.WebAssembly 3.2.0
问题在于具有内部具有枚举值的属性。 许多人都遇到这个问题,在 Blazor Wasm:使用 enum contructor 参数 #25380 引用 @attribute 时调试中断 zbecknell
:下面是一个简单的重现项目:https://github.com/zbecknell/Undebuggable。
请参阅 Counter.razor:4 了解中断项目调试的行:
@* The following line breaks debugging for the project, no matter how long you wait *@ @attribute [BadAttribute(BadEnum.Default)]