在VSTS上为预发布配置Nuget包

时间:2017-01-19 12:27:33

标签: nuget azure-devops azure-pipelines azure-pipelines-release-pipeline azure-artifacts

注意 如果有更简单的方法来创建预发行包,请告诉我们!

我正在使用Visual Studio Team Services并设置了nuget pack和发布步骤。

我有一个名为$(BuildSuffix)的构建变量,它允许我将构建特定变量标记到构建号格式的末尾,如此

  

$(Build.DefinitionName)_1.0 $(日期:YYYY)$(日期:MM)$(日期:DD)$(REV:.R)$(BuildSuffix)

我的想法是,我可以将$(BuildSuffix)设置为-beta,以便我的最终版本可能是Build_1.0.20170119.2-beta

根据nuget documentation here,将-beta附加到内部版本号将创建一个预发布包。 VSTS中的构建带有-beta附加,但nuget pack阶段似乎永远不会包含它。它总是作为确切的版本号出现,但没有-beta标记。

我的nuspec文件如下所示:

<package >
  <metadata>
    <id>MyCompany.Data</id>
    <version>$version$</version>

我的NuGet包步骤如下所示:

enter image description here

2 个答案:

答案 0 :(得分:4)

经过一番研究,把头撞在砖墙上,我发现了怎么做。你必须:

  • 配置本地构建代理
  • 安装Nuget CLI
  • 在Nuget Packager任务集Path To NuGet.exe到NuGet CLI
  • 在同一屏幕上将NuGet Arguments设置为-suffix beta

答案 1 :(得分:0)

使用新的NuGet任务(版本2),您可以指定其他构建属性,您可以直接传递自定义构建号,而不是使用-suffix NuGet参数。额外的构建属性在$ nuspec中用$ token替换$ token $,你可以自由地改变你想要的东西。

我也在你的屏幕截图中看到了它,但是我从未尝试过使用旧的NuGet任务,因为现在已经弃用了这些任务。

NuGet Packaging Task Group

尝试导入我在私人项目中使用的NuGet打包任务组定义可能会有所帮助。请查看Here