Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.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

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
C# 如何在IIS/Azure中单独部署webconfig更改?_C#_Asp.net Mvc_Azure_Tfs_Web Config - Fatal编程技术网

C# 如何在IIS/Azure中单独部署webconfig更改?

C# 如何在IIS/Azure中单独部署webconfig更改?,c#,asp.net-mvc,azure,tfs,web-config,C#,Asp.net Mvc,Azure,Tfs,Web Config,目前,我已经使用TFS为WebAPI项目配置了CICD。到现在为止,一直都还不错。我还为每个环境创建了单独的web.config web.DEV.config、web.QA.config、web.PROD.config VS内置TFS 问题 有时我们只需要更改QA环境的配置。在这种情况下,我们必须在单独更改web.QA.Config文件之后构建整个项目,这是不需要的,我们只需要将新配置部署到QA。目前,我们正在手动部署进入Azure应用程序服务编辑器/FTP的源代码 如果更改了配置,是否仍然存在

目前,我已经使用TFS为WebAPI项目配置了CICD。到现在为止,一直都还不错。我还为每个环境创建了单独的web.config web.DEV.config、web.QA.config、web.PROD.config

VS内置TFS

问题

有时我们只需要更改QA环境的配置。在这种情况下,我们必须在单独更改web.QA.Config文件之后构建整个项目,这是不需要的,我们只需要将新配置部署到QA。目前,我们正在手动部署进入Azure应用程序服务编辑器/FTP的源代码


如果更改了配置,是否仍然存在仅单独部署配置而不是完整CICD的情况?

您可以直接在Azure中更改Web应用设置,而无需部署。这将适用于您的情况,因为将来的部署不会覆盖您通过门户配置的任何内容,即,这是一个一次性过程


无法将其配置为直接实现该功能。但是你可以考虑使用一些解决办法。对于exmaple:

在构建定义中添加一个变量,如FullBuild,其值为True。 在生成定义的开头添加Powershell脚本任务。powershell脚本将执行以下操作: 在生成中获取变更集/提交,以检查哪些文件已更改。 如果仅更改了web.QA.Config,则将FullBuild变量更新为false。 将原始完整生成任务设置为使用自定义条件运行:ANDSUCCESS、eqvariables['FullBuild']、'True' 添加一些任务以转换web.config文件并使用自定义条件将文件部署到Azure:ANDSUCCESS、eqvariables['FullBuild']、'False'
要转换web.config文件,您可以创建客户powershell脚本,或者使用一些构建任务,如:。

今天CD的最后一步是什么?你是如何发布到Azure的?我所做的是构建一个主repo,将源代码repo和部署repo作为子模块,然后在我的管道中,使用子模块中的触发器启动Azure的所有构建和部署。由于部署repo是独立的,所以我可以在那里手动编辑web.config。这是可能的,但这又是一个手动更改。我真的希望配置更改签入我的回购协议