XDT Transformation is a new feature of ASP.NET 4.0 named Web.Config
Transformation.
Scott Guthrie: "In most real-world deployment scenarios, the web.config file you use for development is different than the one you use for production deployment. Typically you want to change environment settings like database connection-strings, making sure debug is turned off, and enabling custom errors so that end-users (and hackers) don’t see the internals of your application."
But the chief problem of this feature - is working only with web.config files.
I investigated this problem, and wrote Config Transformation Tool, which gives the opportunity to use XDT Transformation Syntax like at Deployment Web Application Project for any files. This tool is very easy, it just runs msbuild task, which does this transformation.
You just need to set source file, transformation file and destination file at arguments and run this tool. You can use it for app.config files for WinForms, WPF or Console projects and any other files. You can set this transformation task with nAnt or just set it in Post-Build Event for Project.
Below is a little example of using:
="1.0"
<configuration>
<custom>
<groups>
<group name="TestGroup1">
<values>
<value key="Test1" value="True" />
<value key="Test2" value="600" />
</values>
</group>
<group name="TestGroup2">
<values>
<value key="Test3" value="True" />
</values>
</group>
</groups>
</custom>
</configuration>
transform.config file content:
="1.0"
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<custom>
<groups>
<group name="TestGroup1">
<values>
<value key="Test2" value="601" xdt:Transform="Replace"
xdt:Locator="Match(key)" />
</values>
</group>
</groups>
</custom>
</configuration>
Run tool from command line with arguments:
ctt.exe s:source.config t:transform.config d:destination.config
Tool will generate destination.config file with content for us:
="1.0"
<configuration>
<custom>
<groups>
<group name="TestGroup1">
<values>
<value key="Test1" value="True" />
<value key="Test2" value="601" />
</values>
</group>
<group name="TestGroup2">
<values>
<value key="Test3" value="True" />
</values>
</group>
</groups>
</custom>
</configuration>
To get more details about transform file syntax, go to MSDN.
Project's URL at CodePlex http://ctt.codeplex.com/.
Current version Config Transformation Tool 1.0.3890.17440.