我们大量使用 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,然后可以轻松地将其部署到environemnt上。这样的工具必须具有这个概念“环境”,允许轻松定义结构(参见上面的例子),允许添加\ modify \ delete环境实例,然后在打包\部署时自动使用它们。
任何想法或经验?
答案 0 :(得分:1)
我对不同环境的自动和手动部署实际上是通过Team City与MSDeploy并使用配置转换完成的。
这是Troy Hunt使用的逐步指南:http://www.troyhunt.com/2010/11/you-deploying-it-wrong-teamcity.html
这里有关于转换语法的其他信息: http://msdn.microsoft.com/en-us/library/dd465326.aspx
在此设置中,每个环境在解决方案中都是不同的构建配置,以及特定的配置转换。