Der Typ oder Namespace-Name ‚Mvc‘ existiert nicht im Namensraum ‚System.Web‘
-
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?
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.