首先,XOML是3.0; WF4使用直线上的XAML。
这样做有两种选择。这取决于是否需要升级正在运行的长时间运行的工作流程,或者是否需要更新工作流程并将其用于所有新实例,同时保持当前实例在先前版本上运行。让我们打电话给这两个选项升级和多版本策略。
重新多版本:
我目前这样做。实质上,您必须在AppDomain内隔离相同工作流程的每个不同版本。从xaml反序列化或创建一个类型的实例是同样的事情 - 它们都会导致程序集加载到当前AppDomain中。如果工作流的v1在程序集A.1中定义,并且工作流的V2在程序集A.2中定义,那么如果您不小心,可能会遇到绑定问题。隔离其自己的AppDomain中的每个版本有助于减少发生这种情况的可能性。
重新升级:
这个目前不被支持,但也有包括本在(近)未来的发行计划。 Ron Jacobs gave a presentation at PDC10 last October详细介绍了WF4期货。在演示文稿中提到了三件事(我记得) - 元数据错误破坏了构建,状态机,并在执行过程中为工作流提供了升级途径。我可以告诉你,状态机是在最近发布的Platform Update中发布的,而且我被告知元数据错误打破构建功能也即将推出。我假设升级路径功能也即将推出。
感谢您的XOML/XAML校正。据此编辑。 – 2011-04-27 23:13:27