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

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

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

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

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

Ответ 1

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

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