Vedavyas Velaga Ответов: 1

Когда и откуда CLR .NET войдет в картину во время выполнения программы?


У меня есть exe файл с именем Addition.exe который предложит пользователю ввести два числа и отобразит сумму.
После того, как разработчик разработал код, он будет строить код с соответствующим компилятором языка, скомпилированным в IL.
Мое сомнение вот в чем
1)содержит ли exe-файл этот IL-код или он будет содержать код после CLR, т. е. машинный код?

Теперь у пользователя есть этот exe-файл, и он выполнил программу
2) если этот exe имеет IL-код , то откуда CLR будет доступен на этой машине для запуска программы, так как пользователь не устанавливал никакого программного обеспечения, связанного с .net, и его ОС может быть Linux, Windows и т. д
3)если этот exe-файл имеет машинный код, то это вообще не должно быть так, как если бы это был машинный код, то он вообще не будет работать

Что я уже пробовал:

Я попробовал, прочитав несколько статей

1 Ответов

Рейтинг:
2

Dave Kreskowiak

В файле .EXE есть IL. В исполняемом файле есть обычный "заголовок", который загружает среду CLR .NET. Код приложения не компилируется в собственный код процессора.

JIT-компилятор .NET CLR загрузит IL-код, скомпилирует его в машинный код для процессора, на котором он работает, кэширует этот машинный код, а затем процессор выполнит его.

Если на машине, на которой запущено приложение, не установлена соответствующая платформа .NET Framework, приложение не будет запущено.

.NET Framework 1.0 - 4.7.2 предназначен только для Windows. Он не будет работать на других платформах.

Для кросс-платформенного приложения, которое можно запустить на Windows, Linux и Mac, вам придется построить приложение с использованием .NET Core 2. или лучше. Существует еще среда выполнения, которая должна быть установлена для запуска приложения. Видеть Начало работы с .NET Core | Microsoft Docs[^] для получения дополнительной информации.