1

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

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

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

$(Build.DefinitionName)_1.0.$(date:yyyy)$(date:MM)$(date:dd)$(rev:.r)$(BuildSuffix)

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

根据此处的 nuget 文档,附加-beta到内部版本号将创建一个预发布包。VSTS 中的构建附带了 -beta,但 nuget pack 阶段似乎从未包含它。它总是以确切的版本号出现,但没有-beta标签。

我的 nuspec 文件如下所示:

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

我的 NuGet 包步骤如下所示:

在此处输入图像描述

4

2 回答 2

4

经过一番研究并将我的头撞在砖墙上后,我想出了办法。你必须:

  • 配置本地构建代理
  • 安装 Nuget CLI
  • 在 Nuget Packager 任务设置Path To NuGet.exe为 NuGet CLI
  • NuGet Arguments同屏设置为-suffix beta
于 2017-01-19T13:43:20.277 回答
0

使用新的 NuGet 任务(版本 2),您可以指定其他构建属性,并且可以直接传递您的自定义内部版本号,而不是使用 -suffix NuGet 参数。其他构建属性用 nuspec 中提供的值替换 $token$,您可以随意更改您想要的任何内容。

我也在你的屏幕截图上看到了它,但我从来没有尝试像这样将它用于旧的 NuGet 任务,因为这些现在已被弃用。

NuGet 打包任务组

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

于 2017-12-16T02:44:56.810 回答