【发布时间】:2013-01-09 06:00:28
【问题描述】:
我正在处理 WF45 的 Getting Started Tutorial 并遇到了其他人似乎遇到过的问题,但与我遇到的方式不同。我希望其他人可以为我提供解决方案。
当我完成教程时,一切都很好,直到我必须从工作流主机运行它。此时工作流的实例化失败并返回以下消息。
"Expression Activity type 'CSharpValue`1' 需要编译在 命令运行。请确保已编译工作流。”
我已经尝试从Windows Workflow Foundation (WF45) - Getting Started Tutorial 下载源代码,以防我错过了一个步骤,但错误仍然存在。
在线阅读似乎需要编译具有嵌入式 C# 表达式的工作流,但据我了解,在使用 VS2012 和工作流设计器时默认会发生这种情况?我试图实现找到 here 的 CompileExpressions 方法,但这没有帮助。我确实读到在预发布版本中存在一个问题,C# 表达式导致了这个问题,但 VB 项目工作正常。对此进行测试,我发现我正在遭受这种确切的情况。 VB 教程运行良好,但 C# 版本失败并出现此异常。
另外,我敢说:这不是我同事机器上的问题,所以我认为这是我机器上的配置问题......
更新和闪避修复:
所以,我已经设法解决了这个问题,虽然我对解决方案不满意,并且很想听听是否有人有正当的理由发生这种情况。
我的解决方法是将 \Framework\v4.0.30319 文件夹中的 Microsoft.Common.targets 文件替换为我同事的同一文件版本。这解决了这个问题。它还破坏了什么还有待观察......
【问题讨论】:
-
我没有遇到过这个问题。您是否尝试过运行 Nuget 管理器来检查所有依赖项是否都是最新的?
标签: c# workflow-foundation .net-4.5 workflow-foundation-4.5