J’ajoute un projet Ninject in MVC à l’aide des commandes suivantes dans la console de Package Manager:
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
Quand j’exécute 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’assembly localisé ne correspond pas à la référence de l’assembly. (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.
Si vous suivez Pro ASP.NET MVC 5 , procédez comme suit pour résoudre le problème:
References
et sélectionnez 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
à 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 le package NuGet Microsoft ASP.NET MVC 4
pour mon projet car Ninject requirejs System.Web.Mvc
. Ce faisant, Visual Studio appenda System.Web.Mvc
à la référence du projet.
En outre, vous devez définir Copy Local
= True pour la propriété de la référence System.Web.Mvc
afin que la DLL soit copiée dans le dossier Bin
. La DLL ne vient pas avec .NET Framework standard. Il fait partie du package ASP.NET MVC.
Si la réponse d’amighty n’a pas fonctionné avec vous, essayez ceci
cette solution est venue après avoir lutté avec cette erreur pendant de longues heures
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 bash la web-api, cela provoquait une erreur. Je viens de m’assurer 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 être confrontés à un scénario similaire.
J’ai développé les références et lorsque 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 en utilisant 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é.
Dans mon cas, l’assemblage manquant était déjà inclus en tant que référence au projet. J’ai résolu en le sélectionnant puis en définissant sa propriété “Copy Local” sur True. J’ai “publié” mon projet sur IIS à l’aide de Web-deploy à partir de Visual Studio. Cette fois, l’assemblage a été copié dans le dossier \ bin du site Web.