Ver*_*min 6 msbuild build tfs2010
我负责管理我们产品的构建,并且已经被要求提出一种定制现有构建定义的方法,以便在需要时构建不同的分支.
此产品的构建过程已经有多个自定义步骤和操作,并且产品中包含大量项目文件,因此无法为每个创建的新分支设置新的构建定义.
构建定义设置为从Main分支构建.目的是输入一个特定的分支(使用可在构建排队时输入的工作流参数),然后构建该分支而不是默认的Main分支,而无需编辑构建定义.
我有一个单独的测试程序,用于测试我的所有自定义构建活动和过程.在此构建定义的工作流程中,我添加了一些用于记录目的的构建消息,以便我可以查看构建过程中使用的变量的值.
我还基于这个测试程序创建了一个分支,准备测试可用于构建多个分支的构建定义
首先,我从原始分支运行原始测试解决方案的项目文件的构建,然后更改构建定义,以便使用新分支完成相同的操作并运行另一个构建.比较两个分支之间的构建日志时,它们之间只有一些细微差别.(记录详细程度设置为诊断)
第一个区别 - 我查看了Workspace变量,构建的Folders属性引用了它们各自的分支,特别是Folders属性的ServerItem属性
第二个区别 - 正在构建的项目文件(BuildSettings.ProjectsToBuild)来自各自的分支机构
我没有看到除这些之外的2个构建日志之间的任何其他差异
这里的主要问题是:
是否有一种标准方法来交换为单个构建定义构建的分支?
如果没有,是否可以在排队构建时将自定义工作流模板中的默认主分支(在Workspace和BuildSettings.ProjectsToBuild中)的所有引用更改为输入的分支?
一如既往,提前感谢任何和所有的帮助
我已设法修改构建的工作流程模板,以便可以构建解决方案的多个分支。为了实现这一目标,我必须更改工作流程中的某些内容,并为运行构建的服务帐户创建一些额外的工作区。
我向工作流程添加了一个参数,以便在构建排队时可以输入所需的分支。
我更改了构建的放置位置,以便它与输入的分支相关(可选)
在构建机器上为分支构建创建了一个单独的源目录
初始化 WorkspaceName 和 SourcesDirectory,以便它们与新的工作区名称和源目录文件夹匹配
我创建了一个自定义活动来更改 BuildSettings.ProjectsToBuild 中的项目/解决方案列表,以便它们从输入的分支引用它们
我在测试阶段注意到,即使输入分支的新工作区最初设置为使用输入分支作为其 ServerItem,它仍然会使用在构建定义中输入的 ServerItem 创建工作区。为了解决这个问题,我创建了另一个自定义活动来重新映射分支工作区,以便 ServerItem 指向正确的分支
我的工作流程中还涉及其他一些事情,但它们是我的开发人员要求的更多调整,上述步骤导致了单个构建定义的多个分支构建。
| 归档时间: |
|
| 查看次数: |
3757 次 |
| 最近记录: |