当使用inclereferencedprojects时,为Nuget包依赖设置准确的版本



我有一个解决方案,其中有几个项目。每个项目都有自己的nuspec文件,有些项目相互引用

当我调用

创建一个新包时
nuget pack MyLibrary.csproj -IncludeReferencedProject

nuget足够聪明,可以将任何引用的项目添加为依赖项,而不是引入生成的二进制文件,但它总是将依赖项版本设置为

version="1.2.3.4"

被解释为1.2.3.4或更高版本

我希望能够告诉nuget将版本设置为

version="[1.2.3.4]"

使得依赖项总是精确的

是否有任何方法可以做到这一点,而不必手动更新和维护nuspec文件中的每个项目的依赖关系?

在包中。项目的配置文件,像这样指定版本:

<packages>
  <package id="example.dll" version="1.3" targetFramework="net451" allowedVersions="[1.3]" />
</packages>

您需要做的是编写一个工具来打开生成的包,更改依赖约束,并保存包。注意,你不应该设置上限,除非你有很好的理由这样做。见http://blog.davidebbo.com/2011/01/nuget-versioning-part-2-core-algorithm.html

使用下面描述的-Properties https://nuget.codeplex.com/discussions/336207或者如果使用-Version指定包版本,它与依赖版本相同,则使用$version$

最新更新