gpt4 book ai didi

visual-studio - 使用某些属性/类在 Blazor Webassembly 中调试时未绑定(bind)断点

转载 作者:行者123 更新时间:2023-12-04 11:26:18 25 4
gpt4 key购买 nike

我正在使用 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 库(用于在启动/Program.cs 时添加服务)。
    MainRCL 没有对 SubRCL 的引用(根据可配置的 UI 定义,组件通过反射/BuildRenderTree() 呈现)。
    调试主要解决方案工作得很好(IIS Express/应用程序调试)。
    然后我尝试调试 SubModules -> 我从 MainSolution 开始调试,并在这个 VS 实例中打开来自 SubModules 项目的文件。
    在某些库中,调试工作正常,但不适用于 SubRCL(“未绑定(bind)断点”)。然后我能够使用示例解决方案重现(非常奇怪的)问题:
    “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] 属性为 时,才会调用“IncreaseNum()”方法处的断点。不是 用过的。
    一旦使用 [TestEnum] 属性,就会出现“未绑定(bind)断点”;另一个库中的“DoStuff()”方法中的断点仍然被命中。
    然后我尝试将现有项目“添加到 SubSolution”并添加 MainWasm 项目并直接从 SubSolution 开始调试 -> 相同的行为。
    是否有我监督的事情(例如,关于 DLL 引用或 PDB 文件副本)?
    这已经是我尝试调试这些模块化结构解决方案的第二种方法 - 首先我尝试通过 IIS ( How to debug Blazor Webassembly on IIS with VS by attaching to Chrome? ) 进行调试,但这也没有成功。

    最佳答案

    发现在使用带有枚举参数的属性时调试存在问题:
    https://github.com/dotnet/aspnetcore/issues/25380
    -> 我替换了枚举参数并且调试现在工作正常 - 到目前为止没有得到任何反馈

    关于visual-studio - 使用某些属性/类在 Blazor Webassembly 中调试时未绑定(bind)断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65720816/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com