Deployment TFS 2010和;“一次构建,多个部署”;

Deployment TFS 2010和;“一次构建,多个部署”;,deployment,build-automation,Deployment,Build Automation,我在这个问题上做了很多研究,但是找不到任何端到端的解决方案来使用TFS2010实现“一次构建,多个部署” 基本上,我想的是有一个构建定义,它将构建一个包含多个要部署的项目(web应用程序+数据库项目+web服务+报表)的解决方案,将输出放在drop文件夹中,然后根据质量和版本手动决定将所有项目部署到各种环境中(qa、ua、分期、生产) 我知道我可以修改构建过程模板,以便在构建之后立即部署多个项目,比如“构建主节点并部署到QA”、“构建主节点并部署到UA”等,可能基于变更集或标签,但这意味着每次都

我在这个问题上做了很多研究,但是找不到任何端到端的解决方案来使用TFS2010实现“一次构建,多个部署”

基本上,我想的是有一个构建定义,它将构建一个包含多个要部署的项目(web应用程序+数据库项目+web服务+报表)的解决方案,将输出放在drop文件夹中,然后根据质量和版本手动决定将所有项目部署到各种环境中(qa、ua、分期、生产)

我知道我可以修改构建过程模板,以便在构建之后立即部署多个项目,比如“构建主节点并部署到QA”、“构建主节点并部署到UA”等,可能基于变更集或标签,但这意味着每次都要构建。 我想要的更像是一个仪表板,允许部署团队在QA、UA环境中部署经过测试的精确构建,并在获得生产部署许可后进行部署。当然,这意味着配置文件应该在部署时进行相应更新


我还考虑定义一些构建定义,这些定义实际上不会构建任何东西,而是部署现有的构建(基于版本)对于一个特定的环境,但至少说起来有点奇怪。

我们使用的已经足够了,我们有构建模板来进行实际构建,并部署模板来将输出部署到各种机器上(这些模板可以设置为在预定时间运行,如夜间投放到QA等,也可以按需运行,如UAT/live)。模板是从默认模板高度修改的,我们只是从构建(或者在某些情况下,您可以使用最新的构建,例如冒烟测试环境)中(例如放置位置)获取详细信息

您需要在要部署到的计算机上安装一个代理来处理部署,但是您可以安装任意数量的代理

例如,您可以有一个将应用程序构建为exe的构建,以及一个将exe导入并在您的目标上运行的模板(使用InvokeProcess)。如果您需要将相同的内容部署到另一个环境,您只需使用相同的放置位置viola


你所得到的听起来一点也不奇怪,用这种方式处理是有意义的。

Daniel的回答几乎是让TeamBuild这样的构建系统来处理部署的标准方式。这感觉有点奇怪,因为你正在将一个工具转向另一个用途。但它肯定可以工作


另一种方法是获得一个与TFS/TeamBuild集成的纯部署工具。跨环境部署是很自然的,但是您需要管理两个工具。

我知道这是一个很晚的响应,但自2012年以来情况发生了变化。Microsoft有一个全新的部署工具,它从一开始就设计为“构建一次,部署多个”。修改构建过程模板总是一件痛苦的事。

好吧,定义一个不构建的构建对我来说仍然很奇怪,但只要我不是唯一一个这样做的人,我就会这样做。还有一个问题,你如何选择正确/想要的构建?根据版本,你在“构建”下拉列表中选择正确的文件夹“位置?谢谢您的回答!我们只保留避免磁盘空间问题所需的构建(因此任何QA问题),然后将drop文件夹从“build”构建中传递到模板中定义的部署定义的构建中的参数中,它被传递给InvokeProcess任务,以便在所需的代理/服务器上运行。我想知道为什么具有自己的部署模板的部署定义不属于TFS 2010的一部分。这不会是一个“太难添加功能”。还有一个管理一切的仪表板……看到这个基本版本的出现,我不会感到震惊,但一旦你开始考虑生产型部署,你就会有不同的职责分离问题,引入负载平衡器和其他基础设施,与其他项目的协调,等等,等等。这些东西将离以开发人员为中心的TFS越来越远。