我使用Web Deploy软件包在部署而非构建时转换web.config文件方面取得了一些进展。这个目标是#34;构建一次,随处部署"。我遇到的问题是当我需要在web.config中添加或更改复杂的XML时。
例如,如果我的基本web.config包含:
<customSection>
</customSection>
我可能希望部署的web.config看起来像这样:
<customSection>
<someSettingKey>QA Setting</someSettingKey>
</customSection>
似乎可以使我的SetParameters.xml看起来像:
<setParameter name="customSection" value="<someSettingKey>QA Setting</someSettingKey>" />
但这似乎有点麻烦,特别是当XML变得更嵌套/复杂时。
有更好的方法吗?
答案 0 :(得分:1)
我能够稍微分解配置,以便基本web.config(用于本地测试)具有简单的XML,并且具有一个用于Release配置的转换(即在服务器上运行的转换)。此转换添加了复杂的XML,其中只有少数几个键需要通过用于QA,生产等的SetParameters.xml进行更改。
XML的复杂性来自encrypting a web.config section。加密(因此,复杂性)仅在服务器上需要。
我认为另一种方法可能是使用configSource attribute对某些部分分解配置文件...但是我并没有真正充实。