#executable #cil #.net
#исполняемый файл #cil #.net
Вопрос:
Я думал, что это будет обычный промежуточный язык, но в notepad он выглядит совсем не так. В реальности это просто выглядит уродливее, чем в руководствах? Или это какая-то форма байт-кода, которая в дальнейшем компилируется из CIL?
Комментарии:
1. да, мне кажется, это будет двоичное представление!
2. Возможно, это необычный вопрос, но он не так уж далек от основы для тех, кто только изучает .NET. Я не думаю, что это заслуживало отрицательных голосов. 1 от меня.
Ответ №1:
Это CIL — название двоичного формата, а не «ассемблера», о котором вы думаете.
Вы можете себе это представить.СЕТЕВЫЕ сборки будут представлять собой текстовые файлы?
Комментарии:
1. Я могу себе это представить. Я могу представить многое! Но, увы, я не могу летать.
Ответ №2:
Исполняемый файл .NET — это двоичный файл с заголовком PE (таким же, как у собственного исполняемого файла, но с немного другими значениями). Заголовок PE сообщает операционной системе загрузить среду CLR, которая, в свою очередь, загружает сборку.
Содержимое за заголовком представляет собой двоичное представление кода CIL, плюс некоторые метаданные и другие материалы. Текст, который вы видите в руководствах, является текстовым представлением CIL, во многом таким же образом, как код на языке ассемблера, который вы видите в руководстве по программированию на языке ассемблера, является просто текстовым представлением двоичного машинного кода.
Смотрите http://www.yetanotherchris.me/home/2010/7/12/inside-net-assemblies-part-1.html (среди многих других) для получения дополнительной информации.
Комментарии:
1. Исполняемый файл .Net не имеет того же формата, что и собственный исполняемый файл.
Ответ №3:
Исполняемый файл .Net обычно не записывается, он компилируется с другого языка, такого как C #, F # или VB.Net .
Содержимое a .Исполняемый файл Net можно просмотреть с помощью инструмента ILDASM.
Содержимое сначала является манифестом, который используется для отражения, подписей или других целей мета-кода.
Во-вторых, есть сами инструкции MSIL. Они представлены в формате байт-кода, но ILDASM покажет вам, что это за инструкции.
И иногда в исполняемый файл упаковываются такие ресурсы, как изображения, звуки или другой контент.
Исполняемый файл вовремя компилируется в машинный код либо во время установки (я думаю, это необычно), либо перед выполнением. Полученный машинный код можно сохранить для повторного использования. (Это то, что мне сказали во время PDC 2001, может быть «устаревшим».)