Подтвердить что ты не робот

Что такое управляемый модуль (по сравнению с сборкой)?

Что такое управляемый модуль в .NET и как он отличается от сборок? Является ли PE файл (например, test.dll) управляемым модулем или сборкой? Как сборка/управляемый модуль соответствуют физическим файлам на диске?

4b9b3361

Ответ 1

Управляемый модуль, как правило, понимается как относящийся к модулю, который содержит только код IL, без прямого машинного кода.

Модуль размещается в обычном файле PE.

Сборка представляет собой набор из 1 или более модулей, один из которых обозначается как "голова" (будет искать точный термин [1]). Само по себе модуль не используется индивидуально, хотя - сборка является атомной единицей.

Например, у вас может быть сборка многоуровневых модулей с двумя DLL и EXE. Многомодульные сборки довольно редки, хотя.

The Don Box book Esssential.NET, CLR Richter через С# дает хорошее освещение темы. Для получения полной информации, книга Серж Лидин .NET 2.0 IL Assembler и стандарт CLI более полные.

[1] Согласно http://www.programmersheaven.com/2/FAQ-DOTNET-DOTNET-Assembly-Explained

Сборка может быть одним файлом или может состоять из нескольких файлов. В случае многофайлового файла существует один главный модуль, содержащий манифест, в то время как другие сборки существуют как неявные модули

Чтобы ответить на актуальные вопросы: -

Что такое управляемый модуль в .NET и как он отличается от сборок?

Это подмножество - DLL может быть основным модулем без дочерних модулей и, следовательно, быть сборкой

Является ли PE файл (например, test.dll) управляемым модулем или сборкой?

Определенно модуль. Если у него также есть манифест и нет дочерних модулей, это также сборка

Как сборка/управляемый модуль соответствуют физическим файлам на диске? Каждый модуль является файлом. (Такие инструменты, как ILMerge, могут объединять модули, если вам интересно)

Ответ 2

Модуль содержит IL, и многие из них связаны между собой, чтобы создать сборку, которая обычно размещается в PE, например .exe или .dll.

PE может содержать собственный (не управляемый) код.

Это хорошее введение в концепции.

Ответ 3

Управляемые модули - это скомпилированный IL версии исходного кода. расширение файла, который построен при создании модуля из исходных файлов есть .netmodule.

Ассембли - это либо DLL, либо .exe файлы, содержащие управляемые модули, ресурсов и метаданных.