gpt4 book ai didi

c# - 我的应用程序可以在我的 PC (Windows 7) 上运行,但不能在另一台 (XP) 上运行,我不确定如何继续诊断问题

转载 作者:行者123 更新时间:2023-11-29 03:33:17 24 4
gpt4 key购买 nike

问题背景

我一直在我的 PC(Windows 7,使用 Visual Studio 2010 Express)上开发一个数据库应用程序,它一直按预期工作。我刚刚将最新版本复制到运行 Windows XP 的 PC 上,它抛出 “程序遇到错误,需要关闭” 错误消息。

应用程序事件日志中错误消息中的信息显示错误发生在 initializeDatabaseConnection() 中(根据堆栈跟踪)——这是一个相当短的方法,它只包含一个几行代码。

dbConnection = new MySql.Data.MySqlClient.MySqlConnection("server=myserver; 
uid=myuser;
pwd=mypassword;
database=mydatabase;");
dbCommand = new MySql.Data.MySqlClient.MySqlCommand();
dbCommand.Connection = dbConnection;

尝试诊断问题所采取的步骤

  • 我在 initializeDatabaseConnection() 中的代码中添加了一个 try-catch 以捕获任何 Exception 并调用 MessageBox .Show(ex.ToString() - 出现与之前相同的错误,它不显示消息框。尽管在堆栈中显示了此方法,但它表示存在未处理 异常跟踪。

  • 我向 catch block 添加了一个更具体的处理程序,一个用于 System.IO.FileLoadException,它是事件日志条目描述的特定错误消息。发生与上述通用异常处理程序相同的行为。

  • 我在 Stack Overflow 上发现了一个问题,该问题描述了一个问题,即应用程序在移动到另一台机器之前按预期工作,这表明 Visual Studio 远程调试 - 但是当我使用 Visual Studio 2010 Express 根据 the documentation这不是我可以使用的功能。

  • A similar question Stack Overflow 上建议,作为第一步,检查应用程序所针对的 .NET Framework 的版本是否高于另一台 PC 可以处理的版本。我将其调低至 3.5,但仍然出现同样的错误,而且我相信另一台 PC 无论如何都运行了许多 4.0 应用程序。

  • same question建议您在 Build Settings 中检查您正在构建的平台,以确认它已设置为 x86 - 我已经这样做了,确实如此。

  • 我按照 Aybe 的建议添加了一个未处理的异常事件处理程序,它表明问题是Could not load file or assembly, MySql.Data ... etc. ... 但是我不确定为什么这个错误会突然发生,因为以前版本的构建按预期工作。


解决方案

  • 应用程序所需的 MySql.Data.dll 版本是 6.8.3.0 但文件夹中的版本是 6.9.3.0 -我不确定为什么它现在需要 6.8.3.0,因为客户端 PC 上的应用程序文件夹中的版本没有更改,6.9.3.0 正在使用以前的版本.

由于下面的评论建议我实现 UnhandledExceptionEventHandler 并链接到有关如何执行此操作的文档,我发现了这一点。这是我以前不知道的 CLR 的一个特性。谢谢!

最佳答案

虽然我仍然不确定为什么未处理异常(因为,根据应用程序事件日志条目的堆栈跟踪,异常发生在一个方法中,其中所有代码都被通用异常 catch-block),实际上,我能够通过使用 UnhandledExceptionEventHandler 捕获未处理的异常。

public static void Main()
{
AppDomain.CurrentDomain.UnhandledException
+= new UnhandledExceptionEventHandler(MyHandler);
}

static void MyHandler(object sender, UnhandledExceptionEventArgs args)
{
Exception e = (Exception) args.ExceptionObject;
// Do what you like with the exception
}

关于c# - 我的应用程序可以在我的 PC (Windows 7) 上运行,但不能在另一台 (XP) 上运行,我不确定如何继续诊断问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27296912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com