Visual Studio 解决方案的语义版本控制

Posted

技术标签:

【中文标题】Visual Studio 解决方案的语义版本控制【英文标题】:Semantic Versioning for Visual Studio Solution 【发布时间】:2018-01-29 15:29:22 【问题描述】:

我的团队有一组相当大的桌面应用程序,它们之间有许多共享库,它们都在我们存储库中的一个通用解决方案文件中。出于多种原因,我们希望使用语义版本控制,主要是为了让我们的用户更容易安装更新。但是,考虑到我们要处理的程序集的数量,我们发现为每个程序集更新 AssemblyInfo 文件非常繁琐,尤其是对于依赖于多个应用程序的库时。

我想知道是否有一种简单的方法可以使用 git 标签或某种外部工具来告诉构建服务器,例如,XYZ 有一个错误修复并且它的补丁号需要更新。

【问题讨论】:

我不确定这与您的设置有多相关,但我使用了预提交挂钩来更改版本号(以及提交后挂钩来触发构建)。 感谢@non破坏性。这就是我的意思。我认为我们案例中的问题是我们还必须指定哪个程序集被更改,因为它们在一个通用的解决方案/存储库中。 我明白了,我认为我过度简化了你的情况。 或者我过于复杂了:) 【参考方案1】:

使用 GitVersion:https://gitversion.readthedocs.io/en/latest/

它会根据最后一个标签和git历史自动进行语义版本控制。

如果您使用 msbuild 或(更好)将它与 fake 或 cake.net 等构建工具一起使用,则可以使用 GitVersionTask

编辑:您现在还有更易于使用的替代方案:https://www.nuget.org/packages/Nerdbank.GitVersioning/、https://www.nuget.org/packages/GitInfo/,。 ..

【讨论】:

以上是关于Visual Studio 解决方案的语义版本控制的主要内容,如果未能解决你的问题,请参考以下文章

如何对 Visual Studio 工件进行版本控制?

Visual Studio 的集成版本控制

Visual Studio Express 的源代码版本控制

Visual Studio 版本管理从TFS迁移到SVN

是否有可能使用团队资源管理器进行版本控制而无需为Visual Studio购买许可证?

在 Visual Studio 2017 中禁用 C# 的“显示实时语义错误”