目前,我的版本每次都会生成具有更新版本的软件包:
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
或类似的东西。
答案 0 :(得分:4)
要通过nuspec生成两个包,你可以使用两个NuGet任务(NuGet自定义而不是NuGet包):
命令:自定义
命令和参数:
pack $(Build.SourcesDirectory)\Package.nuspec -Version $(Build.BuildNumber) -OutputDirectory $(build.artifactstagingdirectory)
命令:自定义
命令和参数:
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)
的子字符串的值。详细步骤如下:
在变量标签中,添加任意值的变量(例如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)
。