Avatar of To Ka
To Ka
 asked on

Transforming web.config before publishing to server with WebDeploy (TransformXml)

I have a WebAPI / EntityFramework project that I am working on and I publish updates to the server quite often (using WebDeploy).

My setup uses custom defaultConnectionFactory in order to create connection string based on certain criteria.

Every time I push an update to sever, an new connection string is added to my web.config file:
name: MyProject.Lib.Data.DataContext
value: MyProject.Lib.Data.DataContext_ConnectionString

I found a solution (http://stackoverflow.com/a/3622821/573208) that looks like exactly what I am looking for but I could not make it work.

I added this line at the end of my project file
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.Tasks.dll" />

Open in new window

right before </Project> closing tag. But could not go any more further.

The article states that I need to
place <TransformXml Source="web.config" Transform="web.release.config" Destination="$(DeployPath)\web.config" /> in the right item group
and then
make sure that target gets fired prior to the call to Package

That's where I got confused:
- Where should I place the <TransformXml ... /> section and how to I find out which is the "the right ItemGroup"
- How do I "make sure that target gets fired prior to the call to Package"

Any help would be much appreciated
.NET ProgrammingC#Microsoft DevelopmentASP.NET

Avatar of undefined
Last Comment
Eddie Shipman

8/22/2022 - Mon
Eddie Shipman

View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
Experts Exchange is like having an extremely knowledgeable team sitting and waiting for your call. Couldn't do my job half as well as I do without it!
James Murphy