Je travaille avec EF . J'essaie d'exécuter cette ligne
public ActionResult Edit(string id)
{
return View(obj.FindSemesterById(id));
}
J'ai installé EF Version 5 sur mon projet.
Mais je reçois cette erreur:
Impossible de charger le fichier ou l'assembly 'EntityFramework, Version = 6.0.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089 'ou l'une de ses dépendances. L'assemblée localisée La définition du manifeste ne correspond pas à la référence Assembly. (Exception de HRESULT: 0x80131040)
Mon fichier web.config:
<?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=169433
-->
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.Microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="EducationDBEntities" connectionString="metadata=res://*/EducationModel.csdl|res://*/EducationModel.ssdl|res://*/EducationModel.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=EducationDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
</configuration>
Dans la section des commentaires, il semble que vous n’ayez pas été en mesure d’installer la dernière version de EF à partir de la source publique NuGet car votre ordinateur n’a pas directement accès à Internet et n’a pas pu résoudre le domaine www.nuget.org
. Normalement, si vous configurez un proxy dans vos paramètres Internet, Visual Studio l'utilisera lors de l'installation d'un NuGet à partir du référentiel public.
Ainsi, une fois que vous aurez installé le dernier paquet EF 6.1.0
dans votre projet, l’erreur disparaîtra. Actuellement, vous semblez utiliser une version plus ancienne du package et votre solution requiert des projets v6.
Commencez par vérifier quelle version de EF vous utilisez.
Vous pouvez mettre à jour la version EF à partir de NuGet
Manage Pack.
Allez dans votre solution de projet -> "Gérer le paquet NuGet pour la solution", cliquez sur "Gérer" dans "Entity Framework".
et aussi vérifier votre app.config
. Peut-être que le mauvais numéro de version est mentionné ici.
Modifier:
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
Il fait référence à EF Version 5.0.0.0
Ouvert
Toos > Nuget Package Manager > Package Manager Console
puis courez
PM> install-package entityframework -version 6.0.0.0
Ou vous pouvez le mettre à jour à la dernière version en utilisant la commande ci-dessous
PM> Update-Package entityframework
J'ai rencontré le même problème aujourd'hui. J'ai eu 3 projets dans une solution dont deux avaient EF 6.0.0.0
et l'un d'entre eux avait 5.0.0.0
. J'ai mis à niveau la version de ce projet lorsque j'ai trouvé ce problème. L'erreur est partie.
Remarque: Je suis simplement allé dans le dossier References
de chaque projet et j'ai vu les propriétés de EntityFramework
pour connaître la version de Entity.
Utilisez Nuget pour désinstaller EF, puis ajoutez-le à nouveau. Nettoyez et reconstruisez votre projet. La partie "désinstallation" dans mon cas était critique, j'ai fait beaucoup de réinstallations et mises à jour et rien.
J'ai rencontré le même problème et la même erreur que vous avez mentionné.
Je l'ai résolu différemment. J'ai remarqué qu'EntityFramework.dll avait été ajouté au dossier packages sous Explorateur de solutions . J'ai donc copié EntityFramework.dll de ce dossier dans le dossier bin sous Explorateur de solutions et cela a fonctionné . Je sais que ce n'est pas votre réponse. peut être utile à d'autres, alors je viens de l'ajouter.
J'ai eu le même problème, et en regardant les réponses ici m'a donné un indice. Ma solution comporte quatre projets. Il s’agit d’un ordinateur différent de celui sur lequel j’ai créé pour la première fois, j’ouvre donc Outils, puis Gestionnaire de paquets NuGet, clique sur «Gérer les paquets NuGet pour la solution, trouve Entity Framework et l’a cliqué une fois. Cliquez ensuite sur le bouton Gérer qui apparaît.
NuGet a proposé d'installer EF sur l'un de mes projets dans la solution. C'est ce que j'ai fait. C'est à ce moment que j'ai commencé à avoir cette erreur.
Revenir à NuGet et cocher les cases pour installer EF dans les quatre projets de la solution a résolu le problème.
Heureux à nouveau!