Verwenden von C #, Visual Studio 2010.
Auf MSDN ist ein Namespace namens System.Web.Mvc dokumentiert. Die Dokumentation für alle Typen in diesem Namespace besagt, dass sie sich in befinden System.Web.Mvc.dll
.
Wenn ich jedoch zur Registerkarte "Referenz hinzufügen" auf der Registerkarte ".NET" gehe, fehlt diese Assembly in der Liste. Warum?
Antworten:
In VS Express 2012 konnte ich System.Web.Mvc nicht auf der Registerkarte "Assemblys" finden, aber nach einigem Suchen stellte ich fest, dass ich eher auf die Registerkarte " Assemblys \ Erweiterungen " als auf die Standardregisterkarte "Assemblys \ Framework" schauen muss "tab.
quelle
Could not load file or assembly...The located assembly's manifest definition does not match the assembly reference
) angezeigt . Ich habe ein anderes Projekt in meiner Lösung, das auf eine andere Version verweist, und diese Methode erlaubte mir nur, einen Verweis auf System.Web.Mvc, Version = 4.0.0.0, hinzuzufügen. Die NuGet-Installationsmethode fügte die richtige Version hinzuAm besten verwenden Sie den NuGet-Paketmanager.
Aktualisieren Sie einfach das folgende MVC-Paket und es sollte funktionieren.
quelle
Ich hatte das gleiche Problem und konnte die System.Web.MVC-Referenzbaugruppe nicht finden.
Endlich herausgefunden und es befand sich an der folgenden Stelle.
Hinweis: Wenn Ihr VS in C: installiert wurde: (Manchmal befindet sich die MVC.dll nicht an dem Standardspeicherort, über den alle sprechen. Ich meine den Ordner " Reference Assemblies " im Laufwerk C :)
Wenn es nicht da ist, sollte es definitiv hier sein:
\ Programme (x86) \ Microsoft ASP.NET \ ASP.NET MVC 2 \ Assemblies \ System.Web.Mvc.dll
Fügen Sie die DLL über die Navigation oder die Registerkarte Durchsuchen im Menü Referenz hinzufügen hinzu.
quelle
Sie können dies auch über die Nuget Package Manager-Konsole hinzufügen.
Microsoft.AspNet.Mvc hat Abhängigkeiten von:
... was mir kein Problem erscheint. In unserem Fall handelt es sich um eine Klassenbibliothek, die ausschließlich zur Unterstützung unserer Mvc-Apps dient. Wir glauben also, dass es im schlimmsten Fall eine harmlose Abhängigkeit ist.
Ich ziehe es definitiv vor, auf eine Assembly im Dateisystem oder im GAC zu verweisen, da das Aktualisieren des Pakets in Zukunft wahrscheinlich weniger schmerzhaft sein wird als die Erfahrungen, die ich mit den GAC- und Dateisystem-Assemblyreferenzen in der Vergangenheit gemacht habe.
quelle
Ich hatte das gleiche Problem und hier ist der lustige Grund: Ich vermute, dass Sie erwarten
System.Web.Mvc
, unterSystem.Web
in der Liste zu sein. Die Liste ist jedoch nicht alphabetisch.Sortieren Sie zuerst die Liste und schauen Sie dann in die Nähe von
System.Web
.quelle
Es sollte da sein. Standardmäßig scheint die Liste der hinzugefügten Referenzen geordnet zu sein, dies ist jedoch nicht der Fall. Klicken Sie auf die Namensüberschrift und schauen Sie erneut.
quelle
Überprüfen Sie diesen Schritt:
Hinweis : Wenn das Zielframework auf .NET Framework 4-Clientprofil festgelegt ist, wird die MVC-Referenz nicht in der Referenzliste aufgeführt. Sie können zwischen .NET Framework 4 und .NET Framework 4 Client Profile unterschiedlich finden hier .
quelle
Ich habe dieses Problem durch die Suche nach "mvc" gelöst. Das System.Web.Mvc wurde in den Suchergebnissen angezeigt, obwohl es nicht in der Liste enthalten ist.
quelle
Die gewünschte Baugruppe wurde jetzt in der Liste angezeigt.
Ich kann nur spekulieren, warum es angezeigt wurde, aber ich vermute, dass ich Datei → Neu → Projekt → ASP.NET-Webanwendung aufgerufen habe , was ich noch nie zuvor getan hatte. Es ist möglich, dass dies zu einer späten Initialisierung führte und die Liste mit zusätzlichen Assemblys für die Webentwicklung gefüllt wurde.
quelle
Dies hat sich für Visual Studio 2012 geändert (ich weiß, dass die ursprüngliche Frage VS2010 lautet, aber der Titel wird bei Suchvorgängen weiterhin angezeigt).
Wenn Sie ein VS2012-MVC-Projekt erstellen, wird die Datei system.web.mvc im Paketordner abgelegt, der der Lösung entspricht. Dies wird standardmäßig im Webprojekt referenziert und Sie können den genauen Pfad dort finden.
Wenn Sie dies in einem sekundären Projekt referenzieren möchten (z. B. eine unterstützende DLL mit Filtern oder anderen Attributen), können Sie von dort aus darauf verweisen.
quelle
Ich habe System.Web.Mvc in VS 2012 nicht erhalten, aber in VS 2013. Mit AddReference Dialog,
Oder Sie finden dies in Ihrem Projektpfad.
YourProjectName \ packages \ Microsoft.AspNet.Mvc.5.0.0 \ lib \ net45 \ System.Web.Mvc.dll
quelle
Ich glaube, Sie werden feststellen, dass auf die MVC-Assembly in der Datei web.config verwiesen wird, nicht im Projekt selbst.
Etwas wie das:
Um auf Ihren Kommentar zu antworten;
Die beste Antwort, die ich geben kann, ist von hier :
quelle
Es kann separat installiert werden und ist nicht in Framwork enthalten. Wählen Sie die Registerkartenliste "Erweiterungen" und es gibt dort und weitere andere Bibliotheken. Alles ist in Ordnung, um alte Bibliotheken usw. nicht zu verwenden. Es gibt alte 20 30 und 4001
quelle
Wenn Sie dieses Problem in Visual Studio 2017 haben, arbeiten Sie wahrscheinlich mit einem MVC 4-Projekt, das in einer früheren Version von VS erstellt wurde und auf das ein Referenzhinweispfad verweist
C:\Program Files (x86)\Microsoft ASP.NET
. Visual Studio 2017 installiert dieses Verzeichnis nicht mehr.Wir lösen dieses Problem normalerweise, indem wir eine Kopie von Visual Studio 2015 neben unserer 2017-Instanz installieren und die erforderlichen Bibliotheken im obigen Pfad installieren. Dann aktualisieren wir alle Referenzen in den betroffenen Projekten und es kann losgehen.
quelle