我们有一个 Microsoft.Win32 命名空间,但它能保证在 64 位 Windows 环境中工作吗?对于 64 位情况是否需要具有此类定义?
最佳答案
.NET 应用程序默认运行在以操作系统架构为目标的框架上。因此,如果您运行的是 32 位 Windows,则安装在计算机上的 .NET 框架将是 32 位框架。在此框架上运行的所有 .NET 应用程序都将以“32 位”运行。
如果您运行的是 64 位 Windows,则您运行的是 64 位框架,但运行在该框架之上的 IL 与 32 位 IL 没有区别(默认情况下)。
简而言之:无论您运行的是 32 位还是 64 位 Windows 都没有关系,因为 .NET 框架将其从 C#/VB 代码中抽象出来。
Microsoft.Win32 框架是指 Windows 内部的 native API。除了微软给它起的非常糟糕的名字外,它与 32 位和 64 位 Windows 无关。
顺便说一句,有些事情您无法使用 64 位版本的框架执行:例如,64 位框架中没有 JET 数据库驱动程序。
关于.net - 为什么没有 Microsoft.Win64 命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/982625/