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
- Change the assembly number in visual Studio of your schema’s project :
- Rebuild your schema and deploy it in your application you have now two schemas DLL :
- 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
- 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=184.108.40.206, Culture=neutral, PublicKeyToken=340609f1475ce358″
- And Now it works