Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Configuring TeamCity MSBuild and MSDeploy

I'm having issues setting up different envirnoments with MSBuild and MSDeploy.

I've setup 2 configurations on TeamCity

  1. TestConfiguration (This builds the app in Test Config and runs unit tests)
  2. StagingConfiguration (Is meant to package and deploy to our staging box for UA testing)

My TestConfiguration works fine but the StagingConfiguration doesn't deploy the package.

<MSBuild Projects="MyProject\MyProject.csproj"
         Properties="Configuration=Staging;
         DeployOnBuild=true;
         DeployTarget=Package;"/>

I've tried adding both

_PackageTempDir=\\server\c$\WebDirectory;
PackageLocation=\\server\c$\WebDirectory;

But neither seem to do anything, am i missing the point? I've not really been able to find any documentation, just the odd blog post here and there. Do I need to install something on my TeamCity server for MSDeploy to work?

My ideal scenario is:

  1. Check in to tfs
  2. Run StagingConfiguartion in TeamCity manually
  3. Code is built and deployed to \server\c$\WebDirectory
like image 512
Gilbert Liddell Avatar asked Apr 13 '11 09:04

Gilbert Liddell


1 Answers

You need to configure TeamCity "System Properties" that will be passed to MsBuild and control the MsDeploy pipeline.

It's a little tricky to get setup correctly but the ones you need to set are:

  • system.CreatePackageOnPublish=true
  • system.DeployOnBuild=true
  • system.DeployTarget=MSDeployPublish
  • system.MSDeployPublishMethod=WMSvc
  • system.DeployIISAppPath=[Default Web Site]
  • system.MSDeployServiceUrl=[yourServerDomainName]
  • system.Username=[username]
  • system.Password=[password]

I wrote a blog article with more detail here: Web Deploy (MS Deploy) from TeamCity - http://www.geekytidbits.com/web-deploy-ms-deploy-from-teamcity/

Here's what my config looks like: Screenshot of Example System Properties within Teamcity

like image 89
Brady Holt Avatar answered Nov 05 '22 18:11

Brady Holt