Witam
Uczę się ASP.NET MVC5 z książki Adama Freemana. Po dodaniu Ninjecta wyrzuca mi error przy linii " var kernel = new StandardKernel(); ". Dodane mam prez NuGet: Ninject, Ninject.MC5, Ninject.Web.Common, Ninject.Web.Common.WebHost.
Proszę o pomoc
Możesz podać jaki błąd otrzymujesz? Jeśli exception ma jakiegoś inner exception to jego treść także byłoby dobrze tutaj umieścić.
Nie można załadować pliku lub zestawu 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' lub jednej z jego zależności. Zlokalizowana definicja manifestu zestawu nie odpowiada odwołaniu do zestawu. (Wyjątek od HRESULT: 0x80131040)
Opis: Podczas wykonywania bieżącego żądania sieci Web wystąpił nieobsługiwany wyjątek. Aby uzyskać dodatkowe informacje o błędzie i miejscu jego występowania w kodzie, przejrzyj ślad stosu.
Szczegóły wyjątku: System.IO.FileLoadException: Nie można załadować pliku lub zestawu 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' lub jednej z jego zależności. Zlokalizowana definicja manifestu zestawu nie odpowiada odwołaniu do zestawu. (Wyjątek od HRESULT: 0x80131040)
Wygląda na to, że program próbuje załadować biblioteki MVC, ale w wersji 3. No i nie potrafi znaleźć. Sprawdź, czy na pewno masz zainstalowany w projekcie MVC5, czy na pewno masz zainstalowane w projekcie to: https://www.nuget.org/packages/Ninject.MVC5/ i czy w web.configu aplikacji którą tworzysz jest taki wpis:
<runtime>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</runtime>
Mam zainstalowany extension do MVC5. Nie mam takiego wpisu, mój web.config wygląda tak:
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=301880
-->
<configuration>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" />
</system.web>
</configuration>
Spróbuj w takim układzie dodać. Po dodaniu web.config powinien wyglądać tak:
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=301880
-->
<configuration>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" />
</system.web>
<runtime>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</runtime>
</configuration>
Dalej ten sam błąd...
W packages.config mam m.in takie wpisy:
<package id="Ninject" version="3.2.2.0" targetFramework="net451" />
<package id="Ninject.MVC5" version="3.2.1.0" targetFramework="net451" />
<package id="Ninject.Web.Common" version="3.2.3.0" targetFramework="net451" />
<package id="Ninject.Web.Common.WebHost" version="3.2.3.0" targetFramework="net451" />
- Tools-> Library Package Manager -> Package Manager Console, otwyrzy Ci się konsola na dole ekranu, wpisz w niej: Update-package i enter -> jak się skończy to wtedy spróbuj znowu.
Jeśli dalej ten błąd będzie występował to wejdź w "References" (po prawej w Solution Explorer) rozwiń to i znajdź ten MVC, następnie prawym przyciskiem->properties i zobacz jaka jest wersja, jeśli np. 4.0.0.0 a ty masz wpisane 3.0.0 to spróbuj to po prostu zmienić wpisując swoją wersję.
Update-package pomogło! Teraz pytanie, czemu? ;>
No pewnie dlatego że w pliku configuracyjnym miałeś wersję poprawną, ale wersja samego pliku już była inna - wcześniejsza. Bo nie wiem czy podmieniałeś pliki?
Dzięki wielkie za pomoc :)