如何在nuspec中指定特定的依赖版本?

dev*_*ife 76 .net c# nuget nuget-package

我正在创建我的第一个nuget包.我添加了一个不是最新版本的依赖项.但是,我不想更新到此依赖项的最新版本.是否可以指示它使用特定版本?

<dependencies>
  <dependency id="NHibernate" version="3.2.0.3001" />
</dependencies>
Run Code Online (Sandbox Code Playgroud)

当我安装包时,我看到了这个:

Attempting to resolve dependency 'NHibernate (? 3.2.0.3001)'.
Run Code Online (Sandbox Code Playgroud)

这在我安装软件包时会创建以下内容.

<packages>
  <package id="Iesi.Collections" version="3.2.0.4000" />
  <package id="NHibernate" version="3.2.0.4000" />
</packages>
Run Code Online (Sandbox Code Playgroud)

我真的很想看到这样的事情:尝试解决依赖'NHibernate(3.2.0.3001)'.

Dan*_*eny 121

您应该能够强制使用括号的确切版本:

<dependency id="NHibernate" version="[3.2.0.3001]" />
Run Code Online (Sandbox Code Playgroud)

您可以使用的格式的完整信息在NuGet站点上,在这里:

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

  • @Anthony我认为这条评论比我的回答更好。我只是在演示如何做,而不是提倡。您所描述的问题并不容易解决;如果您有两个无法使用相同版本的NH的代码(由于错误,API差异等原因),那么您已经很麻烦了。真正的解决方法是私有依赖关系(例如Node拥有的依赖关系),但是我看不到.NET对它有“适当的”支持:( (2认同)

Avi*_*ger 18

NuGet docs站点,完整的符号:

在此输入图像描述