0

我正在为朋友开发一个应用程序。我使用 Visual Basic 2012(64 位)和 Windows 7(64 位)。我拿了一个演示给他试用,看看他还想要什么功能,并且运行正常。

当我在实施新功能后的下周回来时,它拒绝在他的任何 Windows XP(32 位)机器上运行。错误代码:

MyApplicationName.exe is not a valid Win32 application

我在运行 Windows 7(32 位)的计算机上进行了尝试,它仍然可以正常工作。

那么,任何想法为什么它突然停止运行?

4

2 回答 2

2

使用默认项目设置时,VS2012 不会生成可以在 XP 上运行的 EXE。重要的是您所针对的 .NET Framework 版本。如果那是 4.5 版,那么有两个问题。

第一个是 .NET 4.5 不适用于 XP。第二个对于此异常消息很重要,编译器将在文件头中标记运行 EXE 所需的 Windows 版本。该版本号始终设置为 4.00。直到VS2012,现在都设置为6.00,即Vista的版本号。XP 会立即以“不是有效的 Win32 应用程序”消息拒绝您的 EXE,甚至在它告诉您它没有安装 .NET 4.5 之前。

通过定位 .NET 4.0 或更早版本来解决您的问题。项目 + 属性,应用程序选项卡,目标框架设置。

于 2013-09-11T22:39:03.367 回答
0

尝试将 corflags 与 /32bit+ 一起使用,看看它是否有效。

更多信息:http: //msdn.microsoft.com/en-us/library/ms164699.aspx

于 2013-09-11T20:42:47.003 回答