如果 C# 代码是 JIT 编译的,为什么我在构建时必须在 Visual Studio 中选择一个目标平台

本文关键字:选择 Studio Visual 目标 平台 一个 JIT 编译 代码 如果 构建 | 更新日期: 2023-09-27 18:33:39

我的假设可能是错误的,但我认为 JIT 编译的主要优点是允许 JIT 编译器为目标机器特定硬件编译单个可分发对象。

如果这是真的,那么为什么在编译 C# 时可以指定目标平台?

谢谢。

如果 C# 代码是 JIT 编译的,为什么我在构建时必须在 Visual Studio 中选择一个目标平台

很多时候你不需要,默认值是可以的。但是,在某些情况下,默认Any CPU可能会导致问题。例如,如果您依赖于 32 位非托管 dll。如果将其保留为Any CPU并尝试在 64 位系统上运行它,JITter 会将 .Net 代码构建到 64 位可执行文件中,然后将无法成功加载 32 位依赖项。在其他情况下,能够指定平台也是有利的。另一个示例是,当您构建一个应用程序时,您知道该应用程序将用于将非常大的数据集加载到内存中。如果这些数据集可能超出可用于 32 位程序的虚拟地址空间,则可能需要指定要生成 64 位应用程序。

相关文章: