如何在nuspec中指定特定的依赖版本?
我正在创build我的第一个nuget包。 我添加了一个不是最新版本的版本的依赖。 但是,我不想更新到此依赖项的最新版本。 是否可以指示它使用特定的版本?
<dependencies> <dependency id="NHibernate" version="3.2.0.3001" /> </dependencies>
当我安装包时,我看到这个:
Attempting to resolve dependency 'NHibernate (≥ 3.2.0.3001)'.
这会在安装包时创build以下内容。
<packages> <package id="Iesi.Collections" version="3.2.0.4000" /> <package id="NHibernate" version="3.2.0.4000" /> </packages>
我真的想看到这样的事情:试图解决依赖'NHibernate(3.2.0.3001)'。
你应该可以用括号强制一个确切的版本:
<dependency id="NHibernate" version="[3.2.0.3001]" />
有关可以使用的格式的完整信息在NuGet网站上,在这里:
http://docs.nuget.org/docs/reference/version-range-specification
从NuGet文档站点 ,完整的符号:
从用户angular度来看,您还可以通过在packages.config中指定allowedVersions来限制升级。 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),这意味着至less3.2.0.3002但低于3.3。