使用nuget更新预发布依赖项

时间:2014-11-19 18:18:55

标签: nuget versioning

我目前正在开发一组逐步添加更多功能的库。

例如,在我的解决方案中,我有一个Foo项目,用于定义一些基本功能集,另一个项目Foo.Web用于特定于Web的实现,Foo.Web.Tokens用于更具体的特征。 Foo.Web.Tokens取决于Foo.Web,这取决于Foo

我正在尝试构建单独的nuget项目,因此用户只需要引用他们需要的依赖项。我正在使用GitVersionTask对程序集进行版本控制,因此在构建之后,它们都会获得相同的版本号,并且在构建from a project时我正在使用替换令牌作为nuget,以便nuget包都具有相同的版本号。 / p>

我的问题是,当我尝试引用Foo.WebFoo.Web.Tokens的预发布版本时,nuget无法解析对Foo的依赖关系。例如,如果我为每个程序集发布了1.1.0.0-alhpa0001包,当我尝试更新Foo.Web时,nuget会显示以下错误:

Install-Package : Unable to resolve dependency 'Foo (≥ 1.1.0.0)'.

使用-Pre参数不会改变这一点。 Foo.1.1.0-alpha0001.nupkg确实存在,但我觉得nuget无法解析它,因为它不是一个稳定版本,我让nuget使用以下命令自动检测解决方案中的依赖关系:

.\.nuget\NuGet.exe pack source/Foo.Web/Foo.Web.csproj -Build -Version 1.1.0.0-alpha0001 -symbols -IncludeReferencedProjects

如何正确地允许Foo.Web预发布包引用相同版本的Foo预发布包?

1 个答案:

答案 0 :(得分:0)

IncludeReferencedProjects选项似乎从引用项目的assemblyinfo.cs中提取版本。

AssemblyInformationalVersion属性设置为所需的nuget包版本似乎可以按预期工作。

例如 [assembly: AssemblyInformationalVersion("1.1.0-alpha0001")]