5

パッケージマネージャコンソールからUpdate-Databaseを実行するたびに、Visual Studio 2015がクラッシュします。その時点で私の移行のConfiguration.Seedメソッドが実行されています。私は何が起こっているのか調べるべきだと思いますか?アップデートデータベースを実行するたびにVisual Studio 2015がクラッシュする

+0

これが役立つ場合は、次のURLにアクセスしてください。https://social.msdn.microsoft.com/Forums/en-US/29ef381f-f465-463c-b64b-aed07d07ac63/vs2012-package-manager-crashes-on-updatedatabase-using-エンティティfirst-code-migrations-with-seed?forum = adodotnetentityframework –

+1

ダンプをキャプチャします(http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx、http://msdn.microsoft.com/ ja-jp/library/bb787181%28VS.85%29.aspx)が破損しています。 windbgでクラッシュダンプを開き、デバッグシンボル(http://stackoverflow.com/a/30019890/1466046)を修正し、**!analyze -v **を実行して出力をポストします。 – magicandre1981

+1

私はこのポストを見つけました:[リンク](http://stackoverflow.com/questions/17169020/debug-code-first-entity-framework-migration-codes)そして、それは未処理例外をスローしていたSeedメソッドをデバッグするのに役立ちました。私はあなたの提案@ magicandre1981を試して、なぜそれがVSを落とすのか見てみましょう。 – jlavallet

答えて

2

クラッシュがVisual Studioの内部作業ではなくプロジェクトのコードによって引き起こされる可能性は軽微です。ビジュアルの新しいインスタンスにデバッガを起動するかどうかを尋ねてきます。これは、prompt²がそれを見えるようになります

if (System.Diagnostics.Debugger.IsAttached == false) 
{ 
    System.Diagnostics.Debugger.Launch(); 
} 

suggested by m_david in a question linked by the OPように、最初のステップは、Seed()¹の先頭に次のコードを追加することですスタジオまたは現在実行中の別のスタジオ

その後、デバッガの出力はデバッグのVSインスタンスに記録され、処理されない例外はブレークポイントとして扱われます。問題のコード行、例外の詳細などが強調表示されます。

私の場合、クラッシュはStackOverflowExceptionという結果になったエンティティの1つのメンバの再帰的なset()操作によって引き起こされました。


¹またはあなたのDbMigrationsConfigurationサブクラスのコンストラクタ、クラッシュが早く発生した場合。またはおそらく他の場所。

²必要がないときは、コードをコメントアウトしてください。

+0

ありがとう、これは本当に役に立ちました!問題は、テーブルの1つに追加した新しい列の検証の問題でした。このコードを追加するまでは表示されませんでした。 – Sam

関連する問題