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
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.
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.
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.
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.
Is there some way to preserve the format of the original config file?
We've got the VS option "Align attributes each on separate line" for XML files
But after running a web config transform, the replaced section goes back to a single line
I have a problem with log4net config files not being updated by SlowCheetah in Visual Studio 2010. I'm using SlowCheetah 184.108.40.206. 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!