【问题标题】:Generate different artifacts team city生成不同的神器团队城市
【发布时间】:2016-10-17 20:22:48
【问题描述】:

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

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

我已经创建了 powershell 脚本并在团队城市外成功运行,但我无法弄清楚如何设置团队城市内 app.config 所在的文件目录。

我可以使用系统变量来定位当前构建的 app.config 文件吗?或者有什么不同/更好的方法可以完成我想做的事情?

谢谢

【问题讨论】:

    标签: powershell teamcity


    【解决方案1】:

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

    虽然这类问题可能会引发关于哪个更好的争论...根据您的描述,我相信Octopus Deploy 会很合适。 Octopus Deploy 与 TeamCity 集成得非常好,它可以处理允许部署到您的每个环境(即开发、测试和暂存)所需的转换配置。您只需在您的 Octopus 配置中将这些配置为环境,在安装期间,Octopus 可以根据您定义的变量根据需要修改配置文件。

    【讨论】:

      【解决方案2】:

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

      Parameters 选项卡中,您可以定义配置参数。只需在此处定义 3 个值:即:PlatformDevPlatformTestPlatformStaging

      使用 Visual Studio Runner

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

      1. 开发步骤:

      传递参数Dev,然后执行你的代码

      /p:CustomPlatform="%PlatformDev%"
      
      1. 测试步骤:

      传递参数Test,然后执行你的代码。

      /p:CustomPlatform="%PlatformTest%"
      
      1. 暂存步骤:

      传递参数Staging,然后执行你的代码。

      /p:CustomPlatform="%PlatformStaging%"
      

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

      使用Powershell手工脚本

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

      使用 XSLT

      执行此操作的另一种方法可能是使用 XSLT 转换您的 app.config 文件,使用特定值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-19
        • 1970-01-01
        • 2013-01-01
        • 1970-01-01
        • 2013-12-16
        • 1970-01-01
        • 2023-03-16
        • 1970-01-01
        相关资源
        最近更新 更多