Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在VSTS发布管理中构建和部署具有多种配置的Azure云服务?_Asp.net Mvc_Azure Devops_Azure Pipelines_Azure Cloud Services_Azure Pipelines Release Pipeline - Fatal编程技术网

Asp.net mvc 如何在VSTS发布管理中构建和部署具有多种配置的Azure云服务?

Asp.net mvc 如何在VSTS发布管理中构建和部署具有多种配置的Azure云服务?,asp.net-mvc,azure-devops,azure-pipelines,azure-cloud-services,azure-pipelines-release-pipeline,Asp.net Mvc,Azure Devops,Azure Pipelines,Azure Cloud Services,Azure Pipelines Release Pipeline,我们正在使用团队服务来维护我们的web项目,并使用Azure进行托管。目前,有几个Web角色(asp mvc)和工作者角色作为云服务托管。我们将为他们建立持续集成和交付 正如您所知,团队服务构建定义建议使用Azure云服务模板进行构建,并使用Azure云服务部署任务进行部署。我们已经在单云服务中尝试过了,而且效果很好 在我们的例子中,有web项目(web角色)和调度器(worker角色)作为独立的云服务,它们应该同时(按顺序)部署,让它成为DEV环境。但我们有更多的环境:开发、qa、ta、演示、

我们正在使用团队服务来维护我们的web项目,并使用Azure进行托管。目前,有几个Web角色(asp mvc)和工作者角色作为云服务托管。我们将为他们建立持续集成和交付

正如您所知,团队服务构建定义建议使用Azure云服务模板进行构建,并使用Azure云服务部署任务进行部署。我们已经在单云服务中尝试过了,而且效果很好

在我们的例子中,有web项目(web角色)和调度器(worker角色)作为独立的云服务,它们应该同时(按顺序)部署,让它成为DEV环境。但我们有更多的环境:开发、qa、ta、演示、预览、生产等。此外,每个环境都有稍微不同的web.config、ServiceDefinition.csdef和ServiceConfiguration.cscfg。这项任务比部署一个云服务要复杂得多

问题是:

  • 我们是否应该构建几十个云服务包(工件),然后决定部署哪一个?你能建议一下如何正确地做这件事吗?(在大多数情况下,这将只是开发环境,我们将浪费时间和资源来构建其他工件)

  • 构建一个公共工件,然后替换特定环境的所有配置是否更好?(这是一项更复杂的任务,因为云服务包多次使用预配置的ServiceDefinition和ServiceConfiguration压缩)

  • 在部署模式下替换配置令牌(web.config、serviceconfiguration等)的最佳方法是什么,或者应该在构建项目时进行替换

如果您能提出任何最佳做法,我将不胜感激。

对于azure云项目,最好在构建之前将对项目的更改应用到环境中,这样您就可以在发布过程中构建项目

关于部署到相应的环境,您可以使用build标记配置工件过滤器

例如:

  • 向项目中添加一个文件(例如json、xml或txt),该文件用于确定发行版应部署哪些环境
  • 将PowerShell任务添加到生成定义以从该文件读取数据(步骤1),并通过(
    Write Host“##vso[build.addbuildtag]build tag”
    )添加生成标记
  • 添加发布生成工件任务以上载源文件
  • 创建发布定义和链接工件,并添加多个环境
  • 为每个环境配置部署前条件:启用工件过滤器=>选择工件=>指定构建标记
  • 为每个环境添加任务和变量(例如visual studio build)以部署到相应的环境
    另一方面,关于替换值,有很多方法,例如,

    对于步骤3-您是否使用多个“发布-构建工件”任务来创建每个环境版本?@MikeW不,只需在发布期间构建项目。这是非常棘手的。如果有医生就好了。