I have a build definition in TFS that compile my code, then using a post build event, I create a Setup.exe file using Installshield.
Using Release Management I am able to deploy the installer to a machine and start the installation process using the tool RunCommandLine, I add the required parameters to the setup.exe so it will install the application silently (using an answer file to avoid user interaction). This process works smoothly!!!
I want to go far, so I tried to launch a release from a gated check-in....change the build template, install the release management client in the build agent, configure my build definition......I performed a small change in my code, then a check-in.....it compiles in the server, and start the release process: deploy the installer and start the installation process using the tool RunCommandLine, I add the required parameters to the setup.exe so it will install the application silently.....but I got a timeout so the release was rejected. I check the machine and found that the setup.exe was still running 0% CPU usage.....very strange.
Checking the build log I found that the command line used by msbuild to launch the release process is something like this:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Release Management\Client\bin\ReleaseManagementBuild.exe -tfs "http://tfs:8080/tfs/Mycollection" -tp "Project1" -bd "Mybuild" -bn "Mybuild_20150623_15.1.0.9" -ts "QA" -nologo
I ran it, and the behavior was the same: the installer got stuck...0% CPU Usage.....Release rejected by timeout.....
So...I open Release Management Client look for the recently created release, and click in the option "Retry failed deployment"....It works!!!! the installer install!!! it does not hangs!!!
I was able to reproduce this behavior several times:
Release launched from Release Management Console......Works
Release launched from ReleaseManagementBuild.exe .......Does not works (Setup.exe hangs)
Any suggestion??