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
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!
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".
I have a problem with log4net config files not being updated by SlowCheetah in Visual Studio 2010. I'm using SlowCheetah 126.96.36.199. 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?
I want to create transforms for each of our environments (e.g. "Dev", "QA", "Prod") and name them accordingly. Having transforms named after the build configuration (e.g. "Debug" or "Release") doesn't work for us. How can I set that up?
Sorry Michael for the intrusion but I had the same issue.
I already did what you suggested but still only Debug and Release are getting transformed. Once I use the environment specific config, the environment specific config files is just being copied instead of merging and transforming it with the main app.config.
Apologies for the delay in replying. I'm like you and use 3 different configs (DEV,UAT,PROD) i create these in the build configuration, then right click on the app.config file to create the files app.dev.config etc (I then delete the debug & release versions & build configurations) so the solution only knows about the 3 configs I use, then to build I select the config "dev" and click build solution. This works for me and they seem to get transformed ok - I'm using VS2013.
I want to add transforms to an EPiServer license file. However, for this to be maintainable I need to replace all content in License.config. When I'm adding xdt:Transform="Replace" to the root node I get the following error:
"Could not write Destination file: Cannot insert the node in the specified location."
This applies to any file except Web.config. Any thoughts on this?
Your issue is likely the idea of replacing the root node. Try to alter any available nesting nodes or attributes.
If none of that works you may need to resort to additional post-build steps (if you haven't already).
We are trying to use SlowCheetah to create an XML Transforms for a "Telerik Windows Forms Project" (this is a project type added by the Telerik plugin) and we have noticed that the transformation just won't kick on build events, the transform preview though is working fine...
I'm suspecting this has somthing to do with the custom project type, am I right? did anyone else had any experience in making slowcheetah work for Telerik projects, or any other custom-plug-in-project types for that matter? is there any chance to make it work manually?
on a side note I'll use this opportunity to thank Sayed-Ibrahim for a really great tool, and productivity saver - which we use in almost all of our projects!
I know this supports the "Publish" option for deployment of Web Applications but does it work with Web Setup Projects?
VS 2013 extension ... https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d
I need to build an MSI installer for deployment.
Hey, I need some help.
I have 7-8 XML transformations, each of them belonging to DEBUG or RELEASE 'group'. I have a BASE Debug transform and a BASE Release transform. All other transforms are based on one of these two transforms, so I have to perform many copy/paste procedures to 'derive' more specific XML Transform.
I would like to avoid copying/pasting and have some kind of 'inheritance', is it possible to achieve this with SlowCheetah or plain XSLT? I am new to XSLT, so any references to XSLT would be appreciated as well.
Hi Sayed. I have a VS solution containing several projects being worked on by several developers via TFS/GIT mode. We require XML transformations for App.config and Web.config.
I tried installing via the download link above but was told my product is not supported. Is there a different solution for VS 2013 for Web?
I've noticed the the presence of the xmlns="" attribute in the <App> element in the Windows phone WMAppManifest.xml causes the transformations to fail. When xmlns="" is removed the transformations work but the app will not build and deploy. Any ideas how I can get round this?