Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Depuis la version 8.0.108, les BaseForms utilisées dans des programmations sur mesure produisent des erreurs

0000002106     -      10/05/2013

A partir de la version 8.0.108 (22/10/2012), Mercator s'est vu apporter des modifications dans l'architecture des classes de base MercatorUi._BaseClasses.BaseForm et MercatorUi._BaseClasses.BaseForm2007. La définition des propriétés et méthodes publiques n'a pas été modifiée, mais ces classes héritent à présent d'autres classes présentes dans MercatorComponent.dll, lesquelles ont bien entendu en commun l'ancêtre System.Windows.Forms.Form.

Ceci induit qu'une programmation utilisant ces BaseForms et compilées avec des versions précédentes peut produire une erreur lors de l'exécution. En général, l'erreur indique que le framework .net ne peut trouver la classe Office2007Form, par exemple dans la méthode Dispose ou qu'une exception y a été levée par la cible d'un appel.

Pour corriger cette erreur, il suffit de

  • reprendre le projet avec les sources utilisant une BaseForm
  • ne rien y changer dans le code
  • s'assurer dans les références que la dernière version de MercatorUi.dll est bien utilisée
  • ajouter une référence vers MercatorComponent.dll
  • recompiler
  • utiliser cette assembly nouvellement compilée

L'équipe de développement est bien consciente du désagrément qu'un tel changement peut causer. Cet type de modification est rarissime dans l'architecture de Mercator. Dans le cas présent, cette modification était nécessaire en vue de la prochaine version de Mercator. Nous notons aussi que la résolution du problème est simplissime : seulement recompiler.