Deploy new orchestrations without removing application

Topics: Server Deployment
Feb 24, 2011 at 9:04 AM
Edited Feb 24, 2011 at 9:06 AM


I m working with BizTalk Deployment Framework for one month and I have a deployment question :

When I deploy, is it possible for not removing existing application before the deployment action ?

My problem is : I have added a new orchestration in my global visual studio solution and "Production service" refused to have a "stop service" for the others orchestrations.

The only solution I see is to put my new orchestration in another application but if I do that I will have too many applications for each delivery...

Thanks for you help


Feb 25, 2011 at 8:29 PM


So you have one BizTalk application with multiple orchestrations, and these orchestrations are packaged into one assembly or into multiple assemblies?  The problem is that you are not allowed to stop the entire application, update it and restart it?

If that is the correct situation, I wonder if you would have any issues with caching or message routing to the new version of the orchestration.  Are you planning to bump the version number on the assembly or assemblies as well to make BizTalk see it as a distinct new version?


Feb 28, 2011 at 2:24 PM


Thanks for your post,

Those orchrestrations are packaged in multiple assemblies and I don't planned to bump the version number.

I have found one solution to my problem. I don't know if it's the best solution but it works. I explain :

I have modified the deployments file : BizTalkDeploymentFramework.targets in the folder : C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk\5.0

I have added a new XML configuration tag like this :

<!-- Specific flag -->
    <SkipRemoveApp Condition="'$(SkipRemoveApp)' == ''">false</SkipRemoveApp> 

I set this flag to true in my .btdfproj file.

In the BizTalkDeploymentFramework.targets file I have used this flag to skip the application remove step during undeployment process.

Every where in the file where it deploy a biztalk item (Schemas, Transform, Orch etc...) I have conditionned the classic BTSTask.exe command line with my flag to do -Overwrite or not.

My only principal problem was : If I don't remove the application, I cannot redeploy the same orchestration because it was not unenlisted. I have solved this problem with a new command line using "StopOrch.vbs" to stop and unenlist each orchestrations decribe in my .btdfproj file.

I have posted my file on my blog. See the following link to download the modified file :

I m sorry but my blog is in french. You can download my file and do a "windiff" with your file to see de diffrences. Maybe you can tell me what do you think about my method ?



Mar 22, 2011 at 5:14 AM


Thanks for the update.  I see what you did and it's probably OK, but will always be a pain when you install new releases of the Deployment Framework.  It seems that it may be simpler to have the -Overwrite flag in place all the time, and then you would not need to make all of those BTSTask.exe commands conditional.  I cannot immediately think of a downside to that.  If it works OK that way, then it would at least minimize the amount of changes.

A long time ago, before BizTalk applications existed, we used to control orchestrations and ports individually.  Apps are easier, but do reduce the ability to control individual steps in the deployment process.  Maybe in a future version we will end up putting those individual steps back in again.