【问题标题】:Downgrading windows workflow from .Net 4.5 to 4.0将 Windows 工作流从 .Net 4.5 降级到 4.0
【发布时间】:2016-03-20 11:02:45
【问题描述】:

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

我搜索如何将 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 重新开发工作流程?

【问题讨论】:

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


    【解决方案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. 您需要使用设计器的 import 选项卡重新添加所需的任何命名空间。
    8. 毕竟,您应该能够构建降级的工作流。

    【讨论】:

    • 谢谢,它正在工作,我只是想在你的解决方案中添加一个小东西,你应该删除 FlowDecision 的 'DisplayName' 作为 .Net 4.0 中不支持的属性
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    相关资源
    最近更新 更多