-1

我的团队使用编译器指令为不同阶段(调试、测试、发布)创建不同版本的产品,但现在我们想要移动 CI/CD 策略,我们正在讨论使用编译器指令是否是一个好主意,因为为一种配置生成的工件不能用于另一种配置,例如,我们的 CI 服务器使用测试配置运行构建过程,并且构建过程的所有阶段都通过了,包括 UI 自动化测试,在此过程中创建的工件不能用于部署到生产环境,因为对于生产环境,应用程序需要使用发行版进行编译配置,从而创建一组新的未经测试的工件来部署生产环境,在我看来,这使得在前一个阶段执行的工作已经过时,因为您可能希望针对新创建的工件运行测试。

有没有人遇到过类似的情况,如果有,您是如何与您的团队一起解决的。当您想要迁移到 CI/CD 策略时,使用 c# 编译器指令是个好主意吗?

4

1 回答 1

0

两年前我们也遇到过类似的问题。我们正在为每个环境(DEV、QA、MOCK、PROD)重新构建我们的代码,并且在某些情况下,环境之间会发生签入并使我们的所有测试无效。当我们开始 CD 之旅时,我们知道我们必须实现一次构建/多次部署的场景。我们使用 MSDeploy 来部署我们所有的代码。这包括网站/服务、Windows 服务、计划任务和 SQL 数据库。

我们将所有环境差异放在我们的配置文件中,并通过MSDeploy 中的参数化控制转换。在部署时应用参数化。安装程序由定义需要参数化的内容的 parameters.xml 文件和每个环境的 SetParameters.[environment].xml 文件以及该环境的相关值组成。

于 2016-02-06T02:38:10.053 回答