Зависимости пакета Nuget. Работает ли так, как должно? - PullRequest
1 голос
/ 27 октября 2011

Последняя версия RavenDb устанавливается в виде пакета nuget.Он ссылается на Newtonsoft.Json 4.0.2.Я пытаюсь установить TweetSharp.Я получаю этот журнал:

M> Install-Package TweetSharp
Attempting to resolve dependency 'Hammock (≥ 1.2.3)'.
Attempting to resolve dependency 'Newtonsoft.Json (≥ 4.0.1)'.
Successfully installed 'Hammock 1.2.6'.
Successfully installed 'Newtonsoft.Json 4.0.3'.
Successfully installed 'TweetSharp 2.0.8'.
Install failed. Rolling back...
Install-Package : Updating 'Newtonsoft.Json 4.0.2' to 'Newtonsoft.Json 4.0.3'
   failed. Unable to find a version of 'RavenDB-Embedded' that is compatible with
   'Newtonsoft.Json 4.0.3'.

Как видите, даже если TweetSharp просто нужен 'Newtonsoft.Json (≥ 4.0.1)', nuget хочет установить версию 4.0.3, которая не может работать с RavenDb.

Я пытался установить предыдущие версии TweetSharp, но это ничего не меняет.

Есть ли способ обойти это?

Ответы [ 2 ]

1 голос
/ 27 января 2012

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

Так что в этом случае было принято решение установить 4.0.3 вместо 4.0.1.

Вы можете запустить install-package с -ignoredependencies. Я бы подумал, что если бы у вас была установлена ​​4.0.2, она бы не пыталась вас обновить (потому что 4.0.2 удовлетворяет зависимости).

1 голос
/ 27 октября 2011

Похоже на возможную ошибку в NuGet.Пожалуйста, зарегистрируйте проблему в трекере ошибок NuGet: http://nuget.codeplex.com/workitem/list/basic

Если TweetSharp в порядке с NewtonSoft.Json 4.0.2, то установка не должна была завершиться неудачей.В вашей ошибке вы можете опубликовать точные версии, которые вызвали эту проблему.Например:

Список установленных пакетов с точной установленной версией.Список зависимостей для каждого пакета и определенного диапазона версий, которые они указывают.И точную версию TweetSharp вы пытаетесь установить.Это поможет нам взглянуть на проблему быстрее.Спасибо!

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

...