0

私は VS 2010 から CRM 2011 でソリューションを開発しようとしています。それが機能する場合は、まあまあです (CRM は犬ですが、コードは機能します)。しかし、時々、ベビーカーからおもちゃを放り出し、デバッグを拒否します。現在の問題は、ルーチンの一部の行で「共通言語ランタイムがブレークポイントを設定できませんでした」と抗議することです。例えば

private static TimeSpan FindWorkTime(DateTime T1, DateTime T2, Boolean[, ,] supporthours)
{
    TimeSpan SlotDuration = new TimeSpan(0, 30, 0);
    TimeSpan fwt = new TimeSpan(0); // This I can put a break point on
    if (T2 > T1)                    // This tells me the CLR can not set a breakpoint!
    {
        DateTime T1S = servicecase.FindTimeSlotStart(T1);
        DateTime T2S = servicecase.FindTimeSlotStart(T2);

コードは最適化されていません。スタジオ (または CLR など、動揺しているもの) が実際に機能することを認識することを決定したブレークポイント。では、一体なぜ一部の行を実行し、他の行はデバッグを拒否するのでしょうか!

ここで検索しましたが、ほとんどの回答には、最適化 (オンではない) またはスタジオの 2 つのコピーの実行 (そうではない) が含まれます。

4

1 に答える 1

0

やっと解決。もちろん答えは、CRM は山積みだということです...

実行中のコードは、crm サーバーにデプロイされたコードではありません。サーバーには DLL のバージョンが 1 つしかなく、開発システムにあるのと同じバージョンですが、サーバーで実行されているコードのバージョンではありません。CRM によって実行されるコードは、DLL からのコードか、DLL 内のコードと必ずしも一致しないデータベースからのコピーのいずれかのようです。なんらかの理由で、コードが再展開されたにもかかわらず、CRM はデータベースから古いコピーを取得しようとしているようです。コードのデプロイに加えて安定させるには、プラグイン登録ツールを使用して再登録する必要があります。

(そして、CRM は何が正直に言えなかったのかについて私に嘘をつくだろうと思っていたので、それを見つけるのに非常に時間がかかりました)

于 2013-07-17T14:32:30.893 に答える