替换所有 AppSettings
这是您只想替换 web.config 的整个部分的过度杀伤情况。在这种情况下,我会将 web.config 中的所有 AppSettings 替换为 web.release.config 中的新设置。这是我的基线 web.config appSettings:
<appSettings>
<add key="KeyA" value="ValA"/>
<add key="KeyB" value="ValB"/>
</appSettings>
现在在我的 web.release.config 文件中,我将创建一个 appSettings 部分,但我将包含属性 xdt:Transform=”Replace”,因为我只想替换整个元素。我不必使用 xdt:Locator,因为没有什么可定位的——我只想把石板擦干净并更换所有东西。
<appSettings xdt:Transform="Replace">
<add key="ProdKeyA" value="ProdValA"/>
<add key="ProdKeyB" value="ProdValB"/>
<add key="ProdKeyC" value="ProdValC"/>
</appSettings>
请注意,在 web.release.config 文件中,我的 appSettings 部分有三个键而不是两个键,而且键甚至都不相同。现在让我们看看生成的 web.config 文件在我们发布时会发生什么:
<appSettings>
<add key="ProdKeyA" value="ProdValA"/>
<add key="ProdKeyB" value="ProdValB"/>
<add key="ProdKeyC" value="ProdValC"/>
</appSettings>
正如我们预期的那样——web.config appSettings 完全被 web.release 配置中的值所取代。那很简单!