c#应用程序在开发机器上工作,在非开发机器上失败

时间:2011-06-04 12:24:00

标签: c# winforms c#-4.0 backgroundworker

这个问题令我感到困惑。

我正在编写一个应用程序,该应用程序应从表单中获取信息,将其传递给后台工作程序,然后a)将信息写入本地xml文件,b)将信息插入远程MySQL数据库。 / p>

在我的开发机器上,它似乎完美无缺。更新远程数据库,必要时创建xml文件,如果已存在则更新。它正在发挥作用。

即使退出开发环境并独立于IDE沙箱运行发布版本,代码也能正常运行。

但是,如果我把它放在另一台机器上,代码就会失败,我也不明白为什么。

我目前在32位Windows 7 Ultimate计算机上使用Visual Studio 2010 Professional。

目前,我发现应用程序正在一个相当具体的位置停止,这似乎正是后台工作人员开始执行诸如访问文件系统或访问远程数据库之类的事情。

该项目由一个exe文件和一个dll组成,它有一个我设计的自定义控件。自定义控件工作正常,因为它显示了我想要的内容并返回我想要的值,所以看起来不应该责备。

我最初认为我可以查看权限问题,但以管理员身份运行应用程序会得到相同的响应。

我一直在使用.NET框架的第4版编写,但是我只是将其降级到版本3.5,希望这可能会有所帮助。在尝试运行应用程序之前,我尝试过的非开发机器都是最新的 - 或者是我最新的 - 。

我真的很困惑。任何建议都是最受欢迎的。

艾伦

3 个答案:

答案 0 :(得分:4)

如果您的代码失败,很可能意味着有一些未捕获的异常。你应该做的是将所有未捕获的异常(也可能是一些被捕获的异常)记录到文件中,可能使用log4net之类的东西。

我认为除此之外我们不能帮助你。

答案 1 :(得分:1)

我编写了一个名为Donsole的实时日志记录实用程序,用于在这种情况下诊断应用程序。在开发人员工作站上,使用VS的功能丰富的调试器很容易诊断。实用程序应用程序帮助开发人员完全在这种情况下,他们不知道内部发生了什么。我建议你下载最新版本并亲自试用。解释如何使用此实用程序及其工作方式超出了本答案的范围,因此我将转发到项目的codeplex页面。

http://donsole.codeplex.com/

这就是它的样子。

enter image description here

答案 2 :(得分:1)

查看操作系统的事件查看器。管理工具>事件查看器> Windows日志>应用程序。