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

在Windows XP上运行已安装的.exe时,出现以下消息:



已安装的可执行文件在Windows 7和Windows 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/

10-10 21:36
查看更多