Korzystanie z C #, Visual Studio 2010.
Istnieje przestrzeń nazw o nazwie System.Web.Mvc udokumentowana w witrynie MSDN. Dokumentacja dla wszystkich typów w tej przestrzeni nazw mówi, że są w System.Web.Mvc.dll
.
Jednak kiedy przechodzę do Add Reference, zakładka „.NET”, tego zestawu brakuje na liście. Czemu?
Odpowiedzi:
W VS Express 2012 nie mogłem znaleźć System.Web.Mvc w zakładce "zestawy", ale po krótkich poszukiwaniach stwierdziłem, że muszę zajrzeć do zakładki " zestawy \ rozszerzenia " zamiast domyślnych "zestawów \ frameworku" ”.
źródło
Could not load file or assembly...The located assembly's manifest definition does not match the assembly reference
). Mam inny projekt w moim rozwiązaniu, który odwołuje się do innej wersji, a ta metoda pozwoliła mi tylko dodać odwołanie do System.Web.Mvc, Version = 4.0.0.0. Metoda instalacji NuGet dodała poprawną wersjęNajlepszym sposobem jest użycie menedżera pakietów NuGet.
Po prostu zaktualizuj poniższy pakiet MVC i powinien działać.
źródło
Miałem ten sam problem i nie mogłem zlokalizować zestawu referencyjnego System.Web.MVC.
W końcu się dowiedział i znajdował się w następującej lokalizacji.
Uwaga, jeśli twój VS został zainstalowany w C: (czasami MVC.dll nie znajduje się w domyślnej lokalizacji, o której wszyscy mówią, mam na myśli folder „ Reference Assemblies ” znajdujący się na dysku C :) .
jeśli go tam nie ma, zdecydowanie powinno być tutaj:
\ Program Files (x86) \ Microsoft ASP.NET \ ASP.NET MVC 2 \ Assemblies \ System.Web.Mvc.dll
Więc dodaj bibliotekę dll za pomocą nawigacji lub karty przeglądania w menu dodawania odwołań.
źródło
Możesz również dodać to z konsoli Menedżera pakietów Nuget, na przykład:
Install-Package Microsoft.AspNet.Mvc -Version 4.0.20710.0 -ProjectName XXXXX
Microsoft.AspNet.Mvc ma zależności od:
... co wydaje mi się mało ważne. W naszym przypadku jest to biblioteka klas, która istnieje wyłącznie w celu zapewnienia wsparcia dla naszych aplikacji Mvc. Więc uważamy, że w najgorszym przypadku jest to łagodna zależność.
Zdecydowanie wolę to niż wskazywanie na zestaw w systemie plików lub w GAC, ponieważ aktualizacja pakietu w przyszłości prawdopodobnie będzie o wiele mniej bolesna niż doświadczenia, które miałem z odniesieniami do GAC i zestawów systemu plików w przeszłości.
źródło
Miałem ten sam problem i oto zabawny powód: Domyślam się, że spodziewasz
System.Web.Mvc
się, że znajdziesz się podSystem.Web
listą. Ale lista nie jest alfabetyczna.Najpierw posortuj listę, a następnie spójrz w pobliżu
System.Web
.źródło
Powinien tam być. Domyślnie lista dodawania odniesień wydaje się być uporządkowana, ale tak nie jest. Naciśnij nagłówek nazwy i spójrz ponownie.
źródło
Sprawdź ten krok:
Uwaga : jeśli struktura docelowa jest ustawiona na .Net Framework 4 Client Profile, nie będzie wyświetlać referencji MVC na liście referencji. Różnice między .Net Framework 4 a .Net Framework 4 Client Profile można znaleźć tutaj .
źródło
Rozwiązałem ten problem, wyszukując „mvc”. System.Web.Mvc pojawił się w wynikach wyszukiwania, mimo że nie ma go na liście.
źródło
Żądany zestaw pojawił się teraz na liście.
Mogę tylko spekulować, co spowodowało jego pojawienie się, ale podejrzewam, że jest to fakt, że wybrałem Plik → Nowy → Projekt → Aplikacja internetowa ASP.NET , czego nigdy wcześniej nie robiłem. Możliwe, że spowodowało to jakąś późną inicjalizację i zapełnienie listy dodatkowymi zestawami do tworzenia stron WWW.
źródło
Zmieniło się to w przypadku Visual Studio 2012 (wiem, że pierwotne pytanie brzmi VS2010, ale tytuł nadal będzie trafiał w wyszukiwaniach).
Podczas tworzenia projektu VS2012 MVC plik system.web.mvc jest umieszczany w folderze pakietów, który jest równorzędny z rozwiązaniem. Będzie to domyślnie wskazywane w projekcie sieci Web i możesz znaleźć tam dokładną ścieżkę).
Jeśli chcesz odwołać się do tego w drugorzędnym projekcie (na przykład wspierający plik .dll z filtrami lub innymi atrybutami), możesz odwołać się do niego z tego miejsca.
źródło
Nie dostałem System.Web.Mvc w VS 2012, ale dostałem go w VS 2013. Używając AddReference Dialog,
Lub możesz to znaleźć na ścieżce projektu,
YourProjectName \ packages \ Microsoft.AspNet.Mvc.5.0.0 \ lib \ net45 \ System.Web.Mvc.dll
źródło
Wierzę, że stwierdzisz, że zestaw MVC jest przywoływany w pliku web.config, a nie w samym projekcie.
Coś takiego:
<compilation debug="true" targetFramework="4.0"> <assemblies> <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </assemblies> </compilation>
Aby odpowiedzieć na Twój komentarz;
Najlepsza odpowiedź, jaką mogę udzielić, jest tutaj :
źródło
może być zainstalowany osobno i nie jest uwzględniony w framwork, wybierz listę zakładek "rozszerzenia" i istnieje jest tam i więcej innych bibliotek, wszystko jest w porządku, nie jest potrzebne do używanych starych bibliotek itp., istnieje stare 20 30 i 4001
źródło
Jeśli napotkasz ten problem w programie Visual Studio 2017, prawdopodobnie pracujesz z projektem MVC 4 utworzonym w poprzedniej wersji programu VS z wskazującą ścieżką wskazówki odniesienia
C:\Program Files (x86)\Microsoft ASP.NET
. Program Visual Studio 2017 nie instaluje już tego katalogu.Zwykle rozwiązujemy ten problem, instalując kopię programu Visual Studio 2015 wraz z naszym wystąpieniem 2017 i instalując niezbędne biblioteki w powyższej ścieżce. Następnie aktualizujemy wszystkie odniesienia w projektach, których dotyczy problem i możemy zaczynać.
źródło