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

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

by Jürgen Bayer | September 09 2016

Works perfectly and is even better than the ASP.NET transformation since it transforms even when running the project in Visual Studio.

by Mike DePouw | May 27 2016

For whatever reason, there's a new project for VS 2015. https://visualstudiogallery.msdn.microsoft.com/05bb50e3-c971-4613-9379-acae2cfe6f9e

by Ondřej | May 11 2016

Looks extremely useful and exactly what I need, but it does not work in Visual Studio 2015 Community Update 2.

by nkomp18 | May 11 2016

I am extremely frustrated with SlowCheetah.
I tried to use it in many occasions and it never quite worked for me.
The main problem is that I have multiple configurations like:
QA, UAT, PRD, Live, Local, DEV, etc and I want to be able to define those myself.
Attempting to change the configuration manager of the solution causes an array of problems that need hours to be resolved. Notably, the underlying projects will still not generate the new build configs, which leads to build problems, DLL issues and finally I can't get rid of Debug and Release configurations of which I don't want any configs to be generated.
Also if I add my configurations to the configuration manager,
How hard is it to let the user define these in a simple XML file?
Until this very simple feature is added, SlowCheetah is of no use to me and I assume many other developers

by EvangelistaLion | May 10 2016

When work in VS 2015 please ?? Thank you

by Bhuard | May 06 2016

Used it for SQL unit test app.config.

Thanks.

by Dave_MEC | January 19 2016

This is an extension I can't live without. We use this in everyone of our applications. It should be added as part of Visual Studio going forward.

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 https://visualstudiogallery.msdn.microsoft.com/05bb50e3-c971-4613-9379-acae2cfe6f9e 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

1 - 20 of 144 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
  • 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?
  • Missing reference
    2 Posts | Last post December 03, 2013
    • Hello
      
      I just downloaded the project from github and I'm trying to get it to compile. I've installed Visual Studio SDK and the NuGet packages but I get an error on the reference Microsoft.VisualStudio.ComponentModelHost (version 10.0.0.0). I guess it's because I use VS2012 (and thus VS2012 SDK, version 11.0.0.0). Are you still using VS2010? Is there a way around it so I can still use VS2012 or do I need to go back to VS2010?
      
      I've been using SlowCheetah for quite some time so I suppose I should help out with the development ;)
      
      /Chris
    • Finally got it to work. Had to do the following:
      
      Install VS2010
      Install VS2010 SDK
      Install VS2010 SP1
      Install VS2010 SDK SP1
      Install VS2012
      Install VS2012 Update 4
      Install VS2012 SDK
      
      Open the solution and download the missing Nuget packages.
      
      And you're all set!
      
      /Chris
      
  • Jenkins and Automatic Package Restore
    7 Posts | Last post November 26, 2013
    • The Jenkins service is running under the Local System account. Can it be that Automatic Package Restore is not correctly installing the SlowCheetah files in the AppData folder? The build is looking for them there, but can't find them:
      
      Project "C:\Tools\Jenkins\jobs\Test1\workspace\Build.msbuild" on node 1 (default targets).
      RestorePackages:
        "C:\Tools\Jenkins\jobs\Test1\workspace\.nuget\NuGet.exe" restore "C:\Tools\Jenkins\jobs\Test1\workspace\TestMain.sln"
      [..]
        Installing 'SlowCheetah 2.5.10.3'.
        Successfully installed 'SlowCheetah 2.5.10.3'.
      [...]
      "C:\Tools\Jenkins\jobs\Test1\workspace\Applications\TestMvc\TestMvc.csproj" (default target) (11) ->
      (TransformAllFiles target) -> 
        C:\Tools\Jenkins\jobs\Test1\workspace\Applications\TestMvc\Properties\SlowCheetah\SlowCheetah.Transforms.targets(150,5): error MSB4062: The "SlowCheetah.Xdt.TransformXml" task could not be loaded from the assembly C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\MSBuild\SlowCheetah\v2.5.10.2\SlowCheetah.Xdt.dll. Could not load file or assembly 'file:///C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\MSBuild\SlowCheetah\v2.5.10.2\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. [C:\Tools\Jenkins\jobs\Test1\workspace\Applications\TestMvc\TestMvc.csproj]
      
      I checked with explorer and there is no AppData folder available under the Local System account.
      
      Regards,
      Marcel
    • PS: I'm using SlowCheetah v2.5.10.3 and this is my build script:
      
      <?xml version="1.0" encoding="utf-8"?>
      <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
          <PropertyGroup>
              <OutDir>$(MSBuildThisFileDirectory)_Output</OutDir>
              <Configuration>Release</Configuration>
              <ProjectProperties>
                  OutDir=$(OutDir);
                  Configuration=$(Configuration);
              </ProjectProperties>
          </PropertyGroup>
      
          <ItemGroup>
              <Solution Include="$(MSBuildThisFileDirectory)*.sln" />
          </ItemGroup>
      
          <Target Name="RestorePackages">
              <Exec Command="&quot;$(MSBuildThisFileDirectory).nuget\NuGet.exe&quot; restore &quot;%(Solution.Identity)&quot;" />
          </Target>
      
          <Target Name="Clean">
              <MSBuild Targets="Clean"
                       Projects="@(Solution)"
                       Properties="$(ProjectProperties)" />
          </Target>
      
          <Target Name="Build" DependsOnTargets="RestorePackages">
              <MSBuild Targets="Build"
                       Projects="@(Solution)"
                       Properties="$(ProjectProperties)" />
          </Target>
      
          <Target Name="Rebuild" DependsOnTargets="RestorePackages">
              <MSBuild Targets="Rebuild"
                       Projects="@(Solution)"
                       Properties="$(ProjectProperties)" />
          </Target>
      </Project>
    • Sorry, I meant that there is no MSBuild folder under
      C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft
    • I've installed the version 2.5.10 and it doesn't work anymore. Please fix or let me download the 2.5.9.1 version.
      
      Error	9	The "SlowCheetah.Xdt.TransformXml" task was not found. Check the following: 1.) The name of the task in the project file is the same as the name of the task class. 2.) The task class is "public" and implements the Microsoft.Build.Framework.ITask interface. 3.) The task is correctly declared with <UsingTask> in the project file, or in the *.tasks files located in the "c:\windows\Microsoft.NET\Framework\v4.0.30319" directory.	
      
    • Error	42	The "SlowCheetah.Xdt.TransformXml" task could not be loaded from the assembly C:\Users\MYUSER\AppData\Local\Microsoft\MSBuild\SlowCheetah\v2.5.10\SlowCheetah.Xdt.dll. Could not load file or assembly 'file:///C:\Users\MYUSER\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.	
      
    • Just some extra info... I found the following folder (it's a x64 system):
      C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Microsoft\MSBuild\SlowCheetah\v2.5.10.2
      But it has no content inside :-(
    • Just noticed: version number of the package (v2.5.10.3) does not match the version number in the installed/searched path (v2.5.10.2). Don't know if that can cause this problem...
51 - 60 of 258 Items