<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://logicwiki.co.uk/index.php?action=history&amp;feed=atom&amp;title=Web_Config_Transform</id>
		<title>Web Config Transform - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://logicwiki.co.uk/index.php?action=history&amp;feed=atom&amp;title=Web_Config_Transform"/>
		<link rel="alternate" type="text/html" href="https://logicwiki.co.uk/index.php?title=Web_Config_Transform&amp;action=history"/>
		<updated>2026-05-12T16:41:51Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://logicwiki.co.uk/index.php?title=Web_Config_Transform&amp;diff=123&amp;oldid=prev</id>
		<title>Dt1nh6: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://logicwiki.co.uk/index.php?title=Web_Config_Transform&amp;diff=123&amp;oldid=prev"/>
				<updated>2016-05-09T13:27:21Z</updated>
		
		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 13:27, 9 May 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='en'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Dt1nh6</name></author>	</entry>

	<entry>
		<id>https://logicwiki.co.uk/index.php?title=Web_Config_Transform&amp;diff=122&amp;oldid=prev</id>
		<title>Macrop at 16:20, 17 November 2014</title>
		<link rel="alternate" type="text/html" href="https://logicwiki.co.uk/index.php?title=Web_Config_Transform&amp;diff=122&amp;oldid=prev"/>
				<updated>2014-11-17T16:20:01Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:ASP.NET]]&lt;br /&gt;
[[Category:MVC]]&lt;br /&gt;
[[Category:CSharp]]&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;configuration '''xmlns:xdt=&amp;quot;http://schemas.microsoft.com/XML-Document-Transform&amp;quot;'''&amp;gt;&lt;br /&gt;
  &amp;lt;connectionStrings&amp;gt;&lt;br /&gt;
    &amp;lt;add name=&amp;quot;MyDB&amp;quot; &lt;br /&gt;
      connectionString=&amp;quot;value for the deployed Web.config file&amp;quot; &lt;br /&gt;
      '''xdt:Transform=&amp;quot;SetAttributes&amp;quot; xdt:Locator=&amp;quot;Match(name)&amp;quot;'''/&amp;gt;&lt;br /&gt;
  &amp;lt;/connectionStrings&amp;gt;&lt;br /&gt;
  &amp;lt;system.web&amp;gt;&lt;br /&gt;
    &amp;lt;customErrors defaultRedirect=&amp;quot;GenericError.htm&amp;quot;&lt;br /&gt;
      mode=&amp;quot;RemoteOnly&amp;quot; xdt:Transform=&amp;quot;Replace&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;error statusCode=&amp;quot;500&amp;quot; redirect=&amp;quot;InternalError.htm&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/customErrors&amp;gt;&lt;br /&gt;
  &amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Locator Attribute Syntax ==&lt;br /&gt;
=== Condition ===&lt;br /&gt;
 Locator=&amp;quot;Condition(XPath expression)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration xmlns:xdt=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;connectionStrings&amp;gt;&lt;br /&gt;
    &amp;lt;add name=&amp;quot;AWLT&amp;quot; connectionString=&amp;quot;newstring&amp;quot;&lt;br /&gt;
       providerName=&amp;quot;newprovider&amp;quot;&lt;br /&gt;
       xdt:Transform=&amp;quot;Replace&amp;quot; &lt;br /&gt;
       xdt:Locator=&amp;quot;Condition(@name='oldname'&lt;br /&gt;
         or @providerName='oldprovider')&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/connectionStrings&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The effective XPath expression that is applied to the development Web.config file as a result of the specified Condition expression is the following:&lt;br /&gt;
&lt;br /&gt;
 configuration/connectionStrings/add[@name='AWLT' or @providerName='System.Data.SqlClient']&lt;br /&gt;
&lt;br /&gt;
This expression is a result of combining the implicit XPath condition for the current element (configuration/connectionStrings) with the expression that is specified explicitly.&lt;br /&gt;
&lt;br /&gt;
=== Match ===&lt;br /&gt;
 Locator=&amp;quot;Match(comma-delimited list of one or more attribute names)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration xmlns:xdt=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;connectionStrings&amp;gt;&lt;br /&gt;
    &amp;lt;add name=&amp;quot;AWLT&amp;quot; connectionString=&amp;quot;newstring&amp;quot;&lt;br /&gt;
       providerName=&amp;quot;newprovider&amp;quot;&lt;br /&gt;
       xdt:Transform=&amp;quot;Replace&amp;quot; &lt;br /&gt;
       xdt:Locator=&amp;quot;Match(name)&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/connectionStrings&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== XPath ===&lt;br /&gt;
 Locator=&amp;quot;XPath(XPath expression)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration xmlns:xdt=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;connectionStrings&amp;gt;&lt;br /&gt;
    &amp;lt;add name=&amp;quot;AWLT&amp;quot; connectionString=&amp;quot;newstring&amp;quot;&lt;br /&gt;
       providerName=&amp;quot;newprovider&amp;quot;&lt;br /&gt;
       xdt:Transform=&amp;quot;Replace&amp;quot; &lt;br /&gt;
       xdt:Locator=&amp;quot;XPath(configuration/connectionStrings[@name='AWLT'&lt;br /&gt;
         or @providerName='System.Data.SqlClient'])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/connectionStrings&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transform Attribute Syntax ==&lt;br /&gt;
=== Replace === &lt;br /&gt;
If more than one element is selected, only the first selected element is replaced&lt;br /&gt;
 Transform=&amp;quot;Replace&amp;quot;&lt;br /&gt;
=== Insert ===&lt;br /&gt;
The new element is added at the end of any collection.&lt;br /&gt;
 Transform=&amp;quot;Insert&amp;quot;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration xmlns:xdt=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;connectionStrings&amp;gt;&lt;br /&gt;
    &amp;lt;add name=&amp;quot;AWLT&amp;quot; connectionString=&amp;quot;newstring&amp;quot;&lt;br /&gt;
       providerName=&amp;quot;newprovider&amp;quot;&lt;br /&gt;
       xdt:Transform=&amp;quot;Insert&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/connectionStrings&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== InsertBefore ===&lt;br /&gt;
 Transform=&amp;quot;InsertBefore(XPath expression)&amp;quot;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration xmlns:xdt=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;authorization&amp;gt;&lt;br /&gt;
    &amp;lt;allow roles=&amp;quot;Admins&amp;quot;&lt;br /&gt;
      xdt:Transform=&amp;quot;InsertBefore(/configuration/system.web/authorization/deny[@users='*'])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/authorization&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;lt;&lt;br /&gt;
&lt;br /&gt;
=== InsertAfter ===&lt;br /&gt;
 Transform=&amp;quot;InsertAfter(XPath expression)&amp;quot;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration xmlns:xdt=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;authorization&amp;gt;&lt;br /&gt;
    &amp;lt;deny users=&amp;quot;UserName&amp;quot;&lt;br /&gt;
      xdt:Transform=&amp;quot;InsertAfter&lt;br /&gt;
        (/configuration/system.web/authorization/allow[@roles='Admins'])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/authorization&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Remove ===&lt;br /&gt;
 Transform=&amp;quot;Remove&amp;quot;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration xmlns:xdt=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;connectionStrings&amp;gt;&lt;br /&gt;
    &amp;lt;add xdt:Transform=&amp;quot;Remove&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/connectionStrings&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== RemoveAll ===&lt;br /&gt;
 Transform=&amp;quot;RemoveAll&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration xmlns:xdt=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;connectionStrings&amp;gt;&lt;br /&gt;
    &amp;lt;add xdt:Transform=&amp;quot;RemoveAll&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/connectionStrings&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RemoveAttributes ===&lt;br /&gt;
&lt;br /&gt;
 Transform=&amp;quot;RemoveAttributes(comma-delimited list of one or more attribute names)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration xmlns:xdt=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;compilation &lt;br /&gt;
    xdt:Transform=&amp;quot;RemoveAttributes(debug,batch)&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/compilation&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SetAttributes ===&lt;br /&gt;
 Transform=&amp;quot;SetAttributes(comma-delimited list of one or more attribute names)&amp;quot;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration xmlns:xdt=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;compilation &lt;br /&gt;
    batch=&amp;quot;false&amp;quot;&lt;br /&gt;
    xdt:Transform=&amp;quot;SetAttributes(batch)&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/compilation&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Omitting Locator Attributes ==&lt;br /&gt;
&lt;br /&gt;
Locator attributes are optional. If you do not specify a Locator attribute, the element to be changed is specified implicitly by the element that the Transform attribute is specified for. In the following example, the entire system.web element is replaced, because no Locator attribute is specified to indicate otherwise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;configuration xmlns:xdt=&amp;quot;http://schemas.microsoft.com/XML-Document-Transform&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;system.web xdt:Transform=&amp;quot;Replace&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;customErrors defaultRedirect=&amp;quot;GenericError.htm&amp;quot;&lt;br /&gt;
      mode=&amp;quot;RemoteOnly&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;error statusCode=&amp;quot;500&amp;quot; redirect=&amp;quot;InternalError.htm&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/customErrors&amp;gt;&lt;br /&gt;
  &amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using Transform and Locator Attributes on Separate Elements ==&lt;br /&gt;
&lt;br /&gt;
A Transform attribute does not have to be set in the same element as a Locator element. You can specify a Locator element on a parent element in order to select elements whose child elements you want to work with. You can then specify a Transform attribute in a child element in order to apply a change to the children.&lt;br /&gt;
&lt;br /&gt;
The following example shows how to use the Locator attribute to select location elements for the specified path. However, only elements that are children of the selected location elements are transformed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration xmlns:xdt=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;location path=&amp;quot;C:\MySite\Admin&amp;quot; xdt:Locator=&amp;quot;Match(path)&amp;quot;&amp;gt; &lt;br /&gt;
    &amp;lt;system.web&amp;gt;&lt;br /&gt;
      &amp;lt;pages viewStateEncryptionMode=&amp;quot;Always&amp;quot;&lt;br /&gt;
        xdt:Transform=&amp;quot;SetAttributes(viewStateEncryptionMode)&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/system.web&amp;gt; &lt;br /&gt;
  &amp;lt;/location&amp;gt; &lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you specify a Locator attribute but you do not specify a Transform attribute in the same element or in a child element, no changes are made.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== NoteNote ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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=&amp;quot;Replace&amp;quot; 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.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
--------&lt;br /&gt;
Check :  [[Accessing Configuration Settings]]&lt;/div&gt;</summary>
		<author><name>Macrop</name></author>	</entry>

	</feed>