我有一个解决方案,其中有几个项目。每个项目都有自己的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$。