I am using the web.config transforms available via VS2010. In this one case I'm wondering if it possible to 'surround' an element with another during transformation. Here is an example:
default web.config contains:
<configuration>
<system.web>
....
</system.web>
</configuration>
My transformed file should contain
<configuration>
<location inheritInChildApplications="false">
<system.web>
...
</system.web>
</location>
</configuration>
So essentially I want to 'wrap' the system.web element with a location element. My only thought was to do a transform so that I inserted before and after like:
<location inheritInChildApplications="false"
xdt:Transform="InsertBefore(/configuration/system.web)">
</location xdt:Transform="InsertAfter(/configuration/system.web)">
But the closing location element isn't valid xml according to VS (I'm guessing because of the Transform attribute). Just inserting a self-closing location element before system.web doesn't help either because the resulting system.web is still not 'surrounded'.
Currently it won't be possible to do this using web.config transformation, but it indeed should be feasible if you wrote a custom transform... There is a documentation update being worked on on how to write custom transforms but it is not yet out now...
I will post it as soon as it is available...
If you add an empty location tag in your webconfig where you would like it to be it will have no effect.
You can then put this in your transform file in the same location as the other one:
<location xdt:Locator="XPath(some xpath expression)"
inheritChildApplications="false"
xdt:Transform="SetAttributes(inheritChildApplications)">
with the closing tag too and all that.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With