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

c#应用程序在开发机器上工作,在非开发机器上失败,c#,winforms,c#-4.0,backgroundworker,C#,Winforms,C# 4.0,Backgroundworker,这个问题使我困惑不解 我正在编写一个应用程序,它应该从表单中获取信息,并将其传递给后台工作人员,后台工作人员随后a)将信息写入本地xml文件,b)将信息插入远程MySQL数据库 在我的开发机器上,它似乎可以完美地工作。更新远程数据库,必要时创建xml文件,如果已经存在则更新。它起作用了 即使我退出开发环境并独立于IDE沙箱运行发布版本,代码仍然可以工作 但是,如果我把它放在另一台机器上,代码就会失败,我不明白为什么 我目前正在32位Windows7 Ultimate机器上使用VisualStud

这个问题使我困惑不解

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

在我的开发机器上,它似乎可以完美地工作。更新远程数据库,必要时创建xml文件,如果已经存在则更新。它起作用了

即使我退出开发环境并独立于IDE沙箱运行发布版本,代码仍然可以工作

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

我目前正在32位Windows7 Ultimate机器上使用VisualStudio2010 Professional

目前,我发现应用程序正停在一个相当特定的点上,这似乎正是后台工作人员开始执行诸如访问文件系统或访问远程数据库之类的操作的地方

该项目由一个exe文件和一个dll组成,其中包含我设计的自定义控件。自定义控件工作得很好,因为它显示了我希望它显示的内容,并在需要时返回我要求它显示的值,所以这似乎不是问题所在

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

我一直在使用.NET framework的版本4编写,但我刚刚将其降级为版本3.5,希望这会有所帮助。在尝试运行应用程序之前,我尝试过的两台非开发机器都是最新的,或者是由我更新的

我真的很困惑。欢迎提出任何建议


Alan

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


我不认为我们能帮你更多。

我已经编写了一个实时日志实用程序,用于在这种情况下诊断应用程序。在开发者工作站上,使用VS.实用程序应用程序的功能丰富的调试器进行诊断非常容易。在这种情况下帮助开发人员,他们完全不知道内部发生了什么。我建议您下载最新版本并亲自尝试。解释如何使用这个实用程序以及它是如何工作的超出了这个答案的范围,所以我将把您转到项目的codeplex页面

这就是它的样子


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

是否添加了对客户端计算机上可能未安装的任何第三方控件或程序的引用?那通常是第一个看的地方。还有,你得到了什么错误?(提示,如果你没有收到错误,并且它正在崩溃,那么你没有正确处理错误。在任何可能失败的代码周围放置try…catch块,等等。)@David唯一提到的第三方代码是MySQL连接器引用,我想这可能是问题的一部分。我将尝试将其包含到发布版本中,看看会发生什么。谢谢你的回复。我没想到MySQL代码会有问题。感谢您的回复,我将不得不联系log4net。艾伦