我们必须转换标签,其中对于我们的开发和测试环境,“ decryptionKey”和“ validationKey”将有所不同。
我们尝试为validationKey和decryptionKey提供不同的变量,但将它们与xdt:Transform和xdt:Locator属性混淆,因为它们将在同一标签中出现一次。
假设下面是web.config machineKey标记,
<machineKey decryptionKey="012345678910111213141516"
validation="SHA1" validationKey="235487512547896321458778996325456965542126364586965" />
我们必须进行如下转换,
<machineKey decryptionKey="#{DecryptionKey}#"
validation="SHA1"
validationKey="#{ValidationKey}#"
xdt:Transform="SetAttributes"
xdt:Locator="Match(decryptionKey)"
xdt:Transform="SetAttributes"
xdt:Locator="Match(validationKey)" />
需要这种解决方案,我们必须在单个标签内提供多个变量。
答案 0 :(得分:0)
要设置多个属性,您需要将它们作为逗号分隔的列表传递到SetAttributes中。
已记录here
但是,如果您实际上要替换所有属性,则使用xdt:Transform="Replace"
并在每个配置中设置整个标记值可能会更容易/更简洁。