使用nuget更新预发布依赖项

sco*_*ttm 7 versioning nuget

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

例如,在我的解决方案中,我有一个Foo项目,它定义了一些基本功能集,一个额外的项目Foo.Web,用于特定于Web的实现以及Foo.Web.Tokens更具体的功能.Foo.Web.Tokens取决于Foo.Web哪个取决于Foo.

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

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

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

使用-Pre参数不会改变这一点.A 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相同版本的预发布包?

Dav*_*vey 0

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

将属性设置AssemblyInformationalVersion为所需的 nuget 包版本似乎可以按照您的意愿工作。

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