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