0

正常にコンパイルされる 2 つのワークフロー基盤 (.NET 3.5 SP 1) アプリケーションがあります。2 つの宣言ルール条件が含まれています。どちらも非常に単純な例です:
- !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 ファイルを削除し、2 つのルールを再作成して再作成しようとしましたが、解決しませんでした。

問題は、このエラーの原因は何ですか?

私が試したいくつかのこと:

  • ワークフロー ルールをより大きなワークフローに配置しても、問題に違いはありません。
  • この問題は、現在、ソリューション内のすべてのワークフローに影響を与えています (以前は機能していたものも含む)。
  • Code Rule 条件を使用しても同じ問題は発生しません。この問題は何らかの形で規則ファイルに関連しています。
  • ワークフローの再構築は役に立たなかった
4

2 に答える 2

0

宣言型ワークフロールールはコンパイラによってチェックされないため、ヘルプはありません。ルールで「this」を参照する場合、それはワークフローを意味します。したがって、プロパティのシャットダウンとランタイムはワークフローレベルで宣言する必要があります。ランタイムはWorkflowRuntimeを指していると思いますが、これはワークフロー内にあるのは珍しいことであり、お勧めできません。そのため、ここで設計上の問題が発生する可能性があります。

于 2009-02-02T17:07:26.857 に答える
0

最終的に原因が見つかりました-クラス名のスペースが原因で、ルールファイルにスペースが含まれているため、問題が発生したようです。

たとえば、これによりエラーが発生します。

代替テキスト http://img512.imageshack.us/img512/661/clipboard01wdu.png

ただし、これはできません:
代替テキスト http://img140.imageshack.us/img140/9366/clipboard02t.png

于 2009-09-01T07:00:18.667 に答える