Il tipo o dello spazio dei nomi il nome 'MVC' non esiste nello spazio dei nomi 'System.Web'
-
01-10-2019 - |
Domanda
Dopo la conversione di un ibrido ASP.NET MVC1 app per MVC2 sto ottenendo il seguente errore quando provo ed eseguire l'applicazione:
Il tipo o dello spazio dei nomi il nome 'MVC' non esiste nello spazio dei nomi 'System.Web' (Vi manca un riferimento all'assembly?)
Il colpevole allegeded nel file web.config è System.Web.Mvc:
<namespaces>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Web.Mvc.Html"/>
Finora la mia indagine mi sembra portare a credere che la versione 2 di System.Web.Mvc non è installato o non è stato raccolto.
Ho provato a creare un File> Nuovo progetto sulla base di MVC 2 e che di far salire la nuova versione (v2) di MVC. Ho anche convertito alcuni altri progetti (che non erano ibridi) e hanno convertito senza problemi a MVC2.
Inoltre ho disinstallato MVC1 per cercare di rimuovere i riferimenti ad esso dal GAC. Tuttavia, niente di tutto questo ha funzionato.
Tutte le idee?
Soluzione
Assicurati di avere il reindirizzamento vincolanti nel web.config:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Web.Mvc" />
</dependentAssembly>
</assemblyBinding>
</runtime>
This forze MVC 2 anche se MVC 1 è sulla macchina.
Inoltre: MVC 1 ha uno spazio dei nomi System.Web.Mvc
, quindi assicuratevi di avere anche:
<assemblies>
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Altri suggerimenti
mi sono imbattuto in qualcosa di simile e la soluzione era quella di cambiare il riferimento alla Microsoft.Web.Mvc alla copia locale è stata impostata su true.
ho avuto lo stesso errore e cliccando il dettaglio di collegamento errore di compilazione nella pagina mostrato problemi con System.Web.Helpers
, .Http,
e .WebPages
.
Dopo il backup del sistema che ha funzionato update-package -reinstall
' e costretto una disinstallazione / reinstallazione di tutti i pacchetti. Questo file web.config costretto a ricostruire correttamente e sezioni dependentAssembly
sono stati costruiti a destra.
Dopo aver ricostruito la soluzione ha funzionato prima volta.
Nota, ha aggiunto la seguente sezione providers
male al web.config.
<contexts>
<context type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</contexts>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
Questo genera solo un avviso di compilazione, ma ho fatto elimina in favore dell'elemento contexts
precede.