Nuget packages.config и конкретная версия - PullRequest
7 голосов
/ 01 марта 2012

Я пытаюсь создать пакет Nuget из своего проекта, следуя этому руководству http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package

Я успешно создал nuspec и nupkg.Мой проект содержит зависимость от Json.NET, которую я установил через Nuget.Однако я хочу указать конкретную версию Json.NET для использования, версию 4.0.7.Я добавил следующее к своему nuspec:

<dependencies>
  <dependency id="Newtonsoft.Json" version="[4.0.7]" />
</dependencies>

Когда я запускаю nuget pack, кажется, что он обнаруживает, что у меня есть package.config

Using 'MyProject.nuspec' for metadata.
Found packages.config. Using packages listed as dependencies.

Это, кажется, полностью игнорирует мою определенную зависимостьв nuspec при установке пакета Nuget перечисляются зависимости как> = 4.0.7, который загружается в последней версии 4.0.8.

Как я могу остановить это или, желательно, сохранить Nuget, вытягивая зависимости из packages.configно позвольте мне перезаписать определенные зависимости?

Ответы [ 2 ]

18 голосов
/ 01 марта 2012

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

<dependencies>
<dependency id="Newtonsoft.Json" version="[4.0.7,4.0.7]" />
</dependencies>

, чтобы гарантировать, что когда проект получит зависимости, он будет = 4.0.7, а не> = 4.0.7

3 голосов
/ 01 марта 2012

Способ, которым вы указали свою версию, верен;как показано в наших версиях документов , [1.0] означает «версия == 1.0».Поведение, которое вы описываете, будет ошибкой, но я не смог воспроизвести ошибку.Что я сделал:

  • Создал библиотеку классов
  • Добавил Json.NET через NuGet (установлено 4.0.8)
  • Exec'd nuget spec
  • Добавлен <dependencies><dependency id="Newtonsoft.Json" version="[4.0.7]" /> в .nuspec
  • Exec'd nuget pack
  • Открыл пакет в Package Explorer;он показывает зависимость как '= 4.0.7'
  • Установил мой пакет в новый проект;он показывает зависимость как '= 4.0.7' и устанавливает 4.0.7

screen capture screen capture 2

Возможно, вы не используете последнюю версию nuget.exeили расширение NuGet Visual Studio?Когда вы говорите, что «перечисляет зависимость», где вы это видите?Когда ваш пакет установлен, в Package Explorer или где-то еще?

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