J'ajoute un projet Ninject in MVC à l'aide des commandes suivantes dans la console du gestionnaire de package:
Install-Package Ninject -version 3.0.1.10
Install-Package Ninject.Web.Common -version 3.0.0.7
Install-Package Ninject.MVC3 -Version 3.0.0.6
Lorsque je lance l'application, j'obtiens une erreur comme ceci:
Impossible de charger le fichier ou l'assembly 'System.Web.Mvc, Version = 3.0.0.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35 'ou l'une de ses dépendances. La définition du manifeste de l'Assemblée localisée ne correspond pas à la référence de l'Assemblée. (Exception de HRESULT: 0x80131040)
Mettre à jour le fichier web.config de l'application
Veillez à effectuer ces modifications dans le fichier web.config de l'application et non dans le fichier web.config du dossier Vues.
<runtime>
<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Si vous suivez le Pro ASP.NET MVC 5 , procédez comme suit pour résoudre le problème:
References
et allez à Manage NuGet Packages
.Online
, nuget.org
et recherchez ninject.Ninject
, Ninject.Web.Common
et Ninject.MVC5
(le livre dit d’installer MVC3
).Manage NuGet Packages
(à partir de l'étape 1), accédez à Updates
, nuget.org
.Microsoft ASP.NET MVC
.J'ai un projet Microsoft ASP.NET Web API 2.2
qui utilise Ninject.
Pour résoudre le problème, je dois installer NuGet Package Microsoft ASP.NET MVC 4
pour mon projet car Ninject nécessite System.Web.Mvc
. Ce faisant, Visual Studio ajoutera System.Web.Mvc
à la référence du projet.
En outre, vous devez définir Copy Local
= True pour la propriété de référence System.Web.Mvc
, de sorte que la DLL soit copiée dans le dossier Bin
. La DLL ne vient pas avec .NET Framework standard. Cela fait partie du package ASP.NET MVC.
si amighty Answer n'a pas fonctionné avec vous, essayez ceci.
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
cette solution est venue après avoir lutté avec cette erreur pendant de longues heures
Dans mon cas, l’assemblée manquante était déjà incluse en tant que référence au projet. J'ai résolu en le sélectionnant puis en définissant sa propriété "Copier en local" sur True. J'ai "publié" mon projet sur IIS à l'aide de Web-deploy à partir de Visual Studio. Cette fois, l’Assemblée a été copiée dans le dossier\bin du site Web.
J'ai développé les références et quand j'ai survolé System.Web.Mvc, j'ai constaté que sa version est 4.0.0.1. Et son chemin est étrangement C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies. Mon packages.config a montré que le package de nuget correspondant est Microsoft.AspNet.Mvc.5.2.3. La référence semble être fausse. Donc supprimé la référence du projet. Ensuite, désinstallez le paquet de nuget à l'aide de la commande suivante.
uninstall-package Microsoft.AspNet.Mvc -force
Notez la force dans la commande.
Puis je l'ai réinstallé avec la commande suivante
install-package Microsoft.AspNet.Mvc -version 5.2.3.0
Maintenant, je me suis assuré que la DLL référencée pointe correctement vers le nuget un
D:\Vivek\Code1\Sept17\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll
Maintenant, quand j'ai couru, j'ai découvert un problème similaire avec System.Web.Webpages.Razor (nuget Microsoft.AspNet.WebPages) et System.Web.Razor (nuget Microsoft.AspNet.Razor). J'ai donc également supprimé ceux-ci et réinstallé les paquets de nuget correspondants.
Puis cela a finalement fonctionné.
Je faisais face à ce problème avec ma demande.
Dans ma solution, nous avions un projet d'application Web et un projet Web-api. L'application Web consommait l'api Web.
La solution à mon problème était que la version de la DLL Mvc dans l'application Web était différente de celle du projet web-api. Donc, chaque fois que j'essayais de frapper la web-api, cela provoquait une erreur. Je me suis assuré que les deux projets ont la même version dvc MVV et que tout a commencé à bien fonctionner. Vous pouvez utiliser NuGet Package Manager pour cela.
Il suffit de le mentionner pour la référence des autres qui pourraient faire face à un scénario similaire.