SlowCheetah - XML Transforms


This package enables you to transform your app.config or any other XML file based on the build configuration. It also adds additional tooling to help you create XML transforms.. Written by: Sayed Ibrahim Hashimi, Chuck England and Bill Hiebert

(133) Review
Visual Studio
2013, 2012, 2010
Download (200,399)
E-mail Twitter Digg Facebook
Add to favorites
Reviews (133)
Q and A (252)
Sign in to write a review
Sort by:

by Toomas Talviste | September 23 2015

by Kevin Landymore | September 15 2015

Doesn't work with a build controller. Useless for me sadly, these things should work "out of the box".

by Richard M Lee | September 06 2015

Invaluable! A feature that should definitely be native to visual studio.

by SabbirSpider | August 14 2015

Great Package.It reduces my lot of manual task for my windows application

by sukhdeep.singh1 | July 31 2015

Great plugin, a life saver :)

by ronnotel | July 18 2015

I've been coding large financial trading frameworks in VS/C# since .NET 1.1 days (12/13 years). From this perspective, I can affirmatively state that Slow Cheetah is by far the most productive package that is not currently integrated into the VS tool. I'm walking through a major rollout now involving five different staging environments and over twenty different server configs. Without Slow Cheetah, the other 35 people in the deployment team waiting on my builds would be left high and dry while I tried to manage the configs by hand. VS management - what the *hell* are you thinking? Integrate!

by MGSman123 | June 30 2015

Excellent extension! Definitely essential to my VS toolbelt going forward. Works like a charm in VS2015 too. Just needed to tweak the vsextension xml inside the package :)

by Blue Ajaz | June 03 2015

by dittodhole | April 23 2015

by Tim Long | April 20 2015

5 stars, a genuinely useful tool whenever you need different connection strings, diagnostic logging (etc, etc) configuration for release vs. debug builds.

by MSreenath | March 17 2015

Hi Ibrahim,

Thanks for writing this great tool. I have a question regarding this tool.

Question 1:

How this tool will help if I am creating ONE setup project (msi project) for all my environments and have multiple configuration files ? How can I build and deploy in this case.

As far as I can see this tool works great if you are doing file copy deployment. It just does not make sense to create setup file (read msi) for each environment, if that route I am taking for this

Question 2:

I have 5 different applications (Three Console Applications, Two Windows Service and Two Web)

Can I keep a one master config file and update all these five applications without copying same settings to app.staging.confing likewise to all applications.

Again, it takes lot of time and create this tool, I myself struggled create such tool but it is far from the level you have reached.

Please let me know. I am waiting for your response.


by jhjhkl758 | March 12 2015


by Cosmin Vana | January 19 2015

by Victor Lindsey | January 16 2015

I really like this tool for Visual Studio (both 2010 and 2013), and cannot understand Microsoft's reluctance to adopt this as a standard feature for all future versions of the IDE.

I found that for me, using the VSIXinstaller for each edition of Visual Studio I'm using, worked well to get it installed. And I have to make sure that custom XML-styled configuration files are marked with "Copy always" or "Copy if newer".

by 程湘之間 | January 06 2015

It's a very good add-on for Visual Studio.
Maybe making a formal part of Visual Studio will be a good idea.

by Rehan Saeed | December 15 2014

Vote for this feature to be built into Visual Studio. Find out more here:

by Omar Gameel Salem | December 08 2014

by Slammer17 | December 02 2014

Recently updated via nuget from :

<package id="SlowCheetah" version="" targetFramework="net45" />


<package id="SlowCheetah" version="2.5.14" targetFramework="net45" />

and after this update, Slow Cheetah stopped transforming files within VS2013 Ultimate Update 4

I rolled back to and it now works fine again.

by Josh Gallagher | October 15 2014

The simple mechanisms for replacing parts of XML that are used by
msdeploy on web.config are equally useful with any other config files.
SlowCheetah does a great job of extending that functionality in a
transparent way to other files.

by chris.morgan | September 04 2014

This extension has saved my countless hours setting up automated builds and continuous deployments. This is a must have if you need to do configuration file transforms during your build and deployment process.

1 - 20 of 133 Items   
Sign in to start a discussion

  • App.config being not transformed
    1 Posts | Last post March 28, 2014
    • In a solution with different projects, app,.config files are transformed only on the active one.
      Is it a bug or maybe is there something wrong in my configuration?
  • Unescape escape character
    1 Posts | Last post March 18, 2014
    • Is there a way to un-escape escaped characters like greater-than less-than?
      A feature similar to disable-output-escaping in XSLT?
  • Problem on Build Server
    2 Posts | Last post March 14, 2014
    • I know that you had some issues with build servers in the past, and I've tried some of the fixes that you had suggested for those, but I'm still having a significant problem using Slow Cheetah on my build server.  I am using a server running Windows Server 2008 R2 Standard.  I'm using FinalBuilder and MSBuild to build my projects.  Here's an overview of the problem:
      In the Slow Cheetah folder (../MSBuild/SlowCheetah) there is one folder called v2.5.10.2.  This folder is empty.  When I commit changes to a project, during the build process two new folders are created, once called v1, and one called v2.5.10.  All of the project code is copied into the v2.5.10 folder.  I'm then told that the build can't find the slow cheetah.dll, and the build fails.  If I go in and manually delete the two created folders (v1, v2.5.10), then run the project again (using FinalBuilder), it works and no folders are created.  Any ideas on how to fix this problem?  I really like this product, and it makes it much easier to work on projects; I'm just having a problem when building.  Thanks in advance!
    • I've had plenty of the same issues myself.
      Tried following instructions at
      to no avail...
      One of my solutions IIRC was to check in the SlowCheetah packages files into source control alongside my solution, then manually editing the project-level .targets files to point at this, rather than AppData.  Not ideal at all, however, as SlowCheetah updates will blow this away; rare but would be annoying to say the least.  
      So I tried something else: logged into the Build Server (thank goodness I have permissions) and copied the folder from my local machine (C:\Users\<me>\AppData\Local\Microsoft\MSBuild\SlowCheetah)
      to the corresponding folder on the build machine, under the build user's account.  Again, glad and lucky I have sufficient privileges... not really an enterprise-level scenario, especially if you have multiple/many build servers; or an environment where you don't have access to the build server.
      A better solution I've considered is to write an MSBuild script, perhaps EnableSlowCheetahForTeamBuild.proj, that copies the SlowCheetah files from the downloaded workspace to the appropriate folder on the build server each time.  Does require the SlowCheetah package stored in source control, but worth it given all the issues we've had.  As it would run under the build user's account, it would likely have the sufficient permissions, and it would scale out seamlessly to a 1+ build machine scenario.  I'll probably set this up at some point.
      Frankly, given the number of downloads, I'm surprised more people aren't complaining - I'd love to hear from someone who has had luck with Sayed's 12/2012 solution, because nobody here has been able to get that working.
  • Not working under Windows XP
    1 Posts | Last post March 11, 2014
    • I opened VS2010 under Windows XP, installed the latest version using the extension manager in VS2010. Then created a new Project and added a transformation for an appsetting. The "Preview Transform" is working and displaying the replaced data, but when I run the simple console application, it does not transform the app.config.
      Is the transformation not working under WinXP?
  • Still A Separate Install?
    1 Posts | Last post March 09, 2014
    • We're now in VS 2013, and this still hasn't made it into the IDE itself? What gives? I understand why previous versions did not have it (priorities), but even now?
  • Add Transform not creating config files for build configurations
    1 Posts | Last post February 21, 2014
    • Hi,
      Interesting situation: I setup a new project in an existing solution (VS 2013), added ten build configurations (don't ask) to that solution, added slow cheetah to the new project and hit add transform - bingo 10 transform config files (+ debug and release ones). Lead dev pointed out that I hadn't unchecked "Create New Project Configurations" when setting up the 10 build configs resulting in unwanted changes in all the library projects linked to the startup project. I backed out the changes, deleted the build configs and then recreated them without the 'new project configuration' option checked.
      Hit Add Transform.. debug/release configs only. Nuget-Uninstalled slow cheetah (it doesn't uninstall properly by the way; nuget retains the hook so, post-uninstall, nuget tells you that some packages need to be restored and if you do so.. cheetah comes back. zombie cheetah!!), reinstalled (which, for reasons related to the uninstall issue, doesn't happen properly) and tried again. Nothing. Added a new buld config with the 'Create New..' option. Add Transform: nothing.
      I've now removed my startup project, started it again from scratch, added slow cheetah, created the build configs, Add Transform..
      Your move Zombie Cheetah
  • Replace transform doesn't appear to work during Windows application build
    2 Posts | Last post February 20, 2014
    • Ok, this time I've got my act together.  :)   I'm using SlowCheetah in Visual Studio 2010 to transform a log4net config file to have a different server setting when doing Debug and Release builds of my application.  When I do a debug build, I need to connect to log4net server 'A'.  When I do a release build, I need to connect to log4net server 'B'.  In my diagnostic build output, I can see where SlowCheetah *does* report it does the transformation of the log4net config file. However, the generated log4net config file doesn't have the changes in it.
      My file contains:
      <?xml version="1.0" encoding="utf-8" ?>
      <configuration xmlns:xdt="">
      <appender name="Bob" xdt:Locator="Match(name)">
      <sink value="tcp://prodserver/sink" xdt:Transform="Replace" />
      With the above transformation file, a SlowCheetah preview shows the above replacement transformation doesn't happen.  The source log4net config file and the prod version are the exact same.   If I change "Replace" to "Insert", I get an error stating "No element in the source document matches '/configuration/appender[@name='Bob']/sink'.  With the transform parameter specified as "Replace", I get a clean build but the transformation doesn't occur.
      I'm not build a web application and the source log4net config file doesn't have any xmlns attributes anywhere.
      Any ideas on why the "Replace" transform wouldn't work?
    • Man, this site is a great sound board for me!  :)
      I figured out my problem.  The problem was I needed to added a "<log4net>" element to the transformation file.
      So, I changed this:
      <?xml version="1.0" encoding="utf-8" ?>
      <configuration xmlns:xdt="">
      <appender name="Bob" xdt:Locator="Match(name)">
      <sink value="tcp://prodserver/sink" xdt:Transform="Replace" />
      to this:
      <?xml version="1.0" encoding="utf-8" ?>
      <configuration xmlns:xdt="">
      <appender name="Bob" xdt:Locator="Match(name)">
      <sink value="tcp://prodserver/sink" xdt:Transform="Replace" />
      Everything is working well now.
  • How to add additional transform.targets file or custom TransformXml rule
    1 Posts | Last post February 11, 2014
    • Hi,
      Is it possible to add custom .targets file with additional TransformXml rules? How do I go on adding my custom transform rules (for example I need the transformed configs to be created in a different directory)? I guess its not good idea to update the SlowCheetah.Transforms.targets file as it is generated and can get overwritten, as says the warning. Or is what I am trying to do achievable without writing a custom rule?
  • Transformation not published with VTSO projects
    1 Posts | Last post January 29, 2014
    • I have VS 2012 u4 with SlowCheetah 2.5.10 and with two VSTO projects (Outlook 2010 Add-in & Word 2010 Template) the transformation work as expected at runtime but not at publish time. I get an error about config “has a different computed hash than specified in manifest” when trying to install the published project and when I look at the config.deploy file it is not the transformed config.
      I also done a Windows Forms Application project and everything is working as expected with that project so it let me think that this issue is only affecting VSTO projects.
  • Publishing transformed configs for all build configurations
    2 Posts | Last post January 28, 2014
    • Really like SlowCheetah, but there is one scenario which I couldn't get working out of the box.
      I have a web.config with the following transforms/configurations:
      When I publish for Dev, only the Dev transform gets applied and put into the web.config.
      This is the standard behavior.
      What I actually want to do is build/publish once and deploy on any of the machines.
      After publish I want the resulting web.configs to look like this:
      Web.Dev.Config (transformed web.config for Dev)
      Web.Test.Config (transformed web.config for Test)
      Web.Acc.Config (transformed web.config for Acc)
      Web.Prd.Config (transformed web.config for Prd)
      Is this possible out of the box? Or do I need to change my build scripts manually?
    • Hi AranV,
      Did you ever figure out or get a response for this scenario?
41 - 50 of 252 Items