Msdeploy Web部署包-Web.config的setParameter,包含复杂的XML

Msdeploy Web部署包-Web.config的setParameter,包含复杂的XML,msdeploy,webdeploy,Msdeploy,Webdeploy,我已经在使用Web部署包方面取得了一些进展,这些包在部署时而不是构建时转换Web.config文件。本文的目标是“一次构建,到处部署”。我遇到的问题是当我需要在web.config中添加或更改复杂的XML时 例如,如果my base web.config包含以下内容: <customSection> </customSection> 我可能希望部署的web.config如下所示: <customSection> <someSettingKe

我已经在使用Web部署包方面取得了一些进展,这些包在部署时而不是构建时转换Web.config文件。本文的目标是“一次构建,到处部署”。我遇到的问题是当我需要在web.config中添加或更改复杂的XML时

例如,如果my base web.config包含以下内容:

<customSection>
</customSection>

我可能希望部署的web.config如下所示:

<customSection>
    <someSettingKey>QA Setting</someSettingKey>
</customSection>

质量保证设置
让我的SetParameters.xml看起来像:

<setParameter name="customSection" value="&lt;someSettingKey&gt;QA Setting&lt;/someSettingKey&gt;" />

但这似乎有点麻烦,尤其是当XML变得更加嵌套/复杂时


有更好的方法吗?

我能够稍微分解一下配置,以便基本web.config(用于本地测试)具有简单的XML,并对发布配置(即服务器上运行的配置)进行一次转换。此转换添加了复杂的XML,其中只有几个键需要通过SetParameters.XML进行更改,用于QA、生产等

XML中的复杂性来自于。加密(因此,复杂性)仅在服务器上需要


我想另一种方法可能是使用for某些部分的。。。然而,我并没有把这一点具体化。

我真的觉得这种方法很可笑。更糟糕的是,这是微软的“官方”解决方案。我有一些相当复杂的XML部分,需要在部署时从TFS添加到Azure中,这太可怕了。@MarkRichman同意。我们最终停止使用WebDeploy,开始使用OctopusDeploy进行内部部署。