1

我们大量使用TeamCity进行构建\测试。

据我所知,TeamCity 不是打包和部署的合适工具。当然,任何命令行进程都可以由 TeamCity 发起,但我们缺少的是“环境”的概念,即部署在哪里。

像 Nolio 这样的一些工具有任意格式。例如,我们可以为项目定义环境类型:

 1 app server:
  - IIS web site with:
     - Virtual Dir \ Web Application:
        - App Pool
        - .NET Framework version
  - Windows service with:
    - Name
    - Description

 1 db server:
  - db name
  - db user
  - db password

所以所有的环境(Dev、QA、PreProd、Prod)都会有这些部分的不同参数。在打包步骤(例如通过 Wix 到 MSI)期间,我们可以使用这些参数为特定环境创建 MSI,例如更新 Web.config 中的 connectionString。

其他项目可以有不同的环境定义。XML 格式可能是描述这种结构和值的最佳方式。

我们在 NAnt 脚本中实现了类似的功能,其中每个环境都有 .build 文件,其中包含平面值列表。然后我们<xmlpoke>将值写入Web.config文件。但这很难维持。

所以现在我们正在寻找一些可以与 TeamCity 集成的工具(以获取构建工件),将它们打包到可安装的 MSI 中,然后可以轻松地将其部署到环境中。这样的工具必须有“环境”这个概念,允许轻松定义结构(见上例),允许添加\修改\删除环境实例,然后在打包\部署时自动使用它们。

有什么想法或经验吗?

4

1 回答 1

1

我对不同环境的自动和手动部署实际上是通过 Team City 和 MSDeploy 并使用 Config Transformations 完成的。

这是我使用的分步指南,由 Troy Hunt 撰写:http ://www.troyhunt.com/2010/11/you-deploying-it-wrong-teamcity.html

以下是有关转换语法的附加信息:http: //msdn.microsoft.com/en-us/library/dd465326.aspx

在此设置中,每个环境将是您解决方案中不同的构建配置,以及特定的配置转换。

于 2012-06-22T13:15:13.887 回答