生成不同的工件团队城市

时间:2016-10-17 08:04:49

标签: powershell teamcity

我有一个项目,我想通过团队城市部署,但是当它构建时,我想生成许多不同的工件。

在我的app.config文件中,我有一个名为“platform”的应用程序设置,我想更改每个工件的值。例如,在构建时,我会得到三个工件,dev,test,staging,它们可以将“platform”设置更改为相应的值。

我已经创建了powershell脚本并在团队城市之外成功运行它,但是我还没有弄清楚如何设置app.config存在于团队城市中的文件目录。

是否有可用于定位当前构建app.config文件的系统变量?或者是否有一种不同/更好的方式可以实现我想要做的事情?

由于

2 个答案:

答案 0 :(得分:1)

  

或者我有什么不同/更好的方式可以完成我想做的事情?

虽然这类问题可以导致争论哪个更好......根据你所描述的内容,我相信Octopus Deploy会很合适。 Octopus Deploy与TeamCity非常完美地集成,它处理允许部署到每个环境所需的转换配置,即开发,测试和暂存。您只需在Octopus配置中将这些配置为环境,并且在安装过程中,Octopus可以根据您定义的变量根据需要修改配置文件。

答案 1 :(得分:0)

我建议在TeamCity配置中创建3个构建步骤:

Parameters标签内,您可以定义配置参数。只需在此定义3个值:即:PlatformDevPlatformTestPlatformStaging

使用Visual Studio Runner

您可能正在使用Visual Studio运行时类型。因此,您可以在此处添加MSBuild属性中的特定值:

  1. 开发步骤:
  2. 传递参数Dev,然后执行代码

    /p:CustomPlatform="%PlatformDev%"
    
    1. 测试步骤:
    2. 传递参数Test,然后执行代码。

      /p:CustomPlatform="%PlatformTest%"
      
      1. 分期步骤:
      2. 传递参数Staging,然后执行代码。

        /p:CustomPlatform="%PlatformStaging%"
        

        然后,可以在MSBuild脚本中访问值CustomPlatform。

        使用Powershell手工制作的脚本

        如果您使用powershell脚本来运行编译/工件创建,则可以将此CustomPlatform添加为脚本的参数,并直接使用它。

        使用XSLT

        另一种方法可能是使用XSLT使用特定值转换app.config文件。