Impossible de charger le fichier ou l’assembly ‘System.Web.Mvc, Version = 3.0.0.0’ ou l’une de ses dépendances

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:

  1. Dans l’arborescence de votre projet dans VS, cliquez avec le bouton droit de la souris sur References et sélectionnez Manage NuGet Packages .
  2. Allez sur Online , nuget.org et recherchez ninject.
  3. Installez Ninject , Ninject.Web.Common et Ninject.MVC5 (le livre dit d’installer MVC3 ).
  4. Dans le menu Manage NuGet Packages (à partir de l’étape 1), accédez à Updates à Updates , nuget.org .
  5. Mettez à jour tous les modules, en particulier 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.