Comment obliger une application écrite pour le CF1 à fonctionner avec le CF2 sans la recompiler ?
Auteur
Stéphane Sibué
Date Samedi 1er avril 2006

Nous sommes le 1er avril mais rassurez-vous ce n'est pas un poisson d'avril !

Le mot d'ordre des développeurs du Compact Framework est la compatibilité avec le CF1. Il est donc possible de faire tourner une application construite autour du CF1 avec le CF2 sans que celà pose de problèmes. Il est ainsi possible de signaler à une application écrite pour le Compact Framework 1 qu'elle doit fonctionner avec le Compact Framework 2 sans pour autant la recompiler.

Il suffit de créer un fichier de configuration à coté de votre exécutable et d'indiquer dans ce fichier quelle version du Compact Framework utiliser. Même si en interne votre application est configurée pour utiliser une version particulière du CF, ce fichier va l'obliger à changer ses références.

Le fichier doit impérativement s'appeller comme l'application, avec ".config" en plus :

Pour l'application "\Program Files\MonApplication\MonApplication.exe" le fichier s'appellera donc "\Program Files\MonApplication\MonApplication.exe.config" tout simplement.

Le contenu du fichier de config est le suivant :

<configuration>
<startup>
<supportedRuntime version="v2.0.5238"/>
</startup>
</configuration>

v2.0.5238 correspond à la version du Compact Framework 2.0 final release. La version officielle du CF2.

Attention : Vous devez indiquez la version exacte du CF que vous voulez utiliser pour que ça marche. Pour connaître la version de tous les CF installés sur votre machine vous pouvez utiliser le programme "\windows\cgacutil.exe" :

Exemple avec DoWeek :

Vous connaissez très certainement DoWeek. Si ce n'est pas le cas je vous invite à le découvrir dans la section téléchargements de CodePPC.

La version actuelle de DoWeek cible le Compact Framework 1.0. Si vous l'installez sur une machine qui possède aussi le Compact Framework 2, DoWeek va utiliser uniquement la version 1.0 du CF car il a été configuré ainsi lors de sa compilation (Visual Studio 2003).

Si dans DoWeek vous ouvrez la fenêtre des paramètres, et que vous affichez l'onglet "Divers" vous pourez noter que la version de la CRL est 1.0.4292 soit la version du Compact Framework 1.0 SP3

Si vous ajoutez le fichier de configuration demandant à l'application d'utiliser le Compact Framework 2 en version 2.0.5238, vous allez obtenir ceci :

L'application est toujours en version 1.1 mais elle utilise le Compact Framework 2.0.5238 pour fonctionner.

 

Stéphane Sibué


Développez pour Windows Mobile
Copyright 2001-2006 - Tous droits réservés
Toutes les marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.