14

Abbiamo una soluzione VS.Net con 20 progetti.Errore di compilazione sconosciuto, 'Eccezione di tipo' System.OutOfMemoryException 'è stata generata

Occasionaly, in VS.NET, quando cerchiamo di costruire/debug la nostra soluzione, otteniamo l'errore seguente:

errore di generazione sconosciuta, 'eccezione di tipo 'System.OutOfMemoryException' stato gettato

L'unico modo per "risolvere" questo problema è riaprire Visual Studio e quindi la soluzione si risolve correttamente, ma nuovamente dopo qualche tempo si verifica nuovamente un'eccezione OutOfMemory. È davvero fastidioso riaprire Visual Studio un paio di volte al giorno, quindi conosci qualche soluzione per questo problema?

+1

+1 Ho lo stesso problema e non sono mai stato in grado di rintracciarlo. Non è solo sulla build, neanche; Ho avuto questo ad aprire un progettista di moduli dopo che VS è stato aperto per un po '. Chiusura e riapertura di VS risolve il problema il 100% delle volte e almeno Task Manager pensa che sia rimasta molta memoria. –

+0

Stai usando ReSharper o altri componenti aggiuntivi? Prova a disabilitarli con Strumenti-> Gestore componenti aggiuntivi, solo per vedere se fanno parte del problema.Inoltre, questo succede se stai facendo ripetutamente build, senza eseguire debug o test di unità? –

+0

Sto usando ReSharper, in attesa della prossima OutOfMemoryException e cercherò di disattivarlo per vedere cosa accadrà. Grazie – m1k4

risposta

3

JetBrains è a conoscenza di questo problema, e fornire qualche correzione per esso, utilizzando questa correzione ha risolto i miei problemi per la società:

http://www.jetbrains.net/confluence/display/ReSharper/OutOfMemoryException+Fix


Edit:. Tuttavia, fatta eccezione OutOfMemory si sta verificando di nuovo, ma non è come spesso come è quando io non utilizzare questa correzione JetBrains

+0

Funziona solo per VS 2005 e 2008 – Nobody

2

In base a ciò che Microsoft consiglia, non è una buona idea avere molti progetti in un'unica soluzione.

Controlla questo collegamento http://support.microsoft.com/kb/949755.

Ma la soluzione suggerita nell'articolo non è qualcosa che viene immediatamente utilizzato, a causa dei costi di refactoring del codice coinvolti.

Hai provato a creare la soluzione dall'esterno dell'IDE. (Qualcosa come MSBUILD). Questo potrebbe aiutare.

+0

Non abbiamo separato il nostro codice in poche soluzioni per il motivo che hai dichiarato: refactoring Costruire al di fuori dell'IDE funziona bene, solo il problema è VS.NET build – m1k4

2

Ho lo stesso problema se utilizzo ReSharper ed eseguo diversi UnitTests (con CodeCoverage abilitato).

Suppongo anche che si tratti di un problema di ReSharper. E dal momento che lo disattivo mentre è in esecuzione, Unittest the Exception non viene mai più visualizzato.

BTW - Disabilitarlo quando l'eccezione genera (come menzionato nei commenti sopra) non aiuta, poiché disabilitarlo mentre VS è in esecuzione non lo scaricherà dalla memoria. L'unico modo per forzare lo scaricamento è eliminare tutti gli AppDomain che hanno caricato la DLL. In uno scenario VS pacchetto questo significa che è necessario abbattere l'intero processo di VS :(

+0

Indovina che hai ragione. Ho spento ReSharper, riavviato VS e sto aspettando un paio d'ore per vedere se accadrà di nuovo. Se non ottieni +1 :) e vedrò cosa fare con ReSharper:/ – m1k4

2

oppure si può semplicemente minimizzare Visual Studio per circa 10 secondi (vedi in task manager come l'utilizzo della memoria di devenv.exe si abbassa quando minimizzato). Questo funziona per me nella maggior parte dei casi. Raramente devo chiudere VS per eliminare questo errore.

Problemi correlati