【发布时间】:2013-03-20 12:16:59
【问题描述】:
您可以使用 NGEN.EXE 将 MSIL 程序集编译为本机程序集。但是当你有源代码时,你也可以在项目选项中选择“平台目标”。如果我在那里选择 x64,这与在 x64 机器上运行 NGEN.EXE 是一样的吗?
【问题讨论】:
-
不,选择 x64 平台目标不会原生编译它。尽管它只能在 x64 平台上运行,但它仍将被编译为中间语言。 NGEN 的问题是您不能分发 NGEN 的程序集——它是在机器上运行的服务。所以你可以分发一个程序集,然后让服务 ngen 它。
-
@vcsjones - 即使目标计算机具有相同的架构 (x64/x86)?
-
@vcsjones - 不,我的意思是 NGEN 不可分发。然后 NGEN 的程序集是否紧密地绑定到创建它们的机器上?
-
@Vilx AOT/NGEN 在使用第三方库和泛型时遇到问题。例如,请参阅我链接的 AOT Mono 页面上的免责声明
-
@Vilx- 也看到这个答案stackoverflow.com/a/45710/863564