2009-06-05 4 views
1

Ich habe eine C# Windows Mobile-Anwendung, die ursprünglich in VS2005 erstellt wurde, die zum Erstellen einer Testdatenbank verwendet wurde. Aber jetzt, dass ich die C# -Code in ein VS2008 Projekt und Neueinstellung der SQL Referenzen enthalten habe, erhalte ich folgende Fehlermeldung:System.TypeLoadException in unbekanntem Modul mit SQL Server CE

Eine nicht behandelte Ausnahme des Typs ‚System.TypeLoadException‘ aufgetreten in Unknown Module.

Zusätzliche Informationen: Datei oder Assemblierung-Name 'System.Data.SqlServerCe, Version = 3.5.0.0, Culture = neutral, PublicKeyToken = 3BE235DF1C8D2AD3' oder ein ihre Abhängigkeiten wurde nicht gefunden.

Der Referenzpfad scheint gut zu sein. Irgendwelche Ideen?

Danke,

+1

haben Sie die Referenz gelöscht und neu eingegeben? –

+0

Ich habe das gleiche Problem. Das Löschen und Hinzufügen der Referenz führt zu denselben Ergebnissen. – NitroxDM

Antwort

0

Haben setzen Sie Ihr Projekt ein .NET Compact Framework 3.5 Projekt zu sein? Ich stelle mir vor, dass es Probleme beim Laden von Assemblys aus dem 3.5-Framework hat, wenn es noch als 2.0-Projekt geladen wird.

5

Versuchen Sie, die Referenz zu löschen.

Ein kurzer Blick auf meine eigene GAC zeigt, dass Bibliothek eine falsche PublicKeyToken haben

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

Nach einem schnellen google, es sieht aus wie Ihr die Desktop-Plattform-Version anstelle der Version Geräteplattform verweist.

Sehen Sie diesen Beitrag hier

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

Ich denke, der Post in den über die öffentlichen Schlüssel ist falsch. – NitroxDM

0

Im Erraten Ihr Problem ist, dass Sie die angegebene Assembly laden kann, aber eine seiner Abhängigkeiten immer noch als die Version 2.0 aus dem vorherigen Projekt-Setup verwiesen wird. Gehen Sie alle referenzierten Assemblys durch und stellen Sie sicher, dass sie alle aus der gleichen Version des Frameworks stammen. (Das ist eigentlich keine Voraussetzung, dass alle von der gleichen Version sind, aber auf lange Sicht ist es einfacher). Das Problem ist, dass wenn Sie eine v3.5 verwenden, die v3.5 Abhängigkeiten haben und wenn Sie nur die v2.0 Assembly verweisen, erhalten Sie den obigen Fehler

0

Ich hatte das gleiche Problem. Was für mich gearbeitet wurde, um vollständig die folgenden von dem Pocket PC-Gerät zu entfernen:

<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 

Dann installieren: NETCFv35.ppc.armv4.cab (Microsoft .Net CF 3.5) NETCFv35.Messages.EN.cab (Microsoft .Net CF 3.5 EN-String R ...) sqlce.ppc.wce4.armv4.CAB (SQLServerCompact 3.5 Core)

Sie könnten in der Lage sein, nur die SQLServerCompact 3.5 Pakete zu entfernen und neu zu installieren. Das hat bei mir funktioniert.

Verwandte Themen