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

(103) Review
Visual Studio
2013, 2012, 2010
Download (135,544)
10/20/2013
2.5.10
View
E-mail Twitter del.icio.us Digg Facebook
Add to favorites
Description
Reviews (103)
Q and A (224)
Sign in to write a review
Sort by:

by CloudKarthik | Tue 8:54 AM

SlowCheetah doesn't work with Windows azure Web/worker Role projects.

by maskey | April 17 2014

by Mathias Colpaert | April 01 2014

SlowCheetah might be a bit buggy to set up, but once it works its great!

by Micky D | March 28 2014

Conflicts with ReSharper 8.1. Had to Suspend and Resume Resharper because I could not edit any file after applying a template

by Craig Brett (JP) | March 25 2014

I spent an afternoon trying to get this going for a team project. After a fair while thrashing with the already-mentioned "The SlowCheetah.Xdt.TransformXml" task could not be loaded from the assembly" problem, I eventually solved it by deleting the %localappdata%\Microsoft\MsBuild\Slowcheetah folder and it semed to resolve itself on my local machine and I was allowed to build and run stuff. I then deployed this to my colleagues who didn't have the plugin, under the impression that the NuGet package would make everything alright. No joy, regardless of what I tried. I'm now having to see if I can hand-roll a solution for changing config settings for people. Gets 2 stars because I like the idea and it kind of worked on my machine.

by Daniel Castenholz | February 07 2014

Nice integration with VS. Makes a chore much more manageable.

by Spesimensen | January 30 2014

Excelent tool! Thank you very much.

by Leonidas1 | December 06 2013

by AranV | November 27 2013

by 2Toad | November 23 2013

An invaluable addition to Visual Studio! Totally beats editing project files by hand. Well done!

by schleeke | November 11 2013

by Eric A. Duesing | November 01 2013

by Christoffer Johnsson | November 01 2013

Very nice tool, keep up the good work.

FYI to all people that get's build errors and use Ncrunch. You must include the package in Ncrunch, else you will get build errors.

http://tech.pro/blog/1586/making-ncrunch-build-projects-that-use-slowcheetah

Version 2.5.10.1 works well with ncrunch, version 2.5.10.2 and 2.5.10.3 doesn't.

by ankgupta067 | November 01 2013

facing error -
Error 1 The "SlowCheetah.Xdt.TransformXml" task could not be loaded from the assembly C:\Users\SESA254846\AppData\Local\Microsoft\MSBuild\SlowCheetah\v2.5.10\SlowCheetah.Xdt.dll. Could not load file or assembly 'file:///C:\Users\SESA254846\AppData\Local\Microsoft\MSBuild\SlowCheetah\v2.5.10\SlowCheetah.Xdt.dll' or one of its dependencies. The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask. ConsoleApplication2

by WorkAByte | October 22 2013

amazing, cant believe I haven't found this sooner!
thanks for the simply awesome plug in

by MToons | October 08 2013

Excellent work -- so far only one major problem with web applications (solved here: http://stackoverflow.com/questions/16225304/using-slowcheetah-config-transforms-on-web-config-in-a-3-5-web-forms-app)

by e.sabbadin | September 19 2013

It works in vsnet 2012, but NOT on the TFS build server. I did not installed the plugin on the built server
I expected that the plugin was required only in the configuration phase, not to trigger the magic
, that is that it used the native xmltrasform features .. isn0t it the case ?

Sayed-Ibrahim-Hashimi September 21 2013
| Edit |
Delete

Hi e.sabbadin, when you install SlowCheetah into a project there is a message in the package manager console regarding build server support. Because of the way NuGet package restore is implemented there is some additional steps that need to be taken. You can read more info on how to enable that at http://sedodream.com/2012/12/24/SlowCheetahBuildServerSupportUpdated.aspx.

by Ed Schimmel | September 13 2013

It really annoys me that after an upgrade Slow Cheetah suddenly stopped working. In the first instance I was really pleased with this tool, but I can not use it when it is this buggy. It is a shame that there are no other tools doing the transformations, as far as I know.

Sayed-Ibrahim-Hashimi September 14 2013
| Edit |
Delete

Did you file a question in Q&A regarding your issue?

FYI please don't expect each release to be bug free. This is a one man project so I rely on the community to help in reporting issues when they arise.

by Mohammad Azis Fatoni | September 13 2013

by Pbsharper | September 06 2013

Highly recommended!
Used it for polyglot (f# c#) project. Worked without a hitch!

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


  • 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 20, 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 20, 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?
  • Transformed files from class library project not copied to the referenced projects
    1 Posts | Last post December 18, 2013
    • Scenario:
      
      I have a class library project with custom .config files. Build Action for these config files are set to 'Content' and 'Copy Always'. This library project is then referenced in at least 4-5 console applications within the same solution. When the solution is built the class library's assembly and the custom config files are copied on to the the referenced projects bin folder.
      
      What I am trying to do:
      
      Use SlowCheetah to transform custom config files
      
      Problem:
      
      Though SlowCheetah transforms the config files within the class library project it doesn't copy the transformed file into the referenced projects. i.e it always copies the source/original file.
      
      Found couple of other threads but none of them were solutions based on SlowCheetah, any suggestions would be helpful. Note that I am using Install Shield Limited Edition, so the solution needs to work for .msi/setup files. Also, I dont want to link files and apply transform on the linked files as then I would have to do the same transform on all referenced projects.
      
      Thanks
  • VS 2013
    1 Posts | Last post December 17, 2013
    • Is this supported in VS2013?
11 - 20 of 224 Items