R – Changing windows workflow assemblies while running

assembliesgacnetworkflowworkflow-foundation

We’re about to deploy version 1.2 of a software project I was working on, up from version 1.1. As it stands right now, there are a few outstanding workflows that are still in progress that will break if we update the workflow and supporting assemblies to version 1.2 because the serialized workflows will be looking for version 1.1 of those assemblies.

One possible solution is to put the 1.1 versions of the assemblies in the GAC. Unfortunately that isn’t possible because the 1.1 versions were never given a strong name.

If I remember correctly, there is a way to include a file that tells the .Net runtime that version 1.2 assemblies are ok to load when looking for version 1.1 assemblies but I can’t remember what that is called. I think it’s some sort of xml file. Does anyone remember what this is called and know any links to documentation?

An alternate solution, for this iteration, is for me to change the build so that the assemblies needed by the workflow do not have their version number incremented and they use the specific version number from the 1.1 assemblies. This will work because nothing has changed in them, but it’s not a great long term solution.

Long term I’ll have to start signing the required assemblies with a strong name so they can be put in the GAC. Any potential issues here?

Best Answer

You can't version assemblies that don't have a strong name at all so there is little you can do. The best option would be to leave the existing workflows as they are and copy them to create new ones and changes those copies to reflect the new workflow and start using those for all new work.

I did a series of blog posts about versioning workflow. Part one is here with links to the others.

Related Topic