Deploy the same schema in two differents assembly version

Who never face to the problem of an existing schema to deploy but you can’t stop the application to make a real update of all your service.

When you can’t stop any application (for example because a very long correlation exist), you can avoid the uninstallation of all referenced application to update your schema.

Prerequisite : the schemas must be in a separated project

Two method exist :

  • When your schema have some field more or some distinguished field more, you have just to put your DLL (with the same assembly number) in GAC and restart hosts instance
  • If your schema have lot of great change (like type change, promoted properties more…) puting in GAC no work anymore. Here is the method
  1. Change the assembly number in visual Studio of your schema’s project :
  2. Rebuild your schema and deploy it in your application you have now two schemas DLL :
  3. Now you have the two version side by side, but if you put an XML in a receive port you’ll get this error :

    Actually by default your receive location take the higher assembly version
  4. So the last step is to configure the XML receive Pipeline to take the right version :

    In my case I put in DocumentSpecNames : « BAMProject.Bill, BAMProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=340609f1475ce358″
  5. And Now it works
Publicités

Laisser un commentaire

Choisissez une méthode de connexion pour poster votre commentaire:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s