【问题标题】:Creating Debug Window for WPF为 WPF 创建调试窗口
【发布时间】:2013-03-31 18:33:11
【问题描述】:

我正在创建一个 WPF 应用程序,我的团队经常面临的一个问题是在未安装 Visual Studio 的客户端 PC 中调试问题。所以我想创建一种“SafeMode”或“DebugMode”窗口。基本上,这会做的是输入所有对使用客户端 PC 的开发人员有用的事件、错误等。

只有在需要时才会调用此窗口,并且一旦打开它应该能够从应用程序中的所有其他窗口接收数据。我不想手动输入错误和事件,但我想知道是否有一些 .Net 函数可以为我做这件事?

我猜想类似于 VS2010 中的输出对话框。

【问题讨论】:

    标签: .net wpf vb.net debugging


    【解决方案1】:

    客户端 PC 中的调试问题 => 确保您的应用程序记录所有重要的内容(记录到日志文件即可,不需要窗口),或者在极端情况下您可以运行 VS 远程调试监视器并使用 VS 连接到它,在这种情况下,它就像在您自己的电脑上调试应用程序一样。最后一个需要与客户端电脑的网络连接,所以我会选择选项一。并且可能需要更多的单元测试开始,这会导致更少的错误,因此需要更少的调试。

    【讨论】:

    • 感谢 stijn,我们正在这样做。只有两个问题,1) 它将所有内容都写入 XML 2) 显着降低了性能。微软甚至声明,由于性能问题,我们应该只选择我们需要的东西。我的计划是将所有日志放入 RichTextBox 而不是 xml 日志文件中,这样不会导致性能损失。
    • 记录到屏幕可能比记录到文件慢;如果日志记录确实是一个瓶颈,请将实际日志记录放在一个单独的线程中,该线程从队列中获取日志事件。应用程序的其余部分通过将事件放在队列中进行记录,您不会获得比这更快的记录。
    • 好的。不完全是我正在寻找的东西,但猜测它足以让程序员找出什么时候出错了。
    【解决方案2】:

    通常应用程序将所有内部事件记录在文件(txt、xml 等)中。如果发生了一些错误,那么应用程序会将其报告给用户并将当前日志和错误(以及所有异常信息,例如堆栈跟踪)发送给开发人员。 附加功能 - 截图按钮添加评论并发送给开发者... 在您的情况下,如果开发人员可以使用客户端的电脑,您可以安装 Visual Studio 远程调试器并通过网络调试应用程序...

    【讨论】:

      【解决方案3】:

      我建议使用像 log4net http://logging.apache.org/log4net/ 这样的日志记录块 这允许您在不同级别登录,例如调试、信息、错误、致命。

      您可以在此处获取功能列表。 http://logging.apache.org/log4net/release/features.html

      【讨论】:

      • 我的问题是针对 WPF 的,apache 是如何在其中发挥作用的?
      • log4net 是 .net 的日志框架(它在 Windows 上运行)。您也可以使用日志记录应用程序块或仅写入您自己的文本文件。
      猜你喜欢
      • 2011-09-04
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多