6

I am setting up a Jenkins server to build .NET projects. We our using the visual studio Web.config transformations to transform our config files for each environment (Dev1, Dev2, QA, and Release). I am using the following command line arguments in my MSBuild command, and it is working with the transformations:

/p:Configuration=Dev1;DeployOnBuild=true;DeployTarget=Package;_PackageTempDir=..\..\deploy\current\Dev1

The problem is that I have to rebuild the solution for each environment, and some of the solutions are quite large and take a some time to build. I would like to only build the solution once, and then trigger just the transformations for the other environments. Does anyone know of a way to do this through an MSBuild batch command, or another way to get this done in Jenkins?

Cœur
  • 37,241
  • 25
  • 195
  • 267
Mike Pennington
  • 676
  • 10
  • 26
  • Seems to me that you should figure out how to do this without using Jenkins (i.e. from the command-line) and once you have only then incorporate the solution into Jenkins. – Bernard Mar 21 '12 at 23:15
  • Agreed. That's what I'm trying to do. Jenkins is basically just executing command line commands. – Mike Pennington Mar 22 '12 at 11:55

2 Answers2

3

I ended up using this Config Transform Tool on CodePlex. It did the trick easily by allowing us to run web.config transforms from a command line script that is easily executed by a Jenkins build step.

Mike Pennington
  • 676
  • 10
  • 26
  • Thanks. This does the job. Only thing is the end result isn't pretty :-). Not sure why this approach is not the default. Have been looking around the web for the last 30 minutes. – chosenbreed37 Jul 19 '16 at 09:24
0

As you mentioned, Jenkins just run the command. Take a look at the Task 5 of this Exercise from Microsoft. There's another approach here.

Marcos Brigante
  • 974
  • 9
  • 25