繁体   English   中英

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

[英]If C# code is JIT compiled why do I have to choose a target platform in Visual Studio when building?

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

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

谢谢。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM