使用mono aot / aot-full编译:似乎没有任何事情发生?

时间:2011-11-07 16:38:06

标签: c# .net mono aot

我有一个C#项目,我需要编译为本机二进制文件。我在这里读到:

http://www.mono-project.com/AOT

Mono可以将程序集预编译为以下两个选项之一:

  1. - aot:预编译的图像(与我看来的Ngen基本相同)
  2. - aot = full:完全编译为原始.exe
  3. 的本机二进制实例

    我很确定我理解这些是正确的,但对于--aot = full选项可能是错误的。

    然而,当我跑步时:

     mono.exe --aot=full --verbose program.exe  

    我没有输出,可执行文件的最后修改日期保持不变,并且没有生成任何文件。我也尝试过测试:

     mono.exe --aot --verbose program.exe 

    我得到了相同的结果;没有输出,没有图像文件或一般文件,没有。

    我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:6)

您应该制作错误报告。即使没有--verbose,通常也会显示AOT信息。使用--verbose你应该得到很多印刷品。另一种可能性是您已经破坏了Mono安装。

然而,如果你想生成本机可执行二进制文件,你应该使用mkbundle而不是AOT。

答案 1 :(得分:3)

你不想要 - 你想要mkbundle

- aot告诉mono预编译一些代码而不是使用jit编译器,它不会给你一个完整的机器代码二进制文件。为此你需要mkbundle。