To do a silent install/automate the installation of BizTalk Application using BizTalk Deployment Framework you can use the Powershell script below:
<# .SYNOPSIS Automates BizTalk Application deployment using BTDF 5.0 .DESCRIPTION Automates BizTalk Application deployment using BTDF 5.0 Steps: 1. It installs the MSI on the specified application path 2. Calls EnvironmentSettingsExporter to generate the settings xml 3. Updates Environment Variables 4. Executes the MSBuild with parameters .NOTES File Name: Install-BizTalkApplication.ps1 Author: Randy Aldrich Paulo Prerequisite: Powershell 2.0, BizTalk Deployment Framework 5.0, BizTalk Server 2010 .PARAMETER MsiFile MSI File generated using BizTalk Deployment Framework 5.0 .PARAMETER ApplicationInstallPath Location wherein the resource files will be copied, it will be use by the BTDF during the deployment .PARAMETER Environment Name of environment (Local,Dev,Test,Prod) to be used, this value will be passed to EnvironmentSettingsExporter and willbe used to construct the environment variable: ENV_SETTINGS .EXAMPLE Install-BizTalkApplication -MsiFile "E:\Installer\Application 1\Application1.msi" -ApplicationInstallPath "E:\Program Files\Application 1" -Environment DEV .EXAMPLE Install-BizTalkApplication -msi "E:\Installer\Application 1\Application1.msi" -path "E:\Program Files\Application 1" -env TEST .EXAMPLE Install-BizTalkApplication "E:\Installer\Application 1\Application1.msi" "E:\Program Files\Application 1" TEST .EXAMPLE Install-BizTalkApplication "E:\Installer\Application 1\Application1.msi" "E:\Program Files\Application 1" TEST -SkipUndeploy $false #> function Install-BizTalkApplication { param( [Parameter(Position=0,Mandatory=$true,HelpMessage="Msi file should be existing")] [ValidateScript({Test-Path $_})] [Alias("msi")] [string]$MsiFile, [Parameter(Position=1,HelpMessage="Path wherein the resource file will be installed")] [Alias("path")] [string]$ApplicationInstallPath, [Parameter(Position=2,Mandatory=$true,HelpMessage="Only valid parameters are Local,Dev,Test and Prod")] [Alias("env")] [ValidateSet("Local","Dev","Prod","Test")] [string]$Environment, [bool]$BTDeployMgmtDB=$true, [bool]$SkipUndeploy=$true ) $ErrorActionPreference="Stop" #Step 1 : Run MSI $script = { $args = "-i $MsiFile INSTALLDIR=`"$ApplicationInstallPath`" /qn /norestart" Write-Host " Installing MSI File.." -ForegroundColor Cyan Write-Host " MSI File: $MsiFile" -ForegroundColor DarkGray Write-Host " Args: $args" -ForegroundColor DarkGray $exitCode = (Start-Process -FilePath "msiexec.exe" -ArgumentList $args -Wait -Passthru).ExitCode Write-Host " Exit Code: $exitCode" if($exitCode -ne 0) { Write-Error "Installing $MsiFile failed!, Exit Code: $exitCode" } Write-Host " Installed MSI success.." -ForegroundColor Green Write-Host "" } Invoke-Command -scriptblock $script #Step 2 : Run MSBuild & Deploy $script= { <# Start Step 2.2 Run EnvironmentSettingsExporter, this one generates the xml file (Exported_DevSettings.xml, Exported_LocalSettings.xml etc..) #> $args = "`"" + (Join-Path $ApplicationInstallPath "Deployment\EnvironmentSettings\SettingsFileGenerator.xml") + "`"" + " Deployment\EnvironmentSettings" $exePath = ("`"" + (Join-Path $ApplicationInstallPath "\Deployment\Framework\DeployTools\EnvironmentSettingsExporter.exe") + "`"") Write-Host " Generating Environment Settings File.." -ForegroundColor Cyan Write-Host " Location: $exePath" -ForegroundColor DarkGray Write-Host " Args: $args" -ForegroundColor DarkGray $exitCode = (Start-Process -FilePath $exePath -ArgumentList $args -Wait -PassThru).ExitCode Write-Host " Exit Code: $exitCode" if($exitCode -ne 0) { Write-Error " Generating Environment Settings File failed!, Exit Code: $exitCode" } Write-Host " Generated Environment Settings File. " -ForegroundColor Green Write-Host "" <# End Step 2.2 Run EnvironmentSettingsExporter, this one generates the xml file (Exported_DevSettings.xml, Exported_LocalSettings.xml etc..)#> <# Start Step 2.3 Set the Environment Variables ENV_SETTINGS and BT_DEPLOY_MGMT_DB #> $settingsFile = "Deployment\EnvironmentSettings\Exported_{0}Settings.xml" -f $Environment $EnvSettings =Join-Path $ApplicationInstallPath $settingsFile Write-Host " Setting Environment Variables" -ForegroundColor Cyan Write-Host " ENV_SETTINGS = $EnvSettings" -ForegroundColor DarkGray; Set-Item Env:\ENV_SETTINGS -Value $EnvSettings Write-Host " BT_DEPLOY_MGMT_DB = $BTDeployMgmtDB" -ForegroundColor DarkGray; Set-Item Env:\BT_DEPLOY_MGMT_DB -Value $BTDeployMgmtDB Write-Host " Setted Environment Variables" -ForegroundColor Green Write-Host "" <# End Step 2.3 Set the Environment Variables ENV_SETTINGS and BT_DEPLOY_MGMT_DB #> <# Start Step 2.4 Execute MS Build with parameters #> #Get .NET Version $dotNetVersion = gci 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' | sort pschildname -des | select -fi 1 -exp pschildname if($dotNetVersion = "v4.0") { $dotNetVersion = "v4.0.30319" } #Include other info if .NET 4.0 if (Test-Path ( Join-Path $env:windir "Microsoft.NET\Framework\$dotNetVersion\MSBuild.exe" )) { $BTDFMSBuildPath = Join-Path $env:windir "Microsoft.NET\Framework\$dotNetVersion\MSBuild.exe" Write-Host " Using MSBuild $dotNetVersion" -ForegroundColor DarkGray } else { Write-Error " MSBuild not found." } #Assign MS Build Params $parms="DeployBizTalkMgmtDB=$BTDeployMgmtDB;Configuration=Server;SkipUndeploy=$SkipUndeploy" $logger="FileLogger,Microsoft.Build.Engine;logfile=`"" + ( Join-Path $ApplicationInstallPath "DeployResults\DeployResults.txt" ) + "`"" $btdfFile="`"" + (Join-Path $ApplicationInstallPath "Deployment\Deployment.btdfproj") + "`"" $args = "/p:{1} /l:{2} {0}" -f $btdfFile,$parms,$logger Write-Host " Executing MSBuild from: $BTDFMSBuildPath" -ForegroundColor Cyan Write-Host " ArgList: $args" -ForegroundColor DarkGray #Check MSBuild Return Code $exitCode = (Start-Process -FilePath $BTDFMSBuildPath -ArgumentList $args -Wait -Passthru).ExitCode Write-Host " Exit Code: $exitCode" Write-Host "" if($exitCode -ne 0) { Write-Error " Error while calling MSBuild, Exit Code: $exitCode" } #Copy Log File Write-Host " Copying Log file." $args = "Deployment\Framework\CopyDeployResults.msbuild /nologo" Start-Process -FilePath $BTDFMSBuildPath -ArgumentList $args <# End Step 2.4 Execute MS Build with parameters #> } Write-Host " Running MS Build and deploying.." -ForegroundColor Cyan Invoke-Command -scriptblock $script Write-Host " Deployed application" -ForegroundColor Green }
Download Script (MSWord): Install-BizTalkApplication – Powershell Script