I am modifying a copied build process template BuildAndDeploy.xaml
to include a InvokeProcess activity. This activity would run the _PublishedWebsites\ProjectName_Package\ProjectName.deploy.cmd
to deploy the web application to the QA server. Eventually I would run ProjectName.deploy.cmd
multiple times for each of the servers in the web farm. Everything works fine manually but through the TFS build agent, the _PublishedWebsites
folder and its contents are created too late. My first attempt was to add the InvokeProcess
activity inside "Compile the Project
" sequence as last step. Then I moved it after "If Not DisableTests
". To troubleshoot I am running a dir /s command in the BuildDetail.DropLocation
folder and it always outputs only logs folder and nothing else. I have also verified manually that the compiled output and the _PublishedWebsites
folder and its contents are created after the point where I would like to run the ProjectName.deploy.cmd
file. What location in the workflow would be ideal and guaranteed to have the ProjectName.deploy.cmd
file and other related packaged content ready?
I am following approach given in accepted answer in TFS2010 Build Definition to Deploy to multiple servers.
The build drop location is a UNC path, if that matters. The parameters used in the MSBuild are /p:DeployOnBuild=True
. The TFS Build creates the package properly and I can run the ProjectName.deploy.cmd
and the web deploy runs smoothly.