Errore di compilazione di Visual Studio 2012 MVC: il tipo o il nome dello spazio dei nomi ‘Infrastruttura’ non esiste nello spazio dei nomi ‘System.Data.Entity’

Aggiornamento: il riferimento all’assembly System.Data.Entity è selezionato nel Reference Manager.

Il set up

Viene visualizzato un errore durante il tentativo di eseguire un’applicazione Web ASP.NET MVC 3 pronta all’uso. Non ho fatto nessuna modifica.

Ho semplicemente scelto File> Nuovo progetto> Visual C #> Applicazione Web ASP.NET MVC 3 e ho lasciato intatte tutte le impostazioni predefinite.

In Impostazioni progetto , ho scelto l’applicazione Internet per il modello, Razor per il motore di visualizzazione e selezionato Usa markup semantico HTML5 .

Ho quindi scelto immediatamente Build> Build Solution che fallisce e produce questo errore e altri cinque warning (mostrati nello screenshot).

L’errore

Errore 1 Il tipo o il nome dello spazio dei nomi ‘Infrastruttura’ non esiste nello spazio dei nomi ‘System.Data.Entity’ (manca un riferimento all’assembly?)

C: \ Users \ johndoe \ Documents \ Visual Studio 2012 \ Projects \ MvcApplication1 \ MvcApplication1 \ Global.asax.cs

Si, lo so…

… questa domanda è stata posta – molte volte – ma le risposte su questi post non forniscono informazioni adeguate per risolvere il mio problema.

Per favore, sii specifico nella risposta , con le istruzioni dettagliate, poiché sono nuovo a Visual Studio e al suo framework di sviluppo di app MVC.

La domanda

Cosa farebbe in modo che Visual Studio non funzionasse immediatamente? Questa è una nuova installazione. C’è un aggiornamento che potrebbe aver causato questo problema o potrebbe risolvere questo problema?

Lo screenshot

Screenshot dell'elenco errori di Visual Studio

Informazioni di sistema

Aggiornamento di Microsoft Visual Studio Ultimate 2012 versione 11.0.61030.00 4

Microsoft .NET Framework versione 4.5.50709

Prodotti installati:

  • Strumenti di architettura e modellazione
  • LightSwitch per Visual Studio 2012
  • Strumenti per gli sviluppatori di Office
  • Team Explorer per Visual Studio 2012
  • Visual Basic 2012
  • Visual C # 2012
  • Visual C ++ 2012
  • Visual F # 2012
  • Controllo ortografico di analisi del codice di Visual Studio 2012
  • Strumenti di sviluppo SharePoint di Visual Studio 2012
  • ASP.NET e strumenti Web
  • LNDevEnv
  • NuGet Package Manager
  • VisualEmptive Analytics Visualizer
  • Strumenti dati di SQL Server

Sulla barra multifunzione, seleziona il menu a discesa “Debug” e seleziona Configuration Manager. Da lì, selezionare il menu a discesa sotto “Piattaforma”, fare clic su Nuovo, e ora sotto Nuova piattaforma selezionare x86. Hit ok e chiudi il configuration manager. Prova a build il tuo progetto.

System.data.entity è un assembly a 32 bit, quindi potrebbe essere necessario creare il progetto come x86. Se questo non funziona, puoi seguire gli stessi passi sopra e selezionare x64 e riprovare.

AFAIK non dovresti averlo fatto, ho seguito i tuoi passi in modo eccitato e non ho avuto problemi con la CPU.

Puoi anche provare a installare entityframework. Fai clic con il pulsante destro del mouse su riferimenti, gestisci i pacchetti di nuget, fai clic su online e dovresti visualizzare EntityFramework nella colonna centrale.

Ho avuto lo stesso problema e l’ho risolto aggiungendo un riferimento a Entity Framework. Fare clic con il tasto destro del mouse su “Reference” in Solution Explorer e selezionare “Aggiungi referece”. Passare quindi a C: \ Programmi (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE. Scegli EntityFramework.dll.

Ho avuto lo stesso problema in MVC 4 (dovrebbe essere simile in MVC 3), ecco cosa lo ha risolto per me:

  • Espandi i tuoi riferimenti in Project Explorer e fai clic sul riferimento all’assembly (System.Data.Entity e qualsiasi altro riferimento all’assembly utilizzato fuori dalla scatola sarà qui)

  • Nella finestra Proprietà cambia la proprietà Copia locale su “Vero”

  • Ripetere i due passaggi precedenti per tutti i riferimenti di assembly inclusi ma che generano errori di generazione

Eseguire un’applicazione MVC 3/4 pronta per l’uso dovrebbe funzionare dopo aver eseguito questa operazione.

Questa soluzione potrebbe funzionare per te se la modifica delle impostazioni di compilazione a x86 causa la generazione di errori localmente.

Abbiamo avuto lo stesso errore, il problema per noi era una versione precedente di Entity Framework con riferimenti rimanenti che non erano più necessari ma che causavano ancora errori di compilazione. Non stavamo riscontrando problemi di build a livello locale, ma durante il tentativo di creare su TeamCity l’errore si presentava da solo.

Usando la Console di Gestione pacchetti abbiamo eseguito Update-Package EntityFramework -Reinstall e questo ha rimosso il riferimento per noi.

Utilizzando Visual Studio 2012, sono in grado di risolvere questo problema aggiungendo il riferimento esplorando il percorso: – C: \ Programmi (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Extensions \ Microsoft \ Entity Framework Tools \ Pacchetti NuGet \ EntityFramework.5.0.0 \ lib \ net45

e quindi scegliendo l’entity framework.dll