我用vs.net2010编写一个控制台程序(XXX.exe), 在windows2008 R2 SP1 64bit上运行时,提示:此文件的版本与正在运行的windows不兼容,请检查计算机的系统信息以了解需要X86位(32位)还是X64位的版本程序,然后联系软件发布者。
注:我已经偿试过把我的VS.Net中的编译目标中的Target framework:设为.NET Framework4 或.NET Framework4 Client Profile;把Platform target设置过:Any CPU; X86; X64。
并且windows2008 R2 SP1 64bit机上已安装了Framework4.0.
请问出现这种问题可能的原因是什么???
能截个图显示下你的 2008 系统的基本信息么?
能截个图显示下你的 xxx.exe 的项目属性么?
不好意思 服务器在网络上没办法截图。
@Albert Fei: 哦,那就不好解决了。因为这个错误最常发生的条件是在32位系统上运行64位程序。
@Launcher: 目标服务器是windows2008 R2 SP1 64bit系统,机上已安装了Framework4.0
@Albert Fei: 我不敢肯定你的OS和你的项目设置是否正确。因为我做了测试,R2 企业版 SP1 64,编译的目标平台指定 x86,x64都没问题,指定为 Itanium ,则会出现你提到的错误信息。
所以还是请你仔细检查下,或者你的 xxx.exe 引用的别的DLL的问题?
@Launcher: 首先谢谢您的回复。
服务器不在我们自己公司,所以我也不能肯定是我说的那个版本。也是问对方负责人的,对方说是那个版本。
我现在在测试把我的xxx.exe的程序:右键->属性中的兼容性改为:windows server 2008 (service pack)
试试,如果再不能运行还真没辙了。
还有我的程序中没有引用其它的dll。都是微软自带的。
@Albert Fei: 如果方便,你可以发个测试程序给我,我帮你在我的机器上运行下。
@Albert Fei: 你的程序不会中毒了吧。
@Albert Fei: 有没有可能是服务器上启用了 DEP 啊?服务器是不是安装了 360 ?
@Launcher: 这个我看不到,不过安装360的可能性比较小,是在国外的服务器。应该不流行用360的。
@Launcher: 我自已写的程序 没有中毒的。在我们公司的机子上运行都很好。
公司的程序,测试数据不能乱发的。
谢谢您的好意。
@Albert Fei: 后来我登录到远程服务器上运行,提示The NTVDM CPU has encountered an illegal instruction.这个错误,不知道是什么原因? 请问你遇到到过这个问题吗
注:系统是windos7 framework4.0
@Albert Fei: CPU 遇到非法指令。你的程序大概执行了啥操作?
直接编译为32位的
把Platform target设置过:Any CPU; X86; X64。这个属性一个一个设置试试~
谢谢,我提问中说的很清楚了:把Platform target设置过:Any CPU; X86; X64。
已经试过了,没有用。
@Albert Fei: 好吧,无能为力了~