如何从 TFS CI 任务的源代码中获取版本(major.minor.patch)号

Posted

技术标签:

【中文标题】如何从 TFS CI 任务的源代码中获取版本(major.minor.patch)号【英文标题】:How to get version (major.minor.patch) numbers from source code on TFS CI tasks 【发布时间】:2018-02-04 10:04:39 【问题描述】:

我正在尝试在 ci 进程中创建一个 nuget 包。我想根据语义版本控制对包进行版本控制。基本上,他们会有major.minor.patch-ci-date。

为此,我在 TFS 上使用 nuget 打包程序任务。

我可以在 nuget packager 任务上配置版本,如下图红框所示。但有个问题。 Major.minor.patch 编号由开发人员决定,我认为它们应该保存在源代码中。而且,TFS 应该从源代码或某些代码中获取这些信息。否则,包版本将保留在源代码之外。此外,开发人员应该能够更新 tfs ci 任务。在我的组织中,这是不允许的。只有配置团队可以编辑 ci 任务。

那么,有没有办法从源代码中获取major.minor.patch 编号。最佳做法是什么?版本号应该存储在哪个文件中,以及 Tfs 应该如何检索这些信息。

【问题讨论】:

这个问题解决了吗? 【参考方案1】:

我遇到了类似的问题,需要将构建的文件复制到包含版本号的文件夹中。

为此,我在 TFS 中创建了一个自定义构建任务,它从程序集中读取版本并将其存储到构建变量中。或者,自定义构建任务可以从源代码管理的文件中读取版本。 (但你需要维护这个文件!)

如果您需要更多信息,请告诉我。

【讨论】:

以上是关于如何从 TFS CI 任务的源代码中获取版本(major.minor.patch)号的主要内容,如果未能解决你的问题,请参考以下文章

如何从 TFS 获取 VS Code 中其他用户的更改

如何在 TFS 2017 中从多个来源克隆代码?

使用 tfs 在 CI 中检查程序集信息

如何通过 C# 中的 Release ID 从 TFS 获取测试结果

是否可以设置反编译代码的TFS任务?

从 CI 到生产 Nuget 源的 Nuget 包版本控制和推广