我正在阅读 WF45 的入门教程,遇到了一个其他人似乎经历过的问题,但与我遇到的方式不同。我希望其他人有我的解决方案。
当我完成教程时,一切都很好,直到我必须从工作流主机运行它。此时,工作流的实例化失败并返回以下消息。
“Expression Activity 类型‘CSharpValue`1’需要编译才能运行。请确保工作流已经编译。”
我已尝试从Windows Workflow Foundation (WF45) - 入门教程下载源代码,以防我错过了一个步骤,但错误仍然存在。
在线阅读似乎需要编译具有嵌入式 C# 表达式的工作流,但据我了解,在使用 VS2012 和工作流设计器时默认情况下会发生这种情况?我试图实现在这里找到的 CompileExpressions 方法,但这并没有帮助。我确实读到在预发布版本中存在一个问题,C# 表达式导致了这个问题,但 VB 项目工作正常。对此进行测试,我发现我正在遭受这种确切的情况。VB 教程运行良好,但 C# 版本因此异常而失败。
此外,我敢说:这不是我同事机器上的问题,所以我认为这是我机器上的配置问题......
更新和闪避修复:
所以,我已经设法解决了这个问题,尽管我对解决方案不满意,并且很想听听是否有人有正当的理由发生这种情况。
我的解决方法是用我同事的同一文件版本替换\Framework\v4.0.30319文件夹中的Microsoft.Common.targets文件。这解决了这个问题。它还破坏了什么还有待观察......