Je développe une application Windows Forms à l'aide de Visual Studio 2008 C# qui utilise une base de données SQL Server Compact 3.5 sur le client. Le client sera probablement Windows 32 bits XP ou Windows Vista. J'utilise un projet Windows Installer standard qui crée un fichier MSI et setup.exe pour installer l'application sur un ordinateur client. Je suis nouveau à SQL Server Compact, donc je n'ai pas eu à distribuer une base de données client comme ça avant maintenant. Quand je lance le setup.exe (sur le nouveau Windows XP 32 bits avec SP2 et Internet Explorateur 7), il installe très bien, mais quand je lance l'application que je reçois cette erreur:Erreur SQL Server Compact: Impossible de charger la DLL 'sqlceme35.dll'. Le module spécifié est introuvable
Unable to load DLL 'sqlceme35.dll'. The specified module could not be found
J'ai passé quelques heures Je cherchais déjà cette erreur, mais tout ce que je pouvais trouver étaient des problèmes liés à l'installation sur Windows 64 bits et aucun problème lié à l'utilisation normale de 32 bits.
L'application d'installation copie tous les fichiers dépendants qu'elle a trouvés dans le répertoire d'installation spécifié, y compris le fichier System.Data.SqlServerCe.dll
(assembly version 3.5.1.0). Le fichier de base de données est dans un répertoire appelé « données » hors du répertoire de l'application, et la chaîne de connexion car il est
<add name="Tickets.ieOutlet.Properties.Settings.TicketsLocalConnectionString" connectionString="Data Source=|DataDirectory|\data\TicketsLocal.sdf" providerName="Microsoft.SqlServerCe.Client.3.5" />
Quelques questions que j'ai:
- la demande devrait être en mesure de trouver la DLL fichier s'il se trouve dans le même répertoire, c'est-à-dire local à l'application, ou dois-je l'installer dans le GAC? (Si oui, puis-je utiliser Windows Installer pour installer un fichier DLL dans le GAC?)
- Y at-il autre chose que je dois distribuer avec l'application afin d'utiliser une base de données SQL Server Compact?
- Il existe également d'autres fichiers DLL, tels que MS Interop pour exporter des données vers Excel sur le client. Doivent-ils être installés dans le GAC ou les localiser dans le répertoire de l'application suffit-il?
Salut merci pour cela. Après les premières réponses ci-dessus j'ai passé quelques jours à regarder ClickOnce, mais je suis maintenant de retour à une solution MSI comme ClickOnce ne fonctionne pas très bien lors de la distribution d'une base de données compacte avec une application. Je n'ai pas résolu le problème d'origine mais j'ai essayé d'inclure le fichier .dlls. J'ai eu le sqlceme35.dll dans le répertoire de l'application la première fois, mais j'ai toujours l'erreur, donc je ne sais pas si l'erreur sera toujours là. –
Oui, j'espère que ça marchera. Nous avons une application client intelligente au niveau de l'entreprise déployée via click une fois et avec une base de données compacte sql embarquée avec des milliers d'utilisateurs finaux, et jusqu'à présent, cette solution nous a semblé la meilleure pour le déploiement et les mises à jour automatiques. –
En fait ça sonnait juste une cloche (ou devrais-je dire que ça cliquait quand vous avez dit que ... ohhh), je n'avais pas réalisé que vous déployiez via click une fois.Vérifiez également dans votre clic une fois les paramètres du projet si vous cliquez sur l'onglet Publier/Fichiers d'application et ensuite inclure la DLL SQL, ils seront déployés correctement, vous devrez peut-être vérifier tout afficher pour les voir. –