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 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
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!
Nor effective transformation nor transform preview works when I use your custom extended transformation attribute described at http://sedodream.com/default,date,2010-09-09.aspx which indeed works like acharm ;).
Here is the result of the build :
Build started 21/06/2012 17:21:32.
A TargetFramework profile exclusion list will be generated.
Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
Skipping target "_CopyAppConfigFile" because all output files are up-to-date with respect to the input files.
ConsoleApplication1 -> d:\rzetelny\Visual Studio 2010\Projects\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe
Transforming Source File: d:\rzetelny\Visual Studio 2010\Projects\ConsoleApplication1\App.config
Applying Transform File: App.Debug.config
d:\rzetelny\Visual Studio 2010\Projects\ConsoleApplication1\App.Debug.config(10,10): error : Could not resolve 'AttributeRegexReplace' as a type of Transform
d:\rzetelny\Visual Studio 2010\Projects\ConsoleApplication1\App.Debug.config(14,10): error : Could not resolve 'AttributeRegexReplace' as a type of Transform
Is there a way to make them work together ?
We have a shared config file across multiple projects, We use a link to the Root App.config file and another CustomConfig.config file which are used all over the place when i click on AddConfig Transforms it shows me a dialog box.
"Add as linked configs?"
Press yes then it says
"Object reference not set to an instance of an object."
Any idea on what could be happening at this point?
I was trying to add config files that were not debug or release for my other environments. I didn't see any way through VS to do this, so I decided to edit the project files. I added a PropertyGroup setting as well as an ItemGroup setting in my project file. The new config did show up under the app.config, however the actual build for my selected config did not transform the configuration or put the built files into the same named folder under bin. Suggestions? Is there a limitation to only debug and release builds? Thanks
I have build the transform replacement using the plungin on a Class Library project and it works amazingly on my box. I checked everything into SVN and everyone who got the project from SVN are unable to get the replacements to work. I have the following setup..
App.Debug.QA2.config We checked a few things.. everyone has the plung-in installed, we are all on VS2013 Pro, our project files (XMLs) are good, we are all selecting the correct environment (QA1/QA2) build configuration when we build but for everyone else the <dllname>.config file is not getting replaced. any inputs?
Via Nuget, I've installed SlowCheetah 22.214.171.124 and SlowCheetah.Tasks.Unofficial 1.0.0, and am unable to add a transform to any of my solution's projects' app.config files. When I right-click on an app.config file, I do not see "Add transform" in the context-sensitive menu that appears.
I have tried uninstalling and reinstalling SlowCheetah and SlowCheetah.Tasks.Unofficial, as well as reloading project, and restarting Visual Studio. None of these have helped.
I know that you had some issues with build servers in the past, and I've tried some of the fixes that you had suggested for those, but I'm still having a significant problem using Slow Cheetah on my build server. I am using a server running Windows Server 2008 R2 Standard. I'm using FinalBuilder and MSBuild to build my projects. Here's an overview of the problem:
In the Slow Cheetah folder (../MSBuild/SlowCheetah) there is one folder called v126.96.36.199. This folder is empty. When I commit changes to a project, during the build process two new folders are created, once called v1, and one called v2.5.10. All of the project code is copied into the v2.5.10 folder. I'm then told that the build can't find the slow cheetah.dll, and the build fails. If I go in and manually delete the two created folders (v1, v2.5.10), then run the project again (using FinalBuilder), it works and no folders are created. Any ideas on how to fix this problem? I really like this product, and it makes it much easier to work on projects; I'm just having a problem when building. Thanks in advance!
I've had plenty of the same issues myself.
Tried following instructions at http://sedodream.com/2012/12/24/SlowCheetahBuildServerSupportUpdated.aspx
to no avail...
One of my solutions IIRC was to check in the SlowCheetah packages files into source control alongside my solution, then manually editing the project-level .targets files to point at this, rather than AppData. Not ideal at all, however, as SlowCheetah updates will blow this away; rare but would be annoying to say the least.
So I tried something else: logged into the Build Server (thank goodness I have permissions) and copied the folder from my local machine (C:\Users\<me>\AppData\Local\Microsoft\MSBuild\SlowCheetah)
to the corresponding folder on the build machine, under the build user's account. Again, glad and lucky I have sufficient privileges... not really an enterprise-level scenario, especially if you have multiple/many build servers; or an environment where you don't have access to the build server.
A better solution I've considered is to write an MSBuild script, perhaps EnableSlowCheetahForTeamBuild.proj, that copies the SlowCheetah files from the downloaded workspace to the appropriate folder on the build server each time. Does require the SlowCheetah package stored in source control, but worth it given all the issues we've had. As it would run under the build user's account, it would likely have the sufficient permissions, and it would scale out seamlessly to a 1+ build machine scenario. I'll probably set this up at some point.
Frankly, given the number of downloads, I'm surprised more people aren't complaining - I'd love to hear from someone who has had luck with Sayed's 12/2012 solution, because nobody here has been able to get that working.
I opened VS2010 under Windows XP, installed the latest version using the extension manager in VS2010. Then created a new Project and added a transformation for an appsetting. The "Preview Transform" is working and displaying the replaced data, but when I run the simple console application, it does not transform the app.config.
Is the transformation not working under WinXP?