Вопрос
Я изучаю концепции, связанные с .NET Framework.Я в замешательстве в один момент.Насколько я понимаю, компиляторы CSC.exe и AL.exe компилируют файлы в сборку на основе переключателей.Таким образом, мой вопрос: 1) разные компиляторы в .NET Framework нацелены на CLR.Означает ли это, что отдельные файлы (код) и файлы ресурсов компилируются в сборку, и эта сборка выполняется во время выполнения CLR?
2) Как это происходит, когда я использую Visual Studio .NET?
Спасибо.
Решение
Да это верно.Сборка содержит перевод MSIL исходных файлов, который CLR преобразует в машинный код и выполняет.
Когда вы выбираете команду «Сборка» в Visual Studio, она запускает компилятор, соответствующий типу файлов вашего проекта (например,компилятор C# для исходных файлов C#) и создает сборку.(VS на самом деле не выполняет csc.exe, al.exe и т. д.;он использует внутрипроцессные эквиваленты.Но результат по сути тот же.)
Другие советы
Ответ на вопрос 1:Да.
Ответ на вопрос 2 заключается в том, что Visual Studio вызывает за вас компилятор и использует файл вашего проекта, чтобы предоставить компилятору информацию, необходимую для создания сборки.
1:довольно много;обратите внимание, что все файлы необходимо рассматривать вместе (обычно они не компилируются по отдельности, а затем объединяются), и что технически IL не «исполняется» (поскольку это не собственные инструкции ЦП);это должно быть либо переведено (с помощью JIT или NGEN) в машинный код или на какой-либо платформес («микрофреймворк») интерпретируется.Но результат тот же...
2:тот же процесс, за исключением того, что он не вызывает exe-файлы напрямую, а просто напрямую вызывает код.
Понятие пространства имен не связано с понятием сборки.Одна сборка может содержать типы, иерархические имена которых имеют разное пространство имен.
Корни, и корень логического пространства имен может охватывать несколько сборок.В .NET Framework пространство имен-это логическое удобство именования логического дизайна, тогда как сборка устанавливает
Имя области для типов во время выполнения.
Шриранг Джадхав