Der Typ oder Namespace-Name ‚Mvc‘ existiert nicht im Namensraum ‚System.Web‘

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

  •  01-10-2019
  •  | 
  •  

Frage

ein Hybrid ASP.NET MVC1 App MVC2 Nach der Konvertierung erhalte ich die folgende Fehlermeldung, wenn ich versuche und die Anwendung ausführen:

Der Typ oder Namespace-Name ‚Mvc‘ existiert nicht im Namensraum ‚System.Web‘ (werden Sie eine Assembly Referenz fehlt?)

Der allegeded Täter in der Datei web.config ist System.Web.Mvc:

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

Bisher meine Untersuchung scheint mich zu führen, dass die Version 2 von System.Web.Mvc zu glauben, ist nicht installiert oder wurde nicht abgeholt.

Ich habe versucht, eine Datei> Neues Projekt erstellen basierend auf MVC 2 und die Kommissionierung die neue (v2) Version von MVC auf. Ich habe konvertiert auch einige andere Projekte (die waren nicht Hybriden) und sie haben ohne Problem zu MVC2 umgewandelt.

Ich habe auch MVC1 deinstalliert, um zu versuchen, und entfernen Sie Verweise auf sie aus dem GAC. Doch keines dieser gearbeitet hat.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Vergewissern Sie sich, um die Bindung Umleitung in 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>

Dies zwingt MVC 2 selbst wenn MVC 1 auf der Maschine ist.

Auch: MVC 1 hat einen System.Web.Mvc Namespace haben, so stellen Sie sicher, dass Sie auch haben:

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

Andere Tipps

Ich kam über etwas ähnliches, und die Lösung wurde der Verweis auf Microsoft.Web.Mvc auf Copy Local eingestellt wurde auf True ändern.

Ich hatte den gleichen Fehler und klicken Sie auf den detaillierten Kompilierungsfehler Link auf der Seite zeigte Probleme mit System.Web.Helpers, .Http, und .WebPages.

Nachdem das System die Sicherung lief ich update-package -reinstall‘und gezwungen, eine Deinstallation / Neuinstallation aller Pakete. Dies zwang die web.config-Datei korrekt wieder aufgebaut werden und die dependentAssembly Schnitte wurden direkt aufgebaut.

Nach dem Wiederaufbau der Lösung lief es erstmals.

Beachten Sie, es hat die folgenden schlechten providers Abschnitt der web.config hinzufügen.

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

Dies erzeugt nur eine Build-Warnung, aber ich habe es zugunsten des vorhergehenden contexts Elements zu entfernen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top