2015-07-28 1 views
2

При обращении к this ASP.NET github wiki page, он объясняет, как пакеты с тем же именем (но другой версии) можно отбросить с помощью «Ближайшей Win» сценарий:«Ближайшие-Выигрыши» зависимость и обратная совместимость

Ближайших побед означает, что распознаватель зависимостей предпочитает версии, которые «ближе» к приложению, но только в том случае, если они являются предками , причем зависимость отклоняется.

Данный пример объясняет, как на рисунке ниже, Package B 1.0 будет отвергнута, поскольку Package B 2.0 "ближе":

Nearest-Wins dependency resolution

Означает ли это, что Package A теперь будет использовать Package B 2.0? Разумеется, это не имеет смысла, если Package B 2.0 обратно совместим с Package B 1.0?

Соответственно, semantic versioning вышеуказанные упаковки необязательно совместимы в обратном порядке.

ответ

2

Это означает, что MyApp будет использовать PackageB 2.0, это также означает, что packageA в контексте MyApp будет использовать PackageB 1.0. Обратите внимание, что в графе пакетов всегда есть только одна версия любого отдельного пакета, это было верно для мира package.config, и здесь изменений нет. В мире packages.config это решение было принято во время установки пакета пользователем, где решение принято во время восстановления.

Поскольку пользователь или автор MyApp всегда создает граф зависимостей либо в project.json, либо в nuspec (если MyApp также был пакетом), он может выбрать, какую версию использовать.

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

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

  • Нет связанных вопросов^_^