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

(123) Review
Visual Studio
2013, 2012, 2010
Download (183,087)
E-mail Twitter Digg Facebook
Add to favorites
Reviews (123)
Q and A (241)
Sign in to write a review
Sort by:

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.

by Gustin G | September 02 2014

Excellent tool - I use it in every project to achieve a clear configuration scenario.

by Thomas TwoAngel Rud Rasmussen | August 20 2014

Doesnt transforms, doesnt add new transforms, doesnt transform web.config as stated.

Soo, that's a no go im my environment

by Toons33 | July 21 2014

Terrific work -- the only problem with web.config can be solved with a little trickery (

THANK YOU SlowCheetah team.

by Victor Pascual Villanueva | July 15 2014

Making things a lot easier for Selenium testing across different browsers:

by Dmitriy N. Dokshin | July 08 2014

by Frank Fajardo | June 26 2014

Very useful. I like that it looks at the Publish Profiles, although be cautious when you rename a Profile, it does not rename the previously generated transform files. But you can always regenerate and delete the old.

by tomKober | June 24 2014

Works like a breeze. :)

by dkehring | June 24 2014

Simply does not work with ClickOnce. I have not found any information that shows how to make XML transformations work with ClickOnce. You can run the transform preview and it looks correct, but the .config.deploy file generated by ClickOnce is the original, untransformed config file. Very frustrating and completely unusable in my situation.

by Henrick P | June 19 2014

A real must if you wish to deploy to different machine with different configuration settings stored inside some other [filename].config. Still wonder why Microsoft don't have this functionality out of the box.

by marcelnita | May 22 2014


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

  • Wrong filename on build server
    1 Posts | Last post August 06, 2013
    • This just recently started happening after an upgrade to Azure 2.1 NuGet components (not that this is related).  Anyway, my SlowCheetah transformations are still working on the build server, the problem is the output file name is wrong.
      I need myproject.dll.config to be the result of the transform, instead it is only transforming app.config.
      How do I tell SlowCheetah to output its transform result as myproject.dll.config?
      Thank you.
  • TransformXml skipped due to false condition
    2 Posts | Last post July 25, 2013
    • SlowCheetah has worked for me before to transform my App.config, using App.Debug.config, etc. This is in a Windows Service application.  It has worked on the build server, where I deploy by git cloning, as well without any extra steps. But now I've cloned my repo after a fresh install and it's not working for me. My OS is the same as it was before (Windows 7, 64-bit).
      Here's a clip from the build output:
      1>Task "SlowCheetah.Xdt.TransformXml" skipped, due to false condition; ( Exists('%(RelativeDir)%(Filename).$(Configuration)%(Extension)')
      1>                              and '%(Link)'=='' ) was evaluated as ( Exists('.Debug')
      1>                              and ''=='' ).
      Thanks for your help.
    • This turned out to be my own mistake. The namespace for some application settings had changed and I hadn't updated the xml in my App.Debug.config.  So they just weren't being copied because they didn't match.  It's working now. 
      Oddly enough, I'm still seeing the same message in my build output.
  • Build Error on MVC project when combined wtih MvcBuildViews option
    4 Posts | Last post July 15, 2013
    • First this is a fantastic tool, thank you.  I have a web project where we use the configSource option to redirect the web.config's AppSettings config section to an external file.  Your plugin is working great for transforming the dedicated AppSettings file *except* when we use the following option in our MVC Project:
      Using this setting over any Property Group invokes the aspnet_compiler to check MVC Views and/or Web Forms for compilation errors during the build process. When this property is set to true the configuration will not build, throwing the following error:
      {local dir}\{Solution}\{WebAppProject}\obj\{config}\csautoparameterize\original\web.config : error ASPCONFIG: An error occurred loading a configuration file: Directory 'C:\Data\Repositories\IPMS\IPMS.WWW\obj\dev-debug\csautoparameterize\original\App_Data\config' does not exist. Failed to start monitoring file changes.
      In our case the web.config file uses the configSource to redirect the following out into separate config files:
      appSetttings --> /App_Data/config/appSettings.config
      connnectionStrings --> /App_Data/config/connectionStrings.config
      Does this have to due with the timing of what files get transformed first?  Is there a workaround you are aware of?
    • Wow sorry Sayed my message got sandwiched all together.  I'll send you a formatted equivalent to your inbox.  Thanks
    • Hi DaFlookie, I just responded back to your email. We can just work it out there.
    • Hello, I see that the discussion is quite old but I have a similar problem. If it's possible could you please say what the solution to the described problem was?
  • Use SlowCheetah for other file extensions
    1 Posts | Last post July 08, 2013
    • Is it possible to use SlowCheetah for any other file extension? AnyConfig.config.transform for example? The reason for this requirement is that the sitecore cms include it's own merging logic for config files by application start. We solve this problem by using ctt and the suffix *.transform. But this tooling doesn't allow to use the great preview tool comes with slowcheetah. It's only console magic.
  • Visual Studio 2013 Support
    1 Posts | Last post July 02, 2013
    • I realize this is early but I have come to rely heavily on SlowCheetah and wonder when you will have a build that targets VS2013.
  • XML Transformation error if comma in attribute value
    2 Posts | Last post June 22, 2013
    • Hello,
      I have this lines in my app.config files :
      <unity xmlns="">
              <type type="Edenred.Framework.Caching.ICacheManager, Edenred.Framework" 
                    mapTo="Edenred.Framework.Caching.HttpRuntimeCacheManager, Edenred.Framework.Caching">
                <lifetime type="singleton" />
      And here is my xml transformation fille :
      <unity xmlns:xdt="" xmlns="">
                      <type mapTo="Edenred.Framework.Caching.AppFabricCacheManager, Edenred.Framework.Caching"
                            xdt:Locator="XPath(unity/containers/container/types/type[@type='Edenred.Framework.Caching.ICacheManager, Edenred.Framework'])"/>
      My xpath query below is valid (tested on internet with a XPath validator) :
      /unity/containers/container/types/type[@type='Edenred.Framework.Caching.ICacheManager, Edenred.Framework']
      But I have this error when I try to transform XML config with Slow Cheetah :
      "XPath requires exactly 1 argument"
      If I remove the "," in the value of the "type" attribute, that works.
      Thanks for your help.
    • This is caused by a bug in the Microsoft.Web.Publishing.Tasks.dll assembly. There is an easy workaround in your situation, which is to wrap your type attribute in parantheses, e.g.
      XPath(unity/containers/container/types/type[@type='Edenred.Framework.Caching.ICacheManager, Edenred.Framework']) =>
      XPath(unity/containers/container/types/type[(@type='Edenred.Framework.Caching.ICacheManager, Edenred.Framework')])
  • SlowCheetah and NLog config files?
    1 Posts | Last post June 14, 2013
    • Does SlowCheetah support NLog config files? I was able to use the "Add Transform" function to create NLog.Debug.config and NLog.Release.config but when I edit NLog.Release.config I don't get the Intellisense for the xdt xml entries. 
  • SlowCheetah transforms &quot wrong
    1 Posts | Last post June 13, 2013
    • I have a Sitecore include config file with the following XML. I have added a transform to this config, but before I add anything to the transform, it changes the following
      <setting name="InvalidItemNameChars">
      	<patch:attribute name="value">\/:?&quot;&lt;&gt;|[]</patch:attribute>
      <setting name="InvalidItemNameChars">
        <patch:attribute name="value">\/:?"&lt;&gt;|[]</patch:attribute>
      Why will &quot; be converted to ", when I have added nothing to the transform.
  • Build error with Slow Cheetah
    1 Posts | Last post June 04, 2013
    • I am trying to run msbuild on Hudson build server. The builds fail with following error - 
       D:\Hudson\jobs\MyProj\ASSEMBLIES\SlowCheetah\SlowCheetah.Transforms.targets(101,5): error : Name cannot begin with the '<' character, hexadecimal value 0x3C. Line 23, position 1. [D:\Hudson\jobs\MyProj\MyProj.csproj]
      The same project however builds from Visual Studio. Any idea what might be wrong here?
  • SlowCheetah does not transform during build
    2 Posts | Last post May 30, 2013
    • Slow Cheetah has worked perfectly for over a month. Now, all of the sudden, my builds are not transforming. I do have the configuration setup on multiple projects within the solution. Both projects have the associated Debug & Release configuration files associated with the parent app.config file.
      Here is an example of my transformation statement.
          <add name="MSSQL" connectionString="ConnectionStringHere" xdt:Transform="Replace" xdt:Locator="Match(name)"/>
      After building in either Debug or Release, I am checking the (ApplicationName).exe.config file. Here, the values do not change. I have even selected the "Preview Transformation" and the preview works without failure. It seems like Slow Cheetah is not getting the call during build.
      I have uninstalled and re installed the Slow Cheetah extension. No luck.
      Any recommendations on how to fix this problem?
    • ***Update
      I am able to create an entirely new project and the transforms work fine. It would appear something became corrupt or missing altogether. It seems odd that both projects would do this simultaneously.
71 - 80 of 241 Items