4

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

当我通过调用创建一个新包时

nuget pack MyLibrary.csproj -IncludeReferencedProject

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

version="1.2.3.4"

这被解释为 1.2.3.4 或更高版本

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

version="[1.2.3.4]"

这样依赖关系总是准确的

有什么方法可以做到这一点,而不必为每个项目手动更新和维护 nuspec 文件中的依赖项?

4

3 回答 3

1

在项目的 packages.config 文件中,像这样指定版本:

<packages>
  <package id="example.dll" version="1.3" targetFramework="net451" allowedVersions="[1.3]" />
</packages>
于 2014-03-26T00:53:25.960 回答
0

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

于 2013-10-30T06:58:44.000 回答
0

使用https://nuget.codeplex.com/discussions/336207中描述的 -Properties或$version$如果您使用 -Version 指定包版本并且它与依赖项版本相同。

于 2015-02-02T09:32:45.587 回答