Azure devops 在Azure Devops中构建管道时,管理从beta版到VS2017中发布的.net core2.1的nuget版本

Azure devops 在Azure Devops中构建管道时,管理从beta版到VS2017中发布的.net core2.1的nuget版本,azure-devops,nuget,nuget-package,Azure Devops,Nuget,Nuget Package,我需要为.net core 2.1创建nuget包,作为Azure Devops中构建和发布过程的一部分 我想做什么 1) 在build部分构建项目,然后将编译后的代码添加到工件中 2) 在发布定义中将有2个部署,一个用于Beta版本,版本类似于1.2.3-Beat.2,并推送至azure ArtifactNuget;另一个用于发布的部署,版本类似于1.2.3.2,并推送至azure ArtifactNuget 目前我只有一个构建定义,它将构建(在构建过程中创建nuget包)并推送到azure工

我需要为.net core 2.1创建nuget包,作为Azure Devops中构建和发布过程的一部分 我想做什么

1) 在build部分构建项目,然后将编译后的代码添加到工件中

2) 在发布定义中将有2个部署,一个用于Beta版本,版本类似于1.2.3-Beat.2,并推送至azure ArtifactNuget;另一个用于发布的部署,版本类似于1.2.3.2,并推送至azure ArtifactNuget

目前我只有一个构建定义,它将构建(在构建过程中创建nuget包)并推送到azure工件nuget

我想创建的管道


由于在执行“nuget pack”(通常在构建过程中执行)时会包含包版本,因此在以后更改该版本可能会有点复杂

您可能感兴趣的是在Azure工件中使用视图的概念,这将允许您在以后的状态下将包升级到发布视图,而无需重建包。 市场上有一个很好的扩展,允许您在发行版中执行此操作:

使用此流程,您可以随时在预发布视图/提要中保存包,并在您认为合适的时候在发布视图中提供包


这样做的缺点是Nuget没有将这些包标识为预发布包,因为您不会使用适当的semver对它们进行打包,因此

使用带有
--no build
选项的
dotnet pack
任务,并在预发布阶段设置VersionSuffix

注意:我当前的团队使用一组Powershell脚本将内部版本号数据附加到.csproj(或netFramework的AssemblyInfo.cs)中的主要.次要数据,但这不会改变您问题的答案。一旦您确定了主.Minor.Patch[.Build]数据将是什么,您就可以在
dotnet pack
任务中使用VersionSuffix属性,并使用
--无构建
来传达在管道中移动的包的质量

给定一个如下所示的
.csproj
文件:


netstandard2.0
1.0.0.1


如果您不熟悉这些属性和值的组合方式,那么找到它们的正确组合可能会让人望而生畏。我发现在试图破译版本属性时很有用

此外,您应该了解
1.0.1-b2
1.0.1,因此您的预发布版本可能是
1.2.3.2-beta1
,而您的稳定版本可能是
1.2.3.2



你说得对@RemcoBrilstra。这些包通过访问提要的方式进行标识。将提要用作包源时,在提要的url中包含
@pre
@rel
,这是了解包质量的唯一方法。从提供的示例来看,在构建定义中,似乎您正在为测试版包分配版本,那么何时以及如何创建为最终版本分配版本的包释放。我已经更新了我想要创建的管道。在构建过程中,我是否同时使用beta和release版本创建包process@kumar我的构建管道映像仅显示Beta后缀的分配。另一个版本信息(即Major.Minor.Patch)是从.csproj文件中提取的(对于我们的情况,我们是通过.csproj文件而不是.nuspec文件打包的)。我将添加到示例中,尝试将其结合在一起。我尝试了您提到的内容,但没有应用-beta后缀。有什么想法吗?有什么错误吗?通过在
.csproj
文件中设置属性,或者通过
dotnet
命令的其他选项,确保您没有在某个地方重写属性。如果您不介意在何处以及如何定义上述4.0.1-beta-23516等版本格式,也可以这样做