配置转换特殊情况

时间:2017-11-20 20:49:07

标签: web-config transformation web.config-transform

我有以下配置文件

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <settings>
      <setting name="Demo" value="true"/>
      <setting name="Demo2" value="true"/>
    </settings>
  </sitecore>
</configuration>

我想把它变成这个

<configuration xmlns:role="http://www.sitecore.net/xmlconfig/role/" xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/">
  <sitecore role:require="Standalone OR ContentDelivery OR ContentManagement">
   <settings>
        <setting name="Demo" value="false"/>
        <setting name="Demo2" value="true"/>
   </settings>
  </sitecore>
</configuration>

我尝试使用此https://fatantelopetester.apphb.com/并获得以下转换配置文件:

<?xml version="1.0" encoding="utf-16"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:role="http://www.sitecore.net/xmlconfig/role/" xmlns:set="http://www.sitecore.net/xmlconfig/set/" xdt:Transform="SetAttributes(xmlns:role,xmlns:set)" xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <sitecore role:require="Standalone OR ContentDelivery OR ContentManagement" xdt:Transform="SetAttributes(role:require)">
    <settings>
      <setting name="Demo" xdt:Locator="Match(name)" value="false" xdt:Transform="SetAttributes(value)" />
    </settings>
  </sitecore>
</configuration>

但显然这种转变不够好而且不起作用。 任何想法如何使其成功,在

下的条件下
<sitecore>

我有很多其他设置? (这里我只添加了一个样本)

1 个答案:

答案 0 :(得分:0)

我自己遇到了类似的问题,并找到了适合我的解决方案。我没有使用SlowCheetah,但我正在使用一种在引擎盖下使用XDT的工具。

XDT将在xdt:Transform="SetAttributes(role:require)"附近失败,因为找不到命名空间。但是,使用xdt:Transform="SetAttributes"似乎没有相同的问题,并且能够设置该属性。