Почему Visual Studio компилирует приложение в исполняемый файл, если он находится в формате MSIL? Разве это не похоже на java, который компилирует код в файл .class?Расширение .NET и выходного файла
ответ
«исполняемый файл» .NET - это действительно маленький исполняемый исполняемый файл, который создает AppDomain, создает экземпляр вашего объекта .NET и вызывает его.
библиотеку DLL .NET будет эквивалент Java .class
Edit: -----
Jb Evain точки в комментариях, что .NET библиотеки DLL также содержать неуправляемый заглушки. Штук просто переходит к соответствующей точке входа в mscoree.dll
, что делает фактическую работу. CorExeMain
для exe's и CorDllMain
для dll's.
Отличный ответ. Это ключевое различие между исполняемой программой .net и библиотекой классов. –
Является частью AppDomain платформы .NET? – Gabriel
@Gabriel: Я не уверен, что понимаю вопрос, но я думаю, что ответ будет да. код будет находиться в mscoree.dll –
Поскольку .exe означает что-то для ОС - Windows не должна регистрировать другой исполняемый файл для запуска. .EXE-файлы «просто работают» из меню «Выполнить», командной строки и оболочки.
Но, возможно, что более важно, потому что люди ожидают поведения файла .exe. Я имею в виду, что вы использовали .EXE-файлы в качестве основного формата исполняемого файла в MS-системах в течение большей части 30 лет. Если они скомпилировали исполняемые приложения .net, скажем, расширение «.CLR», не все знали бы, что с ним делать, и это могло бы замедлить принятие .Net, особенно в первые дни ...
Почему бы и нет? –