如果它们已经改变,如何在TFS上增加组合版本?

时间:2016-01-25 09:49:25

标签: tfs build msbuild continuous-integration tfsbuild

方案

我想通过将变更集编号附加到程序集版本来自动化tfs 2013构建服务器上的程序集版本控制。棘手的要求是,我想更改那些自上次构建以来已更改的程序集的版本(任何源文件在项目目录中已更改)。

理想情况下,我希望避免自定义xaml工作流程或将任何插件安装到tfs中。

我拥有什么

到目前为止,我有自定义build.proj(msbuild项目),我从version.txt(例如2.5.0)读取版本并在末尾附加变更集编号。然后我在每个AssemblyInfo中替换AsseblyVersion属性,构建解决方案,创建nuget包并构建它们。

显然,我需要将汇编版本存储在某个地方。它应该在源代码管理中吗?或构建服务器上的一些本地缓存?基本上,我在私人nuget服务器上也有这个信息,因为nugets包含版本,因此也包含变更集号。

我需要什么

如何仅更改自上次构建以来已更改的那些程序集的版本? 我需要任何建议。

2 个答案:

答案 0 :(得分:0)

您需要使用构建脚本来实现您的目标。您可以检查ApplyVersionToAssemblies.ps1并将自己的逻辑添加到脚本中,以比较最新构建和先前构建之间已更改的项目,然后确定在构建期间更改了哪些程序集。

答案 1 :(得分:0)

我在一系列帖子中详细描述了MSBuild / TFS技术(firstsecondthird)。有一些缺点,最重要的是程序集的版本号保留在构建服务器上;如果您丢失了机器,则必须手动恢复数字。

它的工作原理是因为MSBuild非常智能,只能重建更改的内容,你只需要在过程中找到合适的钩子。