As an alternative to SlowCheetah, it's possible to handle this functionality by editing your project files manually. It's a little more cumbersome to set up, but it does mean that you have no extra DLLs required.
Open your project file in a text editor. At the bottom of the project file, just before the closing tag, include the following:
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="AfterCompile" Condition="exists('app.$(Configuration).config')">
<!-- Generate transformed app config in the intermediate directory -->
<TransformXml Source="app.config" Destination="$(IntermediateOutputPath)$(TargetFileName).config" Transform="app.$(Configuration).config" />
<!-- Force build process to use the transformed configuration file from now on. -->
<ItemGroup>
<AppConfigWithTargetPath Remove="app.config" />
<AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config">
<TargetPath>$(TargetFileName).config</TargetPath>
</AppConfigWithTargetPath>
</ItemGroup>
</Target>
Then, find in your project file the line and replace it with the following:
<ItemGroup>
<Content Include="App.config" />
<Content Include="App.Debug.config">
<DependentUpon>App.config</DependentUpon>
</Content>
<Content Include="App.Release.config">
<DependentUpon>App.config</DependentUpon>
</Content>
</ItemGroup>
You’ll need to add an extra Content Include for each configuration you add – unfortunately with this method you don’t get the straightforward “add transforms” context menu.
After that it’s a case of creating the files in your project directory, and then you’re ready to go. It’s not as slick as SlowCheetah, but it does keep your code portable.