带有代理和递增的 GitVersion

GitVersion with Agent and Incrementing

我正在寻找一种使用语义版本控制的方法,以便在我的项目 dll 和 TFS2015 的文件版本上使用 $(Major).$(Minor).$(Fix)。我成功了,但现在我遇到了其他麻烦(见下文)

我在 .csproj 中使用了以下几行,它可以很好地应用由 gitversion 任务创建的内部版本号:

<Version Condition=" '$(BUILD_BUILDNUMBER)' == '' ">1.0.1-local</Version>
<Version Condition=" '$(BUILD_BUILDNUMBER)' != '' ">$(BUILD_BUILDNUMBER)</Version>

问题是我正在使用代理,所以配置似乎在 .git\gitversion_cache*.yml 中使它变得有点困难。

我已经阅读了大量的文档,目前我可以使用这个 .yml 文件,但看起来它是在代理上生成的,然后它没有被默认值 0.0.1+26 替换。

所以 :
1) 我应该提交 yml 配置文件还是将其放在代理的特定文件夹中?如果在代理上如何告诉 tfs2015 它位于何处?有时清理代理构建目录...
2) 如何自动增加 $(Fix) 变量?
3)当有变化时如何有一个命令行来增加主要和次要?我找不到任何信息...

此致,

您可以在 TFS 构建定义中添加任务 Update Assembly Info,以在构建期间更新一个或多个文件或项目的程序集信息。

或添加 powershell 任务来设置程序集版本。查看下面的博客:

https://writeabout.net/2015/11/01/set-assembly-and-app-version-to-a-matching-build-name-in-tfs-2015-or-vso-build-vnext/

好的,我找到了一个总是添加的解决方案:

 +semver: fix

提交消息。我希望它可以在其他地方设置,但现在我将使用这个解决方案。