.net应用程序有32位和64位之分?
大家都知道,平时我们写C#程序时,一般都不会关心目标平台的问题,默认情况下也是选的Any CPU。前段时间在运行一个操作Access数据库程序的时候,出现了问题,提示是:未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0 。这个程序是我在32位的WinXP上写的,编译运行没有问题。而现在的电脑换成了64位的Win8.1,就运行不起来了。然而,把目标平台改为x86,再编译运行则正常。
我感到很奇怪,按理说C#代码是编译成IL中间代码的(即那个exe),并不像C/C++那样直接编译成Native Code,为什么会有32位和64位之分呢?不是.net虚拟机区分32位和64位就行了吗?