Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there any way to do a "Replace Or Insert" using web.config transformation?

I'm using web.config transformation as described in the below post in order to generate configs for different environments.

http://vishaljoshi.blogspot.com/2009/03/web-deployment-webconfig-transformation_23.html

I can do a "Replace" transformation by matching on the key, e.g.

<add key="Environment" value="Live" xdt:Transform="Replace" xdt:Locator="Match(key)" /> 

And I can do "Inserts" e.g.

<add key="UseLivePaymentService" value="true" xdt:Transform="Insert" /> 

But what I would really find useful is a ReplaceOrInsert transformation, as I can't always rely on the original config file having/not having a certain key.

Is there any way to do this?

like image 811
Chris Haines Avatar asked Apr 20 '11 15:04

Chris Haines


People also ask

What is Xdt transform replace?

A Transform attribute on a parent element can affect child elements even if no Transform is specified for them. For example, if you put the attribute xdt:Transform="Replace" in the system. web element, all the elements that are children of the system. web element are replaced with the content from the transform file.

How does web config transform work?

A Web. config transformation file contains XML markup that specifies how to change the Web. config file when it is deployed. You can specify different changes for specific build configurations and for specific publish profiles.

How do I create a new transformation in web config?

If you have a web application project, Right-click on web. config and choose Add Config Transform. This will add any config transforms that are missing from your project based on build configurations (i.e. if you have Production and Staging build configs, both will get a transform added).


1 Answers

In conjunction with xdt:Transform="Remove" use xdt:Transform="InsertIfMissing" in VS2012.

<authorization xdt:Transform="Remove" /> <authorization xdt:Transform="InsertIfMissing">   <deny users="?"/>   <allow users="*"/> </authorization> 
like image 85
ADW334034 Avatar answered Sep 20 '22 17:09

ADW334034