gpt4 book ai didi

vb.net - .exe 不是 Windows XP 上有效的 Win32 应用程序

转载 作者:行者123 更新时间:2023-12-02 18:26:22 24 4
gpt4 key购买 nike

我正在使用 Visual Studio 2012 Professional 并使用高级安装程序(第 3 方)创建安装程序。

当我在 Windows XP 上运行已安装的 .exe 时,收到以下消息:

<appName>.exe is not a valid Win32 application.

安装的可执行文件在 Windows 7 和 8 上都能正常运行。

如何让该程序在 Windows XP 上运行?

最佳答案

从 Visual Studio 命令提示符中运行以下命令:

 Dumpbin.exe /headers c:\where\you\put\it\setup.exe

其中“setup.exe”是安装程序创建者创建的安装 EXE。我将在此处发布您看到的重要信息的示例:

OPTIONAL HEADER VALUES
10B magic # (PE32)
...
4.00 operating system version
0.00 image version
6.00 subsystem version // <=== here!!
0 Win32 version
...

子系统版本号很重要。 VS2012 是 Visual Studio 的第一个版本,开始将此值设置为 6.00,即 Vista 的版本号。以前的版本以及面向 .NET 4.0 或更早版本的 VS2012 会将此版本号设置为 4.00

这是一个重要的进步,也是逐步取消对 XP 支持的一部分。 Windows 6.00 及更高版本、Vista、Win7 和 Win8 关注此数字。他们会假设您的程序不知道更高版本的 Windows 功能,并且需要打开多个 appcompat 垫片。最值得注意的是 Aero 中的 appcompat,这是一种桌面主题,它显示带有粗边框的窗口,可以轻松用鼠标单击。 Windows 会在这些边框上撒谎,告诉您窗口比实际小。对于试图使窗口彼此对齐的程序员来说,这是一个很大的困惑源。

看到显示 6.00 的结果是您的安装程序无法再在 XP 上运行。现在是5.02版本。

因此,请首先确保您以 .NET 版本 4.5 为目标,它不适用于 XP。请改用 4.0。如果您仍然遇到问题,请联系供应商的支持并询问他们如何控制该工具创建的 setup.exe 文件中的该数字。解决方法是使用/SUBSYSTEM 选项运行 Editbin.exe 来更改数字。

关于vb.net - .exe 不是 Windows XP 上有效的 Win32 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16455855/

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