5

Ogni volta che eseguo Update-Database dalla console del gestore pacchetti, Visual Studio 2015 si arresta in modo anomalo. Accade che sia in esecuzione il mio metodo di configurazione delle migrazioni al momento. Qualche idea su dove dovrei cercare di scoprire cosa sta succedendo?Visual Studio 2015 si arresta in modo anomalo ogni volta che eseguo Update-Database

+0

Se questo può aiutare: https://social.msdn.microsoft.com/Forums/en-US/29ef381f-f465-463c-b64b-aed07d07ac63/vs2012-package-manager-crashes-on-updatedatabase-using- entity-first-code-migrations-with-seed? forum = adodotnetentityframework –

+1

cattura un dump (http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx, http://msdn.microsoft.com/ it-it/library/bb787181% 28VS.85% 29.aspx) del VS2015 in arresto. Aprire il crash dump in windbg, correggere i simboli di debug (http://stackoverflow.com/a/30019890/1466046), eseguire **! Analyze -v ** e postare l'output. – magicandre1981

+1

Ho trovato questo post: [collegamento] (http://stackoverflow.com/questions/17169020/debug-code-first-entity-framework-migration-codes) e mi ha aiutato a eseguire il debug del mio metodo Seed che generava un'eccezione non gestita . Proverò il tuo suggerimento @ magicandre1981 per capire perché ciò causerebbe il down VS, comunque. – jlavallet

risposta

2

C'è una possibilità non banale che l'arresto anomalo sia causato dal codice del progetto e non dal funzionamento interno di Visual Studio.

Come suggested by m_david in a question linked by the OP, il primo passo è quello di aggiungere codice riportato all'inizio del Seed() ¹:

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

Ciò causerà un prompt² appaia che vi chiederà se lanciare il debugger in una nuova istanza di Visual Studio o un altro attualmente in esecuzione.

Dopo di che, l'uscita del debugger verrà registrato per debug output di tale VS esempio, e le eccezioni non gestite vengono trattati come punti di rottura - con evidenziando la riga di codice, i dettagli di eccezione e tutto il resto.

Nel mio caso, il crash è stato causato da un'operazione ricorsiva set() in un membro di una delle entità, che ha provocato uno StackOverflowException.


¹ o costruttore tua DbMigrationsConfiguration di sottoclasse, se l'incidente accade in precedenza. O forse qualche altro posto.

² Quindi ricordarsi di commentare quel codice quando non ne avete bisogno.

+0

Grazie, è stato davvero utile! Il problema era un problema di convalida in una nuova colonna che avevo aggiunto a una delle tabelle. Non è comparso fino a quando ho aggiunto questo codice. – Sam

Problemi correlati