Как указать конкретную версию зависимости в nuspec? - PullRequest
76 голосов
/ 14 октября 2011

Я создаю свой первый пакет nuget.Я добавил зависимость с версией, которая не является последней версией.Однако я не хочу обновлять эту версию до последней версии.Можно ли указать ему использовать определенную версию?

<dependencies>
  <dependency id="NHibernate" version="3.2.0.3001" />
</dependencies>

Когда я устанавливаю пакет, я вижу это:

Attempting to resolve dependency 'NHibernate (≥ 3.2.0.3001)'.

Это создает следующее при установке пакета.

<packages>
  <package id="Iesi.Collections" version="3.2.0.4000" />
  <package id="NHibernate" version="3.2.0.4000" />
</packages>

Мне бы очень хотелось увидеть что-то вроде этого: Попытка разрешить зависимость 'NHibernate (3.2.0.3001)'.

Ответы [ 4 ]

121 голосов
/ 15 октября 2011

Вы должны иметь возможность указать точную версию в скобках:

<dependency id="NHibernate" version="[3.2.0.3001]" />

Полная информация о форматах, которые вы можете использовать, находится на сайте NuGet, здесь:

http://docs.nuget.org/docs/reference/version-range-specification

16 голосов
/ 04 апреля 2017

С сайта документации NuGet , полные записи:

enter image description here

2 голосов
/ 29 августа 2014

Согласно http://nuget.codeplex.com/wikipage?title=Dependency%20Resolution и другим источникам, просто указав нижнюю границу как

<dependencies>
  <dependency id="NHibernate" version="3.2.0.3001" />
</dependencies>

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

Если я полностью не пойму документацию, это будет соответствовать самой высокой версии 3.2. *, Но не версии 3.3. * Или выше, если не найдена версия 3.2. *.

Если по какой-то причине 3.2.0.3001 является единственной версией, от которой вы хотите зависеть, вы можете обнаружить, что ваш пакет не совместим с другими пакетами, которые также зависят от NHibernate, например, потому что другой пакет зависит от NHibernate [ 3.2.0.3002,3.3), что означает не менее 3.2.0.3002, но ниже 3,3.

2 голосов
/ 23 декабря 2011

Со стороны пользователя вы также можете ограничить обновление, указав allowVersions в packages.config.http://docs.nuget.org/docs/reference/versioning#Constraining_Upgrades_To_Allowed_Versions

...