众所周知,在VS2010及更高版本中,可以使用Web.config
转换来删除web.config
文件中的添加更新标记和属性。
发布管理能够在web.token.config
内切换值(约定是这样的变量:__ConnectionString__
)
但是我该怎么做以删除整个部分?或者为不同的环境添加一个?例如,qa
不应该有调试选项,因此在转换中我们可以隐藏复制代码
我真的想尝试在转换和发布管理之间建立连接,但是,它们的行为不一样,单个构建定义必须知道要使用哪个web.config文件(我使用web.QA.config
和web.prod.config
),而发布模板只为其qa
和prod
路径提供了一个构建定义。
因此,具有相同构建定义的2个阶段(qa->prod
)的一个发布模板无法转换qa
一次,而prod
转换一次(因为它在构建定义,从哪里转换为)
隐藏复制代码
:/p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false /p:Configuration=QA /p:TransformConfigFiles=true
我试过this link。但是根据发布路径,构建定义无法帮助转换正确的web.config
。他只是建立了web.release.config
,但没有帮助。
我也尝试了很多其他网站,他们都没有回答这个简单的问题:发布管理如何将Web配置文件转换为简单的值交换,这在我的场景中是不够的,它如何添加标签,删除他们改变了更深的配置
答案 0 :(得分:0)
发布管理是一种实现持续交付的工具,即通过交付管道的不同阶段将给定的构建部署不变(保存配置值),直到它失败一个阶段(此时)它被视为无效并且不再进展)或到达管道的末端。
如果您需要在阶段之间更改除配置值之外的任何内容,则可能是您的环境在不同阶段之间根本不同的症状,这与持续交付的核心原则之一相对立。或者可能是您尝试将不同的构建部署到不同的阶段,这绝对是不持续交付。
我的博文系列here介绍了如何使用版本管理进行持续投放。 This帖子解释了管理web.config的几种方法之一 - 请注意,没有web的概念。$ some_environment $ .config。
说过我们大多数人都必须忍受功能障碍,所以如果你确实需要更改web.configs,那么使用xdt:Transform =“Remove”等功能应该有效。
作为所有这一点的脚注,您应该知道有一个全新的 - 基于Web的版本的版本管理与TFS 2015 Update 1一起发布,如果可以,可能需要等待此版本,尽管可能今年晚些时候或明年年初出货之前。查看this视频以了解品尝者。
答案 1 :(得分:-1)
感谢您的回复,环境之间更改的原因是因为在qa \ prod中您不希望调试模式\黄色屏幕\跟踪仅在QA环境中发生。
我想知道为什么很难让所有这些Web配置文件(不同环境)转换。 然后我看了构建服务器输出,发现了一切! 在构建计算机中创建的构建文件夹中,您可以找到每个版本的所有已转换文件 \ build server ip \ c $ \ Builds \ some number \ solution Name \ Build Definition name \ Sources \ TFS - > web.config.QA - > web.config.Prod 完全转变。 然后,您可以将其复制到目标位置,然后重命名(可以使用powershell完成)或使用版本管理来执行此操作。