Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save valbers/2635267ef83cf976c7fc4b4beb516087 to your computer and use it in GitHub Desktop.
Save valbers/2635267ef83cf976c7fc4b4beb516087 to your computer and use it in GitHub Desktop.
How to enable transformations on build with Visual Studio

#Transform web.config on build

  1. Unload the project
  2. Edit .csproj
  3. Append figure 1 to the end of the file just before </Project>; v12.0 might change depending on your version of Visual Studio
  4. Save .csproj and reload
  5. Open configuration manager
  6. Add a new Configuration Name: Base. Copy settings from: Release
  7. Copy the contents of your web.config
  8. Right click Web.Config > Add Config Transformation
  9. Overwrite the web.base.config with the contents of your clipboard
  10. From now on Web.Config will be overwritten using transformations.

For settings that apply to all cofigurations use Base
For settings that apply only to Release use Release
For settings that apply only to Debug use Debug

A helpful note to add to your projects [base|debug|release].config

<!-- WEB CONFIG IN THIS PROJECT SHOULD ONLY BE MODIFIED BY -->
<!-- web.base.config -->
<!-- web.debug.config -->
<!-- web.release.config -->
<!-- CHANGES MADE DIRECTLY TO THE web.config WILL BE OVERWRITTEN -->

####Figure 1 Copy and paste:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets" />
<Target Name="BeforeBuild">
    <TransformXml Source="Web.Base.config" Transform="Web.$(Configuration).config" Destination="Web.config" />
</Target>     
@whindes
Copy link

whindes commented Jul 13, 2018

Thank you for this update. Does this also work for dotnet core projects?

@ravnan
Copy link

ravnan commented Aug 1, 2019

I did all the above steps but my final output in the web.config is always Web.Base.config while doing continuous delivery using TFS 2018.
Please help me in this regard. I should be able to transform the web.config file which i have selected in the configuration in Visual studio IDE. The final output should be the selected web.config file.

@valbers
Copy link
Author

valbers commented Aug 3, 2019

Hey ravnan and whindes. Sorry for the late answer. Please place your question in the main gist: https://gist.github.com/EdCharbeneau/9135216 . I just made a small orthography correction to it :), that's why I forked the gist. I'm sorry for not being able to help you. Good luck!

@davit-Margvelashvili
Copy link

Doesn't work in VS 2019 output stays what's in Web.config file

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment