SlowCheetah - XML Transforms

Free

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

(121) Review
Visual Studio
2013, 2012, 2010
Download (180,394)
7/20/2014
2.5.11
View
E-mail Twitter del.icio.us Digg Facebook
Add to favorites
Description
Reviews (121)
Q and A (240)
Sign in to write a review
Sort by:

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:

http://rehansaeed.co.uk/configuration-file-transforms-in-visual-studio-should-be-built-in/

by Omar Gameel Salem | December 08 2014

by Slammer17 | December 02 2014

Recently updated via nuget from :

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


To



<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 2.5.10.3 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 (http://stackoverflow.com/questions/16225304/using-slowcheetah-config-transforms-on-web-config-in-a-3-5-web-forms-app).

THANK YOU SlowCheetah team.

by Victor Pascual Villanueva | July 15 2014

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

http://testingisland.wordpress.com/2014/07/10/how-slowcheetah-can-help-with-your-selenium-tests/

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

Great!

by Brad Deem | May 08 2014

Excellent! Glad to see this come to projects other than web. Now if only Microsoft would pick it up out the box...

Just remember to verify that it works without SlowCheetah installed so other devs don't have issues. Here's what I've used before.

<PropertyGroup Label="SlowCheetah">
<SlowCheetah_EnableImportFromNuGet Condition=" '$(SC_EnableImportFromNuGet)'=='' ">true</SlowCheetah_EnableImportFromNuGet>
<SlowCheetah_NuGetImportPath Condition=" '$(SlowCheetah_NuGetImportPath)'=='' ">$([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)\..\packages\SlowCheetah.2.5.8\tools\SlowCheetah.Transforms.targets ))</SlowCheetah_NuGetImportPath>
<SlowCheetahTargets Condition=" '$(SlowCheetah_EnableImportFromNuGet)'=='true' and Exists('$(SlowCheetah_NuGetImportPath)') ">$(SlowCheetah_NuGetImportPath)</SlowCheetahTargets>
</PropertyGroup>
<Import Project="$(SlowCheetahTargets)" Condition="Exists('$(SlowCheetahTargets)')" Label="SlowCheetah" />

by SegaWang | April 26 2014

great transform tool. Thanks a lot

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


  • 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..
      
      Nothing.
      
      Your move Zombie Cheetah
      
      M
  • Replace transform doesn't appear to work during Windows application build
    2 Posts | Last post February 21, 2014
    • Ok, this time I've got my act together.  :)   I'm using SlowCheetah 2.5.10.3 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 log4net.prod.config file contains:
      
      <?xml version="1.0" encoding="utf-8" ?>
      <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
      <appender name="Bob" xdt:Locator="Match(name)">
      <sink value="tcp://prodserver/sink" xdt:Transform="Replace" />
      </appender>
      </configuration>
      
      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?
      
      Thanks!
      
      Tom
    • 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="http://schemas.microsoft.com/XML-Document-Transform">
      <appender name="Bob" xdt:Locator="Match(name)">
      <sink value="tcp://prodserver/sink" xdt:Transform="Replace" />
      </appender>
      </configuration>
      
      to this:
      <?xml version="1.0" encoding="utf-8" ?>
      <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
      <log4net>
      <appender name="Bob" xdt:Locator="Match(name)">
      <sink value="tcp://prodserver/sink" xdt:Transform="Replace" />
      </appender>
      </log4net>
      </configuration>
      
      Everything is working well now.
      
      Tom
  • TransformXml skipped due to false condition
    2 Posts | Last post February 21, 2014
    • I have a problem with log4net config files not being updated by SlowCheetah in Visual Studio 2010.  I'm using SlowCheetah 2.5.10.3.  When I look at diagnostic build output, I receive the message:
      
      Task "SlowCheetah.Xdt.TransformXml" skipped, due to false condition; (Exists('%(RelativeDir)%(Filename).$(Configuration)%(Extension)')
      and '%(Link)'!='' ) was evaluated as (Exists('Log4Net.Prod.config')
      and '' != '').
      
      I have two questions:
      
      1)  Where is SlowCheetah getting the "Prod" configuration from?  I'm using the "Release" build profile in Visual Studio 2010.
      
      2)  In the csproj file for my project, I see no references to a "<Link>" element but the log4net config file is referenced in a "<None>" element.  Clearly Slowcheetah is finding the log4net.config file to attempt the transformation but won't the fact that there is no <Link> element always prevent the transformation from happening?
      
      Thanks!
      
      Tom
    • Ok, since posting this, I answered my questions.  The above issue with the "<Link>" element isn't relevant to my problem at all.
      
      Nevermind.  :)
      
      Tom
  • 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?
      
      Thanks
      Sudeep
  • 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:
      Dev
      Test
      Acc
      Prd
      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?
      
      Thanks.
  • Problem in v2.5.10.3 ?
    1 Posts | Last post January 09, 2014
    • The SlowCheetah.Transforms.targets file that gets added seems to have an entry to v2.5.10.2 (Note .2!!)  
      
      Is this a mistake?
  • VS 2013
    1 Posts | Last post December 17, 2013
    • Is this supported in VS2013?
31 - 40 of 240 Items