2015-06-02 20 views
7

Ci deve essere qualcosa che non capisco nella differenza tra build di debug e build di release e il suo uso di riferimenti. Sto utilizzando Entity Framework 6 per connettersi a un database che è stato precedentemente impostato. Sono in grado di creare ed eseguire correttamente il progetto mentre è in modalità Debug. Se lo cambio in modalità rilascio, ottengo istantaneamente errori di compilazione che indicano che gli spazi dei nomi e i tipi che erano lì non possono più essere trovati. Ho verificato e per quanto posso dire che entrambi i target framework. Net 4.5 che ho visto potrebbe essere stato un problema per alcune altre persone. Non vedo alcuna differenza in ciò che è elencato sotto riferimenti nel mio solution explorer.Riferimenti del framework entità mancanti tra debug e release build

Sto usando Visual Studio 2013. Felice di fornire qualsiasi codice ma non so quale sarebbe più rilevante.

Alcuni degli errori che sto ricevendo:

The type or namespace name 'Entity' does not exist in the namespace System.Data' (are you missing an assembly reference?) in Holds.Context.cs 
The type or namespace name 'DbContext' could not be found (are you missing a using directive or an assembly reference?) in Holds.Context.cs 
The type or namespace name 'DbSet' could not be found (are you missing a using directive or an assembly reference?) in Holds.Context.cs 

Grazie per qualsiasi consiglio che può essere fornito.

+0

Il tuo file di configurazione, vedi se riesci ad espanderlo e ci saranno 2 configurazioni per release vs debug. Controlla quelli –

+0

Ho lo stesso problema. Fammi sapere se trovi una soluzione. –

+0

idem. la soluzione verrà creata in modalità di debug ma non in modalità di rilascio. Il framework Entity è stato installato nella soluzione tramite Nuget Package Manager – Dib

risposta

6

Passare alla modalità di rilascio, quindi reinstallare la struttura dell'entità sul problema ha risolto il problema nel mio caso.

+1

Sebbene ciò possa risolvere il problema dell'OP, sarebbe meglio elaborare la risposta con passaggi dettagliati su come farlo. –

+0

Questo ha risolto il mio problema e i miei passaggi sono dettagliati nella mia risposta [qui] (http://stackoverflow.com/a/33751526/254215). – Dib

8

Per risolvere questo ho usato la risposta di @OomPiet. Per me i passi sono i seguenti:

  1. Passa alla modalità di debug
  2. Rigenera soluzione - Costruire successo
  3. interruttore per sbloccare la modalità
  4. Rigenera soluzione - generazione non riuscita
  5. In Solution Explorer clic sul progetto che non verrà costruito (il mio era un progetto di test unitario)
  6. Progetto click destro>Manage NuGet Packages
  7. Verificare Installed packages è selezionato
  8. Selezionare EntityFramework
  9. Clicca Uninstall e vicino dialogo
  10. Cliccare sulla Soluzione in Solution Explorer
  11. click destro>Manage NuGet Packages for Solution
  12. Assicurarsi Installed packages è selezionato
  13. Selezionare EntityFramework
  14. Clicca Manage
  15. Assicurarsi il progetto che sta causando problema è checked
  16. Clicca OK e vicino finestra dopo aver installato
  17. Click Click on Soluzione in Solution Explorer
  18. Right Click 'Rigenera soluzione'

Ora posso passare da Debug e Release senza compilazione in mancanza.Mi auguro che aiuta

EDIT: Se si dispone di un solo progetto utilizzando EF, si veda il commento @LuckyLikey s' al di sotto dove afferma per la ricerca di EF, invece, e installarlo in quel progetto.

+1

Uomo che mi hai salvato la giornata .. Non potevo credere ai miei occhi quando avevo questo problema. * vomita nel cestino * - Tuttavia, per completare la tua risposta già perfetta: se il Progetto che causa questi problemi è l'unico progetto che utilizza EF, il Framework non sarà più visibile a "Gestione" nel Passaggio 14. * Cerca semplicemente EF e 'installalo nel tuo progetto in modalità di rilascio. * Questo risolverà anche il problema. – LuckyLikey

+0

Commento equo. Modificherò la mia risposta e citerò e rimanderò al tuo commento. Grazie per le informazioni aggiuntive. – Dib

6

Ok @Dim e @ risposte di Oompiet sono corrette, ma c'è un modo molto semplice per farlo tramite la Console Package Manager:

Update-Package -reinstall EntityFramework 

che lo farà a livello di soluzione o se si vuole farlo a livello di progetto basta fare:

Update-Package -reinstall EntityFramework -p <YouProjectName> 
0

In modalità Debug, vi sono ulteriori informazioni con gli assembly (il file pdb).

Ciò consente all'applicazione di recuperare le dipendenze extra.

Nella modalità di rilascio, non esistono tali elementi, pertanto è necessario fare riferimento ai gruppi.

Fare il punto 10 a 18 da @Dib risolverà il problema.

Problemi correlati