qq_42308586 2024-03-25 18:29 采纳率: 0%
浏览 280
已结题

Expression: [**mscorlib recursive resource lookup bug**]求解决

问题遇到的现象和发生背景

Expression: [mscorlib recursive resource lookup bug]

img

操作环境、软件版本等信息

该装的支持库基本都有了

img

尝试过的解决方法

不是的是不是杀毒软件的问题

我想要达到的结果

正常运行

  • 写回答

19条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-03-25 18:33
    关注
    获得0.45元问题酬金

    引自免费微信小程序:皆我百晓生

    您遇到了一个.NET程序在运行时抛出“mscorlib recursive resource lookup bug”的异常,这表明在尝试查找资源文件时发生了无限递归的情况。这可能是由于mscorlib库内部的逻辑错误,或者是您的应用程序或某个插件扩展点(例如程序集加载事件处理程序或特定文化信息名称)中存在某种冲突。

    针对这个问题,可以尝试以下步骤进行排查和解决:

    1. 检查程序集依赖与配置: 确保所有相关的.NET框架和库都是最新且兼容的版本,从您提供的列表看似乎已经安装了许多不同版本的Visual C++ redistributables和其他支持库,但要确保没有版本冲突,并且与您应用程序所需的.NET Framework版本完全匹配。

    2. 资源文件循环引用: 检查项目中的资源文件是否存在循环引用或其他不正确的引用方式,确保资源查找路径正确无误,没有形成死循环。

    3. 自定义程序集加载逻辑: 查看mt.cks类中的fKK方法,这个方法参与了程序集的加载过程。可能存在在此处实现的自定义程序集加载逻辑导致了无限递归。检查此方法以及其他可能影响程序集加载或资源查找的全局事件处理器,移除可能导致循环的逻辑。

    4. 清理并重建项目: 清理整个项目,包括bin和obj目录下的编译输出,然后重新构建项目,有时候缓存的编译产物可能会引发这类问题。

    5. 调试堆栈跟踪: 根据提供的堆栈跟踪信息,重点关注MainForm.method_30以及相关联的方法调用,这些地方可能触发了资源查找流程。在IDE中设置断点进行调试,观察在资源查找过程中变量的状态变化,找到可能引起递归的原因。

    6. 安全模式启动应用: 如果有用户代码或第三方组件参与资源加载,尝试禁用或替换这些部分,以确认是否它们是故障根源。

    7. 更新.NET框架: 确保.NET框架是最新的稳定版,有时微软会发布修复此类问题的补丁。

    8. 检查CultureInfo设置: 在资源查找的过程中,涉及到CultureInfo,确保在获取资源字符串时使用的文化信息是正确且不会导致递归的。

    如果上述步骤仍无法解决问题,建议创建一个最小可复现问题的示例项目,并联系微软官方技术支持或社区寻求进一步的帮助,提供足够的信息以便他们能更好地定位问题所在。同时,也可以考虑查看.NET框架的相关文档或已知问题列表,看看是否有相似情况的解决方案。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 4月2日
  • 创建了问题 3月25日