来自 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 的情况下使用 TFS 构建自动增加版本号?
签入时从 TFS(Team Foundation Server)更新 AssemblyInfo.cs 版本
Visual Studio下运行PowerShell脚本自动更新项目里AssemblyInfo.cs文件的版本(自增小版本号)并发布到Nuget服务器上