デバッグ時にのみ ExecutionEngineException をスローする C# コードがあります。デバッグなしで Visual Studio から実行する ([デバッグなしで開始] ボタンを押す) と、このコードは正常に動作します。しかし、Visual Studio からデバッグすると、ExecutionEngineException がスローされます。
この問題により、デバッグしようとしているコードが問題のあるコードの後に実行されるため、アプリケーションをデバッグできません。
詳細は次のとおりです。
- Visual Studio 2012 を使用しています
- メイン アプリケーションは、C# コードを呼び出す C++/CLI アプリケーションです。
- C# の問題のあるコード行に到達するまで、アプリケーションはしばらく実行されます。
- 関連するコードは、Entity Framework コンテキストに対するクエリです。
- Entity Framework 5 を使用しています
- エンティティが格納されている DB は SQL Server LocalDB (VS2012 に付属するもの) です。
編集
さらに調査すると、実際の問題は System.Data.DataSet のデフォルト コンストラクターに起因するアクセス違反例外であることがわかりますnew DataSet()
。
編集 2 この問題を示す小さなアプリケーションを作成しました。ソースコードはここにあります。
コンパイルして、プロジェクトを実行してみてくださいApplication
。新しい. Adder.cs
_ ExecutionEngineException
_ DataSet
デバッガーは、マネージド/ネイティブではなく、混在する必要があることに注意してください。