Скомпилируйте сборку .NET в машинный код x86.

Есть ли способ скомпилировать сборку .NET в собственный код (т.е. для x86), то есть без MSIL.

Насколько я понимаю, если вы просто укажете x86 как архитектуру, это изменит только заголовок PE, чтобы указать это на JIT, но сборка все равно будет содержать MSIL и будет JITTed по мере необходимости.

NGen создает файлы сборки для указанной архитектуры, но это не компилятор, он предназначен для повышения производительности, но вам все равно нужна оригинальная DLL, наличие собственного образа служит только для того, чтобы избежать JIT-компиляции сборки, но вы просто не можете получить это родное изображение и использовать его, вы можете?

Итак, есть ли способ действительно скомпилировать .NET в собственный машинный код?


person Jorge Córdoba    schedule 01.06.2011    source источник
comment
Я был бы удивлен - не повлечет ли это также компиляцию больших частей CLR на ассемблере?   -  person Jon Egerton    schedule 01.06.2011


Ответы (2)


Это можно сделать с помощью новой технологии предварительной компиляции под названием .NET Native. Проверьте это здесь: http://msdn.microsoft.com/en-US/vstudio/dotnetnative

В настоящее время он доступен только для приложений Магазина Windows. Он выполняет однокомпонентную компоновку. Таким образом, библиотеки .NET Framework статически связаны с вашим приложением. Все скомпилировано в родное, а сборки IL больше не развернуты.

person m_eric    schedule 21.04.2014
comment
Это должен быть главный ответ: .NET Native является важной вехой для C#/.NET и делает то, о чем просит SO. - person quantdev; 21.04.2014
comment
@karim: имейте в виду, что вопрос был задан 3 года назад :) - person Johann Blais; 25.04.2014