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

(137) Review
Visual Studio
2013, 2012, 2010
Download (204,050)
E-mail Twitter Digg Facebook
Add to favorites
Reviews (137)
Q and A (253)
Sign in to write a review
Sort by:

by jmelllo | November 19 2015

by DragonOfId | November 12 2015

This extension has made configuring console programs for multiple environments SO much easier. I have no idea why this functionality isn't native in VS!

by George Birbilis | November 05 2015

see for VS2015

by the real Tim Partridge | October 23 2015

Works as advertised. Downloaded, installed, restarted Visual Studio. Done

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:

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

  • Add transform not appering in VS2012
    9 Posts | Last post April 29, 2013
    • Hi, I'm trying to add a transform on an app.config file. When I right click the file add transform does not appear. I have tried to uninstall/install but can not get it to work. Can you plaese help?
    • That should work. If you have multiple versions of VS make sure you are installing the correct version. Try creating a new project (try a WPF project) and see if that works.
    • Same problem as Fredrik. I added a new WPF project to my sln and it still does not work.
    • OK so what's the common denominator here? Anything unique about your environment? I haven't heard much complaints about this.
    • Having the same issue as the users above.  Did anyone get this working?  I have a solution with a console app proj, a web app proj, and a test proj.  I used nuget to install SlowCheetah (2.5.5) in the console app proj.  It shows in the packages.config.  Right-clicking on my App.config file does not show Add Transform menu item.  Any help?
    • FYI-  I also just tried creating a brand new console app in VS2012.  Installed SlowCheetah from Nuget.  Same results.
    • I had only tried installing the Nuget package.  Downloading the extension from this site and installing solved my problems.  All works great.  Thanks.
    • Thanks, I think at the time you wrote the entry the NuGet package would only work with projects which had use the VS extension to add the Import. Since then I've fixed that and if you directly install the package it adds the Import.
    • Could you please elaborate on that? I just installed the VS extension and added the NuGet package instead, so that my team can use SlowCheetah without installing the extension. In doing that, the "Add Transform" disappeared.
  • How to transform files For DEBUGGING in web projects
    1 Posts | Last post April 25, 2013
    • In the description of your tool it is said 
      "When you build your applicatoin the files are transformed and dropped into the output directory. "
      "For web projects the files are transformed ONLY when you publish or package your application."
      How can I invoked the transformation to debug web project without publish?
      I've asked the question on, but haven't get a good suggestion.
  • ClickOnce problem
    2 Posts | Last post April 24, 2013
    • Hi,
      i have a Wpf-project with SlowCheetah on board. The project include a folder with the settings.config file. It's an XML-file with different settings. I added a transform to it for the Release configuration. And it work when i build the project. With Debug build i have one config, and with release build i Have another. So far so good. But when i publish the project i always get Debug config. Can you help me?
      Some details: VS2012, SlowCheetah 2.5.5, the settings.config has Build Action=Content, and it is always copied into output. 
      There is a sample project to illustrate the problem but i don;t know how to attach it.
    • I'm not really shure what i've done but transformations don't work at all in the test project now. Nither on build nor on publish.
  • Exclude transformations from sourcecontrol
    1 Posts | Last post April 08, 2013
    • Hi, I'd like to exclude certain transformation files from source control because they contain sensitive info. I noticed I have the option to exlude the app.config file, but not the "subfiles" created by this extension. How can I make sure the sensitive info doesn't make it's way to source control?
  • Set up my app.config and check in code properly
    1 Posts | Last post April 01, 2013
    • Hello, I have a hard time to set up app.config, app.debug.config and app.release.config in my console application.
      If in the local app.config there is “<add key="ServiceID" value="R2" />”. And in the server it should be 
      <add key="ServiceID" value="R1" />. 
      I can’t use “R1” in mylocal machine to debug, otherwise an exception is thrown out.
      I did add <appSettings xdt:Transform="Replace"> in the app.release.config.
      Then the value is “R1” in app.release.config and it is “R2” in app.debug.config. Is it right?
      My questions:
      1) What is the value in app.config? "R1" or "R2"? I need a direct answer.
      2) When I check in the code app.config, What is the value in app.config?
      A little explaination is appreciated.
  • Original Config file modified
    12 Posts | Last post March 25, 2013
    • Hi,
      I have just installed and am using Slow-Cheetah.  I am using it to transform my Log.config which is used by Log4Net.  It is modifying the original config file, and not just the config file in the output directory.  This means that if if have an 'Insert' transform and build 3 times, I will get the XML element inserted 3 times into the original file.
      Can you confirm this bug?
    • FYI - I'm using Slow Cheetah version 2.5.5 and VS2010 SP1.
    • I've heard of this but I've been unable to repro it. Does this happen for new projects as well? If so could you give me some repro steps? If its only on a specific project can you share the project?
    • Hi Sayed,
      I've reproduced this with a bare bones project.  It is an Empty Web Application and I am running the transforms on Log.config.  You can see that if you build the app multiple times, the original Log.config file has the XML inserted every time.
      The I am using VS2010 Ultimate SP1.
    • Thanks for sharing the project. When I extract this and run the app the source config file is not changed at all. I'm not sure what's going on here. What OS are you running? I have win 8 here.
      One thing that might help here is to share a build log with me. For the project you shared, can you try the following. In VS go to Tools->Options->Projects and Solutions->Build and Run, set MSBuild output verbosity to Diagnostic. Kick off a build which causes the file to get modified. Copy and paste the build log from the output window. If you could email that to me at I can compare it to that of my machine and see what the difference is here.
    • I think this is the same error I've mentioned above. It's attempting to write over the original source file: Could not write Destination file: Access to the path '***originalfilepath***' is denied. Windows 7 Professional, VS 2010.
    • I have a team member that is experiencing the issue while I am not being impacted.  We both have pretty identical desktop images, however our VS installs are different (he has Pro 2010 while I have both Ult 2010 and Prem 2012).  I'll get diagnostic traces from both his and my version of the same project and send them to you as well.
    • I've noticed if I right click on the project and select 'Publish' it errors, if I use Build > Deploy through VS toolbar it works successfully. Not sure what the difference is. Just a quick note.
    • Outside of the obvious entire solution build vs single project.
    • My colleague and I have downloaded the repro project and have verified that his environment is affected while mine is not. Both he and I ran builds with diagnostic output enabled and the one main thing I see is that in my log (which is transforming correctly) I see the following:
            OriginalItemSpec = C:\Users\\Downloads\SlowCheetah\SlowCheetah\SlowCheetah\bin\**\*.*
      The above lines are *not* present in my colleague's build log.  I'll email you both logs in their entirety for you to investigate.
    • What I found is that the Targets file may be incorrect.  I'm running Visual Studio 2010 Premium.  Here's what I was getting:
      6>Task "SlowCheetah.Xdt.TransformXml" (TaskId:286)
      6>  Transfroming source file: X:\**********************\Data\DataModelClient\ServerURLConfig.xml (TaskId:286)
      6>  Applying Transform File: ServerURLConfig.Debug.xml (TaskId:286)
      6>  Output File: bin\Debug\ServerURLConfig.xml (TaskId:286)
      6>X:\**********************\packages\SlowCheetah.2.5.5\tools\SlowCheetah.Transforms.targets(101,5): error : Could not write Destination file: Access to the path 'X:\**********************\Data\DataModelClient\ServerURLConfig.xml' is denied.
      6>Done executing task "SlowCheetah.Xdt.TransformXml" -- FAILED. (TaskId:286)
      When I change the Destination attribute on the task as follows, it works properly:
    • Two things that I should have made note of: the transform was failing before because the XML file was read-only.  The second is that referencing projects are copying the non-transformed XML into the bin directories.  That may be an unrelated item, but is a result of the fact that the XML file is being transformed in the referenced projects bin folder instead of the XML source location.
  • app.Release.config & app.Debug.config not appearing in solution list
    2 Posts | Last post March 23, 2013
    • G'day,
      Just installed SlowCheetah, love the concept.  But I've run into a bit of a problem: after adding a transform, the files app.Release.config & app.Debug.config appear in the directory, but not in the solution list within visual studio (2010).  That is, while app.config is there, no "+" is next to it, nor are the other two files shown anywhere.  Any clue what I'm doing wrong?  Or is this a known bug?  I've tried creating a blank visual basic project, added in an app.config file, transformed it, and got the same result.
      Thank you,
    • Thanks for the note. I'm not following you, could you give a step by step describing the issue?
  • Preview transformation strips out spaces
    2 Posts | Last post March 23, 2013
    • Hi all,
      I have a web.config and some transformations for it. whenever i try to preview a transformation (great feature!) i see lots of changes. This is mainly because SlowCheetah strips additional spaces from my original config file, and thus showing lots changes. see this example image:
      here you even see spaces are stripped out from comment. Is this by design?
    • Thanks, this is likely an issue with XDT itself. There's an issue for it at Please use that link for further follow ups. 
  • New version XDT?
    5 Posts | Last post March 07, 2013
    • You mentioned adding XDT, what do I need to do with projects that were created using and old version? My concern is with other team members not having slowCheetah installed.
    • Just right click on Add Transform on some XML file. It will add the NuGet package automatically if its not installed. Then make sure to enable package restore. With package restore even if the user doesn't have SlowCheetah installed the files will be transformed. SlowCheeth (the VS extension) just provides the VS command to add transform/preview. The rest of the functionality is in the NuGet package. That's one of the great benefits of this update.
    • Sweet, that is perfect! 
      Thank you for this awesome tool!
    • Well I tested this on an existing app and it did not install any nuget package. So I installed it manually. Will that work ? 
    • Yeah that's fine, but check that you have 2.5.5 installed. 
  • Slow Cheetah transforms on Build and modifies project web.config
    4 Posts | Last post March 05, 2013
    • This is a strange one.  I had a client install the slow cheetah extension and then build the project.  The web config in the project was transformed to whichever build config was selected.  This behavior is not reproducible on my machine or my colleagues'.  This is a Visual Studio 2010 Professional w/ SP1.  One thing I did notice was he didn't have nuget package manager installed yet.  We're troubleshooting this tomorrow and I'm proposing to remove both extensions then add Nuget and last add slowcheetah (through nuget).  
      Have you seen this behavior reported before and if so, was there a set of steps to prevent it?  
    • I've never heard of this issue. Does it repro on the same box with a new project? It could be something else messing with web.config.
    • I have very similar behavior and can reproduce it with VS 2010 and SlowCheetah 2.5.5.  I create a new ConsoleApplication, add a file called testFile.config, right click and select Add Transform.  The Debug and Release Versions are added and I make slight alterations ending up with:
      <outerTag xmlns:xdt="">
      	<myDebugTag xdt:Transform="Insert"></myDebugTag>
      <outerTag xmlns:xdt="">
      	<myReleaseTag xdt:Transform="Insert"></myReleaseTag>
      If I build with Debug configuration selected, the testFile.config file is modified to be:
      Everytime I re-build, I get two additional <myDebugTag>s added.  Similar behavior with Release, it just adds two <myReleaseTag>s.  I have a colleague with version 2.5.1 of SlowCheetah and it does not exhibit this behavior.
    • Hi, I cannot reproduce this. Tried with both VS2010/VS2012 and multiple machines. Could you give specific steps that I can follow from a new project? 
101 - 110 of 253 Items