我有两个工作流基础(.NET 3.5 SP 1)应用程序编译很好。它有两个声明性规则条件。两者都很简单,例如:
- !this.Shutdown
- this.Runtime == null
项目正确构建,没有错误或警告,但是当我运行应用程序时,它失败并出现异常:error 1342: Activity 'whileNotShutdown' validation failed: Can not find the condition "Shutdown not requested".
在另一个应用程序中,我在策略中使用了一个更复杂的规则集,它会生成以下异常:error 1398: Activity 'Defaults' validation failed: Can not find the rule set "Rule Set1". Check if rule set is defined in the rules file.
我尝试删除.rules文件并通过重新创建两个规则来重新创建它,但这并没有帮助。
问题是:导致此错误的错误是什么?
我尝试过的一些事情:
答案 0 :(得分:0)
编译器不会检查声明性工作流规则,因此没有任何帮助。当您在规则中引用“this”时,它表示工作流程。因此,必须在工作流级别声明属性Shutdown和Runtime。我认为运行时指的是WorkflowRuntime,这是一种不寻常的,不推荐使用,因为这可能存在设计问题。
答案 1 :(得分:0)
最终找到原因 - 它是由类名中的空格引起的,这导致规则文件中包含空格,这似乎会导致问题。
例如,这会导致错误:
alt text http://img512.imageshack.us/img512/661/clipboard01wdu.png
然而,这不会:
alt text http://img140.imageshack.us/img140/9366/clipboard02t.png