Il tipo o dello spazio dei nomi il nome 'MVC' non esiste nello spazio dei nomi 'System.Web'

StackOverflow https://stackoverflow.com/questions/2692007

  •  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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top