我为我公司正在开发的应用程序创建了几个WF 4.0工作流程。其中一些工作流程很简单,有些非常复杂(即许多步骤,几种不同类型的活动,自定义活动)。对于其中许多工作流程,我创建了几个自定义代码活动来支持一些内部流程类型。
工作流程运行良好,在VS 2010中维护它们时遇到的问题非常少。我们现在希望将这一责任移交给我们的业务用户,因此我创建了一个WPF应用程序来重新托管WF设计器(根据MS样本)。我的问题是,当我打开一个包含自定义代码活动的工作流时,这些活动被表示为红色框,并显示错误消息“由于XAML中的错误,无法加载活动。”
我做过研究,发现有几篇文章提到这通常是命名空间和引用的问题。重新托管的设计器位于与此类似的命名空间中:
Company.Application.Workflow.Designer
自定义代码活动包含在一个单独的自定义工作流库中,我已将其作为参考设计项目包含在内。库的命名空间与此类似:
Company.Application.Workflow.Data.Activities
正如我所提到的,库在设计器的项目中被设置为引用,我看到它在构建项目时被复制到输出中。我还在主要设计应用程序的XAML中包含了引用。
我错过了什么?
答案 0 :(得分:0)
这里可能有很多错误。您是否在使用XamlXmlReader时设置了LocalAssembly?有关示例,请参阅here。另一个问题可能是您的活动加载得很好,但相关的活动设计师没有找到。您还可以使用AppDomain.CurrentDomain.AssemblyResolve事件来查看正在加载和失败的程序集。或者甚至更好地使用Fuslogvw.exe来达到同样的目的。