2

目前,我的构建每次都会生成两个具有较新版本的软件包:

Release: Automatic package versioning = Use the build number
Pre-release: Additional build properties = Version=$(user.BuildFullVersion)-beta

并且唯一的一个 nuspec 有一个占位符来版本:

<version>$version$</version>

我想手动增加版本,它 - 重复构建会产生相同的版本,直到我手动增加它。

我怎样才能实现仍然只有一个 nuspec?

我可以像这样在包任务中调整包版本:

Release: $(PackageVersion) = $(PackageVersion)
Pre-release: $(PackageVersion) = $(PackageVersion)-beta

或类似的东西。

4

1 回答 1

4

要通过 nuspec 生成两个包,可以使用两个 NuGet 任务(NuGet 自定义而不是 NuGet 包):

NuGet 任务:

命令:自定义

命令和参数:

pack $(Build.SourcesDirectory)\Package.nuspec -Version $(Build.BuildNumber) -OutputDirectory $(build.artifactstagingdirectory)

NuGet 任务:

命令:自定义

命令和参数:

pack $(Build.SourcesDirectory)\Package.nuspec -Version $(Build.BuildNumber) -Suffix beta -OutputDirectory $(build.artifactstagingdirectory)

如果您将nuget 包的版本添加为 时$(Build.BuildNumber)的格式设置为,则可以在构建定义中定义一个变量并通过剪切 的子字符串来设置值。详细步骤如下:MyProject-Daily_1.0.94.01.0.94.0$(Build.BuildNumber)

变量选项卡中,添加version具有任意值(例如 )的变量(例如temp)。

在此处输入图像描述

使用设置在 NuGet 任务之前添加PowerShell 任务,

类型:内联脚本

内联脚本:

$s1=$(Build.BuildNumber).split('_')[1].split(' ')
Write-Host "##vso[task.setvariable variable=version]$s1"

然后在 NuGet 自定义任务中使用$(version)替换$(Build.BuildNumber)-version选项。比如nuget pack -version $(version)

于 2017-08-10T07:52:52.097 回答