Установка самостоятельно созданного пакета Nuget заставляет использовать последнюю версию зависимости, - PullRequest
1 голос
/ 20 сентября 2011

Я создал пакет nuget для библиотеки, которую мы используем в моей компании. Библиотека использует как Fluent NHibernate 1.3.0.717, так и Structure Map 2.6.2.

Поскольку некоторые люди используют StructureMap 2.6.3, я создал зависимости пакета как:

<dependencies>
    <dependency id="FluentNHibernate" version="[1.3,)" />
    <dependency id="structuremap" version="[2.6.2,)" />
</dependencies> 

И когда пакет обнаруживается в NuGet, он говорит, что требуется Структура карты> = 2.6.2. Пока все хорошо.

Вот проблема: Когда я добавляю эту библиотеку в свой проект, она всегда устанавливает Structure Map 2.6.3. Для этого он даже удаляет 2.6.2 из моего проекта.

Я не вижу никаких признаков того, что структурная карта 2.6.3 является зависимостью от FluentNHibernate (или какой-либо из ее зависимостей), поэтому я совершенно сбит с толку, почему он не просто добавит мою библиотеку с зависимостями FluentNHibernate и покинет мою Только StructureMap 2.6.2.

Я не знаю, связано ли это с этим, но мы размещаем пакеты на общем ресурсе UNC.

1 Ответ

1 голос
/ 21 сентября 2011

Прочитайте серию блогов Дэвида Эббо о версиях NuGet и разрешении зависимостей.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...