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