2010-07-27 149 views
2

我已经在VS C#Express 2008中使用Windows 7作为我的操作系统创建了一个应用程序。它在其他W7机器上运行得非常好,但是当我们尝试将它部署到装有XP的机器上时,它甚至无法运行。我只是得到了通常的“应用程序需要终止”的错误信息。该应用程序是使用.NET 3.5构建的,所有机器至少安装了3.5个。有什么我可以做的,让程序在以前的版本中运行?在此先感谢您的帮助。C#应用程序在Windows 7中运行,但不在Windows XP中运行

更新信息。这些机器都使用x86 32位操作系统,XP SP3或W7,所以我不认为需要检查64位问题。应用程序本身正在将图像加载到图像列表中,并在发现文件名称中断时添加图像。 (例如,一个文件夹中有4个图像,1-3和5,应用程序执行的操作是遍历每个图像名称,以及它看到图像4丢失的那一分钟,它会添加一个占位符图像并将其标记为图像4。

+4

您需要添加更多的细节,从这里不能看出太多。 – James 2010-07-27 13:36:19

+0

您是否检查过任何x64 - x86问题? – NickAldwin 2010-07-27 13:38:25

+1

应用程序在做什么?我们是在谈论Hello World还是其他更复杂的东西?您可能有一些需要特定操作系统和版本的外部依赖关系。这些应该被抽象出来,以便你可以相应地插入不同的实现。 (这主要是猜测,机器也可能以某种方式被破坏,我们需要更多细节。) – David 2010-07-27 13:39:10

回答

15

您应该设置UnhandledExceptionEventHandler,以便您可以记录有关应用程序当前状态和异常信息的信息。它不会阻止您的应用程序崩溃,但它会为您提供更多关于发生的事情的信息,并使最终用户更容易地向您提供应用程序崩溃时需要知道的信息。

This article给出了一个很好的描述如何做到这一点。

+0

谢谢你的文章。这至少可以帮助我找出可能导致问题的原因。 – Seb 2010-07-27 14:01:05

+0

执行UnhandledExceptionEventHandler后,它帮助我看到我的一个DLL没有被加载进去。经过进一步检查后,我注意到它们没有被打包到安装程序中,所以我必须手动插入它。感谢您的帮助。 – Seb 2010-07-28 13:18:10

0

记录应用程序抛出的异常,以便您可以修复它。

+0

如果在加载(主)DLL期间引发异常,那么捕捉它并不容易。 – 2010-07-27 13:45:01

0

没有大量的信息,但有些事情要检查:

请确保您有在XP和SP版本的最新补丁

也许你需要运行该程序以管理员身份 - 你在登录为管理员

你检查过窗户appliation错误日志,看看是否有任何有可能会有所帮助

1

首先,你必须确保.NET Framework 3.5的安装在你的Windows XP的计算机上。如果一切正常,那么你应该检查你是否使用“第三方dll作为参考”,并在你的Windows XP机器上验证它们的存在和正确版本。

也许这可以帮助。

相关问题