在 Windows 7 计算机上编写/编译的 .NET 4 程序无法在 XP 上运行

2023-11-22

我有一个在 Windows 7 Ultimate 计算机上的 Visual Studio 2010 中使用 C# .NET 4.0 编写的应用程序。该应用程序在 Vista 和其他 Windows 7 计算机上运行良好,但每当运行 Windows XP 的人尝试运行它时,它就会崩溃。

为了重现这个问题,我尝试在我的 Win XP VMWare 机器上运行它,但它在那里崩溃了。不幸的是,它没有给我任何具体的错误,只是通知我程序已崩溃并需要关闭。

另一位用户向我发送了以下内容:

Run-time error '339'
Component 'vbalSGrid6.ocx' or one of its dependencies not correctly registered: a file is  missing or invalid.

Code 0xe0434352
Flags 0x00000001

当我尝试在我的 Virtual XP 计算机上运行它时,我没有得到这一点,并且我还确保在那里安装了 .NET 4.0。

可能是什么原因导致这种情况?如果 XP 支持 .NET 4 框架,为什么应用程序不能在 XP 中运行?

程序中用到的组件:DataGridView、ComboBox、Buttons、Labels、LinkLabel、NewtonSoft的JSON解析器,仅此而已。

我很困惑,完全不知道从哪里开始。有想法吗?

UPDATE:嗯,尝试在 XP 上运行我最近创建的另一个应用程序,它加载得很好。两者之间唯一的主要区别(无论如何我使用的组件)是我对 NewtonSoft 的 JSON 库的使用,我实际上认为它是一个 .NET 3.5 组件。

UPDATE 2:只是为了好玩,我尝试在我的 Wind7 机器上以“Windows XP SP3”兼容模式运行该程序,并且运行良好。当然,我不知道“兼容模式”与真正的 XP SP3 环境的模拟程度有多接近,但我想无论如何我都会向您提供这些信息。


这是应用程序图标!

我一直注意到它在给我的错误中引用的模块是system.drawing我觉得这很奇怪。我认为可能是我使用的 PictureBox 导致了这个问题,所以我尝试禁用与此相关的所有内容,但无济于事。

我让我的业务合作伙伴设置了他的 XP 机器,这样除了我的 VMWare XP 机器之外,我们还有另一台机器可以进行测试,以防万一出现一些奇怪的问题。

在他设置好并复制应用程序后,他说“这些图标看起来像 DOS 的图标”,我灵光一现。

我使用 .PNG 作为图标,因为它们支持透明度等,但 XP 本身并不支持它们。因此,当应用程序被复制到桌面时,它只使用了一个通用图标,当应用程序运行时,它崩溃了,因为 XP 不知道如何渲染 .PNG。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Windows 7 计算机上编写/编译的 .NET 4 程序无法在 XP 上运行 的相关文章

随机推荐