Зависимости Nuget в .NET Core - PullRequest
       28

Зависимости Nuget в .NET Core

3 голосов
/ 22 октября 2019

Если я установлю какой-нибудь пакет Nuget Package1, он будет добавлен в Dependencies/Packages/Package1. Когда я установлю другой пакет Nuget Package2, который зависит от Package1, будет добавлено Dependencies/Packages/Package2/Package1.

. В этом случае у меня сейчас есть следующее:

Dependencies
|_Packages
  |_Package1
  |_Package2
    |_Package1

Тамэто двуличность Package1. Должен ли я удалить Dependencies/Packages/Packages1, или это нормально, как это? Разве это не занимает больше места?

Ответы [ 3 ]

5 голосов
/ 22 октября 2019

Это нормально, при условии, что и ваша прямая зависимость, и косвенная используют одну и ту же основную версию. Если у них разные основные версии, у вас могут возникнуть проблемы, так как они могут быть несовместимы. (Это слабость в версии .NET на данный момент, IMO.)

Вы можете удалить прямую зависимость, если хотите - если только вы не хотите более позднюю версиючем Package2 зависит от. Например, если Package2 зависит от Package1 версии 1.2.0, но вы хотите что-то, что есть только в Package1 версии 1.5.0, вы можете явно указать эту зависимость. В итоге будет развернута только одна версия Package1.

3 голосов
/ 22 октября 2019

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

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

1 голос
/ 22 октября 2019

Если Package2 / Package1 содержит все, что содержит Package1, вам не нужно ссылаться на него дважды.

...