如何从 VSTS 中的一个 nuspec 生成发布包和预发布包?
How to to produce both release and pre-release packages from one nuspec in VSTS?
目前我的构建每次都会生成两个具有更新版本的包:
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)
的子字符串来设置值。详细步骤如下:
在变量选项卡中,添加一个具有任意值(例如temp
)的变量(例如version
)。
在具有设置的 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)
.
目前我的构建每次都会生成两个具有更新版本的包:
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)
的子字符串来设置值。详细步骤如下:
在变量选项卡中,添加一个具有任意值(例如temp
)的变量(例如version
)。
在具有设置的 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)
.