2017-01-11 3 views
0

Je suis en train de développer une application .NET CF 3.5 sur WinCE6 qui va créer une DLL et des DLL. J'ai défini une classe d'exemple comme celui-ci dans un projet de bibliothèque de classes:System.MissingMethodException

using System.ComponentModel; 
using System; 

namespace Utils 
{ 
    public static class Test 
    { 
     public static void runTest() 
     { 
      Exception e = new Win32Exception(0, "CreateToolhelp32Snapshot error."); 
     } 
    } 

} 

De mon projet principal exécutable je vais appeler la méthode runTest(). Tout va bien au moment de la compilation. Mais au moment de l'exécution à l'exception suivante est générée lorsque vous essayez d'appeler runTest():

System.MissingMethodException 

{"The version of the assembly System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089 cannot be loaded by this version of the Microsoft .NET Compact Framework."} 

En cours d'exécution dans le débogage et la fixation d'un point d'arrêt dans runTest() je peux voir que la méthode est ni entrée ... Aussi, si je mets un peu supplémentaire code brut avant la création de l'exception, la méthode n'est jamais entrée et l'exception est levée.

Cependant, si je prends la classe de test et de le mettre directement dans le projet principal (de sorte qu'il sera construit à l'intérieur du exe) tout fonctionne bien ...

Est-ce que quelqu'un a une idée de ce qui se passe?

+1

Juste une supposition, mais je vois la version 2.0 dans le message, il se peut que vous avez .NET CF version 2.0 installé sur votre appareil au lieu de v 3.5? –

+0

si j'exécute cgacutil.exe sur le périphérique, il affiche le framework compact 3.5 installé – salvolds

+0

@Valter: mais vous avez raison, il s'agit d'un problème de version: le programme de bibliothèque de classe 3.5 faisait référence à System assembly 2.0 alors que l'exe faisait référence au bon assembly System 3.5. Juste remplacé la référence et tout fonctionne bien – salvolds

Répondre

1

Le projet de bibliothèque de classes fait référence à la version 2.0 du composant Système alors que la structure compacte installée est 3.5. Au moment du déploiement, le composant système 2.0 a été déployé mais CF 3.5 n'a pas pu le charger.

Correction de la référence à System version 3.5 dans le projet de la bibliothèque tout a bien fonctionné.