Je n'ai pas beaucoup travaillé avec COM, veuillez donc pardonner mon ignorance.
Contexte : Je travaille sur un projet en VS 2010. Il y a une DLL COM C# intégrée dans la solution C#, ainsi qu'un projet d'installation/déploiement - le projet d'installation est configuré pour enregistrer le fichier COM .tlb lors de l'installation.
Le problème : une version précédente de l'application C#, avec sa DLL COM, était présente sur un PC lorsque quelqu'un a décidé d'installer la version la plus récente de l'application C#, et donc la DLL COM la plus récente. Lorsque cela s'est produit, la fonctionnalité COM des deux versions de l'application C# a été interrompue ou du moins c'est ce que je suppose.
S'agit-il d'un comportement typique de COM/DLL-Hell ? Lorsque les deux applications C# sont désinstallées, puis qu'UNE SEULE est réinstallée, tout revient à la normale - les deux ne peuvent apparemment pas être installées en même temps.
J'ai essayé de changer le GUID du projet COM DLL, de changer la version de l'assemblage et la version du fichier d'assemblage du projet COM DLL - avec des résultats mitigés. Lorsque je modifie ces éléments, la nouvelle installation de l'application fonctionne (très bien), mais l'ancienne application C# ne fonctionne plus.
Remarque : aucune erreur ou exception n'est déclenchée lorsque la fonctionnalité COM échoue - les appels COM semblent simplement ne rien faire. Il s'agit donc d'un échec "silencieux".
J'ai fait des recherches à ce sujet et j'ai essayé diverses modifications sans grand succès... peut-être que je ne vois pas les choses de la bonne façon. Est-ce que quelqu'un d'autre ayant plus d'expérience dans ce domaine pourrait m'éclairer ?