Compatibilité des versions

Bonjour,

Dans mon dernier article nous avons écrit notre première routine en VB .Net. Nous l’avons écrite en utilisant Visual Studio 2010 et ciblé la version 2012 d’AutoCAD. Avez-vous tenté de charger le DLL dans une autre version d’AutoCAD en utilisant la command Netload? Dans la version 2011 ou 2010 vous avez sûrement eu un message indiquant que le DLL utilisait une version plus récente du «runtime». Quant à la version 2013, aucun message d’erreur n’apparait mais la commande n’est pas reconnue.

Commençons par les versions antérieures (2010 ou 2011). Ces versions d’AutoCAD utilisent la version 3.5 du «framework» .Net. Pour créer des applications pour ces versions, nous aurions pu utiliser Visual Studio 2008 qui cible par défaut cette version, mais nous pouvons tous simplement recompiler en utilisant une version antérieur du «framework».

Ouvrez Visual Studio 2010 puis chargez la solution HelloWorld. À partir de l’explorateur de solution, double-cliquez sur My project. Choisissez ensuite la section Compiler.

Ensuite, cliquez le bouton Options avancées de compilation….

Dans la boîte de dialogue Paramètres avancées de compilation, vous trouverez une liste déroulante indiquant la version cible du «framework». Modifiez la version pour 3.5 au lieu de 4.

Visual Studio vous indiquera qu’il faut fermer la solution et l’ouvrir à nouveau pour appliquer les changements. Faites-le.

Démarrer le débogage (F5) ou flèche verte dans la barre d’outils. Le débogage utilise la version 2012 comme nous l’avions configuré. Vous verrez, l’application sera fonctionnelle.

Après avoir vérifié que ADCHW fonctionne bien. Générez la version finale (menu déroulant Générer->Générer HelloWorld). Charger le DLL créé dans la version 2010 ou 2011 et vous verrez que tout est fonctionnel. Pour les versions 2007, 2008 ou 2009, le «framework» utilisé était la version 2.0 (Visual Studio 2005). Donc, recompiler l’application HelloWorld avec le  «framework» 2.0 permettrait de l’exécuter sur les version 2007, 2008 et 2009. Par contre pour des applications plus complexes, il faut toujours se méfier et vérifier que toutes les fonctionnalités de l’application sont disponibles dans les différentes versions du «framework» ou d’AutoCAD.

Pour la version 2013, c’est un peu différent. Cette version utilise toujours le «framework» version 4 mais les fichiers de référence ont changés. Nous devons donc apporter quelques modifications à notre application.

Fermez la solution courante. Je suggère aussi de copier le dossier de l’application sous le nom HelloWorld2013. Ouvrez la solution HelloWorld à partir du dossier que vous venez de copier. Apporter les modifications suivantes au projet (My Project):

  • Ajustez le framework cible à la version 4 (section Compiler, bouton Options avancées de compilation…);
  • Changer le programme de débogage (section Déboguer, Démarrer le programme externe) pour démarrer la version 2013 en mode de débogage;
  • Dans la section Références, supprimez les références acmgd.dll et acdbmgd.dll;
  • Ajoutez les 2 mêmes références mais à partir du dossier de la version 2013 et aussi le fichier accoremgd.dll.

N’oubliez par de mettre la propriété «Copie locale» à False pour ces 3 références.

Démarrez le débogage et charger le DLL. N’oubliez pas qu’il sera dans le nouveau dossier HelloWorld2013\..\Debug. Tout devrait bien fonctionner. Vous pourrez ensuite compiler votre version finale.

Pour plus de détails sur la migration vous pouvez consulter le blogue de Through the Interface de Kean Walmsley qui est toujours excellent. Voici le lien directe pour l’article Migrating .NET applications to work with AutoCAD 2013.

Dans un prochain article, nous explorerons les différentes méthodes pour afficher des messages.

Bonne programmation!!!!

André

 

 

Laisser un commentaire