Я создаю свой первый пакет 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).
c#
.net
nuget
nuget-package
Devlife
источник
источник
Ответы:
Вы должны иметь возможность принудительно указать точную версию с помощью скобок:
<dependency id="NHibernate" version="[3.2.0.3001]" />
Полная информация о форматах, которые вы можете использовать, находится на сайте NuGet здесь:
http://docs.nuget.org/docs/reference/version-range-specification
источник
С сайта документации NuGet полные обозначения:
источник
Со стороны пользователя вы также можете ограничить обновление, указав allowedVersions в файле packages.config. http://docs.nuget.org/docs/reference/versioning#Constraining_Upgrades_To_Allowed_Versions
источник
Согласно 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.
источник