Note that there are some explanatory texts on larger screens.

plurals
  1. POLoading previous version workflows with new version assembly
    primarykey
    data
    text
    <p>I am trying to figure out a way to upgrade assemblies used by our worklow runtime (<em>custom activities</em>) while still being able to load (<em>deserialize</em>) old instances. My situation is like this:</p> <ol> <li>have a workflow instance created and persisted with <code>CustomActivities</code> v.1.0.0.0</li> <li>deploy a new version of the product witch has <code>CustomActivities</code> v.2.0.0.0</li> <li>try to load previous workflows in the new runtime</li> </ol> <p>The difference between v.1 and v.2 is that we have some extra classes in the assembly. The structure for the existing types has not changed so i would presume that binary deserialization would still work. We are redirecting all types from v.1 to v.2 using <code>AssemblyResolve</code> event</p> <pre class="lang-cs prettyprint-override"><code>if (args.Name.Contains("CustomActivities")) { Type someTypeFromCustomActivities = typeof(WorkflowType); return someTypeFromCustomActivities.Assembly; } </code></pre> <p>Yet at some point during the deserialization process we are getting the following exception:</p> <blockquote> <p>SerializationException: The object with ID 153 implements the IObjectReference interface for which all dependencies cannot be resolved. The likely cause is two instances of IObjectReference that have a mutual dependency on each other.</p> </blockquote> <p>What might cause this behavior and how can we work around it? Also if anyone has a strategy for upgrading workflows that does not involve running side by side assemblies (<em>old and new versions in the same app domain</em>) they would be welcomed.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload