Entité Framewok le Premier Code “ADO.NET le fournisseur n'est pas trouvé” locale de SQL Server CE DLL

Je suis en train d'écrire une application en C# qui utilise SQL Server CE 4.0 fichiers, qui sont accessibles via Entity Framework 6.0 via le code-première. (L'application doit être en mesure d'utiliser les dll for SQL Server CE connexion c'est à dire l'application doit être XCOPY déployable). L'application fonctionne très bien sur ma machine de développement, mais sur d'autres machines (par exemple, VMs avec juste Win7 et .NET 4.0), je reçois un ArgumentException:

L'ADO.NET fournisseur de invariante nom de "Système".Les données.SqlServerCe.4.0' est pas enregistré dans la machine ou le fichier de config, ou n'a pas pu être chargé. Voir l'exception interne pour plus de détails.

L'exception interne message dit:

Incapable de trouver la demande .Net Framework Fournisseur De Données. Il ne peut pas être installé.

J'ai cherché sur Google et SI la plupart de ces commentaires indiquent assurer l'Application.fichier de configuration est correcte. Je crois que le mien est (connexion par défaut d'usine et fournisseur d'articles), mais en voici le contenu:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
  </startup>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="System.Data.SqlServerCe.4.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />
    </providers>
  </entityFramework>
</configuration>

Le dossier de génération comprend les fichiers suivants (en plus de l'application fichiers spécifiques, bien sûr):

  • EntityFramework.dll
  • EntityFramework.xml
  • EntityFramework.SqlServer.dll
  • EntityFramework.SqlServer.xml
  • EntityFramework.SqlServerCompact.dll
  • EntityFramework.SqlServerCompact.xml

Dans chacun des x86, amd64 et sous-dossiers sont les fichiers suivants:

  • sqlceca40.dll
  • sqlcecompact40.dll
  • sqlceer40EN.dll
  • sqlceme40.dll
  • sqlceqp40.dll
  • sqlcese40.dll

Je suis certain que le programme s'exécute sur la machine de développement, car SQL Server CE qui a été installé, mais comment puis-je le faire fonctionner à l'aide de seulement locale de SQL Server CE dll sur d'autres machines?

Voir mon blog ici: erikej.blogspot.dk/2013/11/...
ErikEJ: j'ai raté votre commentaire et suis allé à la les réponses, mais il semble que vous avez la réponse. Cela ressemble à un tutoriel complet pour quiconque de commencer à partir de zéro.
après la mise à jour .net framework 4.5.2 le projet de pauses. p.s j'ai téléchargé votre projet et qui donne la même erreur aussi
avez-vous utiliser mon approche mise à jour?
non, je didnot, ressemble pourrait aider. merci

OriginalL'auteur Tim | 2013-12-13