web-dev-qa-db-fra.com

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

18
Dani Petrick

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>
15
amighty

Si vous suivez le Pro ASP.NET MVC 5 , procédez comme suit pour résoudre le problème:

  1. Dans votre arborescence de projet sous VS, cliquez avec le bouton droit de la souris sur References et allez à Manage NuGet Packages.
  2. Allez à 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, nuget.org.
  5. Mettez à jour tous les modules, en particulier Microsoft ASP.NET MVC.
7
mihai

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.

3
Tony

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 

1
Basheer AL-MOMANI

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. 

0
Rob Bowman

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

0
VivekDev

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.

0
RKS