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 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.
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
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)
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 ?
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.
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.
I'm sure there's a way to do this if I buckle down and determine how this works, but my object is to do the transform without making the App.Debug.config (or other XSLT) part of the project, otherwise it will remain permanently checked out by all developers and in their TFS exclude list. Right now it doesn't work unless it is part of the project.
We do this for web services. We have a Web.Debug.config.template file checked into the project, which each developer can copy to make their own Web.Debug.config file which is not checked in and not part of the project. Then using the technique I found on http://stackoverflow.com/questions/2932059/managing-web-config-for-teams-in-vs2010-tfs
we create a Web.Base.config file which no one checks out unless necessary it creates a Web.config file on each build.
This should be easier with App.Config since it isn't modified, and is transformed to the bin directory.
Question: Has anyone done this with SlowCheetah transforms and is willing to share the technique? I assume it is possible with a custom targets file and modification of the csproj file, but unfortunately package restoration might wipe out the modifications.
I'm using the SlowCheetah 2.5.8 NuGet package for config transforms and it's automatically transforming XML character references as follows
<param name="Header" value=" [HEADER]"/>
<param name="Header" value="
How do I keep the original XML character references intact?
We are trying to use SlowCheetah with a Wix 3.7 installer project. When we try to use the Wix harvesting feature, the Wix build fails with the Heat error shown below.
We are new to SlowCheetah and also to Wix, so please accept our apologies if there is something obvious here that we are missing. Thanks in advance for any ideas and/or suggestions!
Here is the compile error received when we try to build the solution.
Build error during harvesting: C:\Users\UserName\AppData\Local\Microsoft\MSBuild\SlowCheetah\v1\SlowCheetah.Transforms.targets(91,5): Could not open Transform file: Could not find file 'C:\Users\UserName\Desktop\Source\Applications\AppName\Branches\184.108.40.206\NET\MonikerInstaller\app.Debug.config'.
Thanks for a great product, although it seems to be a bug in the latest version. When I compile I get an error MSB3030 that is telling me that my bin/debug/*.config could not be found.
If I uninstall SlowCheetah and manually removes the content in C:\Users\UserName\AppData\Local\Microsoft\MSBuild\SlowCheetah it compiles as expected.
Anyways thanks again
I too am getting this behavior. My project builds just fine right up to the point that I add transforms. As soon as those App.<build level>.config files are created, my app builds halt having only created the .vshost.* files in the bin folder. Delete the transform files and the build can resume.
VS2010, SlowCheetah 220.127.116.11
More complicated than I first thought. Messing with a new project, the tool works for me. But I can't seem to get my existing application to get past the errors mentioned above.
I found the project in GitHub and I'm submitting an issue.
I'm using VS2012 Update 3 and see the problem with two WinForms apps. There isn't anything special about these two apps that I can see. Just run of the mill WinForms. I do have very simple usage of app.config transforms in both of these, literally one appsetting change in release mode and none in debug.
Microsoft Visual Studio Ultimate 2012
Version 11.0.60610.01 Update 3
Microsoft .NET Framework
Installed Version: Ultimate
Doesn't seem to matter what project type. Doesn't work on winform or wpf projects.
I was able to get it to work for specific projects by adding the 2.5.5 version of the nuget package to my project. Prior to this version that broke things, I never used the nuget package and just used the vs extension.
Sayed, my two apps have too many dependencies and hooks into the larger solution to offer as a repro case. So I went and created a new WinForms app and cannot cause the problem, even with exactly the same config files and transforms. I'm not sure what to make of this. Clearly something is wrong in the two projects I have. If it helps any I am willing to offer you the project file itself, though it won't build of course due to the lack of dependencies.
Is there a limit on default number of web.config transforms that can be added. Beyond 11 transforms, I don't get the option to "Add Config Transforms" when I right click on web.config. I then have to create a transform manually and associate to the web.config.
Another thing I noticed is that though I have more than 11 build configs defined, only 11 web.config transforms get added. Any further transforms have to be added manually. Is there a way I can change this setting?
I have been trying to get this to work with a web application called EPiServer CMS. The Web.config loads configuration sections from a number of files (configSource=). for example: Appsettings.config, episerver.config and episerverframework.config.
I have successfully got this working for all my files on "build" so that all the files build according to the correct transform file. Thanks to your page here: http://sedodream.com/CommentView.aspx?guid=68b7e248-b9f5-4d07-bdfe-eb037bcf2cbb Wonderful, thank you :)
But, the issue I am having is on publish. When I choose to publish my website only the web.config file and appsettings.config are delivered to the output folder (and correctly transformed). There are two other files in the project (EPiServerLog.config and FileSummary.config) which I do not transform and both of these files are also copied.
Can you suggest any reason why some of the files would not be copying? (episerver.config and episerverframework.config do not copy). It doesn't matter what I set the Build Action or the Copy to Output Directory to.
Thanks in advance, both for any light you can shed on the issue and for an amazing extension =)
Just a quick note: The files before I removed them all appeared under web.config in visual studio (I mean there was a + button and the files would be grouped under) - now they are not grouped there it works fine. Hope this helps anyone else :)
I'm using xdt:Locator="Condition(ID/text()='1')" to select <data> from:
Sometimes it works and smonetimes not, can you tell me what can I do wrong that it isnt working?
Just tried adding this to a VS2010 web application project and everything seemed to be ok but when I right click the web.config file I just see the stock Add Config Transform. I can see it added to packages.config etc
Is there something else I need to do to enable it?