我有一个包含多个项目的 VS2008 解决方案。我需要发布其中五个项目,而这五个项目中的两个需要发布两次,具有两个不同的配置设置(只需对几个 web.config 属性的 configSource 进行简单更改即可)。
然后,我想获取生成的 7 个输出并将 4 个放入一个 zip 文件中,将另外 3 个放入另一个中,然后将它们推送到准备部署的客户端 FTP。
我是否试图在一个构建配置中做太多事情,或者这是否合理?
我有一个包含多个项目的 VS2008 解决方案。我需要发布其中五个项目,而这五个项目中的两个需要发布两次,具有两个不同的配置设置(只需对几个 web.config 属性的 configSource 进行简单更改即可)。
然后,我想获取生成的 7 个输出并将 4 个放入一个 zip 文件中,将另外 3 个放入另一个中,然后将它们推送到准备部署的客户端 FTP。
我是否试图在一个构建配置中做太多事情,或者这是否合理?
根据您使用的 TeamCity 版本,您可以在多个配置(TC v5 或更早版本)中执行所有这些步骤,也可以在一个配置中执行多个步骤(TC v6 或更高版本)。我通常倾向于将构建步骤与部署步骤分开。因此,我将有一个用于编译、测试项目等的单一配置,并将所有内容发布为工件。然后有不同的配置(例如针对不同的部署环境)进行部署,每个可能共享相似的步骤和脚本。
好处是您可以更好地控制队列优先级、代理负载等。但权衡是端到端构建过程可能需要更长的时间并且有更多的移动部件。
我认为这可以通过 2 种配置来完成。我使用在解决方案中构建所有项目的解决方案运行器,然后在工件路径部分中,每一行将具有以下内容:
foo\bar\bin\RELEASE\** => outputFooBar.zip
fizz\buzz\bin\RELEASE\** => outputFizzBuzz.zip
然后使用复制功能复制配置。我很确定您不能将 2 个跑步者与一个构建配置相关联。