Visual Studio 2013下的X86编译应用程序无法在某些Windows 7 64位计算机上运行

时间:2015-03-26 18:19:49

标签: visual-studio-2013 windows-7 x86

我有一台Windows 7 SP1 16GB机器。我编译了一个针对x86环境的应用程序。在我的机器上,应用程序运行没有任何问题。但是,在某些其他Windows 7 SP1计算机上,它会显示以下错误消息。

此文件的版本与Windows版本不兼容 你正在跑步。检查计算机的系统信息以查看是否 你需要一个x86(32位)或x64(64位)版本的程序,然后 联系软件发行商。

我已经安装了2013 x86和x64重新分发,但这并没有解决问题。

.NET 4在机器上,这也是VS 2013的目标。我知道我必须遗漏一些明显的东西,但不能锁定可能缺失的东西。

我会为任何CPU编译应用程序,但是当我这样做时,如果应用程序不是在x86下构建的,那么我从SysWOW6432Node注册表中读取的DSN数据会给我一个驱动程序错误。

提前感谢您提供的任何帮助。

CorFlags output on exe

Microsoft (R) .NET Framework CorFlags Conversion Tool.  Version  4.0.30319.33440
Copyright (c) Microsoft Corporation.  All rights reserved.

Version   : v4.0.30319
CLR Header: 2.5
PE        : PE32
CorFlags  : 0x3
ILONLY    : 1
32BITREQ  : 1
32BITPREF : 0
Signed    : 0

另外一点信息是在事件查看器中出现以下错误。我不知道这是否会有所帮助,但我想我可以使用它。

- System
   - Provider
        [Name]           Wow65 Emulation Layer
   - EventID             1109
        [Qualifiers]     16384
     Level               4
     Task                0
     Keywords            0x80000000000000

1 个答案:

答案 0 :(得分:0)

解决此问题的方法是通过电子邮件将EXE作为TXT文件发送。显然,电子邮件扫描过程会为附件添加一些内容,而这反过来使Windows认为EXE不是x86或x64。我不知道我给EXE文件的用户是通过电子邮件发送它然后遇到问题。我为这个遗漏道歉,我感谢大家的建议和信息。