Почему Visual Studio компилирует приложение в исполняемый файл, если это находится в формате MSIL? Разве это не должно быть похожим на Java, который компилирует код в .class файл?
A.NET «Исполняемый» - это действительно Tiny _UN_MANED STUB исполняемый файл, который создает AppDomain, информирует ваш пункт запуска .NET .NET и вызовы в него.
.NET DLL будет эквивалентом java .class
редактирования: -----
jb evain отмечает в комментариях, которые .NET DLL также содержит неуправляемую заглушку.
Ступень просто прыгает на соответствующую въездную точку в mscoree.dll
, которая делает фактическую работу. Corexemain
для EXE и Cordllmain
для DLL.
, потому что .exe означает что-то в ОС - Windows не нужно зарегистрировать другой исполняемый тип для запуска. .Exe Файлы «Просто работа» из меню «Запустить», командную строку и оболочку.
Но, вероятно, более важно, потому что люди ожидают поведение файла .exe. Я имею в виду, что вы использовали файлы .exe в качестве основного исполняемого формата файла в системах MS для лучшей части 30 лет. Если они скомпилировали исполняемые приложения .NET, скажем, «.clr» расширение, не все будут знать, что сделать из этого, и что мог бы замедлить принятие .NET, особенно в первые дни ...