Какая разница между пакетом dll и nuget?

Прежде всего, я прошу прощения, если это основной вопрос. Я попытался посмотреть на это, но почему-то я смутился. Итак, я решил спросить здесь. Является ли файл dll и пакет nuget одинаковым? Они оба просто ссылаются в проекте?

Ответ 1

Когда вы добавляете функции в свой проект с помощью пакета nuget, вы просто добавляете файлы в свой проект. Это могут быть файлы JavaScript (например, jQuery), библиотеки DLL, на которые ссылается ваш проект (например, Newtonsoft JSON), или целая куча вещей (например, Entity Framework или Owin/SignalR) - что угодно.

Преимущество использования системы пакетов nuget состоит в том, что она отслеживает все это для вас. Он уведомляет вас, если ваши добавленные пакеты получили обновление, удаляет файлы и отменяет ссылки на них, если вы удалили пакет из своего проекта. Он обрабатывает все это для вас, поэтому вам не нужно отслеживать файлы, добавленные пакетом nuget, помещать их в специальные папки, следить за тем, чтобы они копировались в ваши сборки, и все эти микроуправляемые вещи.

Ответ 2

Из документов https://www.nuget.org.

"Что такое NuGet? NuGet - это менеджер пакетов для Microsoft включая платформу .NET. Инструменты клиента NuGet предоставляют способность производить и потреблять пакеты. Галерея NuGet - это центральный репозиторий пакетов, используемый всеми авторами и потребителями пакетов".


Пакет может содержать одну или несколько dll в дополнение к другим активам, таким как файлы конфигурации и т.д.

Ответ 3

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

NuGet - это расширение Visual Studio, которое позволяет легко вставлять не только библиотеки, но и компоненты, а самое главное их конфигурацию в проект вашей визуальной студии. Это поможет вам управлять пакетами, установленными в вашем проекте, и будет уведомлять вас о выпуске новой версии пакета.

Скажем, я создал свою собственную DLL, я мог бы добавить свою собственную DLL по ссылке. Однако он не будет доступен в NuGet, пока я не упакую и не опубликую его сначала, чтобы сделать его доступным в галерее пакетов NuGet.