如何在生产环境中调试C#windows窗体应用程序?

如何在生产环境中调试C#windows窗体应用程序?,c#,winforms,C#,Winforms,我开发了一个用于在本地计算机和在线web服务之间同步数据的小应用程序 在测试环境中,使用visual Studio 2012 express调试模式,我无法重现导致应用程序崩溃的错误 我已经尝试通过将数据写入.txt文件来手动记录活动,以给我一个参考框架,但我仍然无法确定这个bug发生的位置 在生产模式下,是否有任何工具可用于调试此应用程序?请尝试在事件处理程序中记录stacktrace a.s.o 此外,还可以利用PostSharp的面向方面编程跟踪所有函数调用。PostSharp网页上有一些

我开发了一个用于在本地计算机和在线web服务之间同步数据的小应用程序

在测试环境中,使用visual Studio 2012 express调试模式,我无法重现导致应用程序崩溃的错误

我已经尝试通过将数据写入.txt文件来手动记录活动,以给我一个参考框架,但我仍然无法确定这个bug发生的位置


在生产模式下,是否有任何工具可用于调试此应用程序?

请尝试在事件处理程序中记录stacktrace a.s.o


此外,还可以利用PostSharp的面向方面编程跟踪所有函数调用。PostSharp网页上有一些示例。

我们在任何时候发生未处理的异常时都会记录stacktrace并通过电子邮件发送给我们

如果您可以在远程生产机器上启动流程,在这种情况下最简单的方法就是使用

这样,您将拥有一个完整的调试上下文,其中包含比简单日志记录多得多的信息;调试体验(几乎)与本地调试相同


遗憾的是,这个工具并不广为人知,因为它可以为您节省数小时甚至数天的时间来处理棘手的错误。

只需使用库,它可以捕获未处理的应用程序并将错误报告发送到您指定的电子邮件地址。

是的,问题可能与调试的环境或软件版本不同于生产环境有关。因此,理想情况下,您希望根据相同的源代码版本和调试符号文件来调试实时版本

网上有很多关于如何做到这一点的文章。我曾经读过一篇文章,它不仅向您展示了如何使用TFS正确设置符号服务器,而且还介绍了如何调试生产exe,VS将从符号服务器加载该版本的正确符号,并从TFS加载源代码版本。。。可惜我找不到它


远程调试日志记录是非常重要的工具,但当您身处当前位置时,正确版本的调试符号和源代码可能会对您帮助更大。

如果您可以物理访问相关计算机,则VS的远程工具。据我所知,远程调试工具集不适用于VS 2012 express desktop,仅适用于其windows 8开发版本。嗯,很奇怪,远程调试器应该是一个独立的软件包,但我从未在VS2012 express中使用过它。区别在于IDE是否连接。不,它是:我在express中使用过它。