Visual Studio + Compact Framework + Attach to Process ?
Dans Visual Studio 2005 (2008), nous avons la possibilité d'attacher dynamiquement (à chaud) une application IL (.NET) qui s'exécute au code source afin de l'exécuter en pas à pas.
En général, c'est ce que l'on fait pour débugger des services Windows, des services WCF ou des WebServices.
L'autre jour, j'ai été confronté à la nécessité de faire cela mais avec une application Windows CE (mobile) en Compact Framework...
Et là c'est le drame, car par défaut, Windows CE ne permet pas cette fonctionnalité !
Voici le résumé des opérations à faire pour permettre d'attacher dynamiquement une application en cours d'exécution sous Windows CE avec son code source en VS.NET.
1. Modification du registre du périphérique mobile
Toute modification du registre se réalise A VOS RISQUES ET PÉRILS !
- Remote Registry Editor
Parmi les outils livrés avec Microsoft Visual Studio, se trouve le « Remote Registry Editor ». Cet outil permet de modifier le registre d'un périphérique distant.
Démarrez le :
[Menu démarrer], [Tous les programmes], [Visual Studio 2005 (2008)],
[Visual Studio] [Remote Tools] , [Remote Registry Editor]

- Sélectionnez le périphérique à connecter, et validez
PS : Si l'écran de sélection n'est pas ouvert : cliquez sur le menu « Target » puis « Connect »
- Ouvrez la clé registre du périphérique :
[HKEY_LOCAL_MACHINE]
[SOFTWARE]
[Microsoft]
[.NETCompactFramework]

- Dans cette clé, ouvrez la clé [Managed Debugger],
PS : Si ce tte dernière n'existe pas, créez l a !
=> Bouton droit de la souris su r [.NETCompactFramework] + Nouvelle clé,
Saisissez [ Managed Debugger ] (attention à la casse , sans les [ ] ), et validez,
- Dans la clé Managed Debugger, Modifiez la valeur DWORD [AttachedEnabled] à 1.
PS : Si la valeur n'existe pas, créez là !
=> Bouton droit de la souris sur [ .NETCompactFramework ] + Nouvelle valeur DWORD,
Saisissez [ AttachEnabled ] (attention à la casse , sans les [ ] ) pour le nom, et 1 pour la valeur,
2. Attach to process !
- Connectez votre périphérique à ActiveSync (si périphérique matériel), et démarrez votre application sur ce périphérique.
- Dans Visual Studio, ouvrez le menu « Déboguez » puis « Attachez au processus »,
Choisissez « Transport : SmartDevice »,
Choisissez le périphérique dans « Qualificateur »,

- Choisissez le process, et clickez sur Attacher !
Pour désactiver la fonctionnalité, il suffit de saisir 0 comme valeur pour [AttachEnabled].
Par défaut cette fonctionnalité est désactivée, pour une question de performance.