【发布时间】:2011-02-09 03:36:08
【问题描述】:
这可能是一个长镜头,但我没有想法。
我有一个 VS C# 解决方案,其中包含三个项目。有一个类库项目,然后是两个依赖于该类库的应用程序项目。类库又依赖于其他一些 DLL,包括来自 sharpdevelop 项目的 avalonedit dll。
其中一个应用程序正在构建和运行良好,包括使用我自己的控件来包装 avalonedit 控件。另一个应用程序运行失败,并且在我的包装控件中通过 XAML 初始化 avalonedit 控件时似乎失败了。
问题是我在调试输出中根本看不到任何错误,我看到的只是 dll 加载消息,然后什么也没有。如果我进入控件的构造函数,则该步骤永远不会完成。调试器说应用程序正在运行,但当底层编辑控件由 XAML 端构建时,它显然在 avalonedit dll 中的某个地方旋转。
我不得不假设这两个项目之间的环境差异存在一些问题,但我对如何继续追踪问题感到有些困惑。我是否必须以某种方式安排事务,以便我可以中断 avalonedit 源?
编辑:如果我暂停/中断所有内容,它只会退回到调用我的控件构造函数的行。
【问题讨论】:
-
如果在挂起期间暂停调试器会发生什么?
-
这就是Reflector 派上用场的地方!
-
我建议选择 AvalonEdit 的源(和/或 PDB),然后在调试器中点击暂停以查看问题。另一种方法是使用 Reflector(正如 Mayank 建议的那样)检查 avalonedit 构造函数源,以查看潜在的循环原因。
标签: c# .net wpf dll avalonedit