Ok, je viens de vérifier que je suis capable de parcourir le code en utilisant ce processus. Je fais cela dans ArcMap, mais je pense que cela devrait s'appliquer à ArcCatalog car le processus traite du débogage des DLL et non d'un élément spécifique à ESRI. J'ai confirmé cela dans ArcMap 10.2.2 et ArcCatalog 10.2.2. Comme il s'agit d'un processus Windows traitant directement des DLL, les versions du logiciel ESRI ne devraient pas avoir d'importance.
J'utilise Visual Studio pour attacher à un processus .
Je suis capable de parcourir une extension compilée (DLL) à l'aide de ce processus lorsque la DLL est invoquée dans un autre programme.
Voici ce que je fais ...
Dans Visual Studio, ouvrez votre projet d'extension. J'ai construit mon extension dans VS 2010 C # Express, mais j'utilise VS 2013 Ultimate pour ce faire. Je ne sais pas si l' option Attacher au processus est une option dans la version 2010 Express. Je ne l'ai pas vu, mais il pourrait être caché quelque part puisqu'il s'agissait de la version Express.
Ouvrez votre produit ESRI et installez le complément. Maintenant, de retour dans VS, cliquez sur Attacher au processus et sélectionnez le processus de votre produit ESRI. Le mien était ArcMap.exe . À partir d'ici, Visual Studio doit attacher son débogueur au programme et lorsque la DLL est exécutée pour laquelle vous avez ouvert et défini des points d'arrêt, il s'arrête là. Cela agira comme n'importe quel autre programme que vous déboguez dans Visual Studio. Il peut étirer certains débogages dans certains des éléments ESRI bien que le code soit très probablement obscurci donc pas si utile.
Je me suis assuré d'avoir installé le complément à partir de mon répertoire Release pour mon projet. Pour autant que je sache, ESRI ne copie pas la DLL dans l'un de ses dossiers, mais ils utilisent leur utilitaire d'enregistrement d' assembly Esri pour enregistrer l'emplacement de la DLL afin que le système sache où le trouver lorsqu'il est référencé à partir d'un produit ESRI.
FYI: J'utilise ce processus pour déboguer les bibliothèques de classes que j'écris dans un projet qui sont utilisées dans un autre. La même théorie devrait appliquer les compléments ESRI car ce ne sont que des bibliothèques de classes (DLL) appelées dans un autre programme. Mis à part Visual Studio, je pense que tout autre débogueur Windows devrait pouvoir se joindre à la DLL.
VEUILLEZ poster des commentaires sur celui-ci. J'ai pensé que cela fonctionnerait depuis un certain temps et je suis très curieux de voir comment les autres sont justes avec cette méthode.
EDIT Je viens de créer un nouveau complément ArcCatalog, qui consiste en un simple bouton. J'ai ajouté une affectation de chaîne string stophere = "debugger stopped!";
dans le gestionnaire d'événements pour l'événement click du bouton. Grâce à ArcCatalog, il a cessé d'utiliser la méthode Attacher au processus . Les informations de Visual Studio 2010 sur le processus sont ici .
Il existe quelques éléments sur MSDN concernant le débogage des DLL via diverses méthodes dans Visual Studio et Windows Debugger. Personnellement, je trouve que l' attachement au processus est meilleur que le démarrage d'une méthode de programme externe et également meilleur que l'utilisation du débogueur distant .
Le seul inconvénient de cette méthode est que vous perdez l' approche F5 où vous déboguez directement à partir de Visual Studio. Cela signifie donc, apporter des modifications à votre code, installer la mise à jour, démarrer ArcCatalog, attacher au processus, puis atteindre vos points d'arrêt. Cependant, je trouve que cette méthode est assez bonne à savoir si vous rencontrez des problèmes comme vous. Ce processus peut être un peu plus long, mais c'est une méthode infaillible pour obtenir vos résultats.