如何从 VSTS 中的一个 nuspec 生成发布包和预发布包?

2023-12-28

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

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

或者类似的东西。


要通过 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)

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

In 变量选项卡,添加一个变量(如version)具有任何值(例如temp).

Add a PowerShell 任务在使用设置的 NuGet 任务之前,

类型:内联脚本

内联脚本:

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

然后在 NuGet 自定义任务中使用$(version)取代$(Build.BuildNumber) for -version选项。例如nuget pack -version $(version).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 VSTS 中的一个 nuspec 生成发布包和预发布包? 的相关文章

随机推荐