.net - 为什么没有 Microsoft.Win64 命名空间?

标签 .net windows

我们有一个 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/

相关文章:

用于冗余库的 C# .NET 包装器程序集开发

c# - 如何通过文件名查找 ProjectItem

java - 如何使用 PHP 运行批处理文件?

java - 使用不同参数运行相同 JRE 版本的两个实例

windows - Maven 编译器插件 fork 选项不起作用

c# - 如何比使用 DynamicInvoke 更快地调用委托(delegate)?

.net - 为什么 PrintServer.GetPrintQueues 没有获得正确的 PrintTicket,而 PrintServer.GetPrintQueue 却获得了正确的 PrintTicket?

.net - 在 SQL 2005+ 中,CLR 存储过程是否优于 TSQL 存储过程?

java - 需要自动化一个批处理文件,该文件在运行时依次接受两个参数

windows - Docker native Windows 支持?