Ninject bląd serwera aplikacji

0

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

0

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

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

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

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

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

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" />
2
  1. 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ę.
0

Update-package pomogło! Teraz pytanie, czemu? ;>

1

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?

0

Dzięki wielkie za pomoc :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.