UPDATE: The creator of SlowCheetah has announced that he will no longer be supporting SlowCheetah. His intent was for Microsoft to implement this solution into Visual Studio out of the box. Unfortunately, that has not yet happened. If you would like to continue to have this functionality in future version of Visual Studio, please vote for the feature here: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2043217-support-web-config-style-transforms-on-any-file-in.
I was talking with a co-worker few days ago, and he mentioned that he was using build events and some x-copy to replace his app.config files when building his projects. I asked him why he wasn’t just using slow cheetah, and he looked at me like I was from Mars. Apparently not everyone knows that there is a tool out there that makes app.config files as easy to transform as web.config files. Enter SlowCheetah. Just install this VSIX, and you’re ready to go.
I will go ahead and walk you through a simple implementation of SlowCheetah on a console application. The below assumes that you have already downloaded and installed the SlowCheetah VSIX from here.
Let’s assume that I have a new console application. By default, there will be two configuration in configuration manager: Debug and Release. Let’s assume that I want to add a third called ‘QA’.
Add a New Configuration
Open configuration manager by right clicking your solution in Solution Explorer and selecting ‘Configuration Manager’. In the Active Solution Configuration drop down list, select ‘New’. Name it QA, and make sure the ‘Create new project configurations’ check box is checked. Click OK.
Install SlowCheeta va NuGet
By accessing the NuGet Package manager, search for SlowCheetah and Install.
Create an application setting in App.Config
Here we will create an app setting that we can use to demonstrate the transform ability that SlowCheetah gives us.
Create a new Transform
By right clicking your app.config file, and selecting ‘Add Transform’. A new configuration file is created as a child you for you app.config. If you are familiar with the web.config transform ability of Visual Studio, this should look familiar to you.
**Note that App.QA.config has been created.
Add Configuration Value for QA.App.config
Now create an app setting in your new config file. This is the value that will be used during our transform.
Preview the New Transform
If you are using Visual Studio 2013, the ability to preview your transforms is built in. Just right click your transform file and select ‘Preview Transform’ and you will be able to see your transform changes. If you are using a version of Visual Studio prior to 2013, you will actually need to run the transform.
If you are doing some sort of automatic deployment, you will need to take some extra steps to make sure that the transforms will run on your build servers. The creator of SlowCheetah has put together a good step by step on how to get that going here.
Configuration transforms are a powerful tool when it comes to developing applications for different environments. We have been able to do this in web applications easily for quite some time in Visual Studio; however, until SlowCheetah, there was no way to transform config files in Windows Apps.