Release模式.NET 5代码堆栈跟踪出现随机类名原因咨询
.NET Release构建堆栈随机类名产生原因
从你提供的堆栈信息来看,异常从你项目代码中的My.Application.Code.ThrowsError()方法第292行抛出,后续uzctz开头的栈帧属于上层调用逻辑,这类随机命名的产生通常有三类原因:
- 代码混淆处理:你项目依赖的第三方组件,或者你项目本身启用了代码混淆工具。这类工具为了提升反编译难度、保护代码知识产权,会将原本有意义的命名空间、类名、方法名统一替换为无意义的随机字符串,
uzctz开头的系列命名是典型的混淆后输出。 - 运行时动态生成代码:如果项目中用到了动态代理、AOP框架、序列化组件、ORM这类需要动态生成IL代码的库,运行时生成的动态类、动态方法默认会使用随机无意义的命名,这些类型不会存在于你的静态项目代码中。
- 发布裁剪优化:.NET 5及以上版本Release模式开启IL裁剪(Trimming)功能后,编译器会对未使用的代码进行裁剪和重排优化,部分特殊优化场景也会生成内部随机命名的包装类。
内容的提问来源于stack exchange,提问作者Ceilingfish
相关产品推荐
相关产品推荐

