Le type ou le nom namespace « Mvc » n'existe pas dans l'espace de noms « System.Web »

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

  •  01-10-2019
  •  | 
  •  

Question

Après la conversion d'une application hybride ASP.NET MVC1 à MVC2 Je reçois l'erreur suivante quand je tente de lancer l'application:

Le type ou le nom namespace 'Mvc' n'existe pas dans l'espace de noms 'System.Web' (vous manque une référence d'assemblage?)

Le coupable allegeded dans le fichier web.config est System.Web.Mvc:

<namespaces>
    <add namespace="System.Web.Mvc"/>
    <add namespace="System.Web.Mvc.Ajax"/>
    <add namespace="System.Web.Mvc.Html"/>

Jusqu'à présent, mon enquête me semble conduire à croire que la version 2 de System.Web.Mvc n'est pas installé ou n'a pas été repris.

Je l'ai essayé de créer un fichier> Nouveau projet basé sur MVC 2 et de ramasser la nouvelle version (v2) de MVC. Je suis également converti d'autres projets (qui n'étaient pas hybrides) et ils ont converti sans problème MVC2.

Je l'ai aussi désinstallée MVC1 pour essayer de supprimer les références à ce du GAC. Cependant, rien de tout cela a fonctionné.

Toutes les idées?

Était-ce utile?

La solution

Assurez-vous que la redirection de liaison dans votre 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>

forces MVC 2, même si MVC 1 est sur la machine.

Aussi: MVC 1 a un espace de noms System.Web.Mvc, alors assurez-vous aussi avez:

  <assemblies>
    <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

Autres conseils

Je suis tombé sur quelque chose de similaire et la solution a été de changer la référence à Microsoft.Web.Mvc à la copie locale a été définie sur True.

J'ai eu la même erreur et en cliquant sur le lien d'erreur de compilation détaillée dans la page montré des problèmes avec System.Web.Helpers, .Http, et .WebPages.

Après avoir sauvegardé le système que je couru update-package -reinstall » et forcé une désinstallation / réinstallation de tous les paquets. Cela a forcé le fichier web.config à reconstruire correctement et les sections de dependentAssembly ont été construits à droite.

Après la reconstruction de la solution, il a couru première fois.

Note, il a toutefois ajouté la section mauvaise providers suivante au 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>

Cela ne génère un avertissement de construction, mais je l'ai fait enlever en faveur de l'élément contexts précédent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top