2011-12-20 36 views
21

これは実際にこの質問の別の部分です。共通言語ランタイムはブレークポイントを設定できませんでした

Error settings breakpoints but only on some lines while debugging

私はVS 2010

I'n私はいくつかの場所を除いて、すべてのコードを通じてブレークポイントを設定することができ、私のソースファイルのいずれかでCRM 2011のプラグインをデバッグリモートです。

ブレークポイントを設定しようとすると、このエラーが発生します "次のブレークポイントは設定できません:"と "共通言語ランタイムはブレークポイントを設定できませんでした。

protected override void ExecutePlugin() 
{ 
    SetStateResponse response = new SetStateResponse(); // Breakpoint works 

    // Message switch 
    switch (_crmMessage) // Breakpoint error 
    { 
     case CrmPluginMessageEnum.Create: 

     Entity pimage = null; // Breakpoint error 
     if (_context.PostEntityImages.ContainsKey("postcreate")) // Breakpoint works 
      pimage = _context.PostEntityImages["postcreate"]; // Breakpoint error 

     break; // Breakpoint error 
     } 
} // Breakpoint error 

最適化されたとしてUPDATE はまた、モジュールウィンドウには、DLLを示し:いいえユーザーコード:はいシンボルのステータス:ラインあなたを最適化されているDLLについてのあなたの更新にさらに

+1

コードを追加してください。ラムダ式のように、通常はブレークポイントを設定することができない多くのケース(初期化のない変数宣言など)があります。 –

+0

http://blogs.msdn.com/b/habibh/archive/2009/09/01/troubleshooting-common-breakpoint-problems-in-the-visual-studio-debugger-part-i.aspx –

+0

@DJKRAZE F9同じことをする。質問のリンクを確認して、コード例を参照してください。 – user1231231412

答えて

0

をロードシンボルブレークポイントがうまく動作しない箇所は、switchステートメント全体が他のことをしないので最適化されない可能性が高い場所を示しています。使用されていない変数に値を代入するかどうかを決定します。そのため、コンパイラはswitch文のコードを生成しません。なぜなら、何も実行しないか、同じ理由で実行時にJITを取り除くだけなのでです。

+0

正しい。リフレクターを介して、それがifステートメントに変換されたことが示されます。 – user1231231412

3

この問題は、Visual Studioの2つのインスタンスでプロジェクトを開いたときに発生しました。私がデバッグしていなかったプロジェクトは、ファイルをロックし、 "このファイルはソースエディタの外で修正されました。"私の非デバッグソリューションの変更を受け入れた後、私はもはやエラーを受け取り、私のブレークポイントは私がデバッグしていた私のソリューションにヒットしました。

このエラーには多くの原因が考えられますが、これは私のためのものです。

0

私は似たような経験を持っていたし、私はそれを働いた方法は、私はそれはそれはやったと思ったまさに見るまでルーチンが呼び出され、その後ルーチンにシングルステップたスポットにブレークポイントを置くことでした。私の場合、ルーチン内のすべてのコードが実行されないようにするリターンがあったので、オプティマイザはそれをすべて投げ捨てました。時には愚かなことでしょうか?とにかく、コールスタックの上位レベルから始めて、問題が発生しているルーチンに入ると、その問題の理由がより明らかになる可能性があります。

0

この問題のもう1つの原因CRMに対するデバッグがプラグイン登録ポイントを更新していない場合、私はちょうど見つけたばかりです。新しいDLLをターゲットマシンにコピーして、DLLでないプロセスにリモートで接続しても、CRMは使用します。 CRMは、プラグイン登録を再実行するまで、古いバージョンのコピーをデータベースから取得しようとします。

私のために1日半を浪費するエラー!すでに一種の他の回答によって参照

26

2つの可能性、:

  1. リリースビルドを削除するか、 を最適化しますので、あなたが、代わりに リリースビルドのアセンブリのデバッグビルドを使用していることを確認し、あなたのコード。
  2. (プロジェクトプロパティタブの)Visual Studioでアセンブリを展開するたびにバージョンを更新していることを確認してください。 バージョンをインクリメントすると、CRMは古い アセンブリバージョンをアンロードし、IISをリセットせずに新しいバージョンを再ロードします。
0

プロジェクトのデバッグを開始するときにこのエラーが発生しました。エラーを再現した後に、すべてのプロジェクトをクリーンですべてのプロジェクトを再ビルドして解決します。

関連する問題