2009-06-11 215 views

回答

12

默认情况下,.NET应用程序运行在以OS架构为目标的框架上。因此,如果您运行的是32位Windows,则该机器上安装的.NET框架将是32位框架。运行在此框架上的所有.NET应用程序都将以“32位”运行。

如果您运行的是64位Windows,那么您正在运行64位框架,但在框架顶部运行的IL与32位IL的IL没有区别(默认情况下)。

所以简而言之:如果你运行的是32位或64位Windows,那么这并不重要,因为.NET框架将它从C#/ VB代码中抽象出来。

Microsoft.Win32框架是指Windows内部的本地API。除了微软给出的真正糟糕的名字之外,它与32位和64位Windows没有任何关系。

顺便提一下,64位版本的框架不能完成一些事情:例如,64位框架中没有JET数据库驱动程序。

+0

很好的答案!有没有人跟踪.NET中的64位差异? ---也许是博客? – rasx 2009-06-12 20:36:10

0

出于同样的原因,我们有64位二进制文​​件存储在64位Windows的system32文件夹中。

基本上,这是因为Microsoft.Win32中的内容不是特定于32位Windows的。为什么他们会损害便携性而没有任何好处?

1

“Win32”是平台的名称(即核心API集合),而不管OS的实际位数。换句话说,不要担心:)