2010-04-22 12 views
9

Po konwersji aplikacji Hybrid MVC1 ASP.NET do MVC2 Dostaję następujący błąd podczas próby i uruchomić aplikację:typu lub obszaru nazwa „MVC” nie istnieje w przestrzeni nazw „system.Web”

typu lub obszaru nazwa „MVC” nie istnieje w obszarze nazw „system.Web” (? czy brakuje odwołania do zestawu)

allegeded winowajcą w pliku web.config jest System.Web.Mvc:

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

Do tej pory moje badanie doprowadziło mnie do przekonania, że ​​wersja 2 o f System.Web.Mvc nie jest zainstalowany lub nie został odebrany.

Próbowałem już utworzyć plik> Nowy projekt oparty na MVC 2 i to jest pobieranie nowej (v2) wersji MVC. Przekształciłem również kilka innych projektów (które nie były hybrydami) i przekonwertowałem bez problemu do MVC2.

Odinstaluj również MVC1, aby spróbować usunąć odniesienia do niego z GAC. Jednak nic z tego nie zadziałało.

Wszelkie pomysły?

Odpowiedz

9

Upewnij się, że wiązanie przekierować w Twojej 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> 

Zmusza MVC 2 nawet jeśli MVC 1 jest na maszynie.

również: MVC 1 ma System.Web.Mvc nazw, więc upewnij się, że masz również:

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

To była twoja druga sugestia o jawnym zadeklarowaniu przestrzeni nazw System.Web.Mvc pod złożonymi zestawami. Dzięki Craig - docenione! – Guy

2

natknąłem somthing podobne i rozwiązaniem było zmienić odniesienie do Microsoft.Web.Mvc tak Copy Local został ustawiony na True.

0

Miałem ten sam błąd i kliknięcie linku błędu kompilacji na stronie pokazało problemy z System.Web.Helpers, .Http, i .WebPages.

Po wykonaniu kopii zapasowej systemu uruchomiłem update-package -reinstall "i wymusiłem odinstalowanie/ponowne zainstalowanie wszystkich pakietów. Zmusiło to do ponownego zbudowania pliku web.config, a sekcje dependentAssembly zostały zbudowane poprawnie.

Po przebudowie rozwiązanie uruchomiono po raz pierwszy.

Uwaga: dodano następujący zły kod providers do pliku web.config.

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

Generuje to tylko ostrzeżenie kompilacji, ale nie usunąć go na rzecz poprzedzających contexts elementu.

Powiązane problemy