2009-06-02 29 views
6

Próbując przeprowadzić debugowanie w środowisku ASP.NET MVC 1.0, postępowałem zgodnie z instrukcjami, takimi jak these, zasadniczo usunąłem odniesienie do system.web.mvc z mojego projektu WWW i dodałem zamiast tego pobrany przeze mnie projekt źródłowy.Debugowanie źródła ASP.NET MVC?

Teraz mam ten problem,

typu 'System.Web.Mvc.FormMethod' istnieje w obu „C: \ Windows \ assembly \ GAC_MSIL \ System.Web.Mvc \ 1.0 .0.0__31bf3856ad364e35 \ System.Web.Mvc.dll "oraz w mojej AppData \ Local \ Temp \ Temporary ASP.NET Pliki \ root \ dbcbb149 \ 897fc019 \ assembly \ dl3 \ 796c00fb \ f345f2d6_abe3c901 \ System.Web.Mvc.DLL "

Próbowałem komentować następujące z web.config

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

ale to dać błąd różnicy

typu „System.Web.Mvc.Controller” jest zdefiniowana w zespole, który nie jest odwoływać. Należy dodać odniesienie do zespołu "System.Web.Mvc, Wersja = 1.0.0.0, Culture = neutralny, PublicKeyToken = 31bf3856ad364e35 '.

Czy ktoś może pomóc w tym, co dzieje się nie tak i jak to naprawić. Dziękuję Ci bardzo!

Promień.

+0

Wygląda na to, że masz kopię w Koszu iw GAC. Czy masz kopię System.Web.Mvc w folderze bin (upewnij się, że przeglądasz wszystkie pliki) –

+0

Odwołuję się do projektu źródłowego, więc po kompilacji będzie kopia w moim bin. –

Odpowiedz

1

Czy zespoły system.web.mvc znajdują się w GAC? być może trzeba będzie je usunąć ... to oczywiście może zepsuć przyszłe projekty, ponieważ szablony projektów będą prawdopodobnie zakładać, że są w gac.

Możesz również spróbować użyć funkcji <assemblyBinding> jako described here, aby wskazać elementy mvc do wersji, którą właśnie uruchomiłeś.

+0

Tak, zainstalowałem mvc przy użyciu Web PI, więc jest w GAC. Czy istnieje prostszy sposób rozwiązania tego problemu. Naprawdę nie chcę usunąć go z GAC ani go odinstalować. –

1

Zakładając, że w pełni kwalifikowana nazwa zestawu, z którym łączysz, różni się od nazwy w GAC, użyj <QualifyAssembly> element i określ, do którego wirtualnie linkujesz. Jeśli nie, zmień swoje lokalne źródło, aby zmienić zestaw MVC, który budujesz na 1.0.0.1, więc jest inny.

Edytuj: Sprawdź dokładnie, jak połączyć. To zadziałało dla mnie.

  1. usunięto odniesienie do system.web.mvc w moim projekcie.
  2. Dodano projekt System.Web.Mvc ze źródła.
  3. Skomentuj odniesienie do System.Web.Mvc w pliku web.config mojego projektu.
  4. zmodyfikował plik System.we.b.mvc /Views/Web.Config zgodnie z opisem w opisie.
  5. Płynął bezbłędnie.
+1

Nie bardzo wiem, jak to działa, czy masz dokładnie linię, której mógłbym użyć, aby to działało. Próbowałem zmienić to na 1.0.0.1, tak naprawdę nie działało. –

+0

Zobacz odpowiedź Richarda i prawdopodobnie będziesz musiał zaktualizować informacje o zespole dla projektu mvc, aby wersja była inna niż w GAC. – hometoast

+0

Zgodnie z artykułem Codeville upewnij się, że odniesienie do projektu system.web.mvc jest ustawione "Kopiuj lokalnie" na "true" – hometoast

0

do zakwalifikowania części montażowej chcesz coś takiego (robimy to dla zespołu SQLite):

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <qualifyAssembly partialName="System.Data.SQLite" fullName="System.Data.SQLite, Version=1.0.60.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 
    </assemblyBinding> 
    </runtime> 
0

Zapraszamy do obejrzenia tego artykułu Kompletny poradnik jak setup MVC source.

Istnieją dwa pliki web.config, które należy zaktualizować. Jeden znajduje się w folderze projektu MVC, a drugi w folderze Widoki. Prawdopodobnie zapomniałeś zaktualizować tę ostatnią. W przeciwnym razie należy wykonać powyższy artykuł.

+0

odczytuje i wykonuje go, web.config w moim widoku różni się od tego w artykule –

0

Nieco bardziej wszechstronna wersja instrukcji Steve Sandersons can be found here.

Wyjaśnia, w jaki sposób można również uwzględnić Futures MVC w debugowaniu.