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

时间:2016-03-20 11:02:46

标签: c# workflow-foundation-4 workflow-foundation

我使用.Net framework 4.5(C#)开发工作流程并且它们经过测试并且工作正常,不幸的是我必须将.Net框架降级到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 个答案:

答案 0 :(得分:1)

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

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