我们正在尝试使用Azure DevOps构建我们的git分支并使用NuGet Pack命令生成NuGet包,我们希望自动构建master以及所有预发布的功能分支。
我们尝试将内部版本号格式设置为:
$(BuildDefinitionName)_ $(Date:yyyyMMdd)。$(BuildID)。$(Rev:.r)$(Build.SourceBranchName)
这给了我们错误:
[错误]在以下环境变量中找不到版本号数据:BUILD_BUILDNUMBER。变量的值应包含带有或为正整数的子字符串。
我将内部版本号格式设置为1.0.0-alpha可以正常工作,但在“工件”列表中,它仅显示为1.0.0。
我们如何在Azure Devops中使用CI来构建master和我们所有的功能分支,生成NuGet包并将分支名称应用到NuGet版本,以便我们可以在测试环境中使用这些包并单独测试功能分支?
答案 0 :(得分:1)
我们如何在Azure Devops中使用CI来构建master和我们所有的功能分支,生成NuGet包并将分支名称应用到NuGet版本,以便我们可以在测试环境中使用这些包并单独测试功能分支?
很抱歉收到我的答复,希望能给您任何帮助。
恐怕我们不能将内部版本号格式的$(Build.SourceBranchName)
用作nuget版本。在尝试了各种格式的内部版本号后,发现将内部版本号用作nuget版本时,只能使用 number数据作为nuget版本,否则,将出现类似您的错误:>
”变量应包含带有或为正的子字符串 整数”
然后我创建一个包含数字数据的分支,例如9
,它工作正常。
因此,作为测试,当使用内部版本号作为nuget版本时,我们无法将分支名称(字符串)应用于NuGet版本。
作为解决方法,我使用选项Use an environment variable
,然后使用值nugetversion
定义变量$(Major).$(Minor).$(Patch)-$(Build.SourceBranchName)
:
通过这种解决方法,我们可以将分支名称用作nuget软件包的版本,但是它也有一些限制,即,我们不能使用某些预定义变量,例如$(Rev:.r)
,$(BuildID)
,这意味着我们无法自动增加nuget软件包的版本。
希望这会有所帮助。