создание пакетов nuget со сторонними зависимостями: когда интернализовать?

Если вы создаете пакет NuGet, в который вам нужно добавить некоторые сторонние зависимости, у вас в основном есть 2 варианта:

  1. Поместите библиотеки DLL в папку lib вашего пакета.
  2. Ссылайтесь на сторонние библиотеки как зависимость в файле nuspec.

Например, я заметил, что RavenDB усвоил так же хорошо, как и все его сторонние зависимости, в то время как некоторые другие проекты явно зависят от других пакетов NuGet.

Мне интересно, есть ли какие-либо передовые практики/советы о том, когда выбирать любой подход. Каковы плюсы и минусы каждого?


person jurgenb    schedule 20.12.2012    source источник
comment
MS перемещает много кода .net в пакеты nuget с зависимостями. Я согласен с ответом Маартенбы   -  person Eonasdan    schedule 20.12.2012


Ответы (2)


В хорошем духе NuGet я бы рекомендовал добавлять зависимости от сторонних пакетов вместо интернализации DLL. NuGet построен вокруг «зависимостей», и полагаться на них вполне логично.

person maartenba    schedule 20.12.2012

Я бы рискнул сказать, что это больше зависит от того, зависит ли ваша реализация от конкретной версии, и есть ли вероятность того, что при обновлении и выпуске зависимости ваш пакет получит от этого пользу (или, возможно, будет поврежден, если реализация устарела).

Кроме того, делая пакеты зависимыми от nuget, вы уменьшаете дублирование и размер каталога (и размер вашего пакета). Наиболее распространенные библиотеки включаются в ваш проект только один раз (однако любой другой пакет, который также может использовать эту библиотеку, получает преимущества, поскольку она уже включена).

person Brad Christie    schedule 20.12.2012