使用某些属性/类在 Blazor Webassemble 中进行调试时未绑定断点

2023-11-23

我正在使用 VS 2019 (16.8.4) 开发模块化 blazor 应用程序 (5.0.2),其结构如下:

  • “主要”解决方案,其中包括

    • RCL
    • Wasm 项目启动应用程序
  • 几个引用主 RCL(基本组件等)的“子”解决方案,其中包括

    • .net5 库(模型、Web 服务访问等)
    • 带有组件的 RCL,引用 .net5 库(通过项目引用)

所有项目都有一个构建后事件,用于将 DLL 和 PDB 文件复制到特定路径,例如D:\TMP。 SubSolution 通过此路径引用 MainRCL 库。 Main Wasm 项目也通过此路径引用 SubRCL 库(用于在startup/Program.cs 中添加服务)。

MainRCL 没有对 SubRCL 的引用(组件根据可配置的 UI 定义通过反射/BuildRenderTree() 进行渲染)。

调试主解决方案工作完美(IIS Express/应用程序调试)。 然后我尝试调试 SubModules -> 我从 MainSolution 开始调试并打开此 VS 实例中 SubModules 项目中的文件。

在某些库中,调试可以正常工作,但对于 SubRCL(“未绑定断点”)则不行。然后我能够使用示例解决方案重现这个(非常奇怪的)问题:

“MainRCL”提供 2 个属性:

[AttributeUsage(AttributeTargets.Class)]
public sealed class TestNoEnumAttribute : Attribute
{
    public string Name { get; set; }

    public string Mode { get; set; }

    public TestNoEnumAttribute(string name, string mode)
    {
        Name = name;
        Mode = mode;
    }
}

[AttributeUsage(AttributeTargets.Class)]
public sealed class TestEnumAttribute : Attribute
{
    public string Name { get; set; }
   
    public EventExecutionMode Mode { get; set; }
  
    public TestEnumAttribute(string name, EventExecutionMode mode)
    {
        Name = name;
        Mode = mode;
    }
}

public enum EventExecutionMode
{
    AutomaticAll = 0,
    ManualConfiguration = 2
}

SubRCL 在测试方法中使用这些属性:

[TestNoEnum("Test", "EventExecutionMode.ManualConfiguration")]
//[TestEnum("Test", EventExecutionMode.ManualConfiguration)]
public class Module1Test
{
    public int IncreaseNum(int num)
    {
        var x = new Part1();
        var part1Num = x.DoStuff(num);
        var newNum = part1Num + 1;
        return newNum;
    }
}

被调用的类“Part1()”位于 SubSolution 的另一个库中

Part1 类中“DoStuff()”方法处的断点始终会被命中(在单独的 .net5 库中)。 仅当 [TestEnum] 属性为NOT用过的。 一旦使用了[TestEnum]属性,就会出现一个“Unbound Breakpoint”;另一个库中的“DoStuff()”方法中的断点仍然被命中。

然后我尝试“添加现有项目”到 SubSolution 并添加 MainWasm 项目并直接从 SubSolution -> 相同的行为开始调试。

我有什么需要监督的吗(例如,关于 DLL 引用或 PDB 文件复制)?

这已经是我尝试调试这些模块化结构解决方案的第二种方法 - 首先我尝试通过 IIS 进行调试(如何通过附加到 Chrome 来使用 VS 在 IIS 上调试 Blazor Webassemble?),但这也没有成功。


发现使用带有枚举参数的属性时存在调试问题:

https://github.com/dotnet/aspnetcore/issues/25380

-> 我替换了枚举参数并且调试现在工作正常 - 到目前为止,当这个问题被修复时没有得到任何反馈

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用某些属性/类在 Blazor Webassemble 中进行调试时未绑定断点 的相关文章

随机推荐

  • 如何在客户端中返回 Meteor.call() 的值?

    所以我一直在使用带有 MeteorJS 的 twitter API 我想做的只是在浏览器上显示 twitter 用户的屏幕名称 这是我到目前为止所做的 Meteor methods screenName function T get sea
  • 什么是静态构造函数?

    在一次采访中有人问我这个问题 什么是静态构造函数 C 中存在吗 如果是 请举例说明 C 没有静态构造函数 但您可以使用嵌套类的静态实例来模拟它们 class has static constructor friend class const
  • 如何设置 Selenium Python WebDriver 默认超时?

    尝试找到一种好方法来设置 Selenium Python WebDriver 中命令执行延迟的最大时间限制 理想情况下 类似 my driver get my driver my driver set timeout 30 seconds
  • IFrame 破坏文件 - 它们的用途是什么?

    在查看一些广告公司 DoubleClick Atlas 时 我遇到了 iframe Buster 文件的概念 这些文件与广告发布商托管在同一主机上 一个示例 http www adopstools com ibusters atlas at
  • CakePhp 中的 unbindModel 调用。它是如何工作的?

    蛋糕中unbindModel是如何发生的 this gt User gt unbindModel array hasAndBelongsToMany gt array Friend 我在函数的开头写了这个 但它仍然质疑 朋友 模型 函数中间
  • 在opencv python中创建透明图像

    我正在尝试制作一个透明图像并在其上绘图 然后在基础图像上添加加权 如何在 openCV python 中初始化具有宽度和高度的完全透明图像 编辑 我想制作像 Photoshop 中一样的效果 具有图层堆叠 所有堆叠图层最初都是透明的 并且在
  • OpenCL 和 CUDA 中的持久线程

    我读过一些关于 GPGPU 的 持久线程 的论文 但我不太理解它 任何人都可以给我一个例子或向我展示这种编程方式的使用吗 在阅读和谷歌搜索 持久线程 后 我脑子里记住的是 持久线程只不过是一个 while 循环 可以保持线程运行并计算大量工
  • 为什么这个 Kotlin 方法有反引号?

    下面的代码片段中的反引号有什么用 为什么将它们添加到fun is amount Int Boolean verifier is amount 这是因为is是 Kotlin 中的保留关键字 由于 Kotlin 应该可以与 Java 进行互操作
  • 测试 MS Access 应用程序的最佳方法?

    由于代码 表单和数据位于同一数据库中 我想知道为 Microsoft Access 应用程序 例如 Access 2007 设计一套测试的最佳实践是什么 测试表单的主要问题之一是只有少数控件具有hwnd句柄和其他控件只能获得它们所关注的一个
  • 如何将侦听器附加到单选按钮

    我有一个显示各种单选按钮的活动 单选按钮按单选组分组 我希望某些单选按钮在选中某个单选按钮时消失 例如 当选中事件按钮时 跌倒 旅行和疾病单选按钮就会消失 我怎样才能做到这一点 我有以下代码 但需要以某种方式将侦听器附加到事件按钮 Over
  • 在 Bash 中运行 PHP 函数(并将返回值保存在 bash 变量中)

    我正在尝试在 Bash 中运行 PHP 函数 但它不起作用 bin bash usr bin php lt lt EOF EOF 实际上 我需要将返回值保存在 bash 变量中 顺便说一下 我使用 php 的 getcwd 函数只是为了说明
  • 两个应用程序之间的通信

    是否可以在两个不同的应用程序 一个在后台运行 另一个在前台运行 之间进行通信 如果是 有人可以建议如何吗 是的 iPhone 中的两个应用程序之间可以进行通信 但仅限于少数场景 可能有些应用程序需要根据某些事件 例如电话等 发送到后台 在这
  • NameError:Python 3 中未定义全局名称“xrange”

    我在运行 python 程序时遇到错误 Traceback most recent call last File C Program Files x86 Wing IDE 101 4 1 src debug tserver sandbox
  • Rails:如何跨多个子域共享永久 cookie?

    我的应用程序的注册和登录过程发生在安全子域上 为此 我修改了config initializers session store rb看起来像 if Rails env production AppName Application confi
  • Android SQL - 检查数据库中是否已存在整行

    我正在尝试创建一个简单的收藏夹应用程序 您可以在其中保存您的收藏夹页面 例如来自网络的页面 假设我的数据库中有以下数据 Title URL TAG Hey Ho com Site Jo Jo com Image Jo Mo com Imag
  • 在Python中计算*多*组地理坐标之间的距离

    我正在努力计算之间的距离multiple纬度和经度坐标集 简而言之 我发现了许多使用数学或几何学的教程 当我只想找到一组坐标 或两个唯一位置 之间的距离时 这些教程非常有用 然而 我的目标是扫描具有 400k 个起点和目的地坐标组合的数据集
  • 升级Android应用程序时报告ClassNotFoundException错误

    我看过很多关于 ClassNotFoundException 和 Android 的帖子 但我还没有找到我所经历的原因 我有一个应用程序 数据计数器小部件 在 Android 市场上 它的下载量超过 25 万次 每次我发布新版本时 我都会在
  • XMLHTTP onTimeOut 时如何使用 VBA 回调函数?

    我正在尝试从网络服务器获取 xml 数据到 Excel 然后我写了一个sendRequestexcel中调用的函数 sendRequest http abb com index php id 111 当网络服务器出现问题 无法连接或找不到时
  • 在 Apache 中记录 POST 数据的最佳方式?

    想象一下 您有一个站点 API 它接受带参数的 GET 请求或 POST 请求 例如 使用标准 url 编码 分隔的 POST 数据 形式的数据 如果你想记录和分析 API 调用 GET 请求会很容易 因为它们会在 apache 日志中 有
  • 使用某些属性/类在 Blazor Webassemble 中进行调试时未绑定断点

    我正在使用 VS 2019 16 8 4 开发模块化 blazor 应用程序 5 0 2 其结构如下 主要 解决方案 其中包括 RCL Wasm 项目启动应用程序 几个引用主 RCL 基本组件等 的 子 解决方案 其中包括 net5 库 模