5

En Visual Studio (transformaciones web.config) Tengo una transformación que deseo realizar y que agrega dos atributos en el elemento raíz. Un attrbute funciona (pero no varios). Y puedo establecer múltiples atributos en un elemento secundario. He intentado con SetAttributes con y sin especificar los nombres de los atributos, sin suerte.Establezca múltiples atributos en el elemento raíz mediante la transformación web.config

Ideas ??

ejemplo

<element xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" xdt:Transform="SetAttributes" attrOne="One" attrTwo="Two"> 
     <children> 
     <child name="One" xdt:Transform="SetAttributes" attrOne="One" attrTwo="Two" /> 
     </children> 
    </element> 

efecto deseado

<element attrOne="One" attrTwo="Two"> 
     <children> 
     <child name="One" attrOne="One" attrTwo="Two" /> 
     </children> 
    </element> 

La sección "elemento" es en realidad una sección personalizada del archivo web.config ... de este modo:

<configuration> 

... <element configSource="App_Data\element.config" /> 

este t ransformación está destinado a ser utilizado en el archivo element.config (usando guepardo lento)

actualización Al parecer, esto no funciona bien:

<element xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" xdt:Transform="Replace" attrOne="One" attrTwo="Two"> 
    <children> 
    <child name="One" attrOne="One" attrTwo="Two" /> 
    </children> 
</element> 

Pero esto hace:

<element xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" xdt:Transform="Replace" attrOne="One"> 
    <children> 
    <child name="One" attrOne="One" attrTwo="Two" /> 
    </children> 
</element> 

Tan pronto como haya más de 1 atributo en el elemento raíz, falla

Respuesta

0

El elemento de documento de 012 El archivoes <configuration>. En su ejemplo, <element> es probablemente un hijo de <configuration>. Proveedores:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <element xdt:Transform="SetAttributes" attrOne="One" attrTwo="Two"> 
     <children> 
      <child xdt:Transform="SetAttributes" name="One" 
        attrOne="One" attrTwo="Two" /> 
     </children> 
    </element> 
</configuration> 
+0

lo siento, quería decir que no es la que uno mismo archivo web.config, pero esto demuestra una sección personalizada de ella. Sin embargo, es interesante que SetAttributes funcione con un atributo pero no con dos ... en el elemento raíz –

6

¿Has probado una transformación como ésta, que establece múltiples atributos al mismo tiempo haciendo pasar una lista de atributos para establecer a SetAttribute()?

Ver here más información.

Secifically: Transform = "SetAttributes (lista separada por comas de uno o más nombres de atributo)"

<element xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" xdt:Transform="SetAttributes(attrOne,attrTwo)" attrOne="One" attrTwo="Two"> 
    <children> 
    <child name="One" xdt:Transform="SetAttributes(attrOne,attrTwo)" attrOne="One" attrTwo="Two" /> 
    </children> 
</element> 
Cuestiones relacionadas