Need to do Unattended/Silent Deployments

Topics: Bindings File, Settings Management and SSO, Server Deployment
Mar 28, 2012 at 3:51 PM

I need to do unattended/silent deployments.  I have described what I am trying to accomplish in an use case form below. Can someone tell me how BTDF can auto detect the current environment in step 4b? I don't want to capture the current environment using SetEnvUI/Wizard because I want the deployment to be unattended.  Is there something out of the box that will accomplish this? For example, creating a real environment variable on each environment that BTDF evaluates at runtime? I understand that BTDF can be extended to support my scenario but that involves me maintaining a version of the BTDF and also pushing out the customized version to all developer VMs.

  1. Build manager kicks off deployment selecting the environment (test, qa, prod) within build server (TFS, CCNet, etc) to deploy say a BizTalk application named WOProcess.
  2. Build server uses the WOProcess.btdfproj to create an MSI package
  3. Build server copies the created MSI to the selected target environment (test, qa, prod)
  4. Build server remotely executes BTDF's provided server deploy features to begin deployment. 

a) BTDF automatically generates settings files for each environment.

b) BTDF uses uses the current environment's specific settings file to generate new bindings

c) BTDF imports the newly generated environment specific binding

5. Build server reports successful status of the deployment in dashboard (TFS build agent, CCNet tray, etc)

Mar 29, 2012 at 4:27 AM

This topic has been covered a number of times on other discussion topics here.

Here are two existing threads: (focus on 2011 posts)

It is relatively straightforward to do as you described.  After the build copies the MSI to the remote server, it must install the MSI, then execute the deployment process via MSBuild.exe.  Most people use MS SysInternals PsExec.exe.  You need to provide the path to the particular environment settings file in an ENV_SETTINGS environment variable or by passing it as a property on the MSBuild command line.  See Framework\ServerDeploy.bat in the Deployment Framework install folder for other parameters.