您可以使用NGEN.EXE将MSIL程序集编译为本机程序集。但是当你有源代码时,你也可以在项目选项中选择“平台目标”。如果我选择了x64,那么它会和在x64机器上运行NGEN.EXE一样吗?NGEN和平台的目标是相同的吗?
2
A
回答
3
不,这不是一回事。 Platform目标只在PE标头中设置一个位,告诉运行时它是否希望在CLR的x86或x64版本上运行(如果指定“Any CPU”,则为中性)。编译仍然会产生MSIL代码; AFAIK,不可能告诉MS编译器直接发送本地代码(现在)。
例如,当您使用PInvoking本机DLL(只有x86版本)时,该标志很有用。
其实,你也可以修改此位后,使用CorFlags
NGEN反而会编译IL到汇编代码(本机)。它也被称为AOT(前面的时间)编译,而不是JIT(Just In Time)
+0
另请参见为了比较,单声道AOT(与NGEN不完全相同)http://www.mono-project.com/AOT – 2013-03-20 12:26:29
相关问题
- 1. 目标文件平台是独立的吗?
- 2. Monodevelop目标平台
- 3. 在不同的平台上是否有相同的版本?
- 4. 从相同的项目文件创建多平台的Nuget
- 5. 目标平台与Eclipse插件开发中的运行平台不同
- 6. 平台目标x86和任何CPU
- 7. Dojo Mobile跨平台相同的UI
- 8. 主动解决方案平台VS项目平台VS平台目标
- 9. 是否有与S60平台的LandmarkStore同等的Android平台?
- 10. Float64Array是跨平台吗?
- 11. 从Android 2.1的目标Android 1.6平台
- 12. 找出构建的目标平台?
- 13. 维克斯x64平台的目标
- 14. WPF和MVC是相同的概念吗?
- 15. 节点/ Javascript导入基于目标平台的不同模块?
- 16. 如何为2个不同的目标平台创建类
- 17. 每个平台目标的不同汇编名称
- 18. 是python跨平台的pickle文件吗?
- 19. Eclipse平台是独立的吗?
- 20. .winmd文件平台是独立的吗?
- 21. Qyoto是一个可行的平台吗?
- 22. 是Runtime.getRuntime()。exec()平台独立的吗?
- 23. 是一个对行业有益的同质开发平台吗?
- 24. MVVM是不同平台之间的常见设计模式吗?
- 25. VS2010项目没有x64平台目标
- 26. NetBeans平台项目 - 与具有相关
- 27. 平台相关的Rakefile
- 28. GoogleInc.:GoogleAPIs:19不是有效的android目标平台
- 29. 平面和2D阵列使用相同数量的内存吗?
- 30. Ruby和Java一样是跨平台的吗?
不,选择x64的平台目标不会自然地编译它。它仍然会被编译为中间语言,但它只能在x64平台上运行。 NGEN的问题是你不能分发一个NGEN'ed组件 - 这是一个在机器上运行的服务。所以你可以分发一个程序集,然后让它服务。 – vcsjones 2013-03-20 12:19:00
@vcsjones - 即使目标计算机具有相同的体系结构(x64/x86)? – 2013-03-20 12:20:37
@vcsjones - 不,我的意思是关于NGEN不可分配。 NGEN的组件是否紧紧地绑定在创建它们的机器上? – 2013-03-20 12:26:34