2009-03-23 3 views
32

В чем разница между сборкой и DLL? При отправке кода удаленному клиенту следует отправить DLL-файл или отправить сборку (когда прямое TCP-соединение доступно между двумя)?Разница между сборкой и DLL

ответ

36

Сборка - это «минимальная единица развертывания» .NET. Обычно сборка соответствует одному файлу, но это необязательно - вы можете иметь несколько файлов, причем один из них является мастером, который знает, где находятся все остальные биты.

Однофайловые сборки обычно являются библиотеками DLL или EXE. Если у вас есть обычная библиотека классов, и вы просто хотите отправить ее на другую сторону, DLL - это то, что вы хотите. Я буду беспокоиться только о более сложных сценариях, когда и когда вы столкнетесь с ними :)

+0

@ John- Пожалуйста, проверьте мой другой вопрос http://stackoverflow.com/questions/674194/transfering-assembly-over-tcp – Pushkar

+1

@Jon Skeet, Извините, если мои вопросы очень наивно, но из однофайловых ассемблий вы имеете в виду один файл как class1.cs. или если это не кажется хорошим, не могли бы вы немного объяснить этот термин. –

+1

@khalidkhan: Нет, сборка с одним файлом - это просто сборка, состоящая из одного файла (обычно файла .dll или .exe). Он все равно мог поступать из нескольких * исходных * файлов. Очень редко вы получаете многопользовательскую сборку ... Я не помню, чтобы когда-либо ее использовали. –

11

Ну, .NET dll - это сборка, но .NET exe также может быть сборками, поэтому это означает, что все .NET-библиотеки DLL являются сборками, но обратное неверно.

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

+0

За исключением местных DLL; Я не знаю, что я бы рассмотрел эти «сборки», так как термин здесь, скорее всего, больше используется .NET. – BobbyShaftoe

+0

@BobbyShaftoe: Я обновил ответ, чтобы указать сборки .NET. – casperOne

+0

@capserOne - Не могли бы вы рассказать о «сериализованных экземплярах»? – Pushkar

0

Ну, «сборка» - это термин, используемый для ресурса .NET. Это не обязательно DLL. DLL может быть ресурсом .NET, но также может быть «родным» ресурсом. Сборка может быть упакована в DLL или в EXE. Это зависит только от конкретной сборки.

Если это похоже на ваш другой вопрос, вам необходимо отправить файл, содержащий сборку. Возможно, вы сможете сделать что-то более сложное, но это будет именно так.

1

Сборка - это предварительно скомпилированный код, который будет передан в .net JIT Runtime.

Это независимый от машины формат для кода, который может быть запущен любым .net командой Lanuage Runtime.

DLL и EXE являются распространенными форматами для сборок.

+2

Это .Net Common Language Runtime, а не время выполнения команды ... –

1

.Exe 1.Это исходный файл. 2. Только один .exe-файл существует для каждого приложения. 3.Exe не может использоваться совместно с другими приложениями.

.dll 1.Это файл inbund. 2. Файлы .dll могут существовать в одном приложении. 3. .dll можно использовать совместно с другими приложениями.

0

Любая DLL, построенная из .NET-проекта, представляет собой сборку, как и исполняемый файл. Ассембли не только содержат код CLI для работы в среде Common Language Runtime, но также содержат полную информацию о классах и структуре кода в сборке.

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

Ассембли замечательны из-за их модульности и встроенных метаданных API.

0

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

По умолчанию при создании сборки он помечен как закрытый. Если сборка должна быть разделена между несколькими сборками клиентов, она помещается в специальную папку Windows GAC. Чтобы преобразовать частную сборку в общую сборку, вы должны запустить служебную программу для создания ключей шифрования, и вы должны подписать сборку с помощью ключей. После подписания сборки вы должны использовать другую утилиту для добавления общей сборки в GAC.

5

Сборка в основном файл, содержащий код MSIL и метаданные. Это самая маленькая единица развертывания приложений .NET. Узел в .NET имеет 2 расширения (.exe и .dll)

dll: динамическая библиотека ссылок. Таким образом, мы можем сказать длл это собрание, но собрание не всегда может быть длл

Другими словами, длл это один тип сборки

1

1: Dll проект независим.

2: сборка конкретного проекта.

3: Сборка представляет собой сборник из одного или нескольких файлов и один из них - DLL или EXE.

4: DLL содержит код библиотеки, который будет использоваться любой программой, работающей под Windows. DLL может содержать либо структурированные, либо объектно-ориентированные библиотеки.

5: DLL-файл может иметь почти бесконечные точки входа.

6: Сборка, присутствующая в мусорном контейнере, может иметь либо сильное/слабое имя и сборку в GAC. Должно иметь прочное имя.

1

Этот вопрос не является действительным. Оба .dll и .exe являются сборками. Это просто расширение сборки. Оба могут содержать код MSIL, но .exe имеет одну точку входа, т. Е. Главную функцию. Но .dll может много точек входа.

Сборка - наименьшая единица развертывания, и это может быть dll или exe. Эта сборка состоит из двух типов: Static и Dynamic. Мы являемся еще одним типом статической сборки, известной как сборка спутников, которая содержит ресурс (изображения, файлы ресурсов и т. Д.). Вы можете использовать сильные имена для сборки, чтобы сделать его доступным для использования globle, зарегистрировав его в GAC.

+0

существует разница между сборкой и библиотекой (DLL), а DLL не является исполняемой. –

1

Сборка - это файл, содержащий скомпилированный код. Существует два вида сборок. Когда вы скомпилируете свою программу на C#, вы создаете сборку. Исполняемые файлы (иногда называемые «сборками процессов») имеют расширение EXE-файла. Все программы в нашей книге скомпилированы как исполняемые файлы. Это сборки, которые вы можете выполнить; Знаете, файлы EXE можно дважды щелкнуть и запустить. Существуют также сборники библиотек, которые имеют расширение DLL-файла. Подставка для DLL для библиотеки динамических ссылок. Их часто называют библиотеками классов, поскольку они содержат классы, которые вы можете использовать в своих программах.

Смежные вопросы