35

我注意到我的所有 C# 断点都没有受到影响,因为调试似乎对客户端 Blazor 应用程序禁用。

有没有办法附加调试器或以某种方式启用调试器?

谢谢

4

7 回答 7

24

对于那些喜欢一些图片的人,这里是使用 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”,你现在应该会看到一些更有希望的东西。

Chrome 调试器

从这里开始,设置几个断点,例如

设置断点

返回运行 Blazor 应用程序的选项卡,触发断点。从这里您可以按 F10 执行单步操作,按 F8 恢复。如图所示,通过“Scope”窗口检查本地人。

终于,当地人出现了!

于 2019-11-14T07:01:43.380 回答
12

在最新版本的 blazor 预览功能中添加了使用 Visual Studio 调试客户端代码。按照以下链接上的说明来升级您的解决方案和使用调试器。

https://devblogs.microsoft.com/aspnet/blazor-webassembly-3-2-0-preview-3-release-now-available/

于 2020-03-28T19:37:12.683 回答
12

Visual Studio 中没有客户端 Blazor 的调试体验。目前唯一的选择是使用 Chrome 调试器。

这在官方文档中都有解释,https://docs.microsoft.com/en-gb/aspnet/core/blazor/debug?view=aspnetcore-3.0

于 2019-05-23T07:35:07.253 回答
6

是的,有一种方法可以调试您的客户端 C# 代码:

1.用户IE“Microsoft Edge”,“不要使用谷歌浏览器”。

2.使用自托管应用程序“不要使用IIS express”。

3.点击F5并享受 在此处输入图像描述

于 2020-07-23T08:13:48.390 回答
4

这是目前 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-08-20T06:08:25.183 回答
1

好消息是,现在(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

于 2020-09-01T07:57:50.767 回答
1

由于使用 Brave 作为浏览器,我刚刚遇到了这个问题,当我告诉 Visual Studio 使用 Chrome 或 Edge 时,客户端断点突然开始工作。

于 2022-01-23T06:32:22.467 回答