我们试图在此处获取一些CI / CD,所以我试图通过Azure Dev Ops管道部署Web服务,但是我遇到了Web.configs问题。到目前为止,我已经走完了按环境(DEV,QA,PROD)进行配置的路线,并且认为我只是让构建过程使用复制文件任务在其之上复制相关文件。一切都已经在发布步骤压缩了,所以我在构建步骤完成了。
我从复制步骤中获得以下输出:
2018-11-19T16:46:17.2133815Z found 1 files
2018-11-19T16:46:17.2141470Z Copying D:\a\1\s\Bridge\Configs\QA\Web.config
to D:\a\1\s\Web.config
2018-11-19T16:46:17.2226220Z ##[section]Finishing: Set Web.config to QA
我将其设置为在目的地覆盖。
看起来它在正确的目录中有正确的文件,但是在进行部署时,我仍然在根目录中看到相同的(未复制)Web.config。任何想法可能在这里发生什么?
或者,部署后是否有很好的方法来移动文件?看来复制文件任务只能访问构建工件中的内容,在构建工件中所有内容都已压缩,解压缩对我来说似乎是一个错误的主意。
感谢您的帮助,谢谢!
注意:我希望使用此复制文件来代替各种转换选项,因为它看起来更简单,而且我喜欢在源代码管理中使用单独的配置。
答案 0 :(得分:0)
您已经部分回答了自己的问题。您将需要在发布管道中进行此复制工作,而不是在构建过程中进行复制,以便文件副本可以与其必须在其中起作用的环境相关。
因此,您可能需要将Web配置发送到构建工件中。也许将它们复制到$(build.artifactstagingdirectory)中的“ configs”目录中。然后在您的发布管道中,它将下载您的工件,其中包括您的“ configs”目录和所有环境配置,并且您可以执行一个发布管道任务,该任务基于环境从其“配置”目录中复制正确的文件。工件并将其就地复制到已部署的Web应用程序的根目录中。