来自 AssemblyInfo 版本的 Git 标记

Posted

技术标签:

【中文标题】来自 AssemblyInfo 版本的 Git 标记【英文标题】:Git tag from AssemblyInfo version 【发布时间】:2018-01-14 20:23:36 【问题描述】:

TLDR;安装和配置gitversion 后,如何“连接”我的 git repo 和 .nuspec 以使用注入的 AssemblyInfo 生成的版本号?

这是我第一次尝试自动正确地对任何东西进行版本控制。到目前为止,我一直在 git 中手动完成此操作。当我开始使用 MyGet 将我的第一个 NuGet 包推送到 NuGet.org 时,我看到 MyGet 将版本标签添加到我的 git 存储库但是。但是 MyGet 所做的并不符合我的愿望。

我希望我的 Git(注意:我严重依赖 GitKraken)每次在 GitFlow(或任何其他系统,如果有必要)中合并功能/发布/修补程序时自动在提交中添加版本控制标签/编号这样的系统才能工作)。

我使用 NuGet 版本的 gitversion 自动更新我的 AssemlyInfo.cs,它似乎工作正常,但我想自动在我的 git 标记中使用生成的数字(如果可能的话也在我的 MyGet/NuGet 包中) )

注意:我觉得这个问题的措辞非常糟糕,但我已经重写了很多次,我只是觉得这里有些东西我不明白,这让我的所有这些都非常困惑介意...

【问题讨论】:

【参考方案1】:

GitVersion 是一个工具,它根据您的 git 存储库的历史来断言您的应用程序的语义版本号。虽然有一些功能可以使用断言的版本号更新某些文件,但它并不能做所有事情。简单地说,它不是故意的。作为一种工具,它断言版本号,使它们可用于构建管道的其他部分。

为了执行您要求的其他步骤,您需要将其作为构建的一部分。即持续集成服务器中的一些额外步骤,或使用构建编排系统(如 psake、FAKE、Cake 或其他东西)。

GitVersion 不太可能做你想做的一切。

【讨论】:

感谢您的清晰解释。我会看看你提到的工具(我会检查 VSTS 是否能完成这项工作,因为我已经习惯了这个工具)。

以上是关于来自 AssemblyInfo 版本的 Git 标记的主要内容,如果未能解决你的问题,请参考以下文章

AssemblyInfo 内部版本号未更新

共享 AssemblyInfo 用于跨解决方案的统一版本控制

如何在不使用 assemblyinfo 的情况下使用 TFS 构建自动增加版本号?

签入时从 TFS(Team Foundation Server)更新 AssemblyInfo.cs 版本

Visual Studio下运行PowerShell脚本自动更新项目里AssemblyInfo.cs文件的版本(自增小版本号)并发布到Nuget服务器上

Git 标签 tags 和 GitHub 版本 releases