6

私は WF45 の入門チュートリアルに取り組んでいますが、他の人が経験したように見える問題に遭遇しましたが、私が経験しているものとは異なります。他の誰かが私に解決策を持っていることを願っています。

チュートリアルを進めていくと、ワークフロー ホストから実行する必要があるまでは問題ありません。その時点で、ワークフローのインスタンス化は失敗し、次のメッセージが返されます。

「式アクティビティ タイプ 'CSharpValue`1' を実行するには、コンパイルが必要です。ワークフローがコンパイルされていることを確認してください。」

Windows Workflow Foundation (WF45) - Getting Started Tutorialからソースをダウンロードしようとしましたが、ステップを見逃したのにエラーが解決しない場合があります。

オンラインで読むと、C# 式が埋め込まれたワークフローに準拠する必要があるようですが、私が理解しているように、VS2012 とワークフロー デザイナーを使用すると、デフォルトでこれが発生しますか? ここにある CompileExpressions メソッドを実装しようとしましたが、役に立ちませんでした。プレリリース バージョンでは、C# 式がこの問題を引き起こしたにもかかわらず、VB プロジェクトが機能するという問題があったことを読みました。これをテストすると、まさにこのケースに苦しんでいることがわかります。VB チュートリアルは正常に実行されますが、C# バージョンはこの例外で失敗します。

さらにあえて言いますが、これは同僚のマシンの問題ではないので、私のマシンの構成の問題だと思います...

更新と回避の修正:

それで、私は問題を解決することができましたが、私は解決策に満足していません.

私の修正は、 \Framework\v4.0.30319フォルダーにあるMicrosoft.Common.targetsファイルを、同僚のバージョンの同じファイルに置き換えることでした。これで問題は解決しました。他に何が壊れたのかはまだわかりません...

4

3 に答える 3

10

元の問題のスレッドはかなり古いものですが、参考になるかもしれません。

動的アクティビティで同じ問題が発生し、ドキュメントが間違っていることがわかりました。

上記のエラーを生成するコードは次のとおりです。

文字列パス = @"myActivity.xaml";

            Activity activity = ActivityXamlServices.Load(path);



            IDictionary<string, object> dictionary = new Dictionary<string, object>
            {
                { "Arg", 1},
            };

            IDictionary<string, object> output = WorkflowInvoker.Invoke(activity, dictionary);

これは作業コードです:

文字列パス = @"myActivity.xaml";

            ActivityXamlServicesSettings settings = new ActivityXamlServicesSettings
            {
                CompileExpressions = true
            };


            Activity activity = ActivityXamlServices.Load(path, settings);

            IDictionary<string, object> dictionary = new Dictionary<string, object>
            {
                { "ArgNumberToEcho", 2},
            };

            IDictionary<string, object> output = WorkflowInvoker.Invoke(activity, dictionary);
于 2013-03-27T15:39:36.077 に答える
2

これは誰かを助けるかもしれません-私にとってうまくいったのは、割り当ての1つで式ウィンドウに改行があったことです。改行を削除すると、機能し始めました。

于 2014-07-21T01:06:17.297 に答える
0

このエラーの別の原因は、式の値に \r\n が多すぎる場合です。

したがって、「値」セクションに次のような割り当てアクティビティがあるとします。

new myobject(){
     param1=val1,
     param2=val2,   
     param3=val3,
     param4=val4,
     param5=val5,    
     param6=val6,
}

これを次のように変更します。

new myobject(){param1=val1,param2=val2,param3=val3,param4=val4,param5=val5,param6=val6,}

両方の親指を立てて、エラーが修正されることを願っています。

于 2014-10-24T08:59:06.630 に答える