2009-06-05 6 views
1

J'ai une application C# Windows Mobile créée à l'origine dans VS2005 qui a été utilisée pour créer une base de données de test. Cependant, maintenant que j'ai inclus le code C# dans un VS2008 projet et re-configuration des références SQL, je reçois l'erreur suivante:System.TypeLoadException dans le module inconnu avec SQL Server CE

Une exception non gérée du type « System.TypeLoadException » a eu lieu dans module inconnu.

Informations complémentaires: Nom du fichier ou l'assembly 'System.Data.SqlServerCe, Version = 3.5.0.0, Culture = neutral, PublicKeyToken = 3BE235DF1C8D2AD3', ou l'une des ses dépendances, n'a pas été trouvé.

Le chemin de référence semble être bon. Des idées?

Merci,

+1

Avez-vous lâché et lu la référence? –

+0

J'ai le même problème. La suppression et l'ajout de la référence donnent les mêmes résultats. – NitroxDM

Répondre

0

Avez-vous mis votre projet un Compact Framework .Net 3.5 projet? J'imagine que s'il est encore en cours de chargement en tant que projet 2.0, il aura des problèmes pour charger les assemblages depuis le framework 3.5.

5

Essayez de supprimer et de lire la référence.

Un rapide coup d'œil à mon GAC montre que la bibliothèque d'avoir une mauvaise PublicKeyToken

Assembly:   System.Data.SqlServerCe 
Culture:   Neutral 
Version:   3.5.0.0 
Public Key Token: 89845dcd8080cc91 

Après un rapide Google, il semble que votre référencement la version de la plate-forme de bureau au lieu de la version de la plate-forme de l'appareil.

Voir ce post ici

http://social.msdn.microsoft.com/Forums/en-US/netfxcompact/thread/f509138c-8442-4bef-916a-a97bda4721ee

Running Sql Mobile applications on the desktop is not a supported scenario (except your desktop is a TabletPC).

The public key token for System.Data.SqlServerCe (desktop platform) is 3be235df1c8d2ad3

The public key token for System.Data.SqlServerCe (device platform) is 89845dcd8080cc91

+0

Je pense que le poste dans le sur les clés publiques est faux. – NitroxDM

0

Im devinant votre problème est que vous pouvez charger l'assembly nommé, mais l'un de ses dépendances est toujours référencé comme la version 2.0 de la configuration précédente du projet. Parcourez tous vos assemblys référencés et assurez-vous qu'ils proviennent tous de la même version du framework. (Ce n'est pas une exigence qu'ils soient tous de la même version mais cela facilite la vie à long terme). Le problème est que si vous utilisez un v3.5 qui aura des dépendances v3.5 et si vous ne référez que l'assembly v2.0 vous obtiendrez l'erreur ci-dessus

0

J'ai eu le même problème. Ce qui a fonctionné pour moi était de supprimer complètement les éléments suivants de l'appareil Pocket PC:

<MY APP> 
Microsoft .Net CF 3.5 EN-String R... 
Microsoft .Net CF 3.5 
SQLServerCompact 3.5 Tools EN 
SQLServerCompact 3.5 Repl 
SQLServerCompact 3.5 Core 

Puis l'installation: NETCFv35.ppc.armv4.cab (Microsoft .Net CF 3.5) NETCFv35.Messages.EN.cab (Microsoft .Net CF 3.5 FR-String R ...) sqlce.ppc.wce4.armv4.CAB (core SQLServerCompact 3,5)

Vous pourriez être en mesure de simplement supprimer et réinstaller les paquets SQLServerCompact 3.5. C'est ce qui a fonctionné pour moi.

Questions connexes