Использование моно aot / aot-полной компиляции: ничего не происходит? - PullRequest
6 голосов
/ 07 ноября 2011

У меня есть проект на C #, который мне нужно скомпилировать в собственный двоичный файл. Я прочитал здесь:

http://www.mono -project.com / АОТ

что Mono может предварительно скомпилировать сборку с одним из двух вариантов:

  1. - aot: предварительно скомпилированное изображение (по сути, такое же, как Ngen, как мне кажется)
  2. - aot = full: полностью скомпилированный в собственный двоичный экземпляр исходного файла .exe

Я вполне уверен, что понимаю все правильно, но могу ошибаться насчет опции --aot = full.

Однако, когда я бегу:

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

Я не получаю вывод, дата последнего изменения исполняемого файла остается неизменной, и файлы не создаются. Я также попробовал просто в качестве теста:

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

Я получаю тот же результат; нет вывода, нет файла изображения или файлов в целом, ничего.

Я что-то здесь упускаю?

Ответы [ 2 ]

6 голосов
/ 08 ноября 2011

Вы, вероятно, должны сделать отчет об ошибке. Информация AOT обычно отображается даже без --verbose. С --verbose вы должны получить МНОГО отпечатков. Другая возможность заключается в том, что вы нарушили установку Mono.

Тем не менее, если вы хотите создать собственный исполняемый файл , вы должны использовать mkbundle вместо AOT.

3 голосов
/ 10 ноября 2011

Вы не хотите --aot, вы хотите mkbundle .

- aot говорит mono прекомпилировать некоторый код, а не использовать jit-компилятор, он не дает вамполностью двоичный код машинного кода.Для этого вам понадобится mkbundle.

...