当前,我有一个构建定义,它发布了一个天蓝色云服务包作为其工件。然后通过发布管理进行部署。然后,在发布管道中,通过各种环境推广此软件包。我不了解的是如何在部署到环境时执行web.config转换,这是在构建期间而不是在部署期间发生的。
我可以在构建过程中标记化我的web.config,然后使用发布任务用每个环境中的适当值替换它们。如果我只是将网站作为构建工件发布,那么这会很好,但是由于我的构建工件是azure cspkg,因此我无权访问配置文件。
是否有一种方法可以让发布过程创建azure云服务程序包而不是构建程序?这样,我可以在创建包之前进行令牌替换。如果可能,我想避免让发行版对每个环境进行重建。最终,我希望将构建中的单个工件升级到每个环境,只是在此过程中更改其配置文件。
我已经考虑过使用CSPack?现在,软件包是由云服务项目(ccproj)使用带有'/ t:Publish'选项的Visual Studio构建任务构建的。如果我要在发布过程中使用CSPack,构建工件应该是什么,这意味着完全不使用云服务项目吗?
答案 0 :(得分:0)
有没有办法让发布过程创建蔚蓝的云 服务包,而不是构建包?
您只需要将创建Azure云服务包的任务从构建定义移至发布定义。
就像在构建定义中使用Azure Cloud Service Deployment task一样,您可以从构建定义中删除该任务并将其添加到发行版定义中。
答案 1 :(得分:0)
如果您使用的是Git,则只需添加具有 Git类型的工件,并指定相应的git存储库(不关联任何构建工件)。
如果您使用的是TFVC,则只需执行 Publish Build Artifacts (发布构建工件)任务即可发布项目/解决方案的源文件,然后将构建与发布相关联。
两种方法都可以添加 Visual Studio生成任务来发布定义以生成项目。