1. Problem
You have a complex solution
deployed with many orchestrations and other components. You want to
deploy an update to one orchestration.
2. Solution
Deploying BizTalk solutions
using an MSI file is great for the initial deployment but is of limited
value once a solution is running in production and an update needs to be
deployed. Manual deployment give the administrator 100% control over
what is being deployed where, and chances for errors from incorrectly
created MSIs are reduced to zero.
Manual deployment can best be summed up as follows:
Unenlist
any orchestrations that will be redeployed. This can be done from the
BizTalk Administration Console. If any orchestrations have running
instances in memory, two options are available: 1) wait until these
instances have completed before doing the update, or 2) terminate these
instances (terminating instances can be done from the BizTalk Group Hub
reports and administrative functionality).
Removed
any maps and schemas that will be re-deployed. This can be done from
the BizTalk Administration Console by right-clicking the maps/schemas
(see Figure 1).
Once
all objects that will be redeployed have been removed, right-click the
BizTalk application you are applying the updates to, and select
Add→BizTalk Assemblies.
In the Add Resources dialogue box that opens, add the assemblies that you wish to redeploy, as shown in Figure 2.
Click
the "Overwrite all" check box to ensure that this overwrites the
previous version of the assemblies. This will have to be done for every
assembly in the list, so make sure to click each of them separately and
click this "Overwrite all" option.
Make
sure that the assemblies are added to the global assembly cache. This
generally means clicking the first and third check boxes in the
"Options" area of the dialogue box.
Click OK to deploy the BizTalk assemblies.
3. How It Works
Doing manual deployments
will become one of the most common techniques you use once a solution
has been successfully deployed to production. In fact, using the MSI
deployment may not even be something you want to use at any point;
manual deployments can be so much easier and less stressful, since you
have complete control over everything.
When you are developing a
project, make sure you think through the initial deployment and how
updates will be deployed. Having an intelligent path to updating your
solution prior to actual deployment is a great habit to have and one
that will ease your development and deployment tasks.