将 windows 工作流从 .Net 4.5 降级到 4.0

Downgrading windows workflow from .Net 4.5 to 4.0

我使用 .Net framework 4.5 (C#) 开发工作流,它们已经过测试并且运行良好,不幸的是我必须将 .Net framework 降级到 4.0,我知道 WF 的 xaml 架构已更改.Net 4.5

我搜索如何将 WF 从 .Net 4.5 降级到 4.0,但找不到任何有用的信息。我找到了这篇文章,但我不知道该怎么做:WF projects that use new .NET 4.5 features fail to build when re-targeted to .NET Framework 4

任何人都知道我可以遵循将 .Net 框架降级到 4.0 的众所周知的测试步骤吗?还是我应该使用 .Net framework 4.0 重新开发工作流程?

我不久前做过这个,这是可能的。这是我所做的:

  1. 将项目属性中的目标 .NET Framework 版本更改为 4.0。
  2. 您需要手动编辑工作流程的 XAML 文件,方法是在 XML 编辑器中查看它。您以 C# 形式编写的每个表达式参数都需要转换为其等效的 VB.NET。我发现更容易清除 XAML 中的 C# 表达式,然后打开设计器并使用 VB.NET 语法再次输入表达式。这是大型工作流中乏味的部分。
  3. 您会注意到,在 v4.5 工作流格式中,命名空间列表将位于名为 TextExpression.NamespacesForImplementation 的元素中。从 XAML.
  4. 中删除此元素(及其子元素)
  5. 此外,删除元素 TextExpression.ReferencesForImplementation 及其子元素。
  6. 在根 activity 元素中,找到导入 clr-namespace:Microsoft.CSharp.Activities;assembly=System.Activities 命名空间的行。删除那个 XML 命名空间。对我来说,命名空间的前缀是 mca.
  7. 您需要寻找任何 mca: 前缀元素,因为它们在基于 .NET 4.0 的工作流中不再有效。通常,这些将是可以写入活动的任何 C# 表达式。此外,大多数(如果不是全部)这些可能已经通过上面步骤 2 中完成的操作解决了。
  8. 您需要使用设计器的 导入 选项卡重新添加所需的任何命名空间。
  9. 之后,您应该能够构建降级后的工作流程。