views:

22

answers:

1

I'm trying to deploy a new version of a BizTalk application that contains commun orchestrations for several applications (about 20 or so). The new version contains a new orchestration that will be used by several new applications.

When I try importing the msi for the new version I get an error saying:

"Cannot update assembly "[assembly_name]" because it is used by assemblies which are not in the set of assemblies to update. To update the assembly, remove the following assemblies: "[dependant_assembly1] [dependant_assembly2] ..."

The BizTalk server is not accessible from a developpement environment so the application must be updated using the BizTalk administration console. How do I import the updated application without having the remove and reinstall all 20 or so dependant applications?

Thanks

A: 

It sounds like you are deploying a new base application with the same version numbers as an existing, older version.

What works for us:

  • Every time you deploy a new version of your application, increment the version number (since the assemblies are GAC'ed, BTS supports side by side versioning). Any custom assemblies which are changed should also be versioned.
  • After deploying to your new Application to your local BizTalk, edit the resources to ensure that the correct (latest) versions of all referenced assemblies and bindings etc are up to date (remove old ones, add new ones).
    • Your common application will now contain both old and new versions of the assemblies. Newer versions of your 'client' applications will use the later version of your base / framework / common application.
    • Once all dependent applications have been upgraded, you can then remove the old version.

But the real solution seems to be to consider decoupling your applications more, e.g. by using messaging between the applications - this way, you can split out just the schemas as a common reference to the applications.

nonnb