J'ai un projet de structure d'entité qui fonctionne bien sur ma machine, mais tombe quand il est exécuté à partir du réseau. Les modifications récentes apportées au projet incluent l’ajout de la DLL dynamique Linq (System.Linq.Dynamic).
Lorsque je le débogue du réseau, VS rapporte: The type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception
L'exception interne est la suivante: "Impossible de charger le fichier ou l'assembly 'EntityFramework, Version = 4.4.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089' ou l'une de ses dépendances. La définition du manifeste de l'assembly situé ne correspond pas à la référence de l'assembly. (Exception de HRESULT: 0x80131040) ":" EntityFramework, Version = 4.4.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089 "}
J'ai essayé les astuces habituelles: supprimer le répertoire packages
de la racine du projet, désinstaller et réinstaller à partir de la console du gestionnaire de packages, mais en vain.
Mon app.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="LGFinance.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
<!-- For more information on Entity Framework configuration, visit http://go.Microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
<connectionStrings>
<add name="LGFinanceEntities" connectionString="metadata=res://*/Model.LGFinanceContext.csdl|res://*/Model.LGFinanceContext.ssdl|res://*/Model.LGFinanceContext.msl;provider=System.Data.SqlClient; provider connection string='data source=lightning;initial catalog=DLGDB;Integrated Security=true;Password=******;multipleactiveresultsets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<applicationSettings>
<LGFinance.Properties.Settings>
<setting name="Setting" serializeAs="String">
<value />
</setting>
</LGFinance.Properties.Settings>
</applicationSettings>
<runtime>
<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Windows.Interactivity" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Est-ce que quelqu'un peut signaler ce que j'ai mal fait?
Entity Framework 5.0 est répertorié dans votre fichier App.config. Certains projets de votre code sont toujours liés à EF 4.4 et devraient le trouver dans le fichier App.config.
Voici ce qui est probablement arrivé: Vous avez installé EF 5.0 sur un projet construit avec .NET 4.0, ce qui rend la version de EF 4.4 au lieu de 5.0 (étant donné que la version 5.0 ne concerne que .NET 4.5). Si vous avez essayé de passer le projet à .NET 4.5 plus tard, vous aurez toujours EF 4.4 sur ce projet. Cela vous obligerait à réinstaller EF sur ce projet pour avoir la référence correcte à EF 5.0.
Donnez un coup de feu et laissez-moi savoir si cela fonctionne.
La version correcte de EF doit d'abord être installée sur tous les projets, puis vérifiez les éléments suivants dans le fichier App.config.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<connectionStrings>
<add name="SchedulingContext" connectionString="Data Source=XXX\SQL2008R2DEV;Initial Catalog=YYY;Persist Security Info=True;User ID=sa;Password=XXX" providerName="System.Data.SqlClient"/>
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
J'ai tout essayé, après avoir simplement retiré les fournisseurs suivants, cela a fonctionné pour moi
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
Je pourrais résoudre ce problème en installant: Outils Entity Framework 6 pour Visual Studio 2012 et 2013 - http://www.Microsoft.com/en-gb/download/confirmation.aspx?id=40762
Cordialement, AM