我注意到我的所有 C# 断点都没有受到影响,因为调试似乎对客户端 Blazor 应用程序禁用。
有没有办法附加调试器或以某种方式启用调试器?
谢谢
我注意到我的所有 C# 断点都没有受到影响,因为调试似乎对客户端 Blazor 应用程序禁用。
有没有办法附加调试器或以某种方式启用调试器?
谢谢
对于那些喜欢一些图片的人,这里是使用 Visual Studio 16.4 预览版(.NET Core 3.1 预览版 2)和 Chrome 版本 78 的一步一步。
使用调试配置文件启动应用程序。例如
站点加载后,将光标聚焦在 chrome 选项卡上,按“Shift+Alt+D”。
Chrome 将打开一个新选项卡,显示“无法找到可调试的浏览器选项卡”。找到消息“Press Win+R”的第一个实例。复制下面以“chrome --remote-debugging-port ...”开头的整行
点击“Win+R”并粘贴刚刚复制的文本,然后按回车键。将打开一个新的 Chrome 窗口。
第二次,按“Shift+Alt+D”,你现在应该会看到一些更有希望的东西。
从这里开始,设置几个断点,例如
返回运行 Blazor 应用程序的选项卡,触发断点。从这里您可以按 F10 执行单步操作,按 F8 恢复。如图所示,通过“Scope”窗口检查本地人。
在最新版本的 blazor 预览功能中添加了使用 Visual Studio 调试客户端代码。按照以下链接上的说明来升级您的解决方案和使用调试器。
https://devblogs.microsoft.com/aspnet/blazor-webassembly-3-2-0-preview-3-release-now-available/
Visual Studio 中没有客户端 Blazor 的调试体验。目前唯一的选择是使用 Chrome 调试器。
这在官方文档中都有解释,https://docs.microsoft.com/en-gb/aspnet/core/blazor/debug?view=aspnetcore-3.0
这是目前 Blazor 项目中的一个已知问题。调试器启动速度比项目程序集慢/快,并且没有时间“查看”程序集。这是我的解决方法,直到他们解决这个问题。我在 Program.cs 中添加了一个延迟,以便在项目以调试模式启动时,它使调试器有时间正确附加。我使用了 5000 毫秒,但如果你的机器比我的慢,你可能需要增加这个值。
public class Program
{
private static async Task DebugDelayAsync()
{
#if DEBUG
await Task.Delay(5000);
#endif
}
public static async Task Main(string[] args)
{
await DebugDelayAsync();
(...)
}
}
好消息是,现在(2020 年 8 月)您可以使用 Visual Studio 2019 V16.6 或更高版本来调试客户端 Blazor 代码!为此,请更新启动项目中的 launchSettings.json 文件,以在每个启动配置文件中包含以下 inspectUri 属性:
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}"
来源:https ://docs.microsoft.com/en-us/aspnet/core/blazor/debug?view=aspnetcore-3.1&tabs=visual-studio
由于使用 Brave 作为浏览器,我刚刚遇到了这个问题,当我告诉 Visual Studio 使用 Chrome 或 Edge 时,客户端断点突然开始工作。