Разница между сборкой и DLL

Сборка против DLL

Библиотека - это набор ресурсов, которые можно использовать для разработки приложений. Библиотека обычно состоит из подпрограмм, функций, классов, значений и типов. В процессе компоновки (обычно выполняется компоновщиком) библиотеки и исполняемые файлы ссылаются друг на друга. Файлы DLL - это файлы библиотеки, которые связаны динамически. DLL была разработана Microsoft. Но из-за некоторых проблем, связанных с файлами DLL, Microsoft разработала формат файла Assembly (с платформой .NET). Файлы сборки очень похожи на библиотеки DLL физически, но имеют много внутренних различий.

Что такое DLL?

Dynamic Link Library (более известная как DLL) - это реализация совместно используемой библиотеки, разработанная Microsoft. Он использует расширения .dll, .ocx или .drv, и они используются в операционных системах Microsoft Windows и OS / 2… dll используется обычными файлами DLL. И расширение .ocx используется библиотеками, которые содержат элементы управления ActiveX, а расширение .drv используется устаревшими файлами системных драйверов. Формат файла DLL такой же, как и у файлов Windows EXE (переносимые исполняемые файлы в 32-битной / 64-битной Windows и новый исполняемый файл в 16-битной Windows). Поэтому любая комбинация кода, данных и ресурсов может содержаться в файлах DLL (как в файлах EXE). Фактически, файлы данных с форматом DLL-файлов называются DLL-файлами ресурсов. Библиотеки значков (с расширением .icl) и файлы шрифтов (с расширениями .fon и .fot) являются примерами библиотек ресурсов..

Компоненты, называемые разделами, составляют DLL, и каждый раздел имеет свои собственные атрибуты, такие как доступный только для чтения / доступный для записи и исполняемый / неисполняемый. Разделы кода являются исполняемыми, в то время как разделы данных не являются исполняемыми. Разделы кода являются общими, а разделы данных - частными. Это означает, что все процессы, использующие DLL, будут использовать одну и ту же копию кода, в то время как каждый процесс будет иметь свою собственную копию данных. Основной динамической библиотекой для Windows является kernel32.dll, которая содержит базовые функции (функции, связанные с файлами и памятью) в Windows. COM (объектная модель компонентов) является расширением DLL до ООП (объектно-ориентированного программирования). Обычные библиотеки DLL проще в использовании, чем файлы COM.

Что такое сборка?

Файлы сборки были введены Microsoft для решения нескольких проблем, связанных с файлами DLL. Сборочные файлы были представлены в рамках платформы Microsoft .NET. Исполняемая логическая единица функциональности называется сборкой. Сборки выполняются в .NET CLR (Common Language Runtime). Физически сборки существуют в виде файлов EXE или DLL. Но они очень отличаются от Microsoft Win32 DLL внутри. Файл сборки состоит из манифеста, метаданных, MISL (кода Microsoft Intermediate Language) и других ресурсов. Сборка самоописывает. Манифест содержит такую ​​информацию, как имя, версия, культура, строгое имя, список файлов, типы и зависимости. MISL-код выполняется через CLR (он не может быть выполнен напрямую).

В чем разница между сборкой и DLL?

DLL является динамически связанной библиотекой. Хотя сборки физически равны библиотекам DLL, они сильно отличаются друг от друга. Невозможно поддерживать согласованность между набором библиотек DLL, но CLR может поддерживать согласованность между набором сборок, поскольку сборки описываются само (они содержат внутренний список зависимостей). В отличие от библиотек DLL, информация о версиях применяется для сборок (CLR). Совместное развертывание (различные приложения, использующие разные версии) возможно со сборками.