2016-10-17 78 views
0

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

在我的app.config文件中,我有一个名为“platform”的应用程序设置,我想更改每个工件的值。例如,在构建中,我会得到三个工件,开发,测试,分段,这将会使“平台”设置更改为相应的值。

我已经创建了powershell脚本并在团队城市以外成功运行它,但是我一直无法解决如何设置app.config文件所在的城市。

是否有一个系统变量,我可以用它来定位当前版本的app.config文件?或者有什么不同/更好的方式可以完成我想要做的事情?

感谢

回答

1

或者是有,我可以完成我想要做一个不同的/更好的办法?

虽然这样的问题可能导致争论哪个更好......基于你所描述的,我相信Octopus Deploy将是一个很好的选择。 Octopus Deploy与TeamCity非常好地集成,它处理允许部署到每个环境(即Dev,Test和Staging)所需的转换配置。您只需将它们配置为八达通配置中的环境,并且在安装期间,八达通可以根据需要根据您定义的变量修改配置文件。

0

我要推荐创建TeamCity的配置里面3个构建步骤:

里面的Parameters选项卡,可以定义配置参数。这里只是定义了3个值:即:PlatformDevPlatformTestPlatformStaging

使用Visual Studio亚军

你可能会使用Visual Studio亚军类型。所以,在这里你可以从MSBuild的属性添加特定值:

  1. 开发步骤:

传递参数Dev,并执行代码

/p:CustomPlatform="%PlatformDev%" 
  • 测试步骤:
  • 传递参数Test,并执行你的代码。

    /p:CustomPlatform="%PlatformTest%" 
    
  • 分段步骤:
  • 跑过参数Staging,并执行代码。

    /p:CustomPlatform="%PlatformStaging%" 
    

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

    使用PowerShell手工制作的脚本

    如果你正在使用PowerShell脚本来运行你的编译/神器创建,你可以添加此CustomPlatform作为脚本的参数,并直接使用它。

    使用XSLT

    另一种方式来做到这一点可能是使用XSLT转换你的app.config文件,使用一个特定的值。