Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用$(GitVersion.NuGetVersion)标记源将使用变量名而不是值创建标记_Git_Azure Devops_Tfsbuild_Azure Pipelines_Gitversion - Fatal编程技术网

使用$(GitVersion.NuGetVersion)标记源将使用变量名而不是值创建标记

使用$(GitVersion.NuGetVersion)标记源将使用变量名而不是值创建标记,git,azure-devops,tfsbuild,azure-pipelines,gitversion,Git,Azure Devops,Tfsbuild,Azure Pipelines,Gitversion,成功生成后,将标签格式配置为$(GitVersion.NuGetVersion),生成的标记设置为$(GitVersion.NuGetVersion),而不是该变量的实际扩展值 在构建输出日志中,有两个部分/计划:构建和最终构建 假设,一旦构建代理移动到第二部分/计划,所有变量上下文/状态都将丢失 如果GitVersion变量的上下文在Finalize Build部分丢失,我应该如何用生成的GitVersion标记源代码 我在下面的对话中回答了你的问题: 我认为,只要VSTS不提供适当的API,

成功生成后,将标签格式配置为
$(GitVersion.NuGetVersion)
,生成的标记设置为
$(GitVersion.NuGetVersion)
,而不是该变量的实际扩展值

在构建输出日志中,有两个部分/计划:构建和最终构建

假设,一旦构建代理移动到第二部分/计划,所有变量上下文/状态都将丢失

如果GitVersion变量的上下文在Finalize Build部分丢失,我应该如何用生成的GitVersion标记源代码


我在下面的对话中回答了你的问题:

我认为,只要VSTS不提供适当的API,我们就无法在GitVersion任务中对此做任何事情。GitVersion当前仅使用定义变量。变量在任务上下文中明确定义,因此可用于后续任务,但不能在上下文之外

一种特殊情况是我们正在使用的存在特殊命令的内部版本号

一种解决方法是添加一个额外的任务来添加标记,这将起作用,因为该任务将位于相同的上下文中,因此可以访问该变量


实现预期结果的具体步骤:

  • 设置VSTS项目/存储库/构建预需求:
  • 用于标记的Git文档(完整性):
  • 我使用工具添加了2个命令行任务(批处理任务更好):
    git

  • 参数:
    标记-a$(GitVersion\u NuGetVersion)-m“按内部版本($(Build.BuildId))自动标记v$(GitVersion\u NuGetVersion)”
  • 参数:
    推送源代码$(Build.BuildNumber)

  • 标记在服务器上完成,在代理上下文中设置的变量在finalize中不可用。谢谢!谢谢。